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

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benson <david@jgraph.com>2016-11-07 14:51:48 +0300
committerDavid Benson <david@jgraph.com>2016-11-07 14:51:48 +0300
commit72390eb7b6c28df1948c53a546c2996eac04360a (patch)
tree4093e233d45f504e2c3997176e7b6b7f6797ac8e
parentf3488d73f4e30e1ce297b828407095f133d8ca3f (diff)
6.0.1.2 releasev6.0.1.2
Former-commit-id: f8a1e09dd84c6b57c6282ca194d532d1ad7f66d9
-rw-r--r--ChangeLog5
-rw-r--r--VERSION2
-rw-r--r--etc/build/build.xml3
-rw-r--r--src/com/mxgraph/online/EmbedServlet2.java43
-rw-r--r--war/WEB-INF/appengine-web.xml2
-rw-r--r--war/cache.manifest2
-rw-r--r--war/images/sidebar-electrical.pngbin61441 -> 94928 bytes
-rw-r--r--war/js/app.min.js2254
-rw-r--r--war/js/atlas-viewer.min.js1586
-rw-r--r--war/js/atlas.min.js1625
-rw-r--r--war/js/diagramly/App.js1654
-rw-r--r--war/js/diagramly/Devel.js3
-rw-r--r--war/js/diagramly/Dialogs.js1
-rw-r--r--war/js/diagramly/Editor.js1041
-rw-r--r--war/js/diagramly/EditorUi.js2605
-rw-r--r--war/js/diagramly/Init.js3
-rw-r--r--war/js/diagramly/Pages.js13
-rw-r--r--war/js/diagramly/sidebar/Sidebar-Electrical.js414
-rw-r--r--war/js/diagramly/sidebar/Sidebar.js10
-rw-r--r--war/js/diagramly/vsdx/mxVsdxModel.js60
-rw-r--r--war/js/embed-static.min.js22
-rw-r--r--war/js/mxgraph/Actions.js7
-rw-r--r--war/js/mxgraph/Dialogs.js77
-rw-r--r--war/js/mxgraph/EditorUi.js2
-rw-r--r--war/js/mxgraph/Graph.js8
-rw-r--r--war/js/mxgraph/Menus.js6
-rw-r--r--war/js/reader.min.js22
-rw-r--r--war/js/shapes.min.js21
-rw-r--r--war/js/viewer.min.js1615
-rw-r--r--war/plugins/find.js25
-rw-r--r--war/shapes/mxElectrical.js467
-rw-r--r--war/stencils.xml22793
-rw-r--r--war/stencils/electrical/abstract.xml1003
-rw-r--r--war/stencils/electrical/capacitors.xml945
-rw-r--r--war/stencils/electrical/diodes.xml471
-rw-r--r--war/stencils/electrical/electro-mechanical.xml2179
-rw-r--r--war/stencils/electrical/iec417.xml1677
-rw-r--r--war/stencils/electrical/iec_logic_gates.xml124
-rw-r--r--war/stencils/electrical/inductors.xml1617
-rw-r--r--war/stencils/electrical/instruments.xml130
-rw-r--r--war/stencils/electrical/logic_gates.xml1055
-rw-r--r--war/stencils/electrical/miscellaneous.xml2233
-rw-r--r--war/stencils/electrical/mosfets1.xml1367
-rw-r--r--war/stencils/electrical/mosfets2.xml1131
-rw-r--r--war/stencils/electrical/op_amps.xml756
-rw-r--r--war/stencils/electrical/opto_electronics.xml1635
-rw-r--r--war/stencils/electrical/plc_ladder.xml185
-rw-r--r--war/stencils/electrical/power_semiconductors.xml1149
-rw-r--r--war/stencils/electrical/radio.xml648
-rw-r--r--war/stencils/electrical/resistors.xml1370
-rw-r--r--war/stencils/electrical/rot_mech.xml367
-rw-r--r--war/stencils/electrical/signal_sources.xml849
-rw-r--r--war/stencils/electrical/thermionic_devices.xml534
-rw-r--r--war/stencils/electrical/transistors.xml702
-rw-r--r--war/stencils/electrical/transmission.xml297
-rw-r--r--war/stencils/electrical/waveforms.xml399
-rw-r--r--war/styles/grapheditor.css4
57 files changed, 29273 insertions, 29945 deletions
diff --git a/ChangeLog b/ChangeLog
index f6a01b6c..f1b45233 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+07-NOV-2016: 6.0.1.2
+
+- Adds new electrical shapes
+- Minor improvements for find plugin
+
04-NOV-2016: 6.0.1.1
- Adds consistent location for insert and sidebar
diff --git a/VERSION b/VERSION
index 8bc6d2bc..00586228 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-6.0.1.1 \ No newline at end of file
+6.0.1.2 \ No newline at end of file
diff --git a/etc/build/build.xml b/etc/build/build.xml
index 4a128b7d..d57811e1 100644
--- a/etc/build/build.xml
+++ b/etc/build/build.xml
@@ -155,6 +155,7 @@
<sources dir="${war.dir}/js/diagramly">
<file name="DrawioFile.js" />
<file name="LocalFile.js" />
+ <file name="Editor.js" />
<file name="EditorUi.js" />
<file name="Pages.js" />
</sources>
@@ -243,6 +244,7 @@
<file name="StorageFile.js" />
<file name="StorageLibrary.js" />
<file name="Dialogs.js" />
+ <file name="Editor.js" />
<file name="EditorUi.js" />
<file name="Settings.js" />
<file name="App.js" />
@@ -302,6 +304,7 @@
<file name="StorageFile.js" />
<file name="StorageLibrary.js" />
<file name="Dialogs.js" />
+ <file name="Editor.js" />
<file name="EditorUi.js" />
<file name="Settings.js" />
</sources>
diff --git a/src/com/mxgraph/online/EmbedServlet2.java b/src/com/mxgraph/online/EmbedServlet2.java
index 147413a4..cced6aee 100644
--- a/src/com/mxgraph/online/EmbedServlet2.java
+++ b/src/com/mxgraph/online/EmbedServlet2.java
@@ -123,45 +123,10 @@ public class EmbedServlet2 extends HttpServlet
new String[] { SHAPES_PATH + "/ios7/mxIOS7Ui.js",
STENCIL_PATH + "/ios7/misc.xml" });
libraries.put("android", new String[] { SHAPES_PATH + "/mxAndroid.js",
- STENCIL_PATH + "/android/android.xml" });
- libraries.put("eeLogicGates",
- new String[] { STENCIL_PATH + "/electrical/logic_gates.xml" });
- libraries.put("eeResistors",
- new String[] { STENCIL_PATH + "/electrical/resistors.xml" });
- libraries.put("eeCapacitors",
- new String[] { STENCIL_PATH + "/electrical/capacitors.xml" });
- libraries.put("eeInductors",
- new String[] { STENCIL_PATH + "/electrical/inductors.xml" });
- libraries.put("eeSwitchesRelays",
- new String[] { STENCIL_PATH + "/electrical/switchesRelays.xml",
- STENCIL_PATH + "/electrical/electro-mechanical.xml" });
- libraries.put("eeDiodes",
- new String[] { STENCIL_PATH + "/electrical/diodes.xml" });
- libraries.put("eeSources", new String[] {
- STENCIL_PATH + "/electrical/signal_sources.xml" });
- libraries.put("eeTransistors",
- new String[] { STENCIL_PATH + "/electrical/mosfets1.xml",
- STENCIL_PATH + "/electrical/mosfets2.xml",
- STENCIL_PATH + "/electrical/transistors.xml" });
- libraries.put("eeMisc",
- new String[] {
- STENCIL_PATH + "/electrical/electro-mechanical.xml",
- STENCIL_PATH + "/electrical/miscellaneous.xml" });
- libraries.put("eeAudio",
- new String[] { STENCIL_PATH + "/electrical/radio.xml" });
- libraries.put("eePlcLadder",
- new String[] { STENCIL_PATH + "/electrical/plc_ladder.xml" });
- libraries.put("eeAbstract",
- new String[] { STENCIL_PATH + "/electrical/abstract.xml",
- STENCIL_PATH + "/electrical/logic_gates.xml" });
- libraries.put("eeOptical", new String[] {
- STENCIL_PATH + "/electrical/opto_electronics.xml" });
- libraries.put("eeVacuumTubes",
- new String[] { STENCIL_PATH + "/electrical/vacuum_tubes.xml" });
- libraries.put("eeWaveforms",
- new String[] { STENCIL_PATH + "/electrical/waveforms.xml" });
- libraries.put("eeInstruments",
- new String[] { STENCIL_PATH + "/electrical/instruments.xml" });
+ STENCIL_PATH + "electrical/transmission" });
+ libraries.put("electrical/transmission",
+ new String[] { SHAPES_PATH + "/mxElectrical.js",
+ STENCIL_PATH + "/electrical/transmission.xml" });
libraries.put("mockup/buttons",
new String[] { SHAPES_PATH + "/mockup/mxMockupButtons.js" });
libraries.put("mockup/containers",
diff --git a/war/WEB-INF/appengine-web.xml b/war/WEB-INF/appengine-web.xml
index f0c0b4ee..5a85963d 100644
--- a/war/WEB-INF/appengine-web.xml
+++ b/war/WEB-INF/appengine-web.xml
@@ -2,7 +2,7 @@
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>drawdotio</application>
<!-- IMPORTANT! DO NOT CHANGE THIS VALUE IN SOURCE CONTROL! -->
- <version>6-0-1-1</version>
+ <version>test</version>
<!-- Configure java.util.logging -->
<system-properties>
diff --git a/war/cache.manifest b/war/cache.manifest
index 5ccdf164..3edf1816 100644
--- a/war/cache.manifest
+++ b/war/cache.manifest
@@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 11/04/2016 04:13 PM
+# 11/07/2016 11:21 AM
/app.html
/index.html?offline=1
diff --git a/war/images/sidebar-electrical.png b/war/images/sidebar-electrical.png
index 4d89dd42..ae91f554 100644
--- a/war/images/sidebar-electrical.png
+++ b/war/images/sidebar-electrical.png
Binary files differ
diff --git a/war/js/app.min.js b/war/js/app.min.js
index c2cdd935..6da83dff 100644
--- a/war/js/app.min.js
+++ b/war/js/app.min.js
@@ -1,12 +1,12 @@
!function(a,c){"object"==typeof exports?module.exports=c():"function"==typeof define&&define.amd?define(c):a.Spinner=c()}(this,function(){function a(b,a){var d,e=document.createElement(b||"div");for(d in a)e[d]=a[d];return e}function c(b){for(var a=1,d=arguments.length;d>a;a++)b.appendChild(arguments[a]);return b}function f(b,a,d,e){var c=["opacity",a,~~(100*b),d,e].join("-");d=0.01+100*(d/e);e=Math.max(1-(1-b)/a*(100-d),b);var f=l.substring(0,l.indexOf("Animation")).toLowerCase();return m[c]||(p.insertRule("@"+
(f&&"-"+f+"-"||"")+"keyframes "+c+"{0%{opacity:"+e+"}"+d+"%{opacity:"+b+"}"+(d+0.01)+"%{opacity:1}"+(d+a)%100+"%{opacity:"+b+"}100%{opacity:"+e+"}}",p.cssRules.length),m[c]=1),c}function d(b,a){var d,e,c=b.style;a=a.charAt(0).toUpperCase()+a.slice(1);for(e=0;e<n.length;e++)if(d=n[e]+a,void 0!==c[d])return d;return void 0!==c[a]?a:void 0}function b(b,a){for(var e in a)b.style[d(b,e)||e]=a[e];return b}function e(b){for(var a=1;a<arguments.length;a++){var d=arguments[a],e;for(e in d)void 0===b[e]&&(b[e]=
-d[e])}return b}function g(b){this.opts=e(b||{},g.defaults,q)}function k(){function d(b,e){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',e)}p.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,e){function f(){return b(d("group",{coordsize:n+" "+n,coordorigin:-l+" "+-l}),{width:n,height:n})}function g(a,k,n){c(m,c(b(f(),{rotation:360/e.lines*a+"deg",left:~~k}),c(b(d("roundrect",{arcsize:e.corners}),{width:l,height:e.width,left:e.radius,
+d[e])}return b}function g(b){this.opts=e(b||{},g.defaults,r)}function k(){function d(b,e){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',e)}p.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,e){function f(){return b(d("group",{coordsize:n+" "+n,coordorigin:-l+" "+-l}),{width:n,height:n})}function g(a,k,n){c(m,c(b(f(),{rotation:360/e.lines*a+"deg",left:~~k}),c(b(d("roundrect",{arcsize:e.corners}),{width:l,height:e.width,left:e.radius,
top:-e.width>>1,filter:n}),d("fill",{color:"string"==typeof e.color?e.color:e.color[a%e.color.length],opacity:e.opacity}),d("stroke",{opacity:0}))))}var k,l=e.length+e.width,n=2*l;k=2*-(e.width+e.length)+"px";var m=b(f(),{position:"absolute",top:k,left:k});if(e.shadow)for(k=1;k<=e.lines;k++)g(k,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(k=1;k<=e.lines;k++)g(k);return c(a,m)};g.prototype.opacity=function(b,a,d,e){b=b.firstChild;e=e.shadow&&
-e.lines||0;b&&a+e<b.childNodes.length&&(b=b.childNodes[a+e],b=b&&b.firstChild,b=b&&b.firstChild,b&&(b.opacity=d))}}var l,n=["webkit","Moz","ms","O"],m={},p=function(){var b=a("style",{type:"text/css"});return c(document.getElementsByTagName("head")[0],b),b.sheet||b.styleSheet}(),q={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};e(g.prototype,
-{spin:function(d){this.stop();var e=this,c=e.opts,f=e.el=b(a(0,{className:c.className}),{position:c.position,width:0,zIndex:c.zIndex});c.radius+c.length+c.width;if(d&&(d.insertBefore(f,d.firstChild||null),b(f,{left:c.left,top:c.top})),f.setAttribute("role","progressbar"),e.lines(f,e.opts),!l){var g,k=0,n=(c.lines-1)*(1-c.direction)/2,m=c.fps,q=m/c.speed,p=(1-c.opacity)/(q*c.trail/100),r=q/c.lines;!function E(){k++;for(var b=0;b<c.lines;b++)g=Math.max(1-(k+(c.lines-b)*r)%q*p,c.opacity),e.opacity(f,
-b*c.direction+n,g,c);e.timeout=e.el&&setTimeout(E,~~(1E3/m))}()}return e},stop:function(){var b=this.el;return b&&(clearTimeout(this.timeout),b.parentNode&&b.parentNode.removeChild(b),this.el=void 0),this},lines:function(d,e){function g(d,c){return b(a(),{position:"absolute",width:e.length+e.width+"px",height:e.width+"px",background:d,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/e.lines*n+e.rotate)+"deg) translate("+e.radius+"px,0)",borderRadius:(e.corners*e.width>>1)+"px"})}for(var k,
+e.lines||0;b&&a+e<b.childNodes.length&&(b=b.childNodes[a+e],b=b&&b.firstChild,b=b&&b.firstChild,b&&(b.opacity=d))}}var l,n=["webkit","Moz","ms","O"],m={},p=function(){var b=a("style",{type:"text/css"});return c(document.getElementsByTagName("head")[0],b),b.sheet||b.styleSheet}(),r={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};e(g.prototype,
+{spin:function(d){this.stop();var e=this,c=e.opts,f=e.el=b(a(0,{className:c.className}),{position:c.position,width:0,zIndex:c.zIndex});c.radius+c.length+c.width;if(d&&(d.insertBefore(f,d.firstChild||null),b(f,{left:c.left,top:c.top})),f.setAttribute("role","progressbar"),e.lines(f,e.opts),!l){var g,k=0,n=(c.lines-1)*(1-c.direction)/2,m=c.fps,p=m/c.speed,r=(1-c.opacity)/(p*c.trail/100),s=p/c.lines;!function F(){k++;for(var b=0;b<c.lines;b++)g=Math.max(1-(k+(c.lines-b)*s)%p*r,c.opacity),e.opacity(f,
+b*c.direction+n,g,c);e.timeout=e.el&&setTimeout(F,~~(1E3/m))}()}return e},stop:function(){var b=this.el;return b&&(clearTimeout(this.timeout),b.parentNode&&b.parentNode.removeChild(b),this.el=void 0),this},lines:function(d,e){function g(d,c){return b(a(),{position:"absolute",width:e.length+e.width+"px",height:e.width+"px",background:d,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/e.lines*n+e.rotate)+"deg) translate("+e.radius+"px,0)",borderRadius:(e.corners*e.width>>1)+"px"})}for(var k,
n=0,m=(e.lines-1)*(1-e.direction)/2;n<e.lines;n++)k=b(a(),{position:"absolute",top:1+~(e.width/2)+"px",transform:e.hwaccel?"translate3d(0,0,0)":"",opacity:e.opacity,animation:l&&f(e.opacity,e.trail,m+n*e.direction,e.lines)+" "+1/e.speed+"s linear infinite"}),e.shadow&&c(k,b(g("#000","0 0 4px #000"),{top:"2px"})),c(d,c(k,g("string"==typeof e.color?e.color:e.color[n%e.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(b,a,d){a<b.childNodes.length&&(b.childNodes[a].style.opacity=d)}});
-var r=b(a("group"),{behavior:"url(#default#VML)"});return!d(r,"transform")&&r.adj?k():l=d(r,"animation"),g});(function(){var a=void 0,c=!0,f=null,d=!1,b=["aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkturquoise darkviolet deeppink deepskyblue dimgray dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray snow springgreen steelblue tan teal thistle tomato transparent turquoise violet wheat white whitesmoke yellow yellowgreen".split(" "),
+var s=b(a("group"),{behavior:"url(#default#VML)"});return!d(s,"transform")&&s.adj?k():l=d(s,"animation"),g});(function(){var a=void 0,c=!0,f=null,d=!1,b=["aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkturquoise darkviolet deeppink deepskyblue dimgray dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray snow springgreen steelblue tan teal thistle tomato transparent turquoise violet wheat white whitesmoke yellow yellowgreen".split(" "),
"all-scroll col-resize crosshair default e-resize hand help move n-resize ne-resize no-drop not-allowed nw-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait".split(" "),"armenian decimal decimal-leading-zero disc georgian lower-alpha lower-greek lower-latin lower-roman square upper-alpha upper-latin upper-roman".split(" "),"100 200 300 400 500 600 700 800 900 bold bolder lighter".split(" "),"block-level inline-level table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group".split(" "),
"condensed expanded extra-condensed extra-expanded narrower semi-condensed semi-expanded ultra-condensed ultra-expanded wider".split(" "),"inherit inline inline-block inline-box inline-flex inline-grid inline-list-item inline-stack inline-table run-in".split(" "),"behind center-left center-right far-left far-right left-side leftwards right-side rightwards".split(" "),"large larger small smaller x-large x-small xx-large xx-small".split(" "),"dashed dotted double groove outset ridge solid".split(" "),
"ease ease-in ease-in-out ease-out linear step-end step-start".split(" "),"at closest-corner closest-side ellipse farthest-corner farthest-side".split(" "),"baseline middle sub super text-bottom text-top".split(" "),"caption icon menu message-box small-caption status-bar".split(" "),"fast faster slow slower x-fast x-slow".split(" "),["above","below","higher","level","lower"],["cursive","fantasy","monospace","sans-serif","serif"],["loud","silent","soft","x-loud","x-soft"],["no-repeat","repeat-x","repeat-y",
@@ -35,31 +35,31 @@ b[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 e)"string"===typeof e[g]&&Object.hasOwnProperty.call(e,g)&&(e[g]=e[e[g]]);"undefined"!==typeof window&&(window.cssSchema=e);var k,l;(function(){function b(a){var d=parseInt(a.substring(1),16);return 65535<d?(d-=65536,String.fromCharCode(55296+(d>>10),56320+(d&1023))):d==d?String.fromCharCode(d):" ">a[1]?"":a[1]}function a(b,d){return'"'+b.replace(/[\u0000-\u001f\\\"<>]/g,
d)+'"'}function d(b){return c[b]||(c[b]="\\"+b.charCodeAt(0).toString(16)+" ")}function e(b){return f[b]||(f[b]=("\u0010">b?"%0":"%")+b.charCodeAt(0).toString(16))}var c={"\\":"\\\\"},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"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(a){return a.replace(n,b)};k=function(b){b=(""+b).replace(/\r\n?/g,"\n").match(g)||[];for(var c=0,f=" ",k=0,n=b.length;k<n;++k){var u=l(b[k]),t=u.length,v=u.charCodeAt(0),u=34==v||39==v?a(u.substring(1,t-1),d):47==v&&1<t||"\\"==u||"--\x3e"==u||"\x3c!--"==u||"\ufeff"==
-u||32>=v?" ":/url\(/i.test(u)?"url("+a(u.replace(m,""),e)+")":u;if(f!=u||" "!=u)b[c++]=f=u}b.length=c;return b}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var n=function(){function b(a){a=(""+a).match(m);return!a?f:new g(k(a[1]),k(a[2]),k(a[3]),k(a[4]),k(a[5]),k(a[6]),k(a[7]))}function a(b,e){return"string"==typeof b?encodeURI(b).replace(e,d):f}function d(b){b=b.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(b>>4&15)+"0123456789ABCDEF".charAt(b&15)}function e(b){if(b===
+"gi"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(a){return a.replace(n,b)};k=function(b){b=(""+b).replace(/\r\n?/g,"\n").match(g)||[];for(var c=0,f=" ",k=0,n=b.length;k<n;++k){var p=l(b[k]),t=p.length,u=p.charCodeAt(0),p=34==u||39==u?a(p.substring(1,t-1),d):47==u&&1<t||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
+p||32>=u?" ":/url\(/i.test(p)?"url("+a(p.replace(m,""),e)+")":p;if(f!=p||" "!=p)b[c++]=f=p}b.length=c;return b}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var n=function(){function b(a){a=(""+a).match(m);return!a?f:new g(k(a[1]),k(a[2]),k(a[3]),k(a[4]),k(a[5]),k(a[6]),k(a[7]))}function a(b,e){return"string"==typeof b?encodeURI(b).replace(e,d):f}function d(b){b=b.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(b>>4&15)+"0123456789ABCDEF".charAt(b&15)}function e(b){if(b===
f)return f;b=b.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var a=l,d;(d=b.replace(a,"$1"))!=b;b=d);return b}function c(b,a){var d=b.T(),f=a.K();f?d.ga(a.j):f=a.X();f?d.da(a.n):f=a.Y();f?d.ea(a.k):f=a.$();var g=a.g,k=e(g);if(f)d.ca(a.V()),k=k&&k.replace(n,"");else if(f=!!g){if(47!==k.charCodeAt(0))var k=e(d.g||"").replace(n,""),l=k.lastIndexOf("/")+1,k=e((l?k.substring(0,l):"")+e(g)).replace(n,"")}else k=k&&k.replace(n,""),k!==g&&d.G(k);f?d.G(k):f=a.aa();f?d.O(a.l):f=a.Z();f&&d.fa(a.o);
return d}function g(b,a,d,e,c,f,k){this.j=b;this.n=a;this.k=d;this.h=e;this.g=c;this.l=f;this.o=k}function k(b){return"string"==typeof b&&0<b.length?b:f}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),n=/^(?:\.\.\/)*(?:\.\.$)?/;g.prototype.toString=function(){var b=[];f!==this.j&&b.push(this.j,":");f!==this.k&&(b.push("//"),f!==this.n&&b.push(this.n,"@"),b.push(this.k),f!==this.h&&b.push(":",this.h.toString()));f!==this.g&&b.push(this.g);f!==this.l&&b.push("?",
this.l);f!==this.o&&b.push("#",this.o);return b.join("")};g.prototype.T=function(){return new g(this.j,this.n,this.k,this.h,this.g,this.l,this.o)};g.prototype.W=function(){return this.j&&decodeURIComponent(this.j).toLowerCase()};g.prototype.ga=function(b){this.j=b?b:f};g.prototype.K=function(){return f!==this.j};g.prototype.da=function(b){this.n=b?b:f};g.prototype.X=function(){return f!==this.n};g.prototype.ea=function(b){this.k=b?b:f;this.G(this.g)};g.prototype.Y=function(){return f!==this.k};g.prototype.V=
function(){return this.h&&decodeURIComponent(this.h)};g.prototype.ca=function(b){if(b){b=Number(b);if(b!==(b&65535))throw Error("Bad port number "+b);this.h=""+b}else this.h=f};g.prototype.$=function(){return f!==this.h};g.prototype.U=function(){return this.g&&decodeURIComponent(this.g)};g.prototype.G=function(b){b?(b=""+b,this.g=!this.k||/^\//.test(b)?b:"/"+b):this.g=f};g.prototype.O=function(b){this.l=b?b:f};g.prototype.aa=function(){return f!==this.l};g.prototype.ba=function(b){if("object"===typeof b&&
!(b instanceof Array)&&(b instanceof Object||"[object Array]"!==Object.prototype.toString.call(b))){var a=[],d=-1,e;for(e in b){var c=b[e];"string"===typeof c&&(a[++d]=e,a[++d]=c)}b=a}for(var a=[],d="",f=0;f<b.length;)e=b[f++],c=b[f++],a.push(d,encodeURIComponent(e.toString())),d="\x26",c&&a.push("\x3d",encodeURIComponent(c.toString()));this.l=a.join("")};g.prototype.fa=function(b){this.o=b?b:f};g.prototype.Z=function(){return f!==this.o};var m=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
-u=/[#\/\?@]/g,t=/[\#\?]/g;g.parse=b;g.create=function(b,e,c,k,l,n,m){b=new g(a(b,u),a(e,u),"string"==typeof c?encodeURIComponent(c):f,0<k?k.toString():f,a(l,t),f,"string"==typeof m?encodeURIComponent(m):f);n&&("string"===typeof n?b.O(n.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):b.ba(n));return b};g.N=c;g.ma=e;g.ha={ua:function(a){return/\.html$/.test(b(a).U())?"text/html":"application/javascript"},N:function(a,d){return a?c(b(a),b(d)).toString():""+d}};return g}();"undefined"!==typeof window&&(window.URI=
-n);var m=a,p=a,q=a,r=a;(function(){function b(a){return"string"===typeof a?'url("'+a.replace(z,g)+'")':'url("about:blank")'}function g(b){return B[b]}function k(b,a){return b?n.ha.N(b,a):a}function t(b,a,d){if(!d)return f;var e=(""+b).match(F);return e&&(!e[1]||G.test(e[1]))?d(b,a):f}function D(b){return b.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var z=/[\n\f\r\"\'()*<>]/g,B={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
-"\x3c":"%3c","\x3e":"%3e"},F=/^(?:([^:/?# ]+):)?/,G=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function N(d,c,f,g,n){d=D(d);var m=e[d];if(!m||"object"!==typeof m)c.length=0;else{for(var u=m.cssPropBits,s=u&80,q=u&1536,p=NaN,r=0,A=0;r<c.length;++r){var E=c[r].toLowerCase(),B=E.charCodeAt(0),F,G,z,H,Q,ga;if(32===B)E="";else if(34===B)E=16===s?f?b(t(k(g,l(c[r].substring(1,E.length-1))),d,f)):"":u&8&&!(s&s-1)?E:"";else if("inherit"!==E){if(Q=m.cssLitGroup){var ca;if(!(ca=m.cssLitMap)){ca=
-{};for(var $=Q.length;0<=--$;)for(var fa=Q[$],ia=fa.length;0<=--ia;)ca[fa[ia]]=a;ca=m.cssLitMap=ca}Q=ca}else Q=a;if(!(ga=Q,ga[D(E)]===a))if(35===B&&/^#(?:[0-9a-f]{3}){1,2}$/.test(E))E=u&2?E:"";else if(48<=B&&57>=B)E=u&1?E:"";else if(F=E.charCodeAt(1),G=E.charCodeAt(2),z=48<=F&&57>=F,H=48<=G&&57>=G,43===B&&(z||46===F&&H))E=u&1?(z?"":"0")+E.substring(1):"";else if(45===B&&(z||46===F&&H))E=u&4?(z?"-":"-0")+E.substring(1):u&1?"0":"";else if(46===B&&z)E=u&1?"0"+E:"";else if('url("'===E.substring(0,5))E=
-f&&u&16?b(t(k(g,c[r].substring(5,E.length-2)),d,f)):"";else if("("===E.charAt(E.length-1))a:{Q=c;ca=r;E=1;$=ca+1;for(B=Q.length;$<B&&E;)fa=Q[$++],E+=")"===fa?-1:/^[^"']*\($/.test(fa);if(!E){E=Q[ca].toLowerCase();B=D(E);Q=Q.splice(ca,$-ca,"");ca=m.cssFns;$=0;for(fa=ca.length;$<fa;++$)if(ca[$].substring(0,B.length)==B){Q[0]=Q[Q.length-1]="";N(ca[$],Q,f,g);E=E+Q.join(" ")+")";break a}}E=""}else E=q&&/^-?[a-z_][\w\-]*$/.test(E)&&!/__$/.test(E)?n&&512===q?c[r]+n:1024===q&&e[E]&&"number"===typeof e[E].oa?
-E:"":/^\w+$/.test(E)&&64===s&&u&8?p+1===A?(c[p]=c[p].substring(0,c[p].length-1)+" "+E+'"',""):(p=A,'"'+E+'"'):""}E&&(c[A++]=E)}1===A&&'url("about:blank")'===c[0]&&(A=0);c.length=A}}}();var E=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
-H={};H["\x3e"]=H["+"]=H["~"]=H;p=function(b,a,e){function g(t,v){function s(e,f,g){var k,m,t,v,r,p=c;k="";if(e<f)if(r=b[e],"*"===r)++e,k=r;else if(/^[a-zA-Z]/.test(r)&&(m=n(r.toLowerCase(),[])))"tagName"in m&&(r=m.tagName),++e,k=r;for(v=t=m="";p&&e<f;++e)if(r=b[e],"#"===r.charAt(0))/^#_|__$|[^\w#:\-]/.test(r)?p=d:m+=r+l;else if("."===r)++e<f&&/^[0-9A-Za-z:_\-]+$/.test(r=b[e])&&!/^_|__$/.test(r)?m+="."+r:p=d;else if(e+1<f&&"["===b[e]){++e;var A=b[e++].toLowerCase();r=u.m[k+"::"+A];r!==+r&&(r=u.m["*::"+
-A]);var y;a.ia?(y=a.ia(k,A),"string"!==typeof y&&(p=d,y=A),p&&r!==+r&&(r=u.d.NONE)):(y=A,r!==+r&&(p=d));var x=A="",B=d;/^[~^$*|]?=$/.test(b[e])&&(A=b[e++],x=b[e++],/^[0-9A-Za-z:_\-]+$/.test(x)?x='"'+x+'"':"]"===x&&(x='""',--e),/^"([^\"\\]|\\.)*"$/.test(x)||(p=d),(B="i"===b[e])&&++e);"]"!==b[e]&&(++e,p=d);switch(r){case u.d.CLASSES:case u.d.LOCAL_NAME:case u.d.NONE:break;case u.d.GLOBAL_NAME:case u.d.ID:case u.d.IDREF:("\x3d"===A||"~\x3d"===A||"$\x3d"===A)&&'""'!=x&&!B?x='"'+x.substring(1,x.length-
-1)+l+'"':"|\x3d"===A||""===A||(p=d);break;case u.d.URI:case u.d.URI_FRAGMENT:""!==A&&(p=d);break;default:p=d}p&&(t+="["+y.replace(/[^\w-]/g,"\\$\x26")+A+x+(B?" i]":"]"))}else if(e<f&&":"===b[e])if(r=b[++e],E.test(r))v+=":"+r;else break;else break;e!==f&&(p=d);p&&(e=(k+m).replace(/[^ .*#\w-]/g,"\\$\x26")+t+v+g)&&q.push(e);return p}" "===b[t]&&++t;v-1!==t&&" "===b[v]&&--v;for(var q=[],r=t,p=c,A=t;p&&A<v;++A){var y=b[A];if(H[y]===H||" "===y)s(r,A,y)?r=A+1:p=d}s(r,v,"")||(p=d);return p?(q.length&&(r=
-q.join(""),k!==f&&(r="."+k+" "+r),m.push(r)),c):!e||e(b.slice(t,v))}var k=a.na,l=a.L,n=a.Aa,m=[],t=0,v,s=0,q;for(v=0;v<b.length;++v)if(q=b[v],"("==q||"["==q?(++s,c):")"==q||"]"==q?(s&&--s,c):!(" "==b[v]&&(s||H[b[v-1]]===H||H[b[v+1]]===H)))b[t++]=b[v];b.length=t;t=b.length;for(v=s=0;v<t;++v)if(","===b[v]){if(!g(s,v))return f;s=v+1}return!g(s,t)?f:m};(function(){var b=/^\w/,a=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
-"i");r=function(d){d=d.slice();for(var e=d.length,c=0,f=0;f<e;++f){var g=d[f];" "!=g&&(d[c++]=g)}d.length=c;d=d.join(" ");return!d.length?"":!a.test(d)?"not all":b.test(d)?d:"not all , "+d}})();(function(){function b(a){var d=/^\s*[']([^']*)[']\s*$/,e=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,c=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=d.exec(a))||(k=e.exec(a))||(k=c.exec(a))||(k=g.exec(a))?k[1]:f}function e(g,l,n,u,v,q,A){function E(){G=
-D.length&&D[D.length-1]===f}var B=a,F=A||[0],D=[],G=d;s(l,{startStylesheet:function(){B=[]},endStylesheet:function(){},startAtrule:function(a,d){if(G)a=f;else if("@media"===a)B.push("@media"," ",r(d));else if("@keyframes"===a||"@-webkit-keyframes"===a){var c=d[0];1===d.length&&!/__$|[^\w\-]/.test(c)?(B.push(a," ",c+n.L),a="@keyframes"):a=f}else if("@import"===a&&0<d.length)if(a=f,"function"===typeof q){var l=r(d.slice(1));if("not all"!==l){++F[0];var m=[];B.push(m);var s=t(k(g,b(d[0])),function(b){var a=
-e(s,b.qa,n,u,v,q,F);--F[0];b=l?{toString:function(){return"@media "+l+" {"+a.result+"}"}}:a.result;m[0]=b;q(b,!!F[0])},v)}}else window.console&&window.console.log("@import "+d.join(" ")+" elided");G=!a;D.push(a)},endAtrule:function(){D.pop();G||B.push(";");E()},startBlock:function(){G||B.push("{")},endBlock:function(){G||(B.push("}"),G=c)},startRuleset:function(b){if(!G){var d=a;"@keyframes"===D[D.length-1]?(d=b.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
-G=!d,d&&(d=d[0].replace(/ +/g,""))):(b=p(b,n),!b||!b.length?G=c:d=b.join(", "));G||B.push(d,"{")}D.push(f)},endRuleset:function(){D.pop();G||B.push("}");E()},declaration:function(b,a){if(!G){var e=d,f=a.length;2<=f&&"!"===a[f-2]&&"important"===a[f-1].toLowerCase()&&(e=c,a.length-=2);m(b,a,u,g,n.L);a.length&&B.push(b,":",a.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return B.join("")}},va:!!F[0]}}q=function(b,d,c,f){return e(b,d,c,f,a,a).result.toString()}})()})();"undefined"!==
-typeof window&&(window.sanitizeCssProperty=m,window.sanitizeCssSelectorList=p,window.sanitizeStylesheet=q,window.sanitizeMediaQuery=r);var s,t;(function(){function b(d,e,c,f,g){for(var k=e++;e<c&&"{"!==d[e]&&";"!==d[e];)++e;if(e<c&&(g||";"===d[e])){g=k+1;var l=e;g<c&&" "===d[g]&&++g;l>g&&" "===d[l-1]&&--l;f.startAtrule&&f.startAtrule(d[k].toLowerCase(),d.slice(g,l));e="{"===d[e]?a(d,e,c,f):e+1;f.endAtrule&&f.endAtrule()}return e}function a(c,f,g,k){++f;for(k.startBlock&&k.startBlock();f<g;){var l=
+p=/[#\/\?@]/g,t=/[\#\?]/g;g.parse=b;g.create=function(b,e,c,k,l,n,m){b=new g(a(b,p),a(e,p),"string"==typeof c?encodeURIComponent(c):f,0<k?k.toString():f,a(l,t),f,"string"==typeof m?encodeURIComponent(m):f);n&&("string"===typeof n?b.O(n.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):b.ba(n));return b};g.N=c;g.ma=e;g.ha={ua:function(a){return/\.html$/.test(b(a).U())?"text/html":"application/javascript"},N:function(a,d){return a?c(b(a),b(d)).toString():""+d}};return g}();"undefined"!==typeof window&&(window.URI=
+n);var m=a,p=a,r=a,s=a;(function(){function b(a){return"string"===typeof a?'url("'+a.replace(A,g)+'")':'url("about:blank")'}function g(b){return B[b]}function k(b,a){return b?n.ha.N(b,a):a}function t(b,a,d){if(!d)return f;var e=(""+b).match(E);return e&&(!e[1]||G.test(e[1]))?d(b,a):f}function D(b){return b.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var A=/[\n\f\r\"\'()*<>]/g,B={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
+"\x3c":"%3c","\x3e":"%3e"},E=/^(?:([^:/?# ]+):)?/,G=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function O(d,c,f,g,n){d=D(d);var m=e[d];if(!m||"object"!==typeof m)c.length=0;else{for(var p=m.cssPropBits,u=p&80,q=p&1536,r=NaN,s=0,z=0;s<c.length;++s){var F=c[s].toLowerCase(),B=F.charCodeAt(0),E,G,H,A,Q,ga;if(32===B)F="";else if(34===B)F=16===u?f?b(t(k(g,l(c[s].substring(1,F.length-1))),d,f)):"":p&8&&!(u&u-1)?F:"";else if("inherit"!==F){if(Q=m.cssLitGroup){var ca;if(!(ca=m.cssLitMap)){ca=
+{};for(var $=Q.length;0<=--$;)for(var fa=Q[$],ia=fa.length;0<=--ia;)ca[fa[ia]]=a;ca=m.cssLitMap=ca}Q=ca}else Q=a;if(!(ga=Q,ga[D(F)]===a))if(35===B&&/^#(?:[0-9a-f]{3}){1,2}$/.test(F))F=p&2?F:"";else if(48<=B&&57>=B)F=p&1?F:"";else if(E=F.charCodeAt(1),G=F.charCodeAt(2),H=48<=E&&57>=E,A=48<=G&&57>=G,43===B&&(H||46===E&&A))F=p&1?(H?"":"0")+F.substring(1):"";else if(45===B&&(H||46===E&&A))F=p&4?(H?"-":"-0")+F.substring(1):p&1?"0":"";else if(46===B&&H)F=p&1?"0"+F:"";else if('url("'===F.substring(0,5))F=
+f&&p&16?b(t(k(g,c[s].substring(5,F.length-2)),d,f)):"";else if("("===F.charAt(F.length-1))a:{Q=c;ca=s;F=1;$=ca+1;for(B=Q.length;$<B&&F;)fa=Q[$++],F+=")"===fa?-1:/^[^"']*\($/.test(fa);if(!F){F=Q[ca].toLowerCase();B=D(F);Q=Q.splice(ca,$-ca,"");ca=m.cssFns;$=0;for(fa=ca.length;$<fa;++$)if(ca[$].substring(0,B.length)==B){Q[0]=Q[Q.length-1]="";O(ca[$],Q,f,g);F=F+Q.join(" ")+")";break a}}F=""}else F=q&&/^-?[a-z_][\w\-]*$/.test(F)&&!/__$/.test(F)?n&&512===q?c[s]+n:1024===q&&e[F]&&"number"===typeof e[F].oa?
+F:"":/^\w+$/.test(F)&&64===u&&p&8?r+1===z?(c[r]=c[r].substring(0,c[r].length-1)+" "+F+'"',""):(r=z,'"'+F+'"'):""}F&&(c[z++]=F)}1===z&&'url("about:blank")'===c[0]&&(z=0);c.length=z}}}();var F=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
+H={};H["\x3e"]=H["+"]=H["~"]=H;p=function(b,a,e){function g(p,t){function q(e,f,g){var k,m,p,t,r,s=c;k="";if(e<f)if(r=b[e],"*"===r)++e,k=r;else if(/^[a-zA-Z]/.test(r)&&(m=n(r.toLowerCase(),[])))"tagName"in m&&(r=m.tagName),++e,k=r;for(t=p=m="";s&&e<f;++e)if(r=b[e],"#"===r.charAt(0))/^#_|__$|[^\w#:\-]/.test(r)?s=d:m+=r+l;else if("."===r)++e<f&&/^[0-9A-Za-z:_\-]+$/.test(r=b[e])&&!/^_|__$/.test(r)?m+="."+r:s=d;else if(e+1<f&&"["===b[e]){++e;var z=b[e++].toLowerCase();r=u.m[k+"::"+z];r!==+r&&(r=u.m["*::"+
+z]);var x;a.ia?(x=a.ia(k,z),"string"!==typeof x&&(s=d,x=z),s&&r!==+r&&(r=u.d.NONE)):(x=z,r!==+r&&(s=d));var y=z="",B=d;/^[~^$*|]?=$/.test(b[e])&&(z=b[e++],y=b[e++],/^[0-9A-Za-z:_\-]+$/.test(y)?y='"'+y+'"':"]"===y&&(y='""',--e),/^"([^\"\\]|\\.)*"$/.test(y)||(s=d),(B="i"===b[e])&&++e);"]"!==b[e]&&(++e,s=d);switch(r){case u.d.CLASSES:case u.d.LOCAL_NAME:case u.d.NONE:break;case u.d.GLOBAL_NAME:case u.d.ID:case u.d.IDREF:("\x3d"===z||"~\x3d"===z||"$\x3d"===z)&&'""'!=y&&!B?y='"'+y.substring(1,y.length-
+1)+l+'"':"|\x3d"===z||""===z||(s=d);break;case u.d.URI:case u.d.URI_FRAGMENT:""!==z&&(s=d);break;default:s=d}s&&(p+="["+x.replace(/[^\w-]/g,"\\$\x26")+z+y+(B?" i]":"]"))}else if(e<f&&":"===b[e])if(r=b[++e],F.test(r))t+=":"+r;else break;else break;e!==f&&(s=d);s&&(e=(k+m).replace(/[^ .*#\w-]/g,"\\$\x26")+p+t+g)&&v.push(e);return s}" "===b[p]&&++p;t-1!==p&&" "===b[t]&&--t;for(var v=[],r=p,s=c,z=p;s&&z<t;++z){var x=b[z];if(H[x]===H||" "===x)q(r,z,x)?r=z+1:s=d}q(r,t,"")||(s=d);return s?(v.length&&(r=
+v.join(""),k!==f&&(r="."+k+" "+r),m.push(r)),c):!e||e(b.slice(p,t))}var k=a.na,l=a.L,n=a.Aa,m=[],p=0,t,q=0,v;for(t=0;t<b.length;++t)if(v=b[t],"("==v||"["==v?(++q,c):")"==v||"]"==v?(q&&--q,c):!(" "==b[t]&&(q||H[b[t-1]]===H||H[b[t+1]]===H)))b[p++]=b[t];b.length=p;p=b.length;for(t=q=0;t<p;++t)if(","===b[t]){if(!g(q,t))return f;q=t+1}return!g(q,p)?f:m};(function(){var b=/^\w/,a=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
+"i");s=function(d){d=d.slice();for(var e=d.length,c=0,f=0;f<e;++f){var g=d[f];" "!=g&&(d[c++]=g)}d.length=c;d=d.join(" ");return!d.length?"":!a.test(d)?"not all":b.test(d)?d:"not all , "+d}})();(function(){function b(a){var d=/^\s*[']([^']*)[']\s*$/,e=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,c=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=d.exec(a))||(k=e.exec(a))||(k=c.exec(a))||(k=g.exec(a))?k[1]:f}function e(g,l,n,u,v,r,z){function F(){G=
+D.length&&D[D.length-1]===f}var B=a,E=z||[0],D=[],G=d;q(l,{startStylesheet:function(){B=[]},endStylesheet:function(){},startAtrule:function(a,d){if(G)a=f;else if("@media"===a)B.push("@media"," ",s(d));else if("@keyframes"===a||"@-webkit-keyframes"===a){var c=d[0];1===d.length&&!/__$|[^\w\-]/.test(c)?(B.push(a," ",c+n.L),a="@keyframes"):a=f}else if("@import"===a&&0<d.length)if(a=f,"function"===typeof r){var l=s(d.slice(1));if("not all"!==l){++E[0];var m=[];B.push(m);var p=t(k(g,b(d[0])),function(b){var a=
+e(p,b.qa,n,u,v,r,E);--E[0];b=l?{toString:function(){return"@media "+l+" {"+a.result+"}"}}:a.result;m[0]=b;r(b,!!E[0])},v)}}else window.console&&window.console.log("@import "+d.join(" ")+" elided");G=!a;D.push(a)},endAtrule:function(){D.pop();G||B.push(";");F()},startBlock:function(){G||B.push("{")},endBlock:function(){G||(B.push("}"),G=c)},startRuleset:function(b){if(!G){var d=a;"@keyframes"===D[D.length-1]?(d=b.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
+G=!d,d&&(d=d[0].replace(/ +/g,""))):(b=p(b,n),!b||!b.length?G=c:d=b.join(", "));G||B.push(d,"{")}D.push(f)},endRuleset:function(){D.pop();G||B.push("}");F()},declaration:function(b,a){if(!G){var e=d,f=a.length;2<=f&&"!"===a[f-2]&&"important"===a[f-1].toLowerCase()&&(e=c,a.length-=2);m(b,a,u,g,n.L);a.length&&B.push(b,":",a.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return B.join("")}},va:!!E[0]}}r=function(b,d,c,f){return e(b,d,c,f,a,a).result.toString()}})()})();"undefined"!==
+typeof window&&(window.sanitizeCssProperty=m,window.sanitizeCssSelectorList=p,window.sanitizeStylesheet=r,window.sanitizeMediaQuery=s);var q,t;(function(){function b(d,e,c,f,g){for(var k=e++;e<c&&"{"!==d[e]&&";"!==d[e];)++e;if(e<c&&(g||";"===d[e])){g=k+1;var l=e;g<c&&" "===d[g]&&++g;l>g&&" "===d[l-1]&&--l;f.startAtrule&&f.startAtrule(d[k].toLowerCase(),d.slice(g,l));e="{"===d[e]?a(d,e,c,f):e+1;f.endAtrule&&f.endAtrule()}return e}function a(c,f,g,k){++f;for(k.startBlock&&k.startBlock();f<g;){var l=
c[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?b(c,f,g,k,d):"{"===l?a(c,f,g,k):e(c,f,g,k)}k.endBlock&&k.endBlock();return f}function e(b,a,d,g){var k=a,n=f(b,a,d,c);if(0>n)return n=~n,n===k?n+1:n;var m=b[n];if("{"!==m)return n===k?n+1:n;a=n+1;n>k&&" "===b[n-1]&&--n;for(g.startRuleset&&g.startRuleset(b.slice(k,n));a<d;){m=b[a];if("}"===m){++a;break}a=" "===m?a+1:l(b,a,d,g)}g.endRuleset&&g.endRuleset();return a}function f(b,a,d,e){for(var c,g=[],k=-1;a<d;++a)if(c=b[a].charAt(0),
-"["===c||"("===c)g[++k]=c;else if("]"===c&&"["===g[k]||")"===c&&"("===g[k])--k;else if("{"===c||"}"===c||";"===c||"@"===c||":"===c&&!e)break;0<=k&&(a=~(a+1));return a}function g(b,a,d){for(;a<d&&";"!==b[a]&&"}"!==b[a];)++a;return a<d&&";"===b[a]?a+1:a}function l(b,a,e,c){var k=b[a++];if(!n.test(k))return g(b,a,e);a<e&&" "===b[a]&&++a;if(a==e||":"!==b[a])return g(b,a,e);++a;a<e&&" "===b[a]&&++a;var m=f(b,a,e,d);if(0>m)m=~m;else{for(var u=[],t=0,v=a;v<m;++v)a=b[v]," "!==a&&(u[t++]=a);if(m<e){do{a=b[m];
-if(";"===a||"}"===a)break;t=0}while(++m<e);";"===a&&++m}t&&c.declaration&&c.declaration(k.toLowerCase(),u)}return m}s=function(a,d){var f=k(a);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?b(f,g,l,d,c):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var n=/^-?[a-z]/i;t=function(b,a){for(var d=k(b),e=0,c=d.length;e<c;)e=" "!==d[e]?l(d,e,c,a):e+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=s,window.parseCssDeclarations=
+"["===c||"("===c)g[++k]=c;else if("]"===c&&"["===g[k]||")"===c&&"("===g[k])--k;else if("{"===c||"}"===c||";"===c||"@"===c||":"===c&&!e)break;0<=k&&(a=~(a+1));return a}function g(b,a,d){for(;a<d&&";"!==b[a]&&"}"!==b[a];)++a;return a<d&&";"===b[a]?a+1:a}function l(b,a,e,c){var k=b[a++];if(!n.test(k))return g(b,a,e);a<e&&" "===b[a]&&++a;if(a==e||":"!==b[a])return g(b,a,e);++a;a<e&&" "===b[a]&&++a;var m=f(b,a,e,d);if(0>m)m=~m;else{for(var p=[],t=0,u=a;u<m;++u)a=b[u]," "!==a&&(p[t++]=a);if(m<e){do{a=b[m];
+if(";"===a||"}"===a)break;t=0}while(++m<e);";"===a&&++m}t&&c.declaration&&c.declaration(k.toLowerCase(),p)}return m}q=function(a,d){var f=k(a);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?b(f,g,l,d,c):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var n=/^-?[a-z]/i;t=function(b,a){for(var d=k(b),e=0,c=d.length;e<c;)e=" "!==d[e]?l(d,e,c,a):e+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=q,window.parseCssDeclarations=
t);var u={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};u.atype=u.d;u.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,
"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::ontouchcancel":2,"*::ontouchend":2,"*::ontouchenter":2,"*::ontouchleave":2,"*::ontouchmove":2,"*::ontouchstart":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,"*::tabindex":0,"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,
"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::target":10,"audio::controls":0,"audio::loop":0,"audio::mediagroup":5,"audio::muted":0,"audio::preload":0,"audio::src":1,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,
@@ -79,32 +79,32 @@ frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",h2:"HTMLHeadingElement",h
li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement",menu:"HTMLMenuElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",nav:"HTMLElement",nobr:"HTMLElement",noembed:"HTMLElement",noframes:"HTMLElement",noscript:"HTMLElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",
s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",
time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};u.ELEMENT_DOM_INTERFACES=u.Q;u.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};u.ueffects=u.P;u.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};
-u.URIEFFECTS=u.J;u.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};u.ltypes=u.M;u.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};u.LOADERTYPES=u.I;"undefined"!==typeof window&&(window.html4=u);b=function(b){function e(b,a){var d;if(O.hasOwnProperty(a))d=O[a];else{var c=a.match(M);d=c?String.fromCharCode(parseInt(c[1],10)):(c=a.match(V))?String.fromCharCode(parseInt(c[1],
-16)):L&&K.test(a)?(L.innerHTML="\x26"+a+";",c=L.textContent,O[a]=c):"\x26"+a+";"}return d}function g(b){return b.replace(Z,e)}function k(b){return(""+b).replace(da,"\x26amp;").replace(X,"\x26lt;").replace(aa,"\x26gt;").replace(W,"\x26#34;")}function l(b){return b.replace(S,"\x26amp;$1").replace(X,"\x26lt;").replace(aa,"\x26gt;")}function m(b){var a={z:b.z||b.cdata,A:b.A||b.comment,B:b.B||b.endDoc,t:b.t||b.endTag,e:b.e||b.pcdata,F:b.F||b.rcdata,H:b.H||b.startDoc,w:b.w||b.startTag};return function(b,
-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;e<m;){var q=d[e++],p=d[e];switch(q){case "\x26":ea.test(p)?(a.e&&a.e("\x26"+p,g,$,u(a,d,e,f,g)),e++):a.e&&a.e("\x26amp;",g,$,u(a,d,e,f,g));break;case "\x3c/":if(k=
-/^([-\w:]+)[^\'\"]*/.exec(p))if(k[0].length===p.length&&"\x3e"===d[e+1])e+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,$,u(a,d,e,f,g));else{var A=d,y=e,x=a,C=g,D=$,F=f,z=r(A,y);z?(x.t&&x.t(z.name,C,D,u(x,A,y,F,C)),e=z.next):e=A.length}else a.e&&a.e("\x26lt;/",g,$,u(a,d,e,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(p))if(k[0].length===p.length&&"\x3e"===d[e+1]){e+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,$,u(a,d,e,f,g));var U=b.f[n];U&ca&&(e=s(d,{name:n,next:e,c:U},a,g,$,f))}else{var A=d,y=a,x=g,C=
-$,D=f,H=r(A,e);H?(y.w&&y.w(H.name,H.R,x,C,u(y,A,H.next,D,x)),e=H.c&ca?s(A,H,y,x,C,D):H.next):e=A.length}else a.e&&a.e("\x26lt;",g,$,u(a,d,e,f,g));break;case "\x3c!--":if(!f.C){for(l=e+1;l<m&&!("\x3e"===d[l]&&/--$/.test(d[l-1]));l++);if(l<m){if(a.A){var O=d.slice(e,l).join("");a.A(O.substr(0,O.length-2),g,$,u(a,d,l+1,f,g))}e=l+1}else f.C=c}f.C&&a.e&&a.e("\x26lt;!--",g,$,u(a,d,e,f,g));break;case "\x3c!":if(/^\w/.test(p)){if(!f.r){for(l=e+1;l<m&&"\x3e"!==d[l];l++);l<m?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;!",
-g,$,u(a,d,e,f,g))}else a.e&&a.e("\x26lt;!",g,$,u(a,d,e,f,g));break;case "\x3c?":if(!f.r){for(l=e+1;l<m&&"\x3e"!==d[l];l++);l<m?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;?",g,$,u(a,d,e,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,$,u(a,d,e,f,g));break;case "":break;default:a.e&&a.e(q,g,$,u(a,d,e,f,g))}}a.B&&a.B(g)}catch(Q){if(Q!==$)throw Q;}}function s(a,d,e,c,f,g){var k=a.length;fa.hasOwnProperty(d.name)||(fa[d.name]=RegExp("^"+d.name+"(?:[\\s\\/]|$)","i"));for(var n=fa[d.name],m=d.next,t=d.next+1;t<k&&!("\x3c/"===
-a[t-1]&&n.test(a[t]));t++);t<k&&(t-=1);k=a.slice(m,t).join("");if(d.c&b.c.CDATA)e.z&&e.z(k,c,f,u(e,a,t,g,c));else if(d.c&b.c.RCDATA)e.F&&e.F(l(k),c,f,u(e,a,t,g,c));else throw Error("bug");return t}function r(a,e){var f=/^([-\w:]+)/.exec(a[e]),k={};k.name=f[1].toLowerCase();k.c=b.f[k.name];for(var l=a[e].substr(f[0].length),n=e+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var u=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],t=d,l=[l,a[n++]];n<m;n++){if(t){if("\x3e"===
-a[n])break}else 0<=a[n].indexOf(f)&&(t=c);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var t=f[1].toLowerCase(),s;if(f[2]){s=f[3];var q=s.charCodeAt(0);if(34===q||39===q)s=s.substr(1,s.length-2);s=g(s.replace(R,""))}else s="";u.push(t,s);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=u;k.next=n+1;return k}}function q(e){function c(b,a){l||a.push(b)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,c,n){if(!l&&b.f.hasOwnProperty(d)){var m=b.f[d];if(!(m&b.c.FOLDABLE)){var u=
-e(d,c);if(u){if("object"!==typeof u)throw Error("tagPolicy did not return object (old API?)");if("attribs"in u)c=u.attribs;else throw Error("tagPolicy gave no attribs");var t;"tagName"in u?(t=u.tagName,u=b.f[t]):(t=d,u=m);if(m&b.c.OPTIONAL_ENDTAG){var s=g[g.length-1];s&&s.D===d&&(s.v!==t||d!==t)&&n.push("\x3c/",s.v,"\x3e")}m&b.c.EMPTY||g.push({D:d,v:t});n.push("\x3c",t);d=0;for(s=c.length;d<s;d+=2){var q=c[d],r=c[d+1];r!==f&&r!==a&&n.push(" ",q,'\x3d"',k(r),'"')}n.push("\x3e");m&b.c.EMPTY&&!(u&b.c.EMPTY)&&
+u.URIEFFECTS=u.J;u.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};u.ltypes=u.M;u.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};u.LOADERTYPES=u.I;"undefined"!==typeof window&&(window.html4=u);b=function(b){function e(b,a){var d;if(N.hasOwnProperty(a))d=N[a];else{var c=a.match(M);d=c?String.fromCharCode(parseInt(c[1],10)):(c=a.match(V))?String.fromCharCode(parseInt(c[1],
+16)):K&&J.test(a)?(K.innerHTML="\x26"+a+";",c=K.textContent,N[a]=c):"\x26"+a+";"}return d}function g(b){return b.replace(Z,e)}function k(b){return(""+b).replace(da,"\x26amp;").replace(X,"\x26lt;").replace(aa,"\x26gt;").replace(W,"\x26#34;")}function l(b){return b.replace(S,"\x26amp;$1").replace(X,"\x26lt;").replace(aa,"\x26gt;")}function m(b){var a={z:b.z||b.cdata,A:b.A||b.comment,B:b.B||b.endDoc,t:b.t||b.endTag,e:b.e||b.pcdata,F:b.F||b.rcdata,H:b.H||b.startDoc,w:b.w||b.startTag};return function(b,
+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 p(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;e<m;){var r=d[e++],s=d[e];switch(r){case "\x26":ea.test(s)?(a.e&&a.e("\x26"+s,g,$,p(a,d,e,f,g)),e++):a.e&&a.e("\x26amp;",g,$,p(a,d,e,f,g));break;case "\x3c/":if(k=
+/^([-\w:]+)[^\'\"]*/.exec(s))if(k[0].length===s.length&&"\x3e"===d[e+1])e+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,$,p(a,d,e,f,g));else{var z=d,x=e,y=a,C=g,E=$,D=f,A=q(z,x);A?(y.t&&y.t(A.name,C,E,p(y,z,x,D,C)),e=A.next):e=z.length}else a.e&&a.e("\x26lt;/",g,$,p(a,d,e,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(s))if(k[0].length===s.length&&"\x3e"===d[e+1]){e+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,$,p(a,d,e,f,g));var U=b.f[n];U&ca&&(e=u(d,{name:n,next:e,c:U},a,g,$,f))}else{var z=d,x=a,y=g,C=
+$,E=f,H=q(z,e);H?(x.w&&x.w(H.name,H.R,y,C,p(x,z,H.next,E,y)),e=H.c&ca?u(z,H,x,y,C,E):H.next):e=z.length}else a.e&&a.e("\x26lt;",g,$,p(a,d,e,f,g));break;case "\x3c!--":if(!f.C){for(l=e+1;l<m&&!("\x3e"===d[l]&&/--$/.test(d[l-1]));l++);if(l<m){if(a.A){var N=d.slice(e,l).join("");a.A(N.substr(0,N.length-2),g,$,p(a,d,l+1,f,g))}e=l+1}else f.C=c}f.C&&a.e&&a.e("\x26lt;!--",g,$,p(a,d,e,f,g));break;case "\x3c!":if(/^\w/.test(s)){if(!f.r){for(l=e+1;l<m&&"\x3e"!==d[l];l++);l<m?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;!",
+g,$,p(a,d,e,f,g))}else a.e&&a.e("\x26lt;!",g,$,p(a,d,e,f,g));break;case "\x3c?":if(!f.r){for(l=e+1;l<m&&"\x3e"!==d[l];l++);l<m?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;?",g,$,p(a,d,e,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,$,p(a,d,e,f,g));break;case "":break;default:a.e&&a.e(r,g,$,p(a,d,e,f,g))}}a.B&&a.B(g)}catch(Q){if(Q!==$)throw Q;}}function u(a,d,e,c,f,g){var k=a.length;fa.hasOwnProperty(d.name)||(fa[d.name]=RegExp("^"+d.name+"(?:[\\s\\/]|$)","i"));for(var n=fa[d.name],m=d.next,t=d.next+1;t<k&&!("\x3c/"===
+a[t-1]&&n.test(a[t]));t++);t<k&&(t-=1);k=a.slice(m,t).join("");if(d.c&b.c.CDATA)e.z&&e.z(k,c,f,p(e,a,t,g,c));else if(d.c&b.c.RCDATA)e.F&&e.F(l(k),c,f,p(e,a,t,g,c));else throw Error("bug");return t}function q(a,e){var f=/^([-\w:]+)/.exec(a[e]),k={};k.name=f[1].toLowerCase();k.c=b.f[k.name];for(var l=a[e].substr(f[0].length),n=e+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var p=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],t=d,l=[l,a[n++]];n<m;n++){if(t){if("\x3e"===
+a[n])break}else 0<=a[n].indexOf(f)&&(t=c);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var t=f[1].toLowerCase(),u;if(f[2]){u=f[3];var r=u.charCodeAt(0);if(34===r||39===r)u=u.substr(1,u.length-2);u=g(u.replace(R,""))}else u="";p.push(t,u);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=n+1;return k}}function r(e){function c(b,a){l||a.push(b)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,c,n){if(!l&&b.f.hasOwnProperty(d)){var m=b.f[d];if(!(m&b.c.FOLDABLE)){var p=
+e(d,c);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)c=p.attribs;else throw Error("tagPolicy gave no attribs");var t;"tagName"in p?(t=p.tagName,p=b.f[t]):(t=d,p=m);if(m&b.c.OPTIONAL_ENDTAG){var u=g[g.length-1];u&&u.D===d&&(u.v!==t||d!==t)&&n.push("\x3c/",u.v,"\x3e")}m&b.c.EMPTY||g.push({D:d,v:t});n.push("\x3c",t);d=0;for(u=c.length;d<u;d+=2){var q=c[d],r=c[d+1];r!==f&&r!==a&&n.push(" ",q,'\x3d"',k(r),'"')}n.push("\x3e");m&b.c.EMPTY&&!(p&b.c.EMPTY)&&
n.push("\x3c/",t,"\x3e")}else l=!(m&b.c.EMPTY)}}},endTag:function(a,e){if(l)l=d;else if(b.f.hasOwnProperty(a)){var c=b.f[a];if(!(c&(b.c.EMPTY|b.c.FOLDABLE))){if(c&b.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(b.f[f]&b.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;b.f[k]&b.c.OPTIONAL_ENDTAG||e.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;e.push("\x3c/",a,"\x3e")}}}},pcdata:c,rcdata:c,cdata:c,
-endDoc:function(b){for(;g.length;g.length--)b.push("\x3c/",g[g.length-1].v,"\x3e")}})}function p(b,a,d,e,c){if(!c)return f;try{var g=n.parse(""+b);if(g&&(!g.K()||ia.test(g.W()))){var k=c(g,a,d,e);return k?k.toString():f}}catch(l){}return f}function J(b,a,d,e,c){d||b(a+" removed",{S:"removed",tagName:a});if(e!==c){var f="changed";e&&!c?f="removed":!e&&c&&(f="added");b(a+"."+d+" "+f,{S:f,tagName:a,la:d,oldValue:e,newValue:c})}}function N(b,a,d){a=a+"::"+d;if(b.hasOwnProperty(a))return b[a];a="*::"+
-d;if(b.hasOwnProperty(a))return b[a]}function T(d,e,c,g,k){for(var l=0;l<e.length;l+=2){var n=e[l],m=e[l+1],u=m,t=f,s;if((s=d+"::"+n,b.m.hasOwnProperty(s))||(s="*::"+n,b.m.hasOwnProperty(s)))t=b.m[s];if(t!==f)switch(t){case b.d.NONE:break;case b.d.SCRIPT:m=f;k&&J(k,d,n,u,m);break;case b.d.STYLE:if("undefined"===typeof U){m=f;k&&J(k,d,n,u,m);break}var r=[];U(m,{declaration:function(a,d){var e=a.toLowerCase();P(e,d,c?function(a){return p(a,b.P.ja,b.M.ka,{TYPE:"CSS",CSS_PROP:e},c)}:f);d.length&&r.push(e+
-": "+d.join(" "))}});m=0<r.length?r.join(" ; "):f;k&&J(k,d,n,u,m);break;case b.d.ID:case b.d.IDREF:case b.d.IDREFS:case b.d.GLOBAL_NAME:case b.d.LOCAL_NAME:case b.d.CLASSES:m=g?g(m):m;k&&J(k,d,n,u,m);break;case b.d.URI:m=p(m,N(b.J,d,n),N(b.I,d,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:d},c);k&&J(k,d,n,u,m);break;case b.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==f&&m!==a&&(m="#"+m)):m=f;k&&J(k,d,n,u,m);break;default:m=f,k&&J(k,d,n,u,m)}else m=f,k&&J(k,d,n,u,m);e[l+1]=m}return e}
-function Y(d,e,c){return function(f,g){if(b.f[f]&b.c.UNSAFE)c&&J(c,f,a,a,a);else return{attribs:T(f,g,d,e,c)}}}function C(b,a){var d=[];q(a)(b,d);return d.join("")}var U,P;"undefined"!==typeof window&&(U=window.parseCssDeclarations,P=window.sanitizeCssProperty);var O={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},M=/^#(\d+)$/,V=/^#x([0-9A-Fa-f]+)$/,K=/^[A-Za-z][A-za-z0-9]+$/,L="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
-f,R=/\0/g,Z=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ea=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,da=/&/g,S=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,aa=/>/g,W=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ga=3==="a,b".split(/(,)/).length,ca=b.c.CDATA|b.c.RCDATA,$={},fa={},ia=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=q;ba.sa=ba.makeSaxParser=m;ba.ta=ba.makeTagPolicy=Y;ba.wa=ba.normalizeRCData=l;ba.xa=
+endDoc:function(b){for(;g.length;g.length--)b.push("\x3c/",g[g.length-1].v,"\x3e")}})}function s(b,a,d,e,c){if(!c)return f;try{var g=n.parse(""+b);if(g&&(!g.K()||ia.test(g.W()))){var k=c(g,a,d,e);return k?k.toString():f}}catch(l){}return f}function L(b,a,d,e,c){d||b(a+" removed",{S:"removed",tagName:a});if(e!==c){var f="changed";e&&!c?f="removed":!e&&c&&(f="added");b(a+"."+d+" "+f,{S:f,tagName:a,la:d,oldValue:e,newValue:c})}}function O(b,a,d){a=a+"::"+d;if(b.hasOwnProperty(a))return b[a];a="*::"+
+d;if(b.hasOwnProperty(a))return b[a]}function T(d,e,c,g,k){for(var l=0;l<e.length;l+=2){var n=e[l],m=e[l+1],p=m,t=f,u;if((u=d+"::"+n,b.m.hasOwnProperty(u))||(u="*::"+n,b.m.hasOwnProperty(u)))t=b.m[u];if(t!==f)switch(t){case b.d.NONE:break;case b.d.SCRIPT:m=f;k&&L(k,d,n,p,m);break;case b.d.STYLE:if("undefined"===typeof U){m=f;k&&L(k,d,n,p,m);break}var q=[];U(m,{declaration:function(a,d){var e=a.toLowerCase();P(e,d,c?function(a){return s(a,b.P.ja,b.M.ka,{TYPE:"CSS",CSS_PROP:e},c)}:f);d.length&&q.push(e+
+": "+d.join(" "))}});m=0<q.length?q.join(" ; "):f;k&&L(k,d,n,p,m);break;case b.d.ID:case b.d.IDREF:case b.d.IDREFS:case b.d.GLOBAL_NAME:case b.d.LOCAL_NAME:case b.d.CLASSES:m=g?g(m):m;k&&L(k,d,n,p,m);break;case b.d.URI:m=s(m,O(b.J,d,n),O(b.I,d,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:d},c);k&&L(k,d,n,p,m);break;case b.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==f&&m!==a&&(m="#"+m)):m=f;k&&L(k,d,n,p,m);break;default:m=f,k&&L(k,d,n,p,m)}else m=f,k&&L(k,d,n,p,m);e[l+1]=m}return e}
+function Y(d,e,c){return function(f,g){if(b.f[f]&b.c.UNSAFE)c&&L(c,f,a,a,a);else return{attribs:T(f,g,d,e,c)}}}function C(b,a){var d=[];r(a)(b,d);return d.join("")}var U,P;"undefined"!==typeof window&&(U=window.parseCssDeclarations,P=window.sanitizeCssProperty);var N={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},M=/^#(\d+)$/,V=/^#x([0-9A-Fa-f]+)$/,J=/^[A-Za-z][A-za-z0-9]+$/,K="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
+f,R=/\0/g,Z=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ea=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,da=/&/g,S=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,aa=/>/g,W=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ga=3==="a,b".split(/(,)/).length,ca=b.c.CDATA|b.c.RCDATA,$={},fa={},ia=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=r;ba.sa=ba.makeSaxParser=m;ba.ta=ba.makeTagPolicy=Y;ba.wa=ba.normalizeRCData=l;ba.xa=
ba.sanitize=function(b,a,d,e){return C(b,Y(a,d,e))};ba.ya=ba.sanitizeAttribs=T;ba.za=ba.sanitizeWithPolicy=C;ba.Ba=ba.unescapeEntities=g;return ba}(u);g=b.sanitize;"undefined"!==typeof window&&(window.html=b,window.html_sanitize=g)})();!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 c(f,d,b){function e(k,n){if(!d[k]){if(!f[k]){var m="function"==typeof require&&require;if(!n&&m)return m(k,!0);if(g)return g(k,!0);m=Error("Cannot find module '"+k+"'");throw m.code="MODULE_NOT_FOUND",m;}m=d[k]={exports:{}};
-f[k][0].call(m.exports,function(b){var d=f[k][1][b];return e(d?d:b)},m,m.exports,c,f,d,b)}return d[k].exports}for(var g="function"==typeof require&&require,k=0;k<b.length;k++)e(b[k]);return e}({1:[function(c,f,d){function b(d){if(!(this instanceof b))return new b(d);d=this.options=k.assign({level:r,method:t,chunkSize:16384,windowBits:15,memLevel:8,strategy:s,to:""},d||{});d.raw&&0<d.windowBits?d.windowBits=-d.windowBits:d.gzip&&0<d.windowBits&&16>d.windowBits&&(d.windowBits+=16);this.err=0;this.msg=
-"";this.ended=!1;this.chunks=[];this.strm=new m;this.strm.avail_out=0;var e=g.deflateInit2(this.strm,d.level,d.method,d.windowBits,d.memLevel,d.strategy);if(e!==q)throw Error(n[e]);if(d.header&&g.deflateSetHeader(this.strm,d.header),d.dictionary){var c;if(c="string"==typeof d.dictionary?l.string2buf(d.dictionary):"[object ArrayBuffer]"===p.call(d.dictionary)?new Uint8Array(d.dictionary):d.dictionary,e=g.deflateSetDictionary(this.strm,c),e!==q)throw Error(n[e]);this._dict_set=!0}}function e(d,e){var c=
-new b(e);if(c.push(d,!0),c.err)throw c.msg;return c.result}var g=c("./zlib/deflate"),k=c("./utils/common"),l=c("./utils/strings"),n=c("./zlib/messages"),m=c("./zlib/zstream"),p=Object.prototype.toString,q=0,r=-1,s=0,t=8;b.prototype.push=function(b,d){var e,c,f=this.strm,n=this.options.chunkSize;if(this.ended)return!1;c=d===~~d?d:!0===d?4:0;"string"==typeof b?f.input=l.string2buf(b):"[object ArrayBuffer]"===p.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 k.Buf8(n),f.next_out=0,f.avail_out=n),e=g.deflate(f,c),1!==e&&e!==q)return this.onEnd(e),this.ended=!0,!1;0!==f.avail_out&&(0!==f.avail_in||4!==c&&2!==c)||("string"===this.options.to?this.onData(l.buf2binstring(k.shrinkBuf(f.output,f.next_out))):this.onData(k.shrinkBuf(f.output,f.next_out)))}while((0<f.avail_in||0===f.avail_out)&&1!==e);return 4===c?(e=g.deflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===q):2!==c||(this.onEnd(q),f.avail_out=0,!0)};b.prototype.onData=
-function(b){this.chunks.push(b)};b.prototype.onEnd=function(b){b===q&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Deflate=b;d.deflate=e;d.deflateRaw=function(b,d){return d=d||{},d.raw=!0,e(b,d)};d.gzip=function(b,d){return d=d||{},d.gzip=!0,e(b,d)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(c,f,d){function b(d){if(!(this instanceof
+f[k][0].call(m.exports,function(b){var d=f[k][1][b];return e(d?d:b)},m,m.exports,c,f,d,b)}return d[k].exports}for(var g="function"==typeof require&&require,k=0;k<b.length;k++)e(b[k]);return e}({1:[function(c,f,d){function b(d){if(!(this instanceof b))return new b(d);d=this.options=k.assign({level:s,method:t,chunkSize:16384,windowBits:15,memLevel:8,strategy:q,to:""},d||{});d.raw&&0<d.windowBits?d.windowBits=-d.windowBits:d.gzip&&0<d.windowBits&&16>d.windowBits&&(d.windowBits+=16);this.err=0;this.msg=
+"";this.ended=!1;this.chunks=[];this.strm=new m;this.strm.avail_out=0;var e=g.deflateInit2(this.strm,d.level,d.method,d.windowBits,d.memLevel,d.strategy);if(e!==r)throw Error(n[e]);if(d.header&&g.deflateSetHeader(this.strm,d.header),d.dictionary){var c;if(c="string"==typeof d.dictionary?l.string2buf(d.dictionary):"[object ArrayBuffer]"===p.call(d.dictionary)?new Uint8Array(d.dictionary):d.dictionary,e=g.deflateSetDictionary(this.strm,c),e!==r)throw Error(n[e]);this._dict_set=!0}}function e(d,e){var c=
+new b(e);if(c.push(d,!0),c.err)throw c.msg;return c.result}var g=c("./zlib/deflate"),k=c("./utils/common"),l=c("./utils/strings"),n=c("./zlib/messages"),m=c("./zlib/zstream"),p=Object.prototype.toString,r=0,s=-1,q=0,t=8;b.prototype.push=function(b,d){var e,c,f=this.strm,n=this.options.chunkSize;if(this.ended)return!1;c=d===~~d?d:!0===d?4:0;"string"==typeof b?f.input=l.string2buf(b):"[object ArrayBuffer]"===p.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 k.Buf8(n),f.next_out=0,f.avail_out=n),e=g.deflate(f,c),1!==e&&e!==r)return this.onEnd(e),this.ended=!0,!1;0!==f.avail_out&&(0!==f.avail_in||4!==c&&2!==c)||("string"===this.options.to?this.onData(l.buf2binstring(k.shrinkBuf(f.output,f.next_out))):this.onData(k.shrinkBuf(f.output,f.next_out)))}while((0<f.avail_in||0===f.avail_out)&&1!==e);return 4===c?(e=g.deflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===r):2!==c||(this.onEnd(r),f.avail_out=0,!0)};b.prototype.onData=
+function(b){this.chunks.push(b)};b.prototype.onEnd=function(b){b===r&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Deflate=b;d.deflate=e;d.deflateRaw=function(b,d){return d=d||{},d.raw=!0,e(b,d)};d.gzip=function(b,d){return d=d||{},d.gzip=!0,e(b,d)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(c,f,d){function b(d){if(!(this instanceof
b))return new b(d);var e=this.options=k.assign({chunkSize:16384,windowBits:0,to:""},d||{});e.raw&&0<=e.windowBits&&16>e.windowBits&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15));!(0<=e.windowBits&&16>e.windowBits)||d&&d.windowBits||(e.windowBits+=32);15<e.windowBits&&48>e.windowBits&&0===(15&e.windowBits)&&(e.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new p;this.strm.avail_out=0;d=g.inflateInit2(this.strm,e.windowBits);if(d!==n.Z_OK)throw Error(m[d]);
-this.header=new q;g.inflateGetHeader(this.strm,this.header)}function e(d,e){var c=new b(e);if(c.push(d,!0),c.err)throw c.msg;return c.result}var g=c("./zlib/inflate"),k=c("./utils/common"),l=c("./utils/strings"),n=c("./zlib/constants"),m=c("./zlib/messages"),p=c("./zlib/zstream"),q=c("./zlib/gzheader"),r=Object.prototype.toString;b.prototype.push=function(b,d){var e,c,f,m,q,p,z=this.strm,B=this.options.chunkSize,F=this.options.dictionary,G=!1;if(this.ended)return!1;c=d===~~d?d:!0===d?n.Z_FINISH:n.Z_NO_FLUSH;
-"string"==typeof b?z.input=l.binstring2buf(b):"[object ArrayBuffer]"===r.call(b)?z.input=new Uint8Array(b):z.input=b;z.next_in=0;z.avail_in=z.input.length;do{if(0===z.avail_out&&(z.output=new k.Buf8(B),z.next_out=0,z.avail_out=B),e=g.inflate(z,n.Z_NO_FLUSH),e===n.Z_NEED_DICT&&F&&(p="string"==typeof F?l.string2buf(F):"[object ArrayBuffer]"===r.call(F)?new Uint8Array(F):F,e=g.inflateSetDictionary(this.strm,p)),e===n.Z_BUF_ERROR&&!0===G&&(e=n.Z_OK,G=!1),e!==n.Z_STREAM_END&&e!==n.Z_OK)return this.onEnd(e),
-this.ended=!0,!1;z.next_out&&(0!==z.avail_out&&e!==n.Z_STREAM_END&&(0!==z.avail_in||c!==n.Z_FINISH&&c!==n.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(z.output,z.next_out),m=z.next_out-f,q=l.buf2string(z.output,f),z.next_out=m,z.avail_out=B-m,m&&k.arraySet(z.output,z.output,f,m,0),this.onData(q)):this.onData(k.shrinkBuf(z.output,z.next_out))));0===z.avail_in&&0===z.avail_out&&(G=!0)}while((0<z.avail_in||0===z.avail_out)&&e!==n.Z_STREAM_END);return e===n.Z_STREAM_END&&(c=n.Z_FINISH),
-c===n.Z_FINISH?(e=g.inflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===n.Z_OK):c!==n.Z_SYNC_FLUSH||(this.onEnd(n.Z_OK),z.avail_out=0,!0)};b.prototype.onData=function(b){this.chunks.push(b)};b.prototype.onEnd=function(b){b===n.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=b;d.inflate=e;d.inflateRaw=function(b,d){return d=d||{},d.raw=!0,e(b,d)};d.ungzip=e},{"./utils/common":3,
+this.header=new r;g.inflateGetHeader(this.strm,this.header)}function e(d,e){var c=new b(e);if(c.push(d,!0),c.err)throw c.msg;return c.result}var g=c("./zlib/inflate"),k=c("./utils/common"),l=c("./utils/strings"),n=c("./zlib/constants"),m=c("./zlib/messages"),p=c("./zlib/zstream"),r=c("./zlib/gzheader"),s=Object.prototype.toString;b.prototype.push=function(b,d){var e,c,f,m,p,r,A=this.strm,B=this.options.chunkSize,E=this.options.dictionary,G=!1;if(this.ended)return!1;c=d===~~d?d:!0===d?n.Z_FINISH:n.Z_NO_FLUSH;
+"string"==typeof b?A.input=l.binstring2buf(b):"[object ArrayBuffer]"===s.call(b)?A.input=new Uint8Array(b):A.input=b;A.next_in=0;A.avail_in=A.input.length;do{if(0===A.avail_out&&(A.output=new k.Buf8(B),A.next_out=0,A.avail_out=B),e=g.inflate(A,n.Z_NO_FLUSH),e===n.Z_NEED_DICT&&E&&(r="string"==typeof E?l.string2buf(E):"[object ArrayBuffer]"===s.call(E)?new Uint8Array(E):E,e=g.inflateSetDictionary(this.strm,r)),e===n.Z_BUF_ERROR&&!0===G&&(e=n.Z_OK,G=!1),e!==n.Z_STREAM_END&&e!==n.Z_OK)return this.onEnd(e),
+this.ended=!0,!1;A.next_out&&(0!==A.avail_out&&e!==n.Z_STREAM_END&&(0!==A.avail_in||c!==n.Z_FINISH&&c!==n.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(A.output,A.next_out),m=A.next_out-f,p=l.buf2string(A.output,f),A.next_out=m,A.avail_out=B-m,m&&k.arraySet(A.output,A.output,f,m,0),this.onData(p)):this.onData(k.shrinkBuf(A.output,A.next_out))));0===A.avail_in&&0===A.avail_out&&(G=!0)}while((0<A.avail_in||0===A.avail_out)&&e!==n.Z_STREAM_END);return e===n.Z_STREAM_END&&(c=n.Z_FINISH),
+c===n.Z_FINISH?(e=g.inflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===n.Z_OK):c!==n.Z_SYNC_FLUSH||(this.onEnd(n.Z_OK),A.avail_out=0,!0)};b.prototype.onData=function(b){this.chunks.push(b)};b.prototype.onEnd=function(b){b===n.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=b;d.inflate=e;d.inflateRaw=function(b,d){return d=d||{},d.raw=!0,e(b,d)};d.ungzip=e},{"./utils/common":3,
"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(c,f,d){c="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;d.assign=function(b){for(var d=Array.prototype.slice.call(arguments,1);d.length;){var e=d.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(var c in e)e.hasOwnProperty(c)&&(b[c]=e[c])}}return b};d.shrinkBuf=function(b,d){return b.length===
d?b:b.subarray?b.subarray(0,d):(b.length=d,b)};var b={arraySet:function(b,d,e,c,f){if(d.subarray&&b.subarray)return void b.set(d.subarray(e,e+c),f);for(var p=0;p<c;p++)b[f+p]=d[e+p]},flattenChunks:function(b){var d,e,c,f,p;d=c=0;for(e=b.length;d<e;d++)c+=b[d].length;p=new Uint8Array(c);d=c=0;for(e=b.length;d<e;d++)f=b[d],p.set(f,c),c+=f.length;return p}},e={arraySet:function(b,d,e,c,f){for(var p=0;p<c;p++)b[f+p]=d[e+p]},flattenChunks:function(b){return[].concat.apply([],b)}};d.setTyped=function(c){c?
(d.Buf8=Uint8Array,d.Buf16=Uint16Array,d.Buf32=Int32Array,d.assign(d,b)):(d.Buf8=Array,d.Buf16=Array,d.Buf32=Array,d.assign(d,e))};d.setTyped(c)},{}],4:[function(c,f,d){function b(b,d){if(65537>d&&(b.subarray&&k||!b.subarray&&g))return String.fromCharCode.apply(null,e.shrinkBuf(b,d));for(var c="",f=0;f<d;f++)c+=String.fromCharCode(b[f]);return c}var e=c("./common"),g=!0,k=!0;try{String.fromCharCode.apply(null,[0])}catch(l){g=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(n){k=!1}var m=
@@ -112,80 +112,80 @@ new e.Buf8(256);for(c=0;256>c;c++)m[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=
c?(d[k++]=192|c>>>6,d[k++]=128|63&c):65536>c?(d[k++]=224|c>>>12,d[k++]=128|c>>>6&63,d[k++]=128|63&c):(d[k++]=240|c>>>18,d[k++]=128|c>>>12&63,d[k++]=128|c>>>6&63,d[k++]=128|63&c);return d};d.buf2binstring=function(d){return b(d,d.length)};d.binstring2buf=function(b){for(var d=new e.Buf8(b.length),c=0,f=d.length;c<f;c++)d[c]=b.charCodeAt(c);return d};d.buf2string=function(d,e){var c,f,g,k,l=e||d.length,n=Array(2*l);for(c=f=0;c<l;)if(g=d[c++],128>g)n[f++]=g;else if(k=m[g],4<k)n[f++]=65533,c+=k-1;else{for(g&=
2===k?31:3===k?15:7;1<k&&c<l;)g=g<<6|63&d[c++],k--;1<k?n[f++]=65533:65536>g?n[f++]=g:(g-=65536,n[f++]=55296|g>>10&1023,n[f++]=56320|1023&g)}return b(n,f)};d.utf8border=function(b,d){var e;d=d||b.length;d>b.length&&(d=b.length);for(e=d-1;0<=e&&128===(192&b[e]);)e--;return 0>e?d:0===e?d:e+m[b[e]]>d?e:d}},{"./common":3}],5:[function(c,f,d){f.exports=function(b,d,c,f){var l=65535&b|0;b=b>>>16&65535|0;for(var n=0;0!==c;){n=2E3<c?2E3:c;c-=n;do l=l+d[f++]|0,b=b+l|0;while(--n);l%=65521;b%=65521}return l|
b<<16|0}},{}],6:[function(c,f,d){f.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(c,f,d){var b=function(){for(var b,d=[],c=0;256>c;c++){b=c;
-for(var f=0;8>f;f++)b=1&b?3988292384^b>>>1:b>>>1;d[c]=b}return d}();f.exports=function(d,c,f,l){f=l+f;for(d^=-1;l<f;l++)d=d>>>8^b[255&(d^c[l])];return d^-1}},{}],8:[function(c,f,d){function b(b,d){return b.msg=F[d],d}function e(b){for(var d=b.length;0<=--d;)b[d]=0}function g(b){var d=b.state,e=d.pending;e>b.avail_out&&(e=b.avail_out);0!==e&&(x.arraySet(b.output,d.pending_buf,d.pending_out,e,b.next_out),b.next_out+=e,d.pending_out+=e,b.total_out+=e,b.avail_out-=e,d.pending-=e,0===d.pending&&(d.pending_out=
-0))}function k(b,d){D._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,d);b.block_start=b.strstart;g(b.strm)}function l(b,d){b.pending_buf[b.pending++]=d}function n(b,d){b.pending_buf[b.pending++]=d>>>8&255;b.pending_buf[b.pending++]=255&d}function m(b,d){var e,c,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-Z?b.strstart-(b.w_size-Z):0,m=b.window,u=b.w_mask,t=b.prev,s=b.strstart+R,q=m[g+k-1],v=m[g+k];b.prev_length>=b.good_match&&
-(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(e=d,m[e+k]===v&&m[e+k-1]===q&&m[e]===m[g]&&m[++e]===m[g+1]){g+=2;e++;do;while(m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&g<s);if(c=R-(s-g),g=s-R,c>k){if(b.match_start=d,k=c,c>=l)break;q=m[g+k-1];v=m[g+k]}}while((d=t[d&u])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var d,e,c,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
-g+(g-Z)){x.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;d=e=b.hash_size;do c=b.head[--d],b.head[d]=c>=g?c-g:0;while(--e);d=e=g;do c=b.prev[--d],b.prev[d]=c>=g?c-g:0;while(--e);f+=g}if(0===b.strm.avail_in)break;d=b.strm;c=b.window;var k=b.strstart+b.lookahead,l=d.avail_in;if(e=(l>f&&(l=f),0===l?0:(d.avail_in-=l,x.arraySet(c,d.input,d.next_in,l,k),1===d.state.wrap?d.adler=z(d.adler,c,l,k):2===d.state.wrap&&(d.adler=B(d.adler,c,l,k)),d.next_in+=l,d.total_in+=l,l)),
-b.lookahead+=e,b.lookahead+b.insert>=L){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+L-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<L)););}}while(b.lookahead<Z&&0!==b.strm.avail_in)}function q(b,d){for(var e,c;;){if(b.lookahead<Z){if(p(b),b.lookahead<Z&&d===G)return S;if(0===b.lookahead)break}if(e=0,b.lookahead>=L&&(b.ins_h=(b.ins_h<<
-b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==e&&b.strstart-e<=b.w_size-Z&&(b.match_length=m(b,e)),b.match_length>=L)if(c=D._tr_tally(b,b.strstart-b.match_start,b.match_length-L),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=L){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
-b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else c=D._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(c&&(k(b,!1),0===b.strm.avail_out))return S}return b.insert=b.strstart<L-1?b.strstart:L-1,d===E?(k(b,!0),0===b.strm.avail_out?aa:W):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?S:X}function r(b,d){for(var e,c,f;;){if(b.lookahead<Z){if(p(b),
-b.lookahead<Z&&d===G)return S;if(0===b.lookahead)break}if(e=0,b.lookahead>=L&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=L-1,0!==e&&b.prev_length<b.max_lazy_match&&b.strstart-e<=b.w_size-Z&&(b.match_length=m(b,e),5>=b.match_length&&(b.strategy===N||b.match_length===L&&4096<b.strstart-b.match_start)&&(b.match_length=L-1)),b.prev_length>=
-L&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-L;c=D._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-L);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=L-1,b.strstart++,c&&(k(b,!1),0===b.strm.avail_out))return S}else if(b.match_available){if(c=D._tr_tally(b,0,
-b.window[b.strstart-1]),c&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return S}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(D._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<L-1?b.strstart:L-1,d===E?(k(b,!0),0===b.strm.avail_out?aa:W):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?S:X}function s(b,d,e,c,f){this.good_length=b;this.max_lazy=d;this.nice_length=e;this.max_chain=c;this.func=f}function t(){this.strm=null;this.status=
+for(var f=0;8>f;f++)b=1&b?3988292384^b>>>1:b>>>1;d[c]=b}return d}();f.exports=function(d,c,f,l){f=l+f;for(d^=-1;l<f;l++)d=d>>>8^b[255&(d^c[l])];return d^-1}},{}],8:[function(c,f,d){function b(b,d){return b.msg=E[d],d}function e(b){for(var d=b.length;0<=--d;)b[d]=0}function g(b){var d=b.state,e=d.pending;e>b.avail_out&&(e=b.avail_out);0!==e&&(x.arraySet(b.output,d.pending_buf,d.pending_out,e,b.next_out),b.next_out+=e,d.pending_out+=e,b.total_out+=e,b.avail_out-=e,d.pending-=e,0===d.pending&&(d.pending_out=
+0))}function k(b,d){D._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,d);b.block_start=b.strstart;g(b.strm)}function l(b,d){b.pending_buf[b.pending++]=d}function n(b,d){b.pending_buf[b.pending++]=d>>>8&255;b.pending_buf[b.pending++]=255&d}function m(b,d){var e,c,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-Z?b.strstart-(b.w_size-Z):0,m=b.window,p=b.w_mask,t=b.prev,u=b.strstart+R,q=m[g+k-1],r=m[g+k];b.prev_length>=b.good_match&&
+(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(e=d,m[e+k]===r&&m[e+k-1]===q&&m[e]===m[g]&&m[++e]===m[g+1]){g+=2;e++;do;while(m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&m[++g]===m[++e]&&g<u);if(c=R-(u-g),g=u-R,c>k){if(b.match_start=d,k=c,c>=l)break;q=m[g+k-1];r=m[g+k]}}while((d=t[d&p])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var d,e,c,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
+g+(g-Z)){x.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;d=e=b.hash_size;do c=b.head[--d],b.head[d]=c>=g?c-g:0;while(--e);d=e=g;do c=b.prev[--d],b.prev[d]=c>=g?c-g:0;while(--e);f+=g}if(0===b.strm.avail_in)break;d=b.strm;c=b.window;var k=b.strstart+b.lookahead,l=d.avail_in;if(e=(l>f&&(l=f),0===l?0:(d.avail_in-=l,x.arraySet(c,d.input,d.next_in,l,k),1===d.state.wrap?d.adler=A(d.adler,c,l,k):2===d.state.wrap&&(d.adler=B(d.adler,c,l,k)),d.next_in+=l,d.total_in+=l,l)),
+b.lookahead+=e,b.lookahead+b.insert>=K){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+K-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<K)););}}while(b.lookahead<Z&&0!==b.strm.avail_in)}function r(b,d){for(var e,c;;){if(b.lookahead<Z){if(p(b),b.lookahead<Z&&d===G)return S;if(0===b.lookahead)break}if(e=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<
+b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==e&&b.strstart-e<=b.w_size-Z&&(b.match_length=m(b,e)),b.match_length>=K)if(c=D._tr_tally(b,b.strstart-b.match_start,b.match_length-K),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=K){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
+b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else c=D._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(c&&(k(b,!1),0===b.strm.avail_out))return S}return b.insert=b.strstart<K-1?b.strstart:K-1,d===F?(k(b,!0),0===b.strm.avail_out?aa:W):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?S:X}function s(b,d){for(var e,c,f;;){if(b.lookahead<Z){if(p(b),
+b.lookahead<Z&&d===G)return S;if(0===b.lookahead)break}if(e=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=K-1,0!==e&&b.prev_length<b.max_lazy_match&&b.strstart-e<=b.w_size-Z&&(b.match_length=m(b,e),5>=b.match_length&&(b.strategy===O||b.match_length===K&&4096<b.strstart-b.match_start)&&(b.match_length=K-1)),b.prev_length>=
+K&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-K;c=D._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-K);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=K-1,b.strstart++,c&&(k(b,!1),0===b.strm.avail_out))return S}else if(b.match_available){if(c=D._tr_tally(b,0,
+b.window[b.strstart-1]),c&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return S}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(D._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<K-1?b.strstart:K-1,d===F?(k(b,!0),0===b.strm.avail_out?aa:W):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?S:X}function q(b,d,e,c,f){this.good_length=b;this.max_lazy=d;this.nice_length=e;this.max_chain=c;this.func=f}function t(){this.strm=null;this.status=
0;this.pending_buf=null;this.wrap=this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=C;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=
-this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*V);this.dyn_dtree=new x.Buf16(2*(2*O+1));this.bl_tree=new x.Buf16(2*(2*M+1));e(this.dyn_ltree);e(this.dyn_dtree);e(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(K+1);this.heap=new x.Buf16(2*P+1);e(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*P+1);e(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
+this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*V);this.dyn_dtree=new x.Buf16(2*(2*N+1));this.bl_tree=new x.Buf16(2*(2*M+1));e(this.dyn_ltree);e(this.dyn_dtree);e(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(J+1);this.heap=new x.Buf16(2*P+1);e(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*P+1);e(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
this.lit_bufsize=this.l_buf=0}function u(d){var e;return d&&d.state?(d.total_in=d.total_out=0,d.data_type=Y,e=d.state,e.pending=0,e.pending_out=0,0>e.wrap&&(e.wrap=-e.wrap),e.status=e.wrap?ea:da,d.adler=2===e.wrap?0:1,e.last_flush=G,D._tr_init(e),H):b(d,I)}function v(b){var d=u(b);d===H&&(b=b.state,b.window_size=2*b.w_size,e(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=L-1,b.match_available=0,b.ins_h=0);return d}function A(d,e,c,f,g,k){if(!d)return I;var l=1;if(e===J&&(e=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>U||c!==C||8>f||15<f||0>e||9<e||0>k||k>T)return b(d,I);8===f&&(f=9);var n=new t;return d.state=n,n.strm=d,n.wrap=l,n.gzhead=null,n.w_bits=f,n.w_size=1<<n.w_bits,n.w_mask=n.w_size-1,n.hash_bits=g+7,n.hash_size=1<<n.hash_bits,n.hash_mask=n.hash_size-1,n.hash_shift=~~((n.hash_bits+L-1)/L),n.window=new x.Buf8(2*
-n.w_size),n.head=new x.Buf16(n.hash_size),n.prev=new x.Buf16(n.w_size),n.lit_bufsize=1<<g+6,n.pending_buf_size=4*n.lit_bufsize,n.pending_buf=new x.Buf8(n.pending_buf_size),n.d_buf=1*n.lit_bufsize,n.l_buf=3*n.lit_bufsize,n.level=e,n.strategy=k,n.method=c,v(d)}var y,x=c("../utils/common"),D=c("./trees"),z=c("./adler32"),B=c("./crc32"),F=c("./messages"),G=0,E=4,H=0,I=-2,J=-1,N=1,T=4,Y=2,C=8,U=9,P=286,O=30,M=19,V=2*P+1,K=15,L=3,R=258,Z=R+L+1,ea=42,da=113,S=1,X=2,aa=3,W=4;y=[new s(0,0,0,0,function(b,d){var e=
-65535;for(e>b.pending_buf_size-5&&(e=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&d===G)return S;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var c=b.block_start+e;if((0===b.strstart||b.strstart>=c)&&(b.lookahead=b.strstart-c,b.strstart=c,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-Z&&(k(b,!1),0===b.strm.avail_out))return S}return b.insert=0,d===E?(k(b,!0),0===b.strm.avail_out?aa:W):(b.strstart>b.block_start&&k(b,!1),S)}),new s(4,4,8,
-4,q),new s(4,5,16,8,q),new s(4,6,32,32,q),new s(4,4,16,16,r),new s(8,16,32,32,r),new s(8,16,128,128,r),new s(8,32,128,256,r),new s(32,128,258,1024,r),new s(32,258,258,4096,r)];d.deflateInit=function(b,d){return A(b,d,C,15,8,0)};d.deflateInit2=A;d.deflateReset=v;d.deflateResetKeep=u;d.deflateSetHeader=function(b,d){return b&&b.state?2!==b.state.wrap?I:(b.state.gzhead=d,H):I};d.deflate=function(d,c){var f,m,u,t;if(!d||!d.state||5<c||0>c)return d?b(d,I):I;if(m=d.state,!d.output||!d.input&&0!==d.avail_in||
-666===m.status&&c!==E)return b(d,0===d.avail_out?-5:I);if(m.strm=d,f=m.last_flush,m.last_flush=c,m.status===ea)2===m.wrap?(d.adler=0,l(m,31),l(m,139),l(m,8),m.gzhead?(l(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)),l(m,255&m.gzhead.time),l(m,m.gzhead.time>>8&255),l(m,m.gzhead.time>>16&255),l(m,m.gzhead.time>>24&255),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(l(m,255&m.gzhead.extra.length),
-l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(d.adler=B(d.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=da)):(u=C+(m.w_bits-8<<4)<<8,t=-1,t=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,u|=t<<6,0!==m.strstart&&(u|=32),m.status=da,n(m,u+(31-u%31)),0!==m.strstart&&(n(m,d.adler>>>16),n(m,65535&d.adler)),d.adler=1);if(69===m.status)if(m.gzhead.extra){for(u=m.pending;m.gzindex<
-(65535&m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>u&&(d.adler=B(d.adler,m.pending_buf,m.pending-u,u)),g(d),u=m.pending,m.pending!==m.pending_buf_size));)l(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>u&&(d.adler=B(d.adler,m.pending_buf,m.pending-u,u));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){u=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>
-u&&(d.adler=B(d.adler,m.pending_buf,m.pending-u,u)),g(d),u=m.pending,m.pending===m.pending_buf_size)){t=1;break}t=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,t)}while(0!==t);m.gzhead.hcrc&&m.pending>u&&(d.adler=B(d.adler,m.pending_buf,m.pending-u,u));0===t&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){u=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>u&&(d.adler=B(d.adler,m.pending_buf,m.pending-u,u)),
-g(d),u=m.pending,m.pending===m.pending_buf_size)){t=1;break}t=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,t)}while(0!==t);m.gzhead.hcrc&&m.pending>u&&(d.adler=B(d.adler,m.pending_buf,m.pending-u,u));0===t&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(d),m.pending+2<=m.pending_buf_size&&(l(m,255&d.adler),l(m,d.adler>>8&255),d.adler=0,m.status=da)):m.status=da),0!==m.pending){if(g(d),0===d.avail_out)return m.last_flush=
--1,H}else if(0===d.avail_in&&(c<<1)-(4<c?9:0)<=(f<<1)-(4<f?9:0)&&c!==E)return b(d,-5);if(666===m.status&&0!==d.avail_in)return b(d,-5);if(0!==d.avail_in||0!==m.lookahead||c!==G&&666!==m.status){var s;if(2===m.strategy)a:{for(var q;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===G){s=S;break a}break}if(m.match_length=0,q=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,q&&(k(m,!1),0===m.strm.avail_out)){s=S;break a}}s=(m.insert=0,c===E?(k(m,!0),0===m.strm.avail_out?aa:W):m.last_lit&&
-(k(m,!1),0===m.strm.avail_out)?S:X)}else if(3===m.strategy)a:{var v,r;for(q=m.window;;){if(m.lookahead<=R){if(p(m),m.lookahead<=R&&c===G){s=S;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=L&&0<m.strstart&&(r=m.strstart-1,v=q[r],v===q[++r]&&v===q[++r]&&v===q[++r])){f=m.strstart+R;do;while(v===q[++r]&&v===q[++r]&&v===q[++r]&&v===q[++r]&&v===q[++r]&&v===q[++r]&&v===q[++r]&&v===q[++r]&&r<f);m.match_length=R-(f-r);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
-L?(s=D._tr_tally(m,1,m.match_length-L),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(s=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),s&&(k(m,!1),0===m.strm.avail_out)){s=S;break a}}s=(m.insert=0,c===E?(k(m,!0),0===m.strm.avail_out?aa:W):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?S:X)}else s=y[m.level].func(m,c);if(s!==aa&&s!==W||(m.status=666),s===S||s===aa)return 0===d.avail_out&&(m.last_flush=-1),H;if(s===X&&(1===c?D._tr_align(m):5!==c&&(D._tr_stored_block(m,
-0,0,!1),3===c&&(e(m.head),0===m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(d),0===d.avail_out))return m.last_flush=-1,H}return c!==E?H:0>=m.wrap?1:(2===m.wrap?(l(m,255&d.adler),l(m,d.adler>>8&255),l(m,d.adler>>16&255),l(m,d.adler>>24&255),l(m,255&d.total_in),l(m,d.total_in>>8&255),l(m,d.total_in>>16&255),l(m,d.total_in>>24&255)):(n(m,d.adler>>>16),n(m,65535&d.adler)),g(d),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?H:1)};d.deflateEnd=function(d){var e;return d&&d.state?(e=d.state.status,
-e!==ea&&69!==e&&73!==e&&91!==e&&103!==e&&e!==da&&666!==e?b(d,I):(d.state=null,e===da?b(d,-3):H)):I};d.deflateSetDictionary=function(b,d){var c,f,g,k,l,n,m;f=d.length;if(!b||!b.state||(c=b.state,k=c.wrap,2===k||1===k&&c.status!==ea||c.lookahead))return I;1===k&&(b.adler=z(b.adler,d,f,0));c.wrap=0;f>=c.w_size&&(0===k&&(e(c.head),c.strstart=0,c.block_start=0,c.insert=0),l=new x.Buf8(c.w_size),x.arraySet(l,d,f-c.w_size,c.w_size,0),d=l,f=c.w_size);l=b.avail_in;n=b.next_in;m=b.input;b.avail_in=f;b.next_in=
-0;b.input=d;for(p(c);c.lookahead>=L;){f=c.strstart;g=c.lookahead-(L-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[f+L-1])&c.hash_mask,c.prev[f&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=f,f++;while(--g);c.strstart=f;c.lookahead=L-1;p(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=L-1,c.match_available=0,b.next_in=n,b.input=m,b.avail_in=l,c.wrap=k,H};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
-"./crc32":7,"./messages":13,"./trees":14}],9:[function(c,f,d){f.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(c,f,d){f.exports=function(b,d){var c,f,l,n,m,p,q,r,s,t,u,v,A,y,x,D,z,B,F,G,E,H,I,J;c=b.state;f=b.next_in;I=b.input;l=f+(b.avail_in-5);n=b.next_out;J=b.output;m=n-(d-b.avail_out);p=n+(b.avail_out-257);q=c.dmax;r=c.wsize;s=c.whave;t=c.wnext;u=c.window;v=c.hold;A=c.bits;y=c.lencode;
-x=c.distcode;D=(1<<c.lenbits)-1;z=(1<<c.distbits)-1;a:do{15>A&&(v+=I[f++]<<A,A+=8,v+=I[f++]<<A,A+=8);B=y[v&D];b:for(;;){if(F=B>>>24,v>>>=F,A-=F,F=B>>>16&255,0===F)J[n++]=65535&B;else{if(!(16&F)){if(0===(64&F)){B=y[(65535&B)+(v&(1<<F)-1)];continue b}if(32&F){c.mode=12;break a}b.msg="invalid literal/length code";c.mode=30;break a}G=65535&B;(F&=15)&&(A<F&&(v+=I[f++]<<A,A+=8),G+=v&(1<<F)-1,v>>>=F,A-=F);15>A&&(v+=I[f++]<<A,A+=8,v+=I[f++]<<A,A+=8);B=x[v&z];c:for(;;){if(F=B>>>24,v>>>=F,A-=F,F=B>>>16&255,
-!(16&F)){if(0===(64&F)){B=x[(65535&B)+(v&(1<<F)-1)];continue c}b.msg="invalid distance code";c.mode=30;break a}if(E=65535&B,F&=15,A<F&&(v+=I[f++]<<A,A+=8,A<F&&(v+=I[f++]<<A,A+=8)),E+=v&(1<<F)-1,E>q){b.msg="invalid distance too far back";c.mode=30;break a}if(v>>>=F,A-=F,F=n-m,E>F){if(F=E-F,F>s&&c.sane){b.msg="invalid distance too far back";c.mode=30;break a}if(B=0,H=u,0===t){if(B+=r-F,F<G){G-=F;do J[n++]=u[B++];while(--F);B=n-E;H=J}}else if(t<F){if(B+=r+t-F,F-=t,F<G){G-=F;do J[n++]=u[B++];while(--F);
-if(B=0,t<G){F=t;G-=F;do J[n++]=u[B++];while(--F);B=n-E;H=J}}}else if(B+=t-F,F<G){G-=F;do J[n++]=u[B++];while(--F);B=n-E;H=J}for(;2<G;)J[n++]=H[B++],J[n++]=H[B++],J[n++]=H[B++],G-=3;G&&(J[n++]=H[B++],1<G&&(J[n++]=H[B++]))}else{B=n-E;do J[n++]=J[B++],J[n++]=J[B++],J[n++]=J[B++],G-=3;while(2<G);G&&(J[n++]=J[B++],1<G&&(J[n++]=J[B++]))}break}}break}}while(f<l&&n<p);G=A>>3;f-=G;A-=G<<3;b.next_in=f;b.next_out=n;b.avail_in=f<l?5+(l-f):5-(f-l);b.avail_out=n<p?257+(p-n):257-(n-p);c.hold=v&(1<<A)-1;c.bits=A}},
-{}],11:[function(c,f,d){function b(b){return(b>>>24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function e(){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 d;return b&&b.state?(d=b.state,b.total_in=b.total_out=d.total=0,b.msg="",d.wrap&&(b.adler=1&d.wrap),d.mode=x,d.last=0,d.havedict=0,d.dmax=32768,d.head=null,d.hold=0,d.bits=0,d.lencode=d.lendyn=new r.Buf32(D),d.distcode=d.distdyn=new r.Buf32(z),d.sane=1,d.back=-1,A):y}function k(b){var d;return b&&b.state?(d=b.state,d.wsize=0,d.whave=0,d.wnext=0,g(b)):y}function l(b,d){var e,c;return b&&b.state?(c=b.state,
-0>d?(e=0,d=-d):(e=(d>>4)+1,48>d&&(d&=15)),d&&(8>d||15<d)?y:(null!==c.window&&c.wbits!==d&&(c.window=null),c.wrap=e,c.wbits=d,k(b))):y}function n(b,d){var c,f;return b?(f=new e,b.state=f,f.window=null,c=l(b,d),c!==A&&(b.state=null),c):y}function m(b,d,e,c){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new r.Buf8(b.wsize)),c>=b.wsize?(r.arraySet(b.window,d,e-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>c&&(f=c),r.arraySet(b.window,d,e-
-c,f,b.wnext),c-=f,c?(r.arraySet(b.window,d,e-c,c,0),b.wnext=c,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var p,q,r=c("../utils/common"),s=c("./adler32"),t=c("./crc32"),u=c("./inffast"),v=c("./inftrees"),A=0,y=-2,x=1,D=852,z=592,B=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return n(b,15)};d.inflateInit2=n;d.inflate=function(d,e){var c,f,g,k,l,n,D,C,z,P,O,M,V,K,L,R,Z,ea,da,S,X,aa,W=0,Q=new r.Buf8(4),ga=[16,
-17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!d||!d.state||!d.output||!d.input&&0!==d.avail_in)return y;c=d.state;12===c.mode&&(c.mode=13);l=d.next_out;g=d.output;D=d.avail_out;k=d.next_in;f=d.input;n=d.avail_in;C=c.hold;z=c.bits;P=n;O=D;X=A;a:for(;;)switch(c.mode){case x:if(0===c.wrap){c.mode=13;break}for(;16>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(2&c.wrap&&35615===C){c.check=0;Q[0]=255&C;Q[1]=C>>>8&255;c.check=t(c.check,Q,2,0);z=C=0;c.mode=2;break}if(c.flags=0,c.head&&(c.head.done=!1),
-!(1&c.wrap)||(((255&C)<<8)+(C>>8))%31){d.msg="incorrect header check";c.mode=30;break}if(8!==(15&C)){d.msg="unknown compression method";c.mode=30;break}if(C>>>=4,z-=4,S=(15&C)+8,0===c.wbits)c.wbits=S;else if(S>c.wbits){d.msg="invalid window size";c.mode=30;break}c.dmax=1<<S;d.adler=c.check=1;c.mode=512&C?10:12;z=C=0;break;case 2:for(;16>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(c.flags=C,8!==(255&c.flags)){d.msg="unknown compression method";c.mode=30;break}if(57344&c.flags){d.msg="unknown header flags set";
-c.mode=30;break}c.head&&(c.head.text=C>>8&1);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,c.check=t(c.check,Q,2,0));z=C=0;c.mode=3;case 3:for(;32>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}c.head&&(c.head.time=C);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,Q[2]=C>>>16&255,Q[3]=C>>>24&255,c.check=t(c.check,Q,4,0));z=C=0;c.mode=4;case 4:for(;16>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}c.head&&(c.head.xflags=255&C,c.head.os=C>>8);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,c.check=t(c.check,Q,2,0));z=C=0;c.mode=
-5;case 5:if(1024&c.flags){for(;16>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}c.length=C;c.head&&(c.head.extra_len=C);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,c.check=t(c.check,Q,2,0));z=C=0}else c.head&&(c.head.extra=null);c.mode=6;case 6:if(1024&c.flags&&(M=c.length,M>n&&(M=n),M&&(c.head&&(S=c.head.extra_len-c.length,c.head.extra||(c.head.extra=Array(c.head.extra_len)),r.arraySet(c.head.extra,f,k,M,S)),512&c.flags&&(c.check=t(c.check,f,M,k)),n-=M,k+=M,c.length-=M),c.length))break a;c.length=0;c.mode=
+0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=K-1,b.match_available=0,b.ins_h=0);return d}function z(d,e,c,f,g,k){if(!d)return I;var l=1;if(e===L&&(e=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>U||c!==C||8>f||15<f||0>e||9<e||0>k||k>T)return b(d,I);8===f&&(f=9);var n=new t;return d.state=n,n.strm=d,n.wrap=l,n.gzhead=null,n.w_bits=f,n.w_size=1<<n.w_bits,n.w_mask=n.w_size-1,n.hash_bits=g+7,n.hash_size=1<<n.hash_bits,n.hash_mask=n.hash_size-1,n.hash_shift=~~((n.hash_bits+K-1)/K),n.window=new x.Buf8(2*
+n.w_size),n.head=new x.Buf16(n.hash_size),n.prev=new x.Buf16(n.w_size),n.lit_bufsize=1<<g+6,n.pending_buf_size=4*n.lit_bufsize,n.pending_buf=new x.Buf8(n.pending_buf_size),n.d_buf=1*n.lit_bufsize,n.l_buf=3*n.lit_bufsize,n.level=e,n.strategy=k,n.method=c,v(d)}var y,x=c("../utils/common"),D=c("./trees"),A=c("./adler32"),B=c("./crc32"),E=c("./messages"),G=0,F=4,H=0,I=-2,L=-1,O=1,T=4,Y=2,C=8,U=9,P=286,N=30,M=19,V=2*P+1,J=15,K=3,R=258,Z=R+K+1,ea=42,da=113,S=1,X=2,aa=3,W=4;y=[new q(0,0,0,0,function(b,d){var e=
+65535;for(e>b.pending_buf_size-5&&(e=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&d===G)return S;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var c=b.block_start+e;if((0===b.strstart||b.strstart>=c)&&(b.lookahead=b.strstart-c,b.strstart=c,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-Z&&(k(b,!1),0===b.strm.avail_out))return S}return b.insert=0,d===F?(k(b,!0),0===b.strm.avail_out?aa:W):(b.strstart>b.block_start&&k(b,!1),S)}),new q(4,4,8,
+4,r),new q(4,5,16,8,r),new q(4,6,32,32,r),new q(4,4,16,16,s),new q(8,16,32,32,s),new q(8,16,128,128,s),new q(8,32,128,256,s),new q(32,128,258,1024,s),new q(32,258,258,4096,s)];d.deflateInit=function(b,d){return z(b,d,C,15,8,0)};d.deflateInit2=z;d.deflateReset=v;d.deflateResetKeep=u;d.deflateSetHeader=function(b,d){return b&&b.state?2!==b.state.wrap?I:(b.state.gzhead=d,H):I};d.deflate=function(d,c){var f,m,t,u;if(!d||!d.state||5<c||0>c)return d?b(d,I):I;if(m=d.state,!d.output||!d.input&&0!==d.avail_in||
+666===m.status&&c!==F)return b(d,0===d.avail_out?-5:I);if(m.strm=d,f=m.last_flush,m.last_flush=c,m.status===ea)2===m.wrap?(d.adler=0,l(m,31),l(m,139),l(m,8),m.gzhead?(l(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)),l(m,255&m.gzhead.time),l(m,m.gzhead.time>>8&255),l(m,m.gzhead.time>>16&255),l(m,m.gzhead.time>>24&255),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(l(m,255&m.gzhead.extra.length),
+l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(d.adler=B(d.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=da)):(t=C+(m.w_bits-8<<4)<<8,u=-1,u=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,t|=u<<6,0!==m.strstart&&(t|=32),m.status=da,n(m,t+(31-t%31)),0!==m.strstart&&(n(m,d.adler>>>16),n(m,65535&d.adler)),d.adler=1);if(69===m.status)if(m.gzhead.extra){for(t=m.pending;m.gzindex<
+(65535&m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>t&&(d.adler=B(d.adler,m.pending_buf,m.pending-t,t)),g(d),t=m.pending,m.pending!==m.pending_buf_size));)l(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>t&&(d.adler=B(d.adler,m.pending_buf,m.pending-t,t));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){t=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>
+t&&(d.adler=B(d.adler,m.pending_buf,m.pending-t,t)),g(d),t=m.pending,m.pending===m.pending_buf_size)){u=1;break}u=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,u)}while(0!==u);m.gzhead.hcrc&&m.pending>t&&(d.adler=B(d.adler,m.pending_buf,m.pending-t,t));0===u&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){t=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>t&&(d.adler=B(d.adler,m.pending_buf,m.pending-t,t)),
+g(d),t=m.pending,m.pending===m.pending_buf_size)){u=1;break}u=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,u)}while(0!==u);m.gzhead.hcrc&&m.pending>t&&(d.adler=B(d.adler,m.pending_buf,m.pending-t,t));0===u&&(m.status=103)}else m.status=103;if(103===m.status&&(m.gzhead.hcrc?(m.pending+2>m.pending_buf_size&&g(d),m.pending+2<=m.pending_buf_size&&(l(m,255&d.adler),l(m,d.adler>>8&255),d.adler=0,m.status=da)):m.status=da),0!==m.pending){if(g(d),0===d.avail_out)return m.last_flush=
+-1,H}else if(0===d.avail_in&&(c<<1)-(4<c?9:0)<=(f<<1)-(4<f?9:0)&&c!==F)return b(d,-5);if(666===m.status&&0!==d.avail_in)return b(d,-5);if(0!==d.avail_in||0!==m.lookahead||c!==G&&666!==m.status){var q;if(2===m.strategy)a:{for(var r;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===G){q=S;break a}break}if(m.match_length=0,r=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,r&&(k(m,!1),0===m.strm.avail_out)){q=S;break a}}q=(m.insert=0,c===F?(k(m,!0),0===m.strm.avail_out?aa:W):m.last_lit&&
+(k(m,!1),0===m.strm.avail_out)?S:X)}else if(3===m.strategy)a:{var v,s;for(r=m.window;;){if(m.lookahead<=R){if(p(m),m.lookahead<=R&&c===G){q=S;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=K&&0<m.strstart&&(s=m.strstart-1,v=r[s],v===r[++s]&&v===r[++s]&&v===r[++s])){f=m.strstart+R;do;while(v===r[++s]&&v===r[++s]&&v===r[++s]&&v===r[++s]&&v===r[++s]&&v===r[++s]&&v===r[++s]&&v===r[++s]&&s<f);m.match_length=R-(f-s);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
+K?(q=D._tr_tally(m,1,m.match_length-K),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(q=D._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),q&&(k(m,!1),0===m.strm.avail_out)){q=S;break a}}q=(m.insert=0,c===F?(k(m,!0),0===m.strm.avail_out?aa:W):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?S:X)}else q=y[m.level].func(m,c);if(q!==aa&&q!==W||(m.status=666),q===S||q===aa)return 0===d.avail_out&&(m.last_flush=-1),H;if(q===X&&(1===c?D._tr_align(m):5!==c&&(D._tr_stored_block(m,
+0,0,!1),3===c&&(e(m.head),0===m.lookahead&&(m.strstart=0,m.block_start=0,m.insert=0))),g(d),0===d.avail_out))return m.last_flush=-1,H}return c!==F?H:0>=m.wrap?1:(2===m.wrap?(l(m,255&d.adler),l(m,d.adler>>8&255),l(m,d.adler>>16&255),l(m,d.adler>>24&255),l(m,255&d.total_in),l(m,d.total_in>>8&255),l(m,d.total_in>>16&255),l(m,d.total_in>>24&255)):(n(m,d.adler>>>16),n(m,65535&d.adler)),g(d),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?H:1)};d.deflateEnd=function(d){var e;return d&&d.state?(e=d.state.status,
+e!==ea&&69!==e&&73!==e&&91!==e&&103!==e&&e!==da&&666!==e?b(d,I):(d.state=null,e===da?b(d,-3):H)):I};d.deflateSetDictionary=function(b,d){var c,f,g,k,l,n,m;f=d.length;if(!b||!b.state||(c=b.state,k=c.wrap,2===k||1===k&&c.status!==ea||c.lookahead))return I;1===k&&(b.adler=A(b.adler,d,f,0));c.wrap=0;f>=c.w_size&&(0===k&&(e(c.head),c.strstart=0,c.block_start=0,c.insert=0),l=new x.Buf8(c.w_size),x.arraySet(l,d,f-c.w_size,c.w_size,0),d=l,f=c.w_size);l=b.avail_in;n=b.next_in;m=b.input;b.avail_in=f;b.next_in=
+0;b.input=d;for(p(c);c.lookahead>=K;){f=c.strstart;g=c.lookahead-(K-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[f+K-1])&c.hash_mask,c.prev[f&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=f,f++;while(--g);c.strstart=f;c.lookahead=K-1;p(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=K-1,c.match_available=0,b.next_in=n,b.input=m,b.avail_in=l,c.wrap=k,H};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
+"./crc32":7,"./messages":13,"./trees":14}],9:[function(c,f,d){f.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(c,f,d){f.exports=function(b,d){var c,f,l,n,m,p,r,s,q,t,u,v,z,y,x,D,A,B,E,G,F,H,I,L;c=b.state;f=b.next_in;I=b.input;l=f+(b.avail_in-5);n=b.next_out;L=b.output;m=n-(d-b.avail_out);p=n+(b.avail_out-257);r=c.dmax;s=c.wsize;q=c.whave;t=c.wnext;u=c.window;v=c.hold;z=c.bits;y=c.lencode;
+x=c.distcode;D=(1<<c.lenbits)-1;A=(1<<c.distbits)-1;a:do{15>z&&(v+=I[f++]<<z,z+=8,v+=I[f++]<<z,z+=8);B=y[v&D];b:for(;;){if(E=B>>>24,v>>>=E,z-=E,E=B>>>16&255,0===E)L[n++]=65535&B;else{if(!(16&E)){if(0===(64&E)){B=y[(65535&B)+(v&(1<<E)-1)];continue b}if(32&E){c.mode=12;break a}b.msg="invalid literal/length code";c.mode=30;break a}G=65535&B;(E&=15)&&(z<E&&(v+=I[f++]<<z,z+=8),G+=v&(1<<E)-1,v>>>=E,z-=E);15>z&&(v+=I[f++]<<z,z+=8,v+=I[f++]<<z,z+=8);B=x[v&A];c:for(;;){if(E=B>>>24,v>>>=E,z-=E,E=B>>>16&255,
+!(16&E)){if(0===(64&E)){B=x[(65535&B)+(v&(1<<E)-1)];continue c}b.msg="invalid distance code";c.mode=30;break a}if(F=65535&B,E&=15,z<E&&(v+=I[f++]<<z,z+=8,z<E&&(v+=I[f++]<<z,z+=8)),F+=v&(1<<E)-1,F>r){b.msg="invalid distance too far back";c.mode=30;break a}if(v>>>=E,z-=E,E=n-m,F>E){if(E=F-E,E>q&&c.sane){b.msg="invalid distance too far back";c.mode=30;break a}if(B=0,H=u,0===t){if(B+=s-E,E<G){G-=E;do L[n++]=u[B++];while(--E);B=n-F;H=L}}else if(t<E){if(B+=s+t-E,E-=t,E<G){G-=E;do L[n++]=u[B++];while(--E);
+if(B=0,t<G){E=t;G-=E;do L[n++]=u[B++];while(--E);B=n-F;H=L}}}else if(B+=t-E,E<G){G-=E;do L[n++]=u[B++];while(--E);B=n-F;H=L}for(;2<G;)L[n++]=H[B++],L[n++]=H[B++],L[n++]=H[B++],G-=3;G&&(L[n++]=H[B++],1<G&&(L[n++]=H[B++]))}else{B=n-F;do L[n++]=L[B++],L[n++]=L[B++],L[n++]=L[B++],G-=3;while(2<G);G&&(L[n++]=L[B++],1<G&&(L[n++]=L[B++]))}break}}break}}while(f<l&&n<p);G=z>>3;f-=G;z-=G<<3;b.next_in=f;b.next_out=n;b.avail_in=f<l?5+(l-f):5-(f-l);b.avail_out=n<p?257+(p-n):257-(n-p);c.hold=v&(1<<z)-1;c.bits=z}},
+{}],11:[function(c,f,d){function b(b){return(b>>>24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function e(){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 s.Buf16(320);this.work=
+new s.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function g(b){var d;return b&&b.state?(d=b.state,b.total_in=b.total_out=d.total=0,b.msg="",d.wrap&&(b.adler=1&d.wrap),d.mode=x,d.last=0,d.havedict=0,d.dmax=32768,d.head=null,d.hold=0,d.bits=0,d.lencode=d.lendyn=new s.Buf32(D),d.distcode=d.distdyn=new s.Buf32(A),d.sane=1,d.back=-1,z):y}function k(b){var d;return b&&b.state?(d=b.state,d.wsize=0,d.whave=0,d.wnext=0,g(b)):y}function l(b,d){var e,c;return b&&b.state?(c=b.state,
+0>d?(e=0,d=-d):(e=(d>>4)+1,48>d&&(d&=15)),d&&(8>d||15<d)?y:(null!==c.window&&c.wbits!==d&&(c.window=null),c.wrap=e,c.wbits=d,k(b))):y}function n(b,d){var c,f;return b?(f=new e,b.state=f,f.window=null,c=l(b,d),c!==z&&(b.state=null),c):y}function m(b,d,e,c){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new s.Buf8(b.wsize)),c>=b.wsize?(s.arraySet(b.window,d,e-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>c&&(f=c),s.arraySet(b.window,d,e-
+c,f,b.wnext),c-=f,c?(s.arraySet(b.window,d,e-c,c,0),b.wnext=c,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var p,r,s=c("../utils/common"),q=c("./adler32"),t=c("./crc32"),u=c("./inffast"),v=c("./inftrees"),z=0,y=-2,x=1,D=852,A=592,B=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return n(b,15)};d.inflateInit2=n;d.inflate=function(d,e){var c,f,g,k,l,n,D,C,A,P,N,M,V,J,K,R,Z,ea,da,S,X,aa,W=0,Q=new s.Buf8(4),ga=[16,
+17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!d||!d.state||!d.output||!d.input&&0!==d.avail_in)return y;c=d.state;12===c.mode&&(c.mode=13);l=d.next_out;g=d.output;D=d.avail_out;k=d.next_in;f=d.input;n=d.avail_in;C=c.hold;A=c.bits;P=n;N=D;X=z;a:for(;;)switch(c.mode){case x:if(0===c.wrap){c.mode=13;break}for(;16>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(2&c.wrap&&35615===C){c.check=0;Q[0]=255&C;Q[1]=C>>>8&255;c.check=t(c.check,Q,2,0);A=C=0;c.mode=2;break}if(c.flags=0,c.head&&(c.head.done=!1),
+!(1&c.wrap)||(((255&C)<<8)+(C>>8))%31){d.msg="incorrect header check";c.mode=30;break}if(8!==(15&C)){d.msg="unknown compression method";c.mode=30;break}if(C>>>=4,A-=4,S=(15&C)+8,0===c.wbits)c.wbits=S;else if(S>c.wbits){d.msg="invalid window size";c.mode=30;break}c.dmax=1<<S;d.adler=c.check=1;c.mode=512&C?10:12;A=C=0;break;case 2:for(;16>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(c.flags=C,8!==(255&c.flags)){d.msg="unknown compression method";c.mode=30;break}if(57344&c.flags){d.msg="unknown header flags set";
+c.mode=30;break}c.head&&(c.head.text=C>>8&1);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,c.check=t(c.check,Q,2,0));A=C=0;c.mode=3;case 3:for(;32>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}c.head&&(c.head.time=C);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,Q[2]=C>>>16&255,Q[3]=C>>>24&255,c.check=t(c.check,Q,4,0));A=C=0;c.mode=4;case 4:for(;16>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}c.head&&(c.head.xflags=255&C,c.head.os=C>>8);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,c.check=t(c.check,Q,2,0));A=C=0;c.mode=
+5;case 5:if(1024&c.flags){for(;16>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}c.length=C;c.head&&(c.head.extra_len=C);512&c.flags&&(Q[0]=255&C,Q[1]=C>>>8&255,c.check=t(c.check,Q,2,0));A=C=0}else c.head&&(c.head.extra=null);c.mode=6;case 6:if(1024&c.flags&&(M=c.length,M>n&&(M=n),M&&(c.head&&(S=c.head.extra_len-c.length,c.head.extra||(c.head.extra=Array(c.head.extra_len)),s.arraySet(c.head.extra,f,k,M,S)),512&c.flags&&(c.check=t(c.check,f,M,k)),n-=M,k+=M,c.length-=M),c.length))break a;c.length=0;c.mode=
7;case 7:if(2048&c.flags){if(0===n)break a;M=0;do S=f[k+M++],c.head&&S&&65536>c.length&&(c.head.name+=String.fromCharCode(S));while(S&&M<n);if(512&c.flags&&(c.check=t(c.check,f,M,k)),n-=M,k+=M,S)break a}else c.head&&(c.head.name=null);c.length=0;c.mode=8;case 8:if(4096&c.flags){if(0===n)break a;M=0;do S=f[k+M++],c.head&&S&&65536>c.length&&(c.head.comment+=String.fromCharCode(S));while(S&&M<n);if(512&c.flags&&(c.check=t(c.check,f,M,k)),n-=M,k+=M,S)break a}else c.head&&(c.head.comment=null);c.mode=
-9;case 9:if(512&c.flags){for(;16>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(C!==(65535&c.check)){d.msg="header crc mismatch";c.mode=30;break}z=C=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0);d.adler=c.check=0;c.mode=12;break;case 10:for(;32>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}d.adler=c.check=b(C);z=C=0;c.mode=11;case 11:if(0===c.havedict)return d.next_out=l,d.avail_out=D,d.next_in=k,d.avail_in=n,c.hold=C,c.bits=z,2;d.adler=c.check=1;c.mode=12;case 12:if(5===e||6===e)break a;case 13:if(c.last){C>>>=
-7&z;z-=7&z;c.mode=27;break}for(;3>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}switch(c.last=1&C,C>>>=1,z-=1,3&C){case 0:c.mode=14;break;case 1:K=c;if(B){R=void 0;p=new r.Buf32(512);q=new r.Buf32(32);for(R=0;144>R;)K.lens[R++]=8;for(;256>R;)K.lens[R++]=9;for(;280>R;)K.lens[R++]=7;for(;288>R;)K.lens[R++]=8;v(1,K.lens,0,288,p,0,K.work,{bits:9});for(R=0;32>R;)K.lens[R++]=5;v(2,K.lens,0,32,q,0,K.work,{bits:5});B=!1}K.lencode=p;K.lenbits=9;K.distcode=q;K.distbits=5;if(c.mode=20,6===e){C>>>=2;z-=2;break a}break;
-case 2:c.mode=17;break;case 3:d.msg="invalid block type",c.mode=30}C>>>=2;z-=2;break;case 14:C>>>=7&z;for(z-=7&z;32>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if((65535&C)!==(C>>>16^65535)){d.msg="invalid stored block lengths";c.mode=30;break}if(c.length=65535&C,C=0,z=0,c.mode=15,6===e)break a;case 15:c.mode=16;case 16:if(M=c.length){if(M>n&&(M=n),M>D&&(M=D),0===M)break a;r.arraySet(g,f,k,M,l);n-=M;k+=M;D-=M;l+=M;c.length-=M;break}c.mode=12;break;case 17:for(;14>z;){if(0===n)break a;n--;C+=f[k++]<<
-z;z+=8}if(c.nlen=(31&C)+257,C>>>=5,z-=5,c.ndist=(31&C)+1,C>>>=5,z-=5,c.ncode=(15&C)+4,C>>>=4,z-=4,286<c.nlen||30<c.ndist){d.msg="too many length or distance symbols";c.mode=30;break}c.have=0;c.mode=18;case 18:for(;c.have<c.ncode;){for(;3>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}c.lens[ga[c.have++]]=7&C;C>>>=3;z-=3}for(;19>c.have;)c.lens[ga[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,aa={bits:c.lenbits},X=v(0,c.lens,0,19,c.lencode,0,c.work,aa),c.lenbits=aa.bits,X){d.msg="invalid code lengths set";
-c.mode=30;break}c.have=0;c.mode=19;case 19:for(;c.have<c.nlen+c.ndist;){for(;W=c.lencode[C&(1<<c.lenbits)-1],L=W>>>24,R=65535&W,!(L<=z);){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(16>R)C>>>=L,z-=L,c.lens[c.have++]=R;else{if(16===R){for(K=L+2;z<K;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(C>>>=L,z-=L,0===c.have){d.msg="invalid bit length repeat";c.mode=30;break}S=c.lens[c.have-1];M=3+(3&C);C>>>=2;z-=2}else if(17===R){for(K=L+3;z<K;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}C>>>=L;z-=L;S=0;M=3+(7&C);
-C>>>=3;z-=3}else{for(K=L+7;z<K;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}C>>>=L;z-=L;S=0;M=11+(127&C);C>>>=7;z-=7}if(c.have+M>c.nlen+c.ndist){d.msg="invalid bit length repeat";c.mode=30;break}for(;M--;)c.lens[c.have++]=S}}if(30===c.mode)break;if(0===c.lens[256]){d.msg="invalid code -- missing end-of-block";c.mode=30;break}if(c.lenbits=9,aa={bits:c.lenbits},X=v(1,c.lens,0,c.nlen,c.lencode,0,c.work,aa),c.lenbits=aa.bits,X){d.msg="invalid literal/lengths set";c.mode=30;break}if(c.distbits=6,c.distcode=
-c.distdyn,aa={bits:c.distbits},X=v(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,aa),c.distbits=aa.bits,X){d.msg="invalid distances set";c.mode=30;break}if(c.mode=20,6===e)break a;case 20:c.mode=21;case 21:if(6<=n&&258<=D){d.next_out=l;d.avail_out=D;d.next_in=k;d.avail_in=n;c.hold=C;c.bits=z;u(d,O);l=d.next_out;g=d.output;D=d.avail_out;k=d.next_in;f=d.input;n=d.avail_in;C=c.hold;z=c.bits;12===c.mode&&(c.back=-1);break}for(c.back=0;W=c.lencode[C&(1<<c.lenbits)-1],L=W>>>24,K=W>>>16&255,R=65535&W,!(L<=
-z);){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(K&&0===(240&K)){Z=L;ea=K;for(da=R;W=c.lencode[da+((C&(1<<Z+ea)-1)>>Z)],L=W>>>24,K=W>>>16&255,R=65535&W,!(Z+L<=z);){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}C>>>=Z;z-=Z;c.back+=Z}if(C>>>=L,z-=L,c.back+=L,c.length=R,0===K){c.mode=26;break}if(32&K){c.back=-1;c.mode=12;break}if(64&K){d.msg="invalid literal/length code";c.mode=30;break}c.extra=15&K;c.mode=22;case 22:if(c.extra){for(K=c.extra;z<K;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}c.length+=C&(1<<c.extra)-
-1;C>>>=c.extra;z-=c.extra;c.back+=c.extra}c.was=c.length;c.mode=23;case 23:for(;W=c.distcode[C&(1<<c.distbits)-1],L=W>>>24,K=W>>>16&255,R=65535&W,!(L<=z);){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(0===(240&K)){Z=L;ea=K;for(da=R;W=c.distcode[da+((C&(1<<Z+ea)-1)>>Z)],L=W>>>24,K=W>>>16&255,R=65535&W,!(Z+L<=z);){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}C>>>=Z;z-=Z;c.back+=Z}if(C>>>=L,z-=L,c.back+=L,64&K){d.msg="invalid distance code";c.mode=30;break}c.offset=R;c.extra=15&K;c.mode=24;case 24:if(c.extra){for(K=
-c.extra;z<K;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}c.offset+=C&(1<<c.extra)-1;C>>>=c.extra;z-=c.extra;c.back+=c.extra}if(c.offset>c.dmax){d.msg="invalid distance too far back";c.mode=30;break}c.mode=25;case 25:if(0===D)break a;if(M=O-D,c.offset>M){if(M=c.offset-M,M>c.whave&&c.sane){d.msg="invalid distance too far back";c.mode=30;break}M>c.wnext?(M-=c.wnext,V=c.wsize-M):V=c.wnext-M;M>c.length&&(M=c.length);K=c.window}else K=g,V=l-c.offset,M=c.length;M>D&&(M=D);D-=M;c.length-=M;do g[l++]=K[V++];while(--M);
-0===c.length&&(c.mode=21);break;case 26:if(0===D)break a;g[l++]=c.length;D--;c.mode=21;break;case 27:if(c.wrap){for(;32>z;){if(0===n)break a;n--;C|=f[k++]<<z;z+=8}if(O-=D,d.total_out+=O,c.total+=O,O&&(d.adler=c.check=c.flags?t(c.check,g,O,l-O):s(c.check,g,O,l-O)),O=D,(c.flags?C:b(C))!==c.check){d.msg="incorrect data check";c.mode=30;break}z=C=0}c.mode=28;case 28:if(c.wrap&&c.flags){for(;32>z;){if(0===n)break a;n--;C+=f[k++]<<z;z+=8}if(C!==(4294967295&c.total)){d.msg="incorrect length check";c.mode=
-30;break}z=C=0}c.mode=29;case 29:X=1;break a;case 30:X=-3;break a;case 31:return-4;default:return y}return d.next_out=l,d.avail_out=D,d.next_in=k,d.avail_in=n,c.hold=C,c.bits=z,(c.wsize||O!==d.avail_out&&30>c.mode&&(27>c.mode||4!==e))&&m(d,d.output,d.next_out,O-d.avail_out)?(c.mode=31,-4):(P-=d.avail_in,O-=d.avail_out,d.total_in+=P,d.total_out+=O,c.total+=O,c.wrap&&O&&(d.adler=c.check=c.flags?t(c.check,g,O,d.next_out-O):s(c.check,g,O,d.next_out-O)),d.data_type=c.bits+(c.last?64:0)+(12===c.mode?128:
-0)+(20===c.mode||15===c.mode?256:0),(0===P&&0===O||4===e)&&X===A&&(X=-5),X)};d.inflateEnd=function(b){if(!b||!b.state)return y;var d=b.state;return d.window&&(d.window=null),b.state=null,A};d.inflateGetHeader=function(b,d){var e;return b&&b.state?(e=b.state,0===(2&e.wrap)?y:(e.head=d,d.done=!1,A)):y};d.inflateSetDictionary=function(b,d){var e,c,f=d.length;return b&&b.state?(e=b.state,0!==e.wrap&&11!==e.mode?y:11===e.mode&&(c=1,c=s(c,d,f,0),c!==e.check)?-3:m(b,d,f,f)?(e.mode=31,-4):(e.havedict=1,A)):
+9;case 9:if(512&c.flags){for(;16>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(C!==(65535&c.check)){d.msg="header crc mismatch";c.mode=30;break}A=C=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0);d.adler=c.check=0;c.mode=12;break;case 10:for(;32>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}d.adler=c.check=b(C);A=C=0;c.mode=11;case 11:if(0===c.havedict)return d.next_out=l,d.avail_out=D,d.next_in=k,d.avail_in=n,c.hold=C,c.bits=A,2;d.adler=c.check=1;c.mode=12;case 12:if(5===e||6===e)break a;case 13:if(c.last){C>>>=
+7&A;A-=7&A;c.mode=27;break}for(;3>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}switch(c.last=1&C,C>>>=1,A-=1,3&C){case 0:c.mode=14;break;case 1:J=c;if(B){R=void 0;p=new s.Buf32(512);r=new s.Buf32(32);for(R=0;144>R;)J.lens[R++]=8;for(;256>R;)J.lens[R++]=9;for(;280>R;)J.lens[R++]=7;for(;288>R;)J.lens[R++]=8;v(1,J.lens,0,288,p,0,J.work,{bits:9});for(R=0;32>R;)J.lens[R++]=5;v(2,J.lens,0,32,r,0,J.work,{bits:5});B=!1}J.lencode=p;J.lenbits=9;J.distcode=r;J.distbits=5;if(c.mode=20,6===e){C>>>=2;A-=2;break a}break;
+case 2:c.mode=17;break;case 3:d.msg="invalid block type",c.mode=30}C>>>=2;A-=2;break;case 14:C>>>=7&A;for(A-=7&A;32>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if((65535&C)!==(C>>>16^65535)){d.msg="invalid stored block lengths";c.mode=30;break}if(c.length=65535&C,C=0,A=0,c.mode=15,6===e)break a;case 15:c.mode=16;case 16:if(M=c.length){if(M>n&&(M=n),M>D&&(M=D),0===M)break a;s.arraySet(g,f,k,M,l);n-=M;k+=M;D-=M;l+=M;c.length-=M;break}c.mode=12;break;case 17:for(;14>A;){if(0===n)break a;n--;C+=f[k++]<<
+A;A+=8}if(c.nlen=(31&C)+257,C>>>=5,A-=5,c.ndist=(31&C)+1,C>>>=5,A-=5,c.ncode=(15&C)+4,C>>>=4,A-=4,286<c.nlen||30<c.ndist){d.msg="too many length or distance symbols";c.mode=30;break}c.have=0;c.mode=18;case 18:for(;c.have<c.ncode;){for(;3>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}c.lens[ga[c.have++]]=7&C;C>>>=3;A-=3}for(;19>c.have;)c.lens[ga[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,aa={bits:c.lenbits},X=v(0,c.lens,0,19,c.lencode,0,c.work,aa),c.lenbits=aa.bits,X){d.msg="invalid code lengths set";
+c.mode=30;break}c.have=0;c.mode=19;case 19:for(;c.have<c.nlen+c.ndist;){for(;W=c.lencode[C&(1<<c.lenbits)-1],K=W>>>24,R=65535&W,!(K<=A);){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(16>R)C>>>=K,A-=K,c.lens[c.have++]=R;else{if(16===R){for(J=K+2;A<J;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(C>>>=K,A-=K,0===c.have){d.msg="invalid bit length repeat";c.mode=30;break}S=c.lens[c.have-1];M=3+(3&C);C>>>=2;A-=2}else if(17===R){for(J=K+3;A<J;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}C>>>=K;A-=K;S=0;M=3+(7&C);
+C>>>=3;A-=3}else{for(J=K+7;A<J;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}C>>>=K;A-=K;S=0;M=11+(127&C);C>>>=7;A-=7}if(c.have+M>c.nlen+c.ndist){d.msg="invalid bit length repeat";c.mode=30;break}for(;M--;)c.lens[c.have++]=S}}if(30===c.mode)break;if(0===c.lens[256]){d.msg="invalid code -- missing end-of-block";c.mode=30;break}if(c.lenbits=9,aa={bits:c.lenbits},X=v(1,c.lens,0,c.nlen,c.lencode,0,c.work,aa),c.lenbits=aa.bits,X){d.msg="invalid literal/lengths set";c.mode=30;break}if(c.distbits=6,c.distcode=
+c.distdyn,aa={bits:c.distbits},X=v(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,aa),c.distbits=aa.bits,X){d.msg="invalid distances set";c.mode=30;break}if(c.mode=20,6===e)break a;case 20:c.mode=21;case 21:if(6<=n&&258<=D){d.next_out=l;d.avail_out=D;d.next_in=k;d.avail_in=n;c.hold=C;c.bits=A;u(d,N);l=d.next_out;g=d.output;D=d.avail_out;k=d.next_in;f=d.input;n=d.avail_in;C=c.hold;A=c.bits;12===c.mode&&(c.back=-1);break}for(c.back=0;W=c.lencode[C&(1<<c.lenbits)-1],K=W>>>24,J=W>>>16&255,R=65535&W,!(K<=
+A);){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(J&&0===(240&J)){Z=K;ea=J;for(da=R;W=c.lencode[da+((C&(1<<Z+ea)-1)>>Z)],K=W>>>24,J=W>>>16&255,R=65535&W,!(Z+K<=A);){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}C>>>=Z;A-=Z;c.back+=Z}if(C>>>=K,A-=K,c.back+=K,c.length=R,0===J){c.mode=26;break}if(32&J){c.back=-1;c.mode=12;break}if(64&J){d.msg="invalid literal/length code";c.mode=30;break}c.extra=15&J;c.mode=22;case 22:if(c.extra){for(J=c.extra;A<J;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}c.length+=C&(1<<c.extra)-
+1;C>>>=c.extra;A-=c.extra;c.back+=c.extra}c.was=c.length;c.mode=23;case 23:for(;W=c.distcode[C&(1<<c.distbits)-1],K=W>>>24,J=W>>>16&255,R=65535&W,!(K<=A);){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(0===(240&J)){Z=K;ea=J;for(da=R;W=c.distcode[da+((C&(1<<Z+ea)-1)>>Z)],K=W>>>24,J=W>>>16&255,R=65535&W,!(Z+K<=A);){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}C>>>=Z;A-=Z;c.back+=Z}if(C>>>=K,A-=K,c.back+=K,64&J){d.msg="invalid distance code";c.mode=30;break}c.offset=R;c.extra=15&J;c.mode=24;case 24:if(c.extra){for(J=
+c.extra;A<J;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}c.offset+=C&(1<<c.extra)-1;C>>>=c.extra;A-=c.extra;c.back+=c.extra}if(c.offset>c.dmax){d.msg="invalid distance too far back";c.mode=30;break}c.mode=25;case 25:if(0===D)break a;if(M=N-D,c.offset>M){if(M=c.offset-M,M>c.whave&&c.sane){d.msg="invalid distance too far back";c.mode=30;break}M>c.wnext?(M-=c.wnext,V=c.wsize-M):V=c.wnext-M;M>c.length&&(M=c.length);J=c.window}else J=g,V=l-c.offset,M=c.length;M>D&&(M=D);D-=M;c.length-=M;do g[l++]=J[V++];while(--M);
+0===c.length&&(c.mode=21);break;case 26:if(0===D)break a;g[l++]=c.length;D--;c.mode=21;break;case 27:if(c.wrap){for(;32>A;){if(0===n)break a;n--;C|=f[k++]<<A;A+=8}if(N-=D,d.total_out+=N,c.total+=N,N&&(d.adler=c.check=c.flags?t(c.check,g,N,l-N):q(c.check,g,N,l-N)),N=D,(c.flags?C:b(C))!==c.check){d.msg="incorrect data check";c.mode=30;break}A=C=0}c.mode=28;case 28:if(c.wrap&&c.flags){for(;32>A;){if(0===n)break a;n--;C+=f[k++]<<A;A+=8}if(C!==(4294967295&c.total)){d.msg="incorrect length check";c.mode=
+30;break}A=C=0}c.mode=29;case 29:X=1;break a;case 30:X=-3;break a;case 31:return-4;default:return y}return d.next_out=l,d.avail_out=D,d.next_in=k,d.avail_in=n,c.hold=C,c.bits=A,(c.wsize||N!==d.avail_out&&30>c.mode&&(27>c.mode||4!==e))&&m(d,d.output,d.next_out,N-d.avail_out)?(c.mode=31,-4):(P-=d.avail_in,N-=d.avail_out,d.total_in+=P,d.total_out+=N,c.total+=N,c.wrap&&N&&(d.adler=c.check=c.flags?t(c.check,g,N,d.next_out-N):q(c.check,g,N,d.next_out-N)),d.data_type=c.bits+(c.last?64:0)+(12===c.mode?128:
+0)+(20===c.mode||15===c.mode?256:0),(0===P&&0===N||4===e)&&X===z&&(X=-5),X)};d.inflateEnd=function(b){if(!b||!b.state)return y;var d=b.state;return d.window&&(d.window=null),b.state=null,z};d.inflateGetHeader=function(b,d){var e;return b&&b.state?(e=b.state,0===(2&e.wrap)?y:(e.head=d,d.done=!1,z)):y};d.inflateSetDictionary=function(b,d){var e,c,f=d.length;return b&&b.state?(e=b.state,0!==e.wrap&&11!==e.mode?y:11===e.mode&&(c=1,c=q(c,d,f,0),c!==e.check)?-3:m(b,d,f,f)?(e.mode=31,-4):(e.havedict=1,z)):
y};d.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(c,f,d){var b=c("../utils/common"),e=[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],k=[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],l=[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];f.exports=function(d,c,f,q,r,s,t,u){var v,A,y,x,D,z,B,F;x=u.bits;for(var G=0,E=0,H=0,I=0,J=0,N=0,T=0,Y=v=0,C=0,U=null,P=0,O=new b.Buf16(16),N=new b.Buf16(16),M=null,V=0,G=0;15>=G;G++)O[G]=0;for(E=0;E<q;E++)O[c[f+E]]++;J=x;for(I=15;1<=I&&0===O[I];I--);if(J>I&&(J=I),0===I)return r[s++]=20971520,r[s++]=20971520,u.bits=1,0;for(H=1;H<I&&0===O[H];H++);J<H&&(J=H);for(G=v=1;15>=G;G++)if(v<<=1,v-=O[G],0>v)return-1;if(0<
-v&&(0===d||1!==I))return-1;N[1]=0;for(G=1;15>G;G++)N[G+1]=N[G]+O[G];for(E=0;E<q;E++)0!==c[f+E]&&(t[N[c[f+E]]++]=E);if(0===d?(U=M=t,D=19):1===d?(U=e,P-=257,M=g,V-=257,D=256):(U=k,M=l,D=-1),C=0,E=0,G=H,x=s,N=J,T=0,y=-1,Y=1<<J,q=Y-1,1===d&&852<Y||2===d&&592<Y)return 1;for(var K=0;;){K++;z=G-T;t[E]<D?(B=0,F=t[E]):t[E]>D?(B=M[V+t[E]],F=U[P+t[E]]):(B=96,F=0);v=1<<G-T;H=A=1<<N;do A-=v,r[x+(C>>T)+A]=z<<24|B<<16|F|0;while(0!==A);for(v=1<<G-1;C&v;)v>>=1;if(0!==v?(C&=v-1,C+=v):C=0,E++,0===--O[G]){if(G===I)break;
-G=c[f+t[E]]}if(G>J&&(C&q)!==y){0===T&&(T=J);x+=H;N=G-T;for(v=1<<N;N+T<I&&(v-=O[N+T],!(0>=v));)N++,v<<=1;if(Y+=1<<N,1===d&&852<Y||2===d&&592<Y)return 1;y=C&q;r[y]=J<<24|N<<16|x-s|0}}return 0!==C&&(r[x+C]=G-T<<24|4194304),u.bits=J,0}},{"../utils/common":3}],13:[function(c,f,d){f.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(c,f,d){function b(b){for(var d=
+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];f.exports=function(d,c,f,r,s,q,t,u){var v,z,y,x,D,A,B,E;x=u.bits;for(var G=0,F=0,H=0,I=0,L=0,O=0,T=0,Y=v=0,C=0,U=null,P=0,N=new b.Buf16(16),O=new b.Buf16(16),M=null,V=0,G=0;15>=G;G++)N[G]=0;for(F=0;F<r;F++)N[c[f+F]]++;L=x;for(I=15;1<=I&&0===N[I];I--);if(L>I&&(L=I),0===I)return s[q++]=20971520,s[q++]=20971520,u.bits=1,0;for(H=1;H<I&&0===N[H];H++);L<H&&(L=H);for(G=v=1;15>=G;G++)if(v<<=1,v-=N[G],0>v)return-1;if(0<
+v&&(0===d||1!==I))return-1;O[1]=0;for(G=1;15>G;G++)O[G+1]=O[G]+N[G];for(F=0;F<r;F++)0!==c[f+F]&&(t[O[c[f+F]]++]=F);if(0===d?(U=M=t,D=19):1===d?(U=e,P-=257,M=g,V-=257,D=256):(U=k,M=l,D=-1),C=0,F=0,G=H,x=q,O=L,T=0,y=-1,Y=1<<L,r=Y-1,1===d&&852<Y||2===d&&592<Y)return 1;for(var J=0;;){J++;A=G-T;t[F]<D?(B=0,E=t[F]):t[F]>D?(B=M[V+t[F]],E=U[P+t[F]]):(B=96,E=0);v=1<<G-T;H=z=1<<O;do z-=v,s[x+(C>>T)+z]=A<<24|B<<16|E|0;while(0!==z);for(v=1<<G-1;C&v;)v>>=1;if(0!==v?(C&=v-1,C+=v):C=0,F++,0===--N[G]){if(G===I)break;
+G=c[f+t[F]]}if(G>L&&(C&r)!==y){0===T&&(T=L);x+=H;O=G-T;for(v=1<<O;O+T<I&&(v-=N[O+T],!(0>=v));)O++,v<<=1;if(Y+=1<<O,1===d&&852<Y||2===d&&592<Y)return 1;y=C&r;s[y]=L<<24|O<<16|x-q|0}}return 0!==C&&(s[x+C]=G-T<<24|4194304),u.bits=L,0}},{"../utils/common":3}],13:[function(c,f,d){f.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(c,f,d){function b(b){for(var d=
b.length;0<=--d;)b[d]=0}function e(b,d,e,c,f){this.static_tree=b;this.extra_bits=d;this.extra_base=e;this.elems=c;this.max_length=f;this.has_stree=b&&b.length}function g(b,d){this.dyn_tree=b;this.max_code=0;this.stat_desc=d}function k(b,d){b.pending_buf[b.pending++]=255&d;b.pending_buf[b.pending++]=d>>>8&255}function l(b,d,e){b.bi_valid>Y-e?(b.bi_buf|=d<<b.bi_valid&65535,k(b,b.bi_buf),b.bi_buf=d>>Y-b.bi_valid,b.bi_valid+=e-Y):(b.bi_buf|=d<<b.bi_valid&65535,b.bi_valid+=e)}function n(b,d,e){l(b,e[2*
-d],e[2*d+1])}function m(b,d){var e=0;do e|=1&b,b>>>=1,e<<=1;while(0<--d);return e>>>1}function p(b,d,e){var c,f=Array(T+1),g=0;for(c=1;c<=T;c++)f[c]=g=g+e[c-1]<<1;for(e=0;e<=d;e++)c=b[2*e+1],0!==c&&(b[2*e]=m(f[c]++,c))}function q(b){var d;for(d=0;d<H;d++)b.dyn_ltree[2*d]=0;for(d=0;d<I;d++)b.dyn_dtree[2*d]=0;for(d=0;d<J;d++)b.bl_tree[2*d]=0;b.dyn_ltree[2*C]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function r(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);
-b.bi_buf=0;b.bi_valid=0}function s(b,d,e,c){var f=2*d,g=2*e;return b[f]<b[g]||b[f]===b[g]&&c[d]<=c[e]}function t(b,d,e){for(var c=b.heap[e],f=e<<1;f<=b.heap_len&&(f<b.heap_len&&s(d,b.heap[f+1],b.heap[f],b.depth)&&f++,!s(d,c,b.heap[f],b.depth));)b.heap[e]=b.heap[f],e=f,f<<=1;b.heap[e]=c}function u(b,d,e){var c,f,g,k,m=0;if(0!==b.last_lit){do c=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===c?n(b,f,d):(g=da[f],n(b,g+E+1,d),k=M[g],0!==k&&(f-=S[g],l(b,f,
-k)),c--,g=256>c?ea[c]:ea[256+(c>>>7)],n(b,g,e),k=V[g],0!==k&&(c-=X[g],l(b,c,k)));while(m<b.last_lit)}n(b,C,d)}function v(b,d){var e,c,f,g=d.dyn_tree;c=d.stat_desc.static_tree;var k=d.stat_desc.has_stree,l=d.stat_desc.elems,n=-1;b.heap_len=0;b.heap_max=N;for(e=0;e<l;e++)0!==g[2*e]?(b.heap[++b.heap_len]=n=e,b.depth[e]=0):g[2*e+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>n?++n:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=c[2*f+1]);d.max_code=n;for(e=b.heap_len>>1;1<=e;e--)t(b,g,e);f=l;
-do e=b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),c=b.heap[1],b.heap[--b.heap_max]=e,b.heap[--b.heap_max]=c,g[2*f]=g[2*e]+g[2*c],b.depth[f]=(b.depth[e]>=b.depth[c]?b.depth[e]:b.depth[c])+1,g[2*e+1]=g[2*c+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,u,k=d.dyn_tree,l=d.max_code,s=d.stat_desc.static_tree,q=d.stat_desc.has_stree,v=d.stat_desc.extra_bits,r=d.stat_desc.extra_base,A=d.stat_desc.max_length,y=0;for(c=0;c<=T;c++)b.bl_count[c]=0;k[2*b.heap[b.heap_max]+
-1]=0;for(e=b.heap_max+1;e<N;e++)f=b.heap[e],c=k[2*k[2*f+1]+1]+1,c>A&&(c=A,y++),k[2*f+1]=c,f>l||(b.bl_count[c]++,m=0,f>=r&&(m=v[f-r]),u=k[2*f],b.opt_len+=u*(c+m),q&&(b.static_len+=u*(s[2*f+1]+m)));if(0!==y){do{for(c=A-1;0===b.bl_count[c];)c--;b.bl_count[c]--;b.bl_count[c+1]+=2;b.bl_count[A]--;y-=2}while(0<y);for(c=A;0!==c;c--)for(f=b.bl_count[c];0!==f;)m=b.heap[--e],m>l||(k[2*m+1]!==c&&(b.opt_len+=(c-k[2*m+1])*k[2*m],k[2*m+1]=c),f--)}p(g,n,b.bl_count)}function A(b,d,e){var c,f,g=-1,k=d[1],l=0,n=7,
-m=4;0===k&&(n=138,m=3);d[2*(e+1)+1]=65535;for(c=0;c<=e;c++)f=k,k=d[2*(c+1)+1],++l<n&&f===k||(l<m?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*U]++):10>=l?b.bl_tree[2*P]++:b.bl_tree[2*O]++,l=0,g=f,0===k?(n=138,m=3):f===k?(n=6,m=3):(n=7,m=4))}function y(b,d,e){var c,f,g=-1,k=d[1],m=0,u=7,t=4;0===k&&(u=138,t=3);for(c=0;c<=e;c++)if(f=k,k=d[2*(c+1)+1],!(++m<u&&f===k)){if(m<t){do n(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(n(b,f,b.bl_tree),m--),n(b,U,b.bl_tree),l(b,m-3,2)):10>=m?
-(n(b,P,b.bl_tree),l(b,m-3,3)):(n(b,O,b.bl_tree),l(b,m-11,7));m=0;g=f;0===k?(u=138,t=3):f===k?(u=6,t=3):(u=7,t=4)}}function x(b){var d,e=4093624447;for(d=0;31>=d;d++,e>>>=1)if(1&e&&0!==b.dyn_ltree[2*d])return B;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return F;for(d=32;d<E;d++)if(0!==b.dyn_ltree[2*d])return F;return B}function D(b,d,e,c){l(b,(G<<1)+(c?1:0),3);r(b);k(b,e);k(b,~e);z.arraySet(b.pending_buf,b.window,d,e,b.pending);b.pending+=e}var z=c("../utils/common"),B=0,F=1,
-G=0,E=256,H=E+1+29,I=30,J=19,N=2*H+1,T=15,Y=16,C=256,U=16,P=17,O=18,M=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],V=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],K=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],L=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],R=Array(2*(H+2));b(R);var Z=Array(2*I);b(Z);var ea=Array(512);b(ea);var da=Array(256);b(da);var S=Array(29);b(S);var X=Array(I);b(X);var aa,W,Q,ga=!1;d._tr_init=function(b){if(!ga){var d,c,f,k=Array(T+1);for(f=
-c=0;28>f;f++){S[f]=c;for(d=0;d<1<<M[f];d++)da[c++]=f}da[c-1]=f;for(f=c=0;16>f;f++){X[f]=c;for(d=0;d<1<<V[f];d++)ea[c++]=f}for(c>>=7;f<I;f++){X[f]=c<<7;for(d=0;d<1<<V[f]-7;d++)ea[256+c++]=f}for(d=0;d<=T;d++)k[d]=0;for(d=0;143>=d;)R[2*d+1]=8,d++,k[8]++;for(;255>=d;)R[2*d+1]=9,d++,k[9]++;for(;279>=d;)R[2*d+1]=7,d++,k[7]++;for(;287>=d;)R[2*d+1]=8,d++,k[8]++;p(R,H+1,k);for(d=0;d<I;d++)Z[2*d+1]=5,Z[2*d]=m(d,5);aa=new e(R,M,E+1,H,T);W=new e(Z,V,0,I,T);Q=new e([],K,0,J,7);ga=!0}b.l_desc=new g(b.dyn_ltree,
-aa);b.d_desc=new g(b.dyn_dtree,W);b.bl_desc=new g(b.bl_tree,Q);b.bi_buf=0;b.bi_valid=0;q(b)};d._tr_stored_block=D;d._tr_flush_block=function(b,d,e,c){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));v(b,b.l_desc);v(b,b.d_desc);A(b,b.dyn_ltree,b.l_desc.max_code);A(b,b.dyn_dtree,b.d_desc.max_code);v(b,b.bl_desc);for(k=J-1;3<=k&&0===b.bl_tree[2*L[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=e+5;if(e+4<=f&&-1!==d)D(b,d,e,
-c);else if(4===b.strategy||g===f)l(b,2+(c?1:0),3),u(b,R,Z);else{l(b,4+(c?1:0),3);d=b.l_desc.max_code+1;e=b.d_desc.max_code+1;k+=1;l(b,d-257,5);l(b,e-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*L[f]+1],3);y(b,b.dyn_ltree,d-1);y(b,b.dyn_dtree,e-1);u(b,b.dyn_ltree,b.dyn_dtree)}q(b);c&&r(b)};d._tr_tally=function(b,d,e){return b.pending_buf[b.d_buf+2*b.last_lit]=d>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&d,b.pending_buf[b.l_buf+b.last_lit]=255&e,b.last_lit++,0===d?b.dyn_ltree[2*e]++:(b.matches++,
-d--,b.dyn_ltree[2*(da[e]+E+1)]++,b.dyn_dtree[2*(256>d?ea[d]:ea[256+(d>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){l(b,2,3);n(b,C,R);16===b.bi_valid?(k(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(c,f,d){f.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=
+d],e[2*d+1])}function m(b,d){var e=0;do e|=1&b,b>>>=1,e<<=1;while(0<--d);return e>>>1}function p(b,d,e){var c,f=Array(T+1),g=0;for(c=1;c<=T;c++)f[c]=g=g+e[c-1]<<1;for(e=0;e<=d;e++)c=b[2*e+1],0!==c&&(b[2*e]=m(f[c]++,c))}function r(b){var d;for(d=0;d<H;d++)b.dyn_ltree[2*d]=0;for(d=0;d<I;d++)b.dyn_dtree[2*d]=0;for(d=0;d<L;d++)b.bl_tree[2*d]=0;b.dyn_ltree[2*C]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function s(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);
+b.bi_buf=0;b.bi_valid=0}function q(b,d,e,c){var f=2*d,g=2*e;return b[f]<b[g]||b[f]===b[g]&&c[d]<=c[e]}function t(b,d,e){for(var c=b.heap[e],f=e<<1;f<=b.heap_len&&(f<b.heap_len&&q(d,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(d,c,b.heap[f],b.depth));)b.heap[e]=b.heap[f],e=f,f<<=1;b.heap[e]=c}function u(b,d,e){var c,f,g,k,m=0;if(0!==b.last_lit){do c=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===c?n(b,f,d):(g=da[f],n(b,g+F+1,d),k=M[g],0!==k&&(f-=S[g],l(b,f,
+k)),c--,g=256>c?ea[c]:ea[256+(c>>>7)],n(b,g,e),k=V[g],0!==k&&(c-=X[g],l(b,c,k)));while(m<b.last_lit)}n(b,C,d)}function v(b,d){var e,c,f,g=d.dyn_tree;c=d.stat_desc.static_tree;var k=d.stat_desc.has_stree,l=d.stat_desc.elems,n=-1;b.heap_len=0;b.heap_max=O;for(e=0;e<l;e++)0!==g[2*e]?(b.heap[++b.heap_len]=n=e,b.depth[e]=0):g[2*e+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>n?++n:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=c[2*f+1]);d.max_code=n;for(e=b.heap_len>>1;1<=e;e--)t(b,g,e);f=l;
+do e=b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),c=b.heap[1],b.heap[--b.heap_max]=e,b.heap[--b.heap_max]=c,g[2*f]=g[2*e]+g[2*c],b.depth[f]=(b.depth[e]>=b.depth[c]?b.depth[e]:b.depth[c])+1,g[2*e+1]=g[2*c+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,u,k=d.dyn_tree,l=d.max_code,q=d.stat_desc.static_tree,r=d.stat_desc.has_stree,v=d.stat_desc.extra_bits,s=d.stat_desc.extra_base,z=d.stat_desc.max_length,x=0;for(c=0;c<=T;c++)b.bl_count[c]=0;k[2*b.heap[b.heap_max]+
+1]=0;for(e=b.heap_max+1;e<O;e++)f=b.heap[e],c=k[2*k[2*f+1]+1]+1,c>z&&(c=z,x++),k[2*f+1]=c,f>l||(b.bl_count[c]++,m=0,f>=s&&(m=v[f-s]),u=k[2*f],b.opt_len+=u*(c+m),r&&(b.static_len+=u*(q[2*f+1]+m)));if(0!==x){do{for(c=z-1;0===b.bl_count[c];)c--;b.bl_count[c]--;b.bl_count[c+1]+=2;b.bl_count[z]--;x-=2}while(0<x);for(c=z;0!==c;c--)for(f=b.bl_count[c];0!==f;)m=b.heap[--e],m>l||(k[2*m+1]!==c&&(b.opt_len+=(c-k[2*m+1])*k[2*m],k[2*m+1]=c),f--)}p(g,n,b.bl_count)}function z(b,d,e){var c,f,g=-1,k=d[1],l=0,n=7,
+m=4;0===k&&(n=138,m=3);d[2*(e+1)+1]=65535;for(c=0;c<=e;c++)f=k,k=d[2*(c+1)+1],++l<n&&f===k||(l<m?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*U]++):10>=l?b.bl_tree[2*P]++:b.bl_tree[2*N]++,l=0,g=f,0===k?(n=138,m=3):f===k?(n=6,m=3):(n=7,m=4))}function y(b,d,e){var c,f,g=-1,k=d[1],m=0,p=7,t=4;0===k&&(p=138,t=3);for(c=0;c<=e;c++)if(f=k,k=d[2*(c+1)+1],!(++m<p&&f===k)){if(m<t){do n(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(n(b,f,b.bl_tree),m--),n(b,U,b.bl_tree),l(b,m-3,2)):10>=m?
+(n(b,P,b.bl_tree),l(b,m-3,3)):(n(b,N,b.bl_tree),l(b,m-11,7));m=0;g=f;0===k?(p=138,t=3):f===k?(p=6,t=3):(p=7,t=4)}}function x(b){var d,e=4093624447;for(d=0;31>=d;d++,e>>>=1)if(1&e&&0!==b.dyn_ltree[2*d])return B;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return E;for(d=32;d<F;d++)if(0!==b.dyn_ltree[2*d])return E;return B}function D(b,d,e,c){l(b,(G<<1)+(c?1:0),3);s(b);k(b,e);k(b,~e);A.arraySet(b.pending_buf,b.window,d,e,b.pending);b.pending+=e}var A=c("../utils/common"),B=0,E=1,
+G=0,F=256,H=F+1+29,I=30,L=19,O=2*H+1,T=15,Y=16,C=256,U=16,P=17,N=18,M=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],V=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],J=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],R=Array(2*(H+2));b(R);var Z=Array(2*I);b(Z);var ea=Array(512);b(ea);var da=Array(256);b(da);var S=Array(29);b(S);var X=Array(I);b(X);var aa,W,Q,ga=!1;d._tr_init=function(b){if(!ga){var d,c,f,k=Array(T+1);for(f=
+c=0;28>f;f++){S[f]=c;for(d=0;d<1<<M[f];d++)da[c++]=f}da[c-1]=f;for(f=c=0;16>f;f++){X[f]=c;for(d=0;d<1<<V[f];d++)ea[c++]=f}for(c>>=7;f<I;f++){X[f]=c<<7;for(d=0;d<1<<V[f]-7;d++)ea[256+c++]=f}for(d=0;d<=T;d++)k[d]=0;for(d=0;143>=d;)R[2*d+1]=8,d++,k[8]++;for(;255>=d;)R[2*d+1]=9,d++,k[9]++;for(;279>=d;)R[2*d+1]=7,d++,k[7]++;for(;287>=d;)R[2*d+1]=8,d++,k[8]++;p(R,H+1,k);for(d=0;d<I;d++)Z[2*d+1]=5,Z[2*d]=m(d,5);aa=new e(R,M,F+1,H,T);W=new e(Z,V,0,I,T);Q=new e([],J,0,L,7);ga=!0}b.l_desc=new g(b.dyn_ltree,
+aa);b.d_desc=new g(b.dyn_dtree,W);b.bl_desc=new g(b.bl_tree,Q);b.bi_buf=0;b.bi_valid=0;r(b)};d._tr_stored_block=D;d._tr_flush_block=function(b,d,e,c){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));v(b,b.l_desc);v(b,b.d_desc);z(b,b.dyn_ltree,b.l_desc.max_code);z(b,b.dyn_dtree,b.d_desc.max_code);v(b,b.bl_desc);for(k=L-1;3<=k&&0===b.bl_tree[2*K[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=e+5;if(e+4<=f&&-1!==d)D(b,d,e,
+c);else if(4===b.strategy||g===f)l(b,2+(c?1:0),3),u(b,R,Z);else{l(b,4+(c?1:0),3);d=b.l_desc.max_code+1;e=b.d_desc.max_code+1;k+=1;l(b,d-257,5);l(b,e-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*K[f]+1],3);y(b,b.dyn_ltree,d-1);y(b,b.dyn_dtree,e-1);u(b,b.dyn_ltree,b.dyn_dtree)}r(b);c&&s(b)};d._tr_tally=function(b,d,e){return b.pending_buf[b.d_buf+2*b.last_lit]=d>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&d,b.pending_buf[b.l_buf+b.last_lit]=255&e,b.last_lit++,0===d?b.dyn_ltree[2*e]++:(b.matches++,
+d--,b.dyn_ltree[2*(da[e]+F+1)]++,b.dyn_dtree[2*(256>d?ea[d]:ea[256+(d>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){l(b,2,3);n(b,C,R);16===b.bi_valid?(k(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(c,f,d){f.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(c,f,d){d=c("./lib/utils/common").assign;var b=c("./lib/deflate"),e=c("./lib/inflate");c=c("./lib/zlib/constants");var g={};d(g,b,e,c);f.exports=g},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")});var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",encode:function(a,c){var f="",d,b,e,g,k,l,n=0;for(null!=c&&c||(a=Base64._utf8_encode(a));n<a.length;)d=a.charCodeAt(n++),b=a.charCodeAt(n++),e=a.charCodeAt(n++),g=d>>2,d=(d&3)<<4|b>>4,k=(b&15)<<2|e>>6,l=e&63,isNaN(b)?k=l=64:isNaN(e)&&(l=64),f=f+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return f},decode:function(a,c){c=null!=c?c:!1;var f="",d,b,e,g,k,l=0;for(a=
a.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),b=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|b>>4,b=(b&15)<<4|g>>2,e=(g&3)<<6|k,f+=String.fromCharCode(d),64!=g&&(f+=String.fromCharCode(b)),64!=k&&(f+=String.fromCharCode(e));c||(f=Base64._utf8_decode(f));return f},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var c="",f=0;f<a.length;f++){var d=a.charCodeAt(f);128>d?c+=String.fromCharCode(d):
-(127<d&&2048>d?c+=String.fromCharCode(d>>6|192):(c+=String.fromCharCode(d>>12|224),c+=String.fromCharCode(d>>6&63|128)),c+=String.fromCharCode(d&63|128))}return c},_utf8_decode:function(a){for(var c="",f=0,d=c1=c2=0;f<a.length;)d=a.charCodeAt(f),128>d?(c+=String.fromCharCode(d),f++):191<d&&224>d?(c2=a.charCodeAt(f+1),c+=String.fromCharCode((d&31)<<6|c2&63),f+=2):(c2=a.charCodeAt(f+1),c3=a.charCodeAt(f+2),c+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),f+=3);return c}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
+(127<d&&2048>d?c+=String.fromCharCode(d>>6|192):(c+=String.fromCharCode(d>>12|224),c+=String.fromCharCode(d>>6&63|128)),c+=String.fromCharCode(d&63|128))}return c},_utf8_decode:function(a){for(var c="",f=0,d=c1=c2=0;f<a.length;)d=a.charCodeAt(f),128>d?(c+=String.fromCharCode(d),f++):191<d&&224>d?(c2=a.charCodeAt(f+1),c+=String.fromCharCode((d&31)<<6|c2&63),f+=2):(c2=a.charCodeAt(f+1),c3=a.charCodeAt(f+2),c+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),f+=3);return c}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev?"iconSearch":"https://www.draw.io/iconSearch";window.TEMPLATE_PATH=window.TEMPLATE_PATH||"/templates";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";window.mxLoadResources=window.mxLoadResources||!1;
window.mxLanguage=window.mxLanguage||function(){var a="1"==urlParams.offline?"en":urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var c=localStorage.getItem(".drawio-config");null!=c&&(a=JSON.parse(c).language||null)}catch(f){isLocalStorage=!1}return a}();
window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",ca:"Catal\u00e0",cs:"\u010ce\u0161tina",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Espa\u00f1ol",fil:"Filipino",fr:"Fran\u00e7ais",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Portugu\u00eas (Brasil)",pt:"Portugu\u00eas (Portugal)",ro:"Rom\u00e2n\u0103",fi:"Suomi",sv:"Svenska",vi:"Ti\u1ebfng Vi\u1ec7t",tr:"T\u00fcrk\u00e7e",el:"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
@@ -225,8 +225,8 @@ mxRectangle.prototype.height=null;mxRectangle.prototype.setRect=function(a,c,f,d
mxRectangle.prototype.add=function(a){if(null!=a){var c=Math.min(this.x,a.x),f=Math.min(this.y,a.y),d=Math.max(this.x+this.width,a.x+a.width);a=Math.max(this.y+this.height,a.y+a.height);this.x=c;this.y=f;this.width=d-c;this.height=a-f}};mxRectangle.prototype.intersect=function(a){if(null!=a){var c=this.x+this.width,f=a.x+a.width,d=this.y+this.height,b=a.y+a.height;this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.width=Math.min(c,f)-this.x;this.height=Math.min(d,b)-this.y}};
mxRectangle.prototype.grow=function(a){this.x-=a;this.y-=a;this.width+=2*a;this.height+=2*a};mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)};mxRectangle.prototype.rotate90=function(){var a=(this.width-this.height)/2;this.x+=a;this.y-=a;a=this.width;this.width=this.height;this.height=a};mxRectangle.prototype.equals=function(a){return null!=a&&a.x==this.x&&a.y==this.y&&a.width==this.width&&a.height==this.height};
mxRectangle.fromRectangle=function(a){return new mxRectangle(a.x,a.y,a.width,a.height)};
-var mxEffects={animateChanges:function(a,c,f){var d=0,b=function(){for(var g=!1,k=0;k<c.length;k++){var l=c[k];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var n=a.getView().getState(l.cell||l.child,!1);if(null!=n)if(g=!0,l.constructor!=mxGeometryChange||a.model.isEdge(l.cell))mxUtils.setOpacity(n.shape.node,100*d/10);else{var m=a.getView().scale,p=(l.geometry.x-l.previous.x)*m,q=(l.geometry.y-
-l.previous.y)*m,r=(l.geometry.width-l.previous.width)*m,m=(l.geometry.height-l.previous.height)*m;0==d?(n.x-=p,n.y-=q,n.width-=r,n.height-=m):(n.x+=p/10,n.y+=q/10,n.width+=r/10,n.height+=m/10);a.cellRenderer.redraw(n);mxEffects.cascadeOpacity(a,l.cell,100*d/10)}}}10>d&&g?(d++,window.setTimeout(b,e)):null!=f&&f()},e=30;b()},cascadeOpacity:function(a,c,f){for(var d=a.model.getChildCount(c),b=0;b<d;b++){var e=a.model.getChildAt(c,b),g=a.getView().getState(e);null!=g&&(mxUtils.setOpacity(g.shape.node,
+var mxEffects={animateChanges:function(a,c,f){var d=0,b=function(){for(var g=!1,k=0;k<c.length;k++){var l=c[k];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var n=a.getView().getState(l.cell||l.child,!1);if(null!=n)if(g=!0,l.constructor!=mxGeometryChange||a.model.isEdge(l.cell))mxUtils.setOpacity(n.shape.node,100*d/10);else{var m=a.getView().scale,p=(l.geometry.x-l.previous.x)*m,r=(l.geometry.y-
+l.previous.y)*m,s=(l.geometry.width-l.previous.width)*m,m=(l.geometry.height-l.previous.height)*m;0==d?(n.x-=p,n.y-=r,n.width-=s,n.height-=m):(n.x+=p/10,n.y+=r/10,n.width+=s/10,n.height+=m/10);a.cellRenderer.redraw(n);mxEffects.cascadeOpacity(a,l.cell,100*d/10)}}}10>d&&g?(d++,window.setTimeout(b,e)):null!=f&&f()},e=30;b()},cascadeOpacity:function(a,c,f){for(var d=a.model.getChildCount(c),b=0;b<d;b++){var e=a.model.getChildAt(c,b),g=a.getView().getState(e);null!=g&&(mxUtils.setOpacity(g.shape.node,
f),mxEffects.cascadeOpacity(a,e,f))}c=a.model.getEdges(c);if(null!=c)for(b=0;b<c.length;b++)d=a.getView().getState(c[b]),null!=d&&mxUtils.setOpacity(d.shape.node,f)},fadeOut:function(a,c,f,d,b,e){d=d||40;b=b||30;var g=c||100;mxUtils.setOpacity(a,g);if(e||null==e){var k=function(){g=Math.max(g-d,0);mxUtils.setOpacity(a,g);0<g?window.setTimeout(k,b):(a.style.visibility="hidden",f&&a.parentNode&&a.parentNode.removeChild(a))};window.setTimeout(k,b)}else a.style.visibility="hidden",f&&a.parentNode&&a.parentNode.removeChild(a)}},
mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(a){null!=a.style&&(a.style.cursor="");a=a.childNodes;if(null!=a)for(var c=a.length,f=0;f<c;f+=1)mxUtils.removeCursors(a[f])},getCurrentStyle:function(){return mxClient.IS_IE?function(a){return null!=a?a.currentStyle:null}:function(a){return null!=a?window.getComputedStyle(a,""):null}}(),parseCssNumber:function(a){"thin"==
a?a="2":"medium"==a?a="4":"thick"==a&&(a="6");a=parseFloat(a);isNaN(a)&&(a=0);return a},setPrefixedStyle:function(){var a=null;mxClient.IS_OT?a="O":mxClient.IS_SF||mxClient.IS_GC?a="Webkit":mxClient.IS_MT?a="Moz":mxClient.IS_IE&&9<=document.documentMode&&10>document.documentMode&&(a="ms");return function(c,f,d){c[f]=d;null!=a&&0<f.length&&(f=a+f.substring(0,1).toUpperCase()+f.substring(1),c[f]=d)}}(),hasScrollbars:function(a){a=mxUtils.getCurrentStyle(a);return null!=a&&("scroll"==a.overflow||"auto"==
@@ -249,8 +249,8 @@ c(b))},g)})(a[k],k);0==d&&c(b)},post:function(a,c,f,d){return(new mxXmlRequest(a
a?a=f:a==mxConstants.NONE&&(a=null);return a},clone:function(a,c,f){f=null!=f?f:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,b;for(b in a)if(b!=mxObjectIdentity.FIELD_NAME&&(null==c||0>mxUtils.indexOf(c,b)))d[b]=!f&&"object"==typeof a[b]?mxUtils.clone(a[b]):a[b]}return d},equalPoints:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c)for(var f=0;f<a.length;f++)if(a[f]==c[f]||null!=a[f]&&!a[f].equals(c[f]))return!1;
return!0},equalEntries:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c){var f=0,d;for(d in c)f++;for(d in a)if(f--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(c[d]))&&a[d]!=c[d])return!1}return 0==f},removeDuplicates:function(a){for(var c=new mxDictionary,f=[],d=0;d<a.length;d++)c.get(a[d])||(f.push(a[d]),c.put(a[d],!0));return f},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,c){var f=function(){};f.prototype=
c.prototype;a.prototype=new f;a.prototype.constructor=a},toString:function(a){var c="",f;for(f in a)try{if(null==a[f])c+=f+" \x3d [null]\n";else if("function"==typeof a[f])c+=f+" \x3d\x3e [Function]\n";else if("object"==typeof a[f])var d=mxUtils.getFunctionName(a[f].constructor),c=c+(f+" \x3d\x3e ["+d+"]\n");else c+=f+" \x3d "+a[f]+"\n"}catch(b){c+=f+"\x3d"+b.message}return c},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,c,f,d,b,e,g,
-k,l){k-=a;l-=c;if(0===f||0===d)return q;f=Math.abs(f);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(b*Math.PI/180),q=Math.sin(b*Math.PI/180);b=p*n+q*m;var n=-1*q*n+p*m,m=b*b,r=n*n,s=f*f,t=d*d,u=m/s+r/t;1<u?(f*=Math.sqrt(u),d*=Math.sqrt(u),e=0):(u=1,e===g&&(u=-1),e=u*Math.sqrt((s*t-s*r-t*m)/(s*r+t*m)));m=e*f*n/d;r=-1*e*d*b/f;k=p*m-q*r+k/2;l=q*m+p*r+l/2;s=Math.atan2((n-r)/d,(b-m)/f)-Math.atan2(0,1);e=0<=s?s:2*Math.PI+s;s=Math.atan2((-n-r)/d,(-b-m)/f)-Math.atan2((n-r)/d,(b-m)/f);b=0<=s?s:2*Math.PI+s;0==
-g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;n=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);m=p*f;p*=d;f*=q;d*=q;for(var v=Math.cos(e),A=Math.sin(e),r=-n*(m*A+d*v),s=-n*(f*A-p*v),q=[],y=0;y<g;++y){e+=b;var v=Math.cos(e),A=Math.sin(e),t=m*v-d*A+k,u=f*v+p*A+l,x=-n*(m*A+d*v),v=-n*(f*A-p*v),A=6*y;q[A]=Number(r+a);q[A+1]=Number(s+c);q[A+2]=Number(t-x+a);q[A+3]=Number(u-v+c);q[A+4]=Number(t+a);q[A+5]=Number(u+c);r=t+x;s=u+v}return q},getBoundingBox:function(a,
+k,l){k-=a;l-=c;if(0===f||0===d)return r;f=Math.abs(f);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(b*Math.PI/180),r=Math.sin(b*Math.PI/180);b=p*n+r*m;var n=-1*r*n+p*m,m=b*b,s=n*n,q=f*f,t=d*d,u=m/q+s/t;1<u?(f*=Math.sqrt(u),d*=Math.sqrt(u),e=0):(u=1,e===g&&(u=-1),e=u*Math.sqrt((q*t-q*s-t*m)/(q*s+t*m)));m=e*f*n/d;s=-1*e*d*b/f;k=p*m-r*s+k/2;l=r*m+p*s+l/2;q=Math.atan2((n-s)/d,(b-m)/f)-Math.atan2(0,1);e=0<=q?q:2*Math.PI+q;q=Math.atan2((-n-s)/d,(-b-m)/f)-Math.atan2((n-s)/d,(b-m)/f);b=0<=q?q:2*Math.PI+q;0==
+g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;n=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);m=p*f;p*=d;f*=r;d*=r;for(var v=Math.cos(e),z=Math.sin(e),s=-n*(m*z+d*v),q=-n*(f*z-p*v),r=[],y=0;y<g;++y){e+=b;var v=Math.cos(e),z=Math.sin(e),t=m*v-d*z+k,u=f*v+p*z+l,x=-n*(m*z+d*v),v=-n*(f*z-p*v),z=6*y;r[z]=Number(s+a);r[z+1]=Number(q+c);r[z+2]=Number(t-x+a);r[z+3]=Number(u-v+c);r[z+4]=Number(t+a);r[z+5]=Number(u+c);s=t+x;q=u+v}return r},getBoundingBox:function(a,
c,f){var d=null;if(null!=a&&null!=c&&0!=c){c=mxUtils.toRadians(c);var d=Math.cos(c),b=Math.sin(c);f=null!=f?f:new mxPoint(a.x+a.width/2,a.y+a.height/2);var e=new mxPoint(a.x,a.y);c=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(c.x,a.y+a.height);a=new mxPoint(a.x,g.y);e=mxUtils.getRotatedPoint(e,d,b,f);c=mxUtils.getRotatedPoint(c,d,b,f);g=mxUtils.getRotatedPoint(g,d,b,f);a=mxUtils.getRotatedPoint(a,d,b,f);d=new mxRectangle(e.x,e.y,0,0);d.add(new mxRectangle(c.x,c.y,0,0));d.add(new mxRectangle(g.x,
g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,c,f,d){d=null!=d?d:new mxPoint;var b=a.x-d.x;a=a.y-d.y;return new mxPoint(b*c-a*f+d.x,a*c+b*f+d.y)},getPortConstraints:function(a,c,f,d){c=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==c)return d;d=c.toString();c=mxConstants.DIRECTION_MASK_NONE;f=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(f=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
f?(a=1,135<=f&&(a=2)):-45>f&&(a=3,-135>=f&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:c|=mxConstants.DIRECTION_MASK_EAST;break;case 2:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:c|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_WEST;break;case 1:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:c|=mxConstants.DIRECTION_MASK_EAST;break;case 3:c|=
@@ -479,15 +479,15 @@ mxXmlCanvas2D.prototype.image=function(a,c,f,d,b,e,g,k){b=this.converter.convert
mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin"));this.lastY=this.lastX=0};mxXmlCanvas2D.prototype.moveTo=function(a,c){var f=this.createElement("move");f.setAttribute("x",this.format(a));f.setAttribute("y",this.format(c));this.root.appendChild(f);this.lastX=a;this.lastY=c};
mxXmlCanvas2D.prototype.lineTo=function(a,c){var f=this.createElement("line");f.setAttribute("x",this.format(a));f.setAttribute("y",this.format(c));this.root.appendChild(f);this.lastX=a;this.lastY=c};mxXmlCanvas2D.prototype.quadTo=function(a,c,f,d){var b=this.createElement("quad");b.setAttribute("x1",this.format(a));b.setAttribute("y1",this.format(c));b.setAttribute("x2",this.format(f));b.setAttribute("y2",this.format(d));this.root.appendChild(b);this.lastX=f;this.lastY=d};
mxXmlCanvas2D.prototype.curveTo=function(a,c,f,d,b,e){var g=this.createElement("curve");g.setAttribute("x1",this.format(a));g.setAttribute("y1",this.format(c));g.setAttribute("x2",this.format(f));g.setAttribute("y2",this.format(d));g.setAttribute("x3",this.format(b));g.setAttribute("y3",this.format(e));this.root.appendChild(g);this.lastX=b;this.lastY=e};mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))};
-mxXmlCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p,q){if(this.textEnabled&&null!=b){mxUtils.isNode(b)&&(b=mxUtils.getOuterHtml(b));var r=this.createElement("text");r.setAttribute("x",this.format(a));r.setAttribute("y",this.format(c));r.setAttribute("w",this.format(f));r.setAttribute("h",this.format(d));r.setAttribute("str",b);null!=e&&r.setAttribute("align",e);null!=g&&r.setAttribute("valign",g);r.setAttribute("wrap",k?"1":"0");null==l&&(l="");r.setAttribute("format",l);null!=n&&r.setAttribute("overflow",
-n);null!=m&&r.setAttribute("clip",m?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
+mxXmlCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p,r){if(this.textEnabled&&null!=b){mxUtils.isNode(b)&&(b=mxUtils.getOuterHtml(b));var s=this.createElement("text");s.setAttribute("x",this.format(a));s.setAttribute("y",this.format(c));s.setAttribute("w",this.format(f));s.setAttribute("h",this.format(d));s.setAttribute("str",b);null!=e&&s.setAttribute("align",e);null!=g&&s.setAttribute("valign",g);s.setAttribute("wrap",k?"1":"0");null==l&&(l="");s.setAttribute("format",l);null!=n&&s.setAttribute("overflow",
+n);null!=m&&s.setAttribute("clip",m?"1":"0");null!=p&&s.setAttribute("rotation",p);null!=r&&s.setAttribute("dir",r);this.root.appendChild(s)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,c){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=c?c:!1;var f=null;if(a.ownerDocument!=document)for(f=a;null!=f&&"svg"!=f.nodeName;)f=f.parentNode;null!=f&&(0<f.getElementsByTagName("defs").length&&(this.defs=f.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=f.firstChild?f.insertBefore(this.defs,f.firstChild):f.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(c){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,c=a.lastIndexOf("#");0<c&&(a=a.substring(0,c));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,c){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(c||mxConstants.NS_SVG,a);var f=this.root.ownerDocument.createElement(a);null!=c&&f.setAttribute("xmlns",c);return f};
-mxSvgCanvas2D.prototype.createAlternateContent=function(a,c,f,d,b,e,g,k,l,n,m,p,q){return null!=this.foAltText?(a=this.state,c=this.createElement("text"),c.setAttribute("x",Math.round(d/2)),c.setAttribute("y",Math.round((b+a.fontSize)/2)),c.setAttribute("fill",a.fontColor||"black"),c.setAttribute("text-anchor","middle"),c.setAttribute("font-size",a.fontSize+"px"),c.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&c.setAttribute("font-weight","bold"),
+mxSvgCanvas2D.prototype.createAlternateContent=function(a,c,f,d,b,e,g,k,l,n,m,p,r){return null!=this.foAltText?(a=this.state,c=this.createElement("text"),c.setAttribute("x",Math.round(d/2)),c.setAttribute("y",Math.round((b+a.fontSize)/2)),c.setAttribute("fill",a.fontColor||"black"),c.setAttribute("text-anchor","middle"),c.setAttribute("font-size",a.fontSize+"px"),c.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&c.setAttribute("font-weight","bold"),
(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&c.setAttribute("font-style","italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&c.setAttribute("text-decoration","underline"),mxUtils.write(c,this.foAltText),c):null};
mxSvgCanvas2D.prototype.createGradientId=function(a,c,f,d,b){"#"==a.charAt(0)&&(a=a.substring(1));"#"==c.charAt(0)&&(c=c.substring(1));a=a.toLowerCase()+"-"+f;c=c.toLowerCase()+"-"+d;f=null;null==b||b==mxConstants.DIRECTION_SOUTH?f="s":b==mxConstants.DIRECTION_EAST?f="e":(d=a,a=c,c=d,b==mxConstants.DIRECTION_NORTH?f="s":b==mxConstants.DIRECTION_WEST&&(f="e"));return"mx-gradient-"+a+"-"+c+"-"+f};
mxSvgCanvas2D.prototype.getSvgGradient=function(a,c,f,d,b){var e=this.createGradientId(a,c,f,d,b),g=this.gradients[e];if(null==g){var k=this.root.ownerSVGElement,l=0,n=e+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(n);null!=g&&g.ownerSVGElement!=k;)n=e+"-"+l++,g=k.ownerDocument.getElementById(n);else n="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,c,f,d,b),g.setAttribute("id",n),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[e]=g}return g.getAttribute("id")};
@@ -508,7 +508,7 @@ mxSvgCanvas2D.prototype.rotate=function(a,c,f,d,b){if(0!=a||c||f){var e=this.sta
d;e.rotationCy=b}};mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments);this.node=this.createElement("path")};mxSvgCanvas2D.prototype.rect=function(a,c,f,d){var b=this.state,e=this.createElement("rect");e.setAttribute("x",this.format((a+b.dx)*b.scale));e.setAttribute("y",this.format((c+b.dy)*b.scale));e.setAttribute("width",this.format(f*b.scale));e.setAttribute("height",this.format(d*b.scale));this.node=e};
mxSvgCanvas2D.prototype.roundrect=function(a,c,f,d,b,e){this.rect(a,c,f,d);0<b&&this.node.setAttribute("rx",this.format(b*this.state.scale));0<e&&this.node.setAttribute("ry",this.format(e*this.state.scale))};mxSvgCanvas2D.prototype.ellipse=function(a,c,f,d){var b=this.state,e=this.createElement("ellipse");e.setAttribute("cx",Math.round((a+f/2+b.dx)*b.scale));e.setAttribute("cy",Math.round((c+d/2+b.dy)*b.scale));e.setAttribute("rx",f/2*b.scale);e.setAttribute("ry",d/2*b.scale);this.node=e};
mxSvgCanvas2D.prototype.image=function(a,c,f,d,b,e,g,k){b=this.converter.convert(b);e=null!=e?e:!0;g=null!=g?g:!1;k=null!=k?k:!1;var l=this.state;a+=l.dx;c+=l.dy;var n=this.createElement("image");n.setAttribute("x",this.format(a*l.scale));n.setAttribute("y",this.format(c*l.scale));n.setAttribute("width",this.format(f*l.scale));n.setAttribute("height",this.format(d*l.scale));null==n.setAttributeNS?n.setAttribute("xlink:href",b):n.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",b);e||n.setAttribute("preserveAspectRatio",
-"none");(1>l.alpha||1>l.fillAlpha)&&n.setAttribute("opacity",l.alpha*l.fillAlpha);b=this.state.transform||"";if(g||k){var m=e=1,p=0,q=0;g&&(e=-1,p=-f-2*a);k&&(m=-1,q=-d-2*c);b+="scale("+e+","+m+")translate("+p*l.scale+","+q*l.scale+")"}0<b.length&&n.setAttribute("transform",b);this.pointerEvents||n.setAttribute("pointer-events","none");this.root.appendChild(n);this.blockImagePointerEvents&&(n.setAttribute("style","pointer-events:none"),n=this.createElement("rect"),n.setAttribute("visibility","hidden"),
+"none");(1>l.alpha||1>l.fillAlpha)&&n.setAttribute("opacity",l.alpha*l.fillAlpha);b=this.state.transform||"";if(g||k){var m=e=1,p=0,r=0;g&&(e=-1,p=-f-2*a);k&&(m=-1,r=-d-2*c);b+="scale("+e+","+m+")translate("+p*l.scale+","+r*l.scale+")"}0<b.length&&n.setAttribute("transform",b);this.pointerEvents||n.setAttribute("pointer-events","none");this.root.appendChild(n);this.blockImagePointerEvents&&(n.setAttribute("style","pointer-events:none"),n=this.createElement("rect"),n.setAttribute("visibility","hidden"),
n.setAttribute("pointer-events","fill"),n.setAttribute("x",this.format(a*l.scale)),n.setAttribute("y",this.format(c*l.scale)),n.setAttribute("width",this.format(f*l.scale)),n.setAttribute("height",this.format(d*l.scale)),this.root.appendChild(n))};
mxSvgCanvas2D.prototype.convertHtml=function(a){if(this.useDomParser){var c=(new DOMParser).parseFromString(a,"text/html");null!=c&&(a=(new XMLSerializer).serializeToString(c.body),"\x3cbody"==a.substring(0,5)&&(a=a.substring(a.indexOf("\x3e",5)+1)),"\x3c/body\x3e"==a.substring(a.length-7,a.length)&&(a=a.substring(0,a.length-7)))}else{if(null!=document.implementation&&null!=document.implementation.createDocument){var c=document.implementation.createDocument("http://www.w3.org/1999/xhtml","html",null),
f=c.createElement("body");c.documentElement.appendChild(f);var d=document.createElement("div");d.innerHTML=a;for(a=d.firstChild;null!=a;)d=a.nextSibling,f.appendChild(c.adoptNode(a)),a=d;return f.innerHTML}c=document.createElement("textarea");c.innerHTML=a.replace(/&amp;/g,"\x26amp;amp;").replace(/&#60;/g,"\x26amp;lt;").replace(/&#62;/g,"\x26amp;gt;").replace(/&lt;/g,"\x26amp;lt;").replace(/&gt;/g,"\x26amp;gt;").replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;");a=c.value.replace(/&/g,"\x26amp;").replace(/&amp;lt;/g,
@@ -517,27 +517,27 @@ mxSvgCanvas2D.prototype.createDiv=function(a,c,f,d,b){f=this.state;d="display:in
mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d+="text-decoration:underline;");c==mxConstants.ALIGN_CENTER?d+="text-align:center;":c==mxConstants.ALIGN_RIGHT&&(d+="text-align:right;");c="";null!=f.fontBackgroundColor&&(c+="background-color:"+f.fontBackgroundColor+";");null!=f.fontBorderColor&&(c+="border:1px solid "+f.fontBorderColor+";");mxUtils.isNode(a)||(a=this.convertHtml(a),"fill"!=b&&"width"!=b?a='\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml" style\x3d"display:inline-block;text-align:inherit;text-decoration:inherit;'+
c+'"\x3e'+a+"\x3c/div\x3e":d+=c);if(!mxClient.IS_IE&&document.createElementNS)return b=document.createElementNS("http://www.w3.org/1999/xhtml","div"),b.setAttribute("style",d),mxUtils.isNode(a)?this.root.ownerDocument!=document?b.appendChild(a.cloneNode(!0)):b.appendChild(a):b.innerHTML=a,b;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,c,f,d,b,e,g,k,l,n,m){if(null!=m&&null!=m.firstChild&&null!=m.firstChild.firstChild&&null!=m.firstChild.firstChild.firstChild){m=m.firstChild;var p=m.firstChild,q=p.firstChild;n=null!=n?n:0;var r=this.state;a+=r.dx;c+=r.dy;l?(q.style.maxHeight=Math.round(d)+"px",q.style.maxWidth=Math.round(f)+"px"):"fill"==k?(q.style.width=Math.round(f+1)+"px",q.style.height=Math.round(d+1)+"px"):"width"==k&&(q.style.width=Math.round(f+1)+"px",0<d&&(q.style.maxHeight=Math.round(d)+
-"px"));g&&0<f&&(q.style.width=Math.round(f+1)+"px");var s=0,t=0,t=q;null!=t.firstChild&&"DIV"==t.firstChild.nodeName&&(t=t.firstChild);s=(null!=m.mxCachedOffsetWidth?m.mxCachedOffsetWidth:t.offsetWidth)+2;g&&"fill"!=k&&(l&&(s=Math.min(s,f)),q.style.width=s+"px");s=(null!=m.mxCachedFinalOffsetWidth?m.mxCachedFinalOffsetWidth:t.offsetWidth)+2;t=(null!=m.mxCachedFinalOffsetHeight?m.mxCachedFinalOffsetHeight:t.offsetHeight)-2;l&&(t=Math.min(t,d),s=Math.min(s,f));"width"==k?d=t:"fill"!=k&&(f=s,d=t);l=
-g=0;b==mxConstants.ALIGN_CENTER?g-=f/2:b==mxConstants.ALIGN_RIGHT&&(g-=f);a+=g;e==mxConstants.ALIGN_MIDDLE?l-=d/2:e==mxConstants.ALIGN_BOTTOM&&(l-=d);"fill"!=k&&mxClient.IS_FF&&mxClient.IS_WIN&&(l-=2);c+=l;b=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(b+="rotate("+r.rotation+","+f/2+","+d/2+")",c=this.rotatePoint((a+f/2)*r.scale,(c+d/2)*r.scale,r.rotation,r.rotationCx,r.rotationCy),a=c.x-f*r.scale/2,c=c.y-d*r.scale/2):(a*=r.scale,c*=r.scale);0!=n&&(b+="rotate("+n+","+-g+","+
+mxSvgCanvas2D.prototype.updateText=function(a,c,f,d,b,e,g,k,l,n,m){if(null!=m&&null!=m.firstChild&&null!=m.firstChild.firstChild&&null!=m.firstChild.firstChild.firstChild){m=m.firstChild;var p=m.firstChild,r=p.firstChild;n=null!=n?n:0;var s=this.state;a+=s.dx;c+=s.dy;l?(r.style.maxHeight=Math.round(d)+"px",r.style.maxWidth=Math.round(f)+"px"):"fill"==k?(r.style.width=Math.round(f+1)+"px",r.style.height=Math.round(d+1)+"px"):"width"==k&&(r.style.width=Math.round(f+1)+"px",0<d&&(r.style.maxHeight=Math.round(d)+
+"px"));g&&0<f&&(r.style.width=Math.round(f+1)+"px");var q=0,t=0,t=r;null!=t.firstChild&&"DIV"==t.firstChild.nodeName&&(t=t.firstChild);q=(null!=m.mxCachedOffsetWidth?m.mxCachedOffsetWidth:t.offsetWidth)+2;g&&"fill"!=k&&(l&&(q=Math.min(q,f)),r.style.width=q+"px");q=(null!=m.mxCachedFinalOffsetWidth?m.mxCachedFinalOffsetWidth:t.offsetWidth)+2;t=(null!=m.mxCachedFinalOffsetHeight?m.mxCachedFinalOffsetHeight:t.offsetHeight)-2;l&&(t=Math.min(t,d),q=Math.min(q,f));"width"==k?d=t:"fill"!=k&&(f=q,d=t);l=
+g=0;b==mxConstants.ALIGN_CENTER?g-=f/2:b==mxConstants.ALIGN_RIGHT&&(g-=f);a+=g;e==mxConstants.ALIGN_MIDDLE?l-=d/2:e==mxConstants.ALIGN_BOTTOM&&(l-=d);"fill"!=k&&mxClient.IS_FF&&mxClient.IS_WIN&&(l-=2);c+=l;b=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(b+="rotate("+s.rotation+","+f/2+","+d/2+")",c=this.rotatePoint((a+f/2)*s.scale,(c+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=c.x-f*s.scale/2,c=c.y-d*s.scale/2):(a*=s.scale,c*=s.scale);0!=n&&(b+="rotate("+n+","+-g+","+
-l+")");m.setAttribute("transform","translate("+Math.round(a)+","+Math.round(c)+")"+b);p.setAttribute("width",Math.round(Math.max(1,f)));p.setAttribute("height",Math.round(Math.max(1,d)))}};
-mxSvgCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p,q){if(this.textEnabled&&null!=b){p=null!=p?p:0;var r=this.state;a+=r.dx;c+=r.dy;if(this.foEnabled&&"html"==l){var s="vertical-align:top;";m?s+="overflow:hidden;max-height:"+Math.round(d)+"px;max-width:"+Math.round(f)+"px;":"fill"==n?s+="width:"+Math.round(f+1)+"px;height:"+Math.round(d+1)+"px;overflow:hidden;":"width"==n&&(s+="width:"+Math.round(f+1)+"px;",0<d&&(s+="max-height:"+Math.round(d)+"px;overflow:hidden;"));var s=k&&0<f?s+("width:"+
-Math.round(f+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):s+"white-space:nowrap;",t=this.createElement("g");1>r.alpha&&t.setAttribute("opacity",r.alpha);var u=this.createElement("foreignObject");u.setAttribute("style","overflow:visible;");u.setAttribute("pointer-events","all");s=this.createDiv(b,e,g,s,n);if(null!=s){null!=q&&s.setAttribute("dir",q);t.appendChild(u);this.root.appendChild(t);var v=0,A=0;q=v=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var y=
-document.createElement("div");y.style.cssText=s.getAttribute("style");y.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";y.style.position="absolute";y.style.visibility="hidden";A=document.createElement("div");A.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";A.style.wordWrap=mxConstants.WORD_WRAP;A.innerHTML=mxUtils.isNode(b)?b.outerHTML:b;y.appendChild(A);document.body.appendChild(y);8!=document.documentMode&&9!=document.documentMode&&null!=r.fontBorderColor&&(v+=2,q+=2);if(k&&0<
-f){var x=A.offsetWidth;if(!m&&k&&0<f&&this.root.ownerDocument!=document&&"fill"!=n){var D=y.style.whiteSpace;A.style.whiteSpace="nowrap";x<A.offsetWidth&&(y.style.whiteSpace=D)}m&&(x=Math.min(x,f));y.style.width=x+"px";v=A.offsetWidth+v+0;A=A.offsetHeight+q;y.style.display="inline-block";y.style.position="";y.style.visibility="";y.style.width=v+"px";s.setAttribute("style",y.style.cssText)}else v=A.offsetWidth+v,A=A.offsetHeight+q;y.parentNode.removeChild(y);u.appendChild(s)}else this.root.ownerDocument!=
-document?(s.style.visibility="hidden",document.body.appendChild(s)):u.appendChild(s),y=s,null!=y.firstChild&&"DIV"==y.firstChild.nodeName&&(y=y.firstChild,k&&"break-word"==s.style.wordWrap&&(y.style.width="100%")),x=y.offsetWidth,0==x&&s.parentNode==u&&(s.style.visibility="hidden",document.body.appendChild(s),x=y.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!m&&k&&(0<f&&this.root.ownerDocument!=document&&"fill"!=n&&"width"!=n)&&(D=s.style.whiteSpace,s.style.whiteSpace="nowrap",x<y.offsetWidth&&
-(s.style.whiteSpace=D)),v=x+v-1,k&&"fill"!=n&&"width"!=n&&(m&&(v=Math.min(v,f)),s.style.width=v+"px"),v=y.offsetWidth,A=y.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=v,t.mxCachedFinalOffsetHeight=A),A-=q,s.parentNode!=u&&(u.appendChild(s),s.style.visibility="");m&&(A=Math.min(A,d),v=Math.min(v,f));"width"==n?d=A:"fill"!=n&&(f=v,d=A);1>r.alpha&&t.setAttribute("opacity",r.alpha);q=s=0;e==mxConstants.ALIGN_CENTER?s-=f/2:e==mxConstants.ALIGN_RIGHT&&(s-=f);a+=s;g==mxConstants.ALIGN_MIDDLE?
-q-=d/2:g==mxConstants.ALIGN_BOTTOM&&(q-=d);"fill"!=n&&mxClient.IS_FF&&mxClient.IS_WIN&&(q-=2);c+=q;y=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(y+="rotate("+r.rotation+","+f/2+","+d/2+")",c=this.rotatePoint((a+f/2)*r.scale,(c+d/2)*r.scale,r.rotation,r.rotationCx,r.rotationCy),a=c.x-f*r.scale/2,c=c.y-d*r.scale/2):(a*=r.scale,c*=r.scale);0!=p&&(y+="rotate("+p+","+-s+","+-q+")");t.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(c)+this.foOffset)+
-")"+y);u.setAttribute("width",Math.round(Math.max(1,f)));u.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(u,a,c,f,d,b,e,g,k,l,n,m,p),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),f=this.createElement("switch"),f.appendChild(u),f.appendChild(a),t.appendChild(f)))}}else this.plainText(a,c,f,d,b,e,g,k,n,m,p,q)}};
+mxSvgCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p,r){if(this.textEnabled&&null!=b){p=null!=p?p:0;var s=this.state;a+=s.dx;c+=s.dy;if(this.foEnabled&&"html"==l){var q="vertical-align:top;";m?q+="overflow:hidden;max-height:"+Math.round(d)+"px;max-width:"+Math.round(f)+"px;":"fill"==n?q+="width:"+Math.round(f+1)+"px;height:"+Math.round(d+1)+"px;overflow:hidden;":"width"==n&&(q+="width:"+Math.round(f+1)+"px;",0<d&&(q+="max-height:"+Math.round(d)+"px;overflow:hidden;"));var q=k&&0<f?q+("width:"+
+Math.round(f+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):q+"white-space:nowrap;",t=this.createElement("g");1>s.alpha&&t.setAttribute("opacity",s.alpha);var u=this.createElement("foreignObject");u.setAttribute("style","overflow:visible;");u.setAttribute("pointer-events","all");q=this.createDiv(b,e,g,q,n);if(null!=q){null!=r&&q.setAttribute("dir",r);t.appendChild(u);this.root.appendChild(t);var v=0,z=0;r=v=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(b)?b.outerHTML:b;y.appendChild(z);document.body.appendChild(y);8!=document.documentMode&&9!=document.documentMode&&null!=s.fontBorderColor&&(v+=2,r+=2);if(k&&0<
+f){var x=z.offsetWidth;if(!m&&k&&0<f&&this.root.ownerDocument!=document&&"fill"!=n){var D=y.style.whiteSpace;z.style.whiteSpace="nowrap";x<z.offsetWidth&&(y.style.whiteSpace=D)}m&&(x=Math.min(x,f));y.style.width=x+"px";v=z.offsetWidth+v+0;z=z.offsetHeight+r;y.style.display="inline-block";y.style.position="";y.style.visibility="";y.style.width=v+"px";q.setAttribute("style",y.style.cssText)}else v=z.offsetWidth+v,z=z.offsetHeight+r;y.parentNode.removeChild(y);u.appendChild(q)}else this.root.ownerDocument!=
+document?(q.style.visibility="hidden",document.body.appendChild(q)):u.appendChild(q),y=q,null!=y.firstChild&&"DIV"==y.firstChild.nodeName&&(y=y.firstChild,k&&"break-word"==q.style.wordWrap&&(y.style.width="100%")),x=y.offsetWidth,0==x&&q.parentNode==u&&(q.style.visibility="hidden",document.body.appendChild(q),x=y.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!m&&k&&(0<f&&this.root.ownerDocument!=document&&"fill"!=n&&"width"!=n)&&(D=q.style.whiteSpace,q.style.whiteSpace="nowrap",x<y.offsetWidth&&
+(q.style.whiteSpace=D)),v=x+v-1,k&&"fill"!=n&&"width"!=n&&(m&&(v=Math.min(v,f)),q.style.width=v+"px"),v=y.offsetWidth,z=y.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=v,t.mxCachedFinalOffsetHeight=z),z-=r,q.parentNode!=u&&(u.appendChild(q),q.style.visibility="");m&&(z=Math.min(z,d),v=Math.min(v,f));"width"==n?d=z:"fill"!=n&&(f=v,d=z);1>s.alpha&&t.setAttribute("opacity",s.alpha);r=q=0;e==mxConstants.ALIGN_CENTER?q-=f/2:e==mxConstants.ALIGN_RIGHT&&(q-=f);a+=q;g==mxConstants.ALIGN_MIDDLE?
+r-=d/2:g==mxConstants.ALIGN_BOTTOM&&(r-=d);"fill"!=n&&mxClient.IS_FF&&mxClient.IS_WIN&&(r-=2);c+=r;y=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(y+="rotate("+s.rotation+","+f/2+","+d/2+")",c=this.rotatePoint((a+f/2)*s.scale,(c+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=c.x-f*s.scale/2,c=c.y-d*s.scale/2):(a*=s.scale,c*=s.scale);0!=p&&(y+="rotate("+p+","+-q+","+-r+")");t.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(c)+this.foOffset)+
+")"+y);u.setAttribute("width",Math.round(Math.max(1,f)));u.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(u,a,c,f,d,b,e,g,k,l,n,m,p),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),f=this.createElement("switch"),f.appendChild(u),f.appendChild(a),t.appendChild(f)))}}else this.plainText(a,c,f,d,b,e,g,k,n,m,p,r)}};
mxSvgCanvas2D.prototype.createClip=function(a,c,f,d){a=Math.round(a);c=Math.round(c);f=Math.round(f);d=Math.round(d);for(var b="mx-clip-"+a+"-"+c+"-"+f+"-"+d,e=0,g=b+"-"+e;null!=document.getElementById(g);)g=b+"-"+ ++e;clip=this.createElement("clipPath");clip.setAttribute("id",g);b=this.createElement("rect");b.setAttribute("x",a);b.setAttribute("y",c);b.setAttribute("width",f);b.setAttribute("height",d);clip.appendChild(b);return clip};
-mxSvgCanvas2D.prototype.plainText=function(a,c,f,d,b,e,g,k,l,n,m,p){m=null!=m?m:0;k=this.state;var q=k.fontSize,r=this.createElement("g"),s=k.transform||"";this.updateFont(r);0!=m&&(s+="rotate("+m+","+this.format(a*k.scale)+","+this.format(c*k.scale)+")");null!=p&&r.setAttribute("direction",p);n&&0<f&&0<d&&(p=a,m=c,e==mxConstants.ALIGN_CENTER?p-=f/2:e==mxConstants.ALIGN_RIGHT&&(p-=f),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?m-=d/2:g==mxConstants.ALIGN_BOTTOM&&(m-=d)),m=this.createClip(p*k.scale-2,
-m*k.scale-2,f*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(m):this.root.appendChild(m),!mxClient.IS_CHROME_APP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&this.root.ownerDocument==document?(p=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),r.setAttribute("clip-path","url("+p+"#"+m.getAttribute("id")+")")):r.setAttribute("clip-path","url(#"+m.getAttribute("id")+")"));m=e==mxConstants.ALIGN_RIGHT?"end":e==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=m&&r.setAttribute("text-anchor",
-m);(!this.styleEnabled||q!=mxConstants.DEFAULT_FONTSIZE)&&r.setAttribute("font-size",q*k.scale+"px");0<s.length&&r.setAttribute("transform",s);1>k.alpha&&r.setAttribute("opacity",k.alpha);s=b.split("\n");p=Math.round(q*mxConstants.LINE_HEIGHT);var t=q+(s.length-1)*p;m=c+q-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?m-=d/2:(n=(this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t)/2,m-=n+1):g==mxConstants.ALIGN_BOTTOM&&("fill"==l?m-=d:(n=this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t,m-=n+2));for(n=0;n<s.length;n++)0<
-s[n].length&&0<mxUtils.trim(s[n]).length&&(q=this.createElement("text"),q.setAttribute("x",this.format(a*k.scale)+this.textOffset),q.setAttribute("y",this.format(m*k.scale)+this.textOffset),mxUtils.write(q,s[n]),r.appendChild(q)),m+=p;this.root.appendChild(r);this.addTextBackground(r,b,a,c,f,"fill"==l?d:t,e,g,l)};
+mxSvgCanvas2D.prototype.plainText=function(a,c,f,d,b,e,g,k,l,n,m,p){m=null!=m?m:0;k=this.state;var r=k.fontSize,s=this.createElement("g"),q=k.transform||"";this.updateFont(s);0!=m&&(q+="rotate("+m+","+this.format(a*k.scale)+","+this.format(c*k.scale)+")");null!=p&&s.setAttribute("direction",p);n&&0<f&&0<d&&(p=a,m=c,e==mxConstants.ALIGN_CENTER?p-=f/2:e==mxConstants.ALIGN_RIGHT&&(p-=f),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?m-=d/2:g==mxConstants.ALIGN_BOTTOM&&(m-=d)),m=this.createClip(p*k.scale-2,
+m*k.scale-2,f*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(m):this.root.appendChild(m),!mxClient.IS_CHROME_APP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&this.root.ownerDocument==document?(p=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),s.setAttribute("clip-path","url("+p+"#"+m.getAttribute("id")+")")):s.setAttribute("clip-path","url(#"+m.getAttribute("id")+")"));m=e==mxConstants.ALIGN_RIGHT?"end":e==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=m&&s.setAttribute("text-anchor",
+m);(!this.styleEnabled||r!=mxConstants.DEFAULT_FONTSIZE)&&s.setAttribute("font-size",r*k.scale+"px");0<q.length&&s.setAttribute("transform",q);1>k.alpha&&s.setAttribute("opacity",k.alpha);q=b.split("\n");p=Math.round(r*mxConstants.LINE_HEIGHT);var t=r+(q.length-1)*p;m=c+r-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?m-=d/2:(n=(this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t)/2,m-=n+1):g==mxConstants.ALIGN_BOTTOM&&("fill"==l?m-=d:(n=this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t,m-=n+2));for(n=0;n<q.length;n++)0<
+q[n].length&&0<mxUtils.trim(q[n]).length&&(r=this.createElement("text"),r.setAttribute("x",this.format(a*k.scale)+this.textOffset),r.setAttribute("y",this.format(m*k.scale)+this.textOffset),mxUtils.write(r,q[n]),s.appendChild(r)),m+=p;this.root.appendChild(s);this.addTextBackground(s,b,a,c,f,"fill"==l?d:t,e,g,l)};
mxSvgCanvas2D.prototype.updateFont=function(a){var c=this.state;a.setAttribute("fill",c.fontColor);(!this.styleEnabled||c.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&a.setAttribute("font-family",c.fontFamily);(c.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&a.setAttribute("font-weight","bold");(c.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&a.setAttribute("font-style","italic");(c.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&a.setAttribute("text-decoration",
"underline")};
mxSvgCanvas2D.prototype.addTextBackground=function(a,c,f,d,b,e,g,k,l){var n=this.state;if(null!=n.fontBackgroundColor||null!=n.fontBorderColor){var m=null;if("fill"==l||"width"==l)g==mxConstants.ALIGN_CENTER?f-=b/2:g==mxConstants.ALIGN_RIGHT&&(f-=b),k==mxConstants.ALIGN_MIDDLE?d-=e/2:k==mxConstants.ALIGN_BOTTOM&&(d-=e),m=new mxRectangle((f+1)*n.scale,d*n.scale,(b-2)*n.scale,(e+2)*n.scale);else if(null!=a.getBBox&&this.root.ownerDocument==document)try{var m=a.getBBox(),p=mxClient.IS_IE&&mxClient.IS_SVG,
-m=new mxRectangle(m.x,m.y+(p?0:1),m.width,m.height+(p?1:0))}catch(q){}else m=document.createElement("div"),m.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?n.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,m.style.fontSize=n.fontSize+"px",m.style.fontFamily=n.fontFamily,m.style.whiteSpace="nowrap",m.style.position="absolute",m.style.visibility="hidden",m.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",m.style.zoom="1",(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
+m=new mxRectangle(m.x,m.y+(p?0:1),m.width,m.height+(p?1:0))}catch(r){}else m=document.createElement("div"),m.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?n.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,m.style.fontSize=n.fontSize+"px",m.style.fontFamily=n.fontFamily,m.style.whiteSpace="nowrap",m.style.position="absolute",m.style.visibility="hidden",m.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",m.style.zoom="1",(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
(m.style.fontWeight="bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(m.style.fontStyle="italic"),c=mxUtils.htmlEntities(c,!1),m.innerHTML=c.replace(/\n/g,"\x3cbr/\x3e"),document.body.appendChild(m),b=m.offsetWidth,e=m.offsetHeight,m.parentNode.removeChild(m),g==mxConstants.ALIGN_CENTER?f-=b/2:g==mxConstants.ALIGN_RIGHT&&(f-=b),k==mxConstants.ALIGN_MIDDLE?d-=e/2:k==mxConstants.ALIGN_BOTTOM&&(d-=e),m=new mxRectangle((f+1)*n.scale,(d+2)*n.scale,b*n.scale,(e+1)*n.scale);null!=
m&&(c=this.createElement("rect"),c.setAttribute("fill",n.fontBackgroundColor||"none"),c.setAttribute("stroke",n.fontBorderColor||"none"),c.setAttribute("x",Math.floor(m.x-1)),c.setAttribute("y",Math.floor(m.y-1)),c.setAttribute("width",Math.ceil(m.width+2)),c.setAttribute("height",Math.ceil(m.height)),n=null!=n.fontBorderColor?Math.max(1,this.format(n.scale)):0,c.setAttribute("stroke-width",n),this.root.ownerDocument==document&&1==mxUtils.mod(n,2)&&c.setAttribute("transform","translate(0.5, 0.5)"),
a.insertBefore(c,a.firstChild))}};mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)};mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)};mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(a){mxAbstractCanvas2D.call(this);this.root=a};mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D);mxVmlCanvas2D.prototype.node=null;mxVmlCanvas2D.prototype.textEnabled=!0;mxVmlCanvas2D.prototype.moveOp="m";mxVmlCanvas2D.prototype.lineOp="l";
@@ -559,26 +559,26 @@ mxVmlCanvas2D.prototype.image=function(a,c,f,d,b,e,g,k){var l=null;e?(l=this.cre
mxVmlCanvas2D.prototype.createDiv=function(a,c,f,d){f=this.createElement("div");var b=this.state,e="";null!=b.fontBackgroundColor&&(e+="background-color:"+b.fontBackgroundColor+";");null!=b.fontBorderColor&&(e+="border:1px solid "+b.fontBorderColor+";");mxUtils.isNode(a)?f.appendChild(a):"fill"!=d&&"width"!=d?(d=this.createElement("div"),d.style.cssText=e,d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",d.style.zoom="1",d.style.textDecoration="inherit",d.innerHTML=a,f.appendChild(d)):(f.style.cssText=
e,f.innerHTML=a);a=f.style;a.fontSize=b.fontSize/this.vmlScale+"px";a.fontFamily=b.fontFamily;a.color=b.fontColor;a.verticalAlign="top";a.textAlign=c||"left";a.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?b.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale+"px":mxConstants.LINE_HEIGHT;(b.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a.fontWeight="bold");(b.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a.fontStyle="italic");(b.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
(a.textDecoration="underline");return f};
-mxVmlCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p,q){if(this.textEnabled&&null!=b){var r=this.state;if("html"==l){null!=r.rotation&&(c=this.rotatePoint(a,c,r.rotation,r.rotationCx,r.rotationCy),a=c.x,c=c.y);8==document.documentMode&&!mxClient.IS_EM?(a+=r.dx,c+=r.dy,"fill"!=n&&g==mxConstants.ALIGN_TOP&&(c-=1)):(a*=r.scale,c*=r.scale);l=8==document.documentMode&&!mxClient.IS_EM?this.createVmlElement("group"):this.createElement("div");l.style.position="absolute";l.style.display="inline";
-l.style.left=this.format(a)+"px";l.style.top=this.format(c)+"px";l.style.zoom=r.scale;var s=this.createElement("div");s.style.position="relative";s.style.display="inline";var t=mxUtils.getAlignmentAsPoint(e,g),u=t.x,t=t.y;b=this.createDiv(b,e,g,n);e=this.createElement("div");null!=q&&b.setAttribute("dir",q);if(k&&0<f){if(m||(b.style.width=Math.round(f)+"px"),b.style.wordWrap=mxConstants.WORD_WRAP,b.style.whiteSpace="normal","break-word"==b.style.wordWrap){var v=b;null!=v.firstChild&&"DIV"==v.firstChild.nodeName&&
-(v.firstChild.style.width="100%")}}else b.style.whiteSpace="nowrap";p=r.rotation+(p||0);this.rotateHtml&&0!=p?(e.style.display="inline",e.style.zoom="1",e.appendChild(b),8==document.documentMode&&!mxClient.IS_EM&&"DIV"!=this.root.nodeName?(s.appendChild(e),l.appendChild(s)):l.appendChild(e)):8==document.documentMode&&!mxClient.IS_EM?(s.appendChild(b),l.appendChild(s)):(b.style.display="inline",l.appendChild(b));"DIV"!=this.root.nodeName?(q=this.createVmlElement("rect"),q.stroked="false",q.filled=
-"false",q.appendChild(l),this.root.appendChild(q)):this.root.appendChild(l);m?(b.style.overflow="hidden",b.style.width=Math.round(f)+"px",mxClient.IS_QUIRKS||(b.style.maxHeight=Math.round(d)+"px")):"fill"==n?(b.style.overflow="hidden",b.style.width=Math.max(0,f)+1+"px",b.style.height=Math.max(0,d)+1+"px"):"width"==n&&(b.style.overflow="hidden",b.style.width=Math.max(0,f)+1+"px",b.style.maxHeight=Math.max(0,d)+1+"px");if(this.rotateHtml&&0!=p){v=p*(Math.PI/180);p=parseFloat(parseFloat(Math.cos(v)).toFixed(8));
-q=parseFloat(parseFloat(Math.sin(-v)).toFixed(8));v%=2*Math.PI;0>v&&(v+=2*Math.PI);v%=Math.PI;v>Math.PI/2&&(v=Math.PI-v);g=Math.cos(v);var A=Math.sin(v);8==document.documentMode&&!mxClient.IS_EM&&(b.style.display="inline-block",e.style.display="inline-block",s.style.display="inline-block");b.style.visibility="hidden";b.style.position="absolute";document.body.appendChild(b);s=b;null!=s.firstChild&&"DIV"==s.firstChild.nodeName&&(s=s.firstChild);v=s.offsetWidth+3;s=s.offsetHeight;m?(f=Math.min(f,v),
-s=Math.min(s,d)):f=v;k&&(b.style.width=f+"px");if(mxClient.IS_QUIRKS&&(m||"width"==n)&&s>d)s=d,b.style.height=s+"px";d=s;m=(d-d*g+f*-A)/2-q*f*(u+0.5)+p*d*(t+0.5);k=(f-f*g+d*-A)/2+p*f*(u+0.5)+q*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(n=this.createElement("div"),n.style.display="inline-block",n.style.position="absolute",n.style.left=this.format(a+(k-f/2)*r.scale)+"px",n.style.top=this.format(c+(m-d/2)*r.scale)+"px",l.parentNode.appendChild(n),n.appendChild(l)):(r=8==document.documentMode&&
-!mxClient.IS_EM?1:r.scale,l.style.left=this.format(a+(k-f/2)*r)+"px",l.style.top=this.format(c+(m-d/2)*r)+"px");e.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+p+", M12\x3d"+q+", M21\x3d"+-q+", M22\x3d"+p+", sizingMethod\x3d'auto expand')";e.style.backgroundColor=this.rotatedHtmlBackground;1>this.state.alpha&&(e.style.filter+="alpha(opacity\x3d"+100*this.state.alpha+")");e.appendChild(b);b.style.position="";b.style.visibility=""}else 8!=document.documentMode||mxClient.IS_EM?(b.style.verticalAlign=
-"top",1>this.state.alpha&&(l.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r=b.parentNode,b.style.visibility="hidden",document.body.appendChild(b),f=b.offsetWidth,s=b.offsetHeight,mxClient.IS_QUIRKS&&m&&s>d&&(s=d,b.style.height=s+"px"),d=s,b.style.visibility="",r.appendChild(b),l.style.left=this.format(a+f*u*this.state.scale)+"px",l.style.top=this.format(c+d*t*this.state.scale)+"px"):(1>this.state.alpha&&(b.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),s.style.left=100*u+
-"%",s.style.top=100*t+"%")}else this.plainText(a,c,f,d,mxUtils.htmlEntities(b,!1),e,g,k,l,n,m,p,q)}};
-mxVmlCanvas2D.prototype.plainText=function(a,c,f,d,b,e,g,k,l,n,m,p,q){k=this.state;a=(a+k.dx)*k.scale;c=(c+k.dy)*k.scale;f=this.createVmlElement("shape");f.style.width="1px";f.style.height="1px";f.stroked="false";d=this.createVmlElement("fill");d.color=k.fontColor;d.opacity=100*k.alpha+"%";f.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);f.appendChild(d);d=this.createVmlElement("textpath");d.style.cssText=
+mxVmlCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p,r){if(this.textEnabled&&null!=b){var s=this.state;if("html"==l){null!=s.rotation&&(c=this.rotatePoint(a,c,s.rotation,s.rotationCx,s.rotationCy),a=c.x,c=c.y);8==document.documentMode&&!mxClient.IS_EM?(a+=s.dx,c+=s.dy,"fill"!=n&&g==mxConstants.ALIGN_TOP&&(c-=1)):(a*=s.scale,c*=s.scale);l=8==document.documentMode&&!mxClient.IS_EM?this.createVmlElement("group"):this.createElement("div");l.style.position="absolute";l.style.display="inline";
+l.style.left=this.format(a)+"px";l.style.top=this.format(c)+"px";l.style.zoom=s.scale;var q=this.createElement("div");q.style.position="relative";q.style.display="inline";var t=mxUtils.getAlignmentAsPoint(e,g),u=t.x,t=t.y;b=this.createDiv(b,e,g,n);e=this.createElement("div");null!=r&&b.setAttribute("dir",r);if(k&&0<f){if(m||(b.style.width=Math.round(f)+"px"),b.style.wordWrap=mxConstants.WORD_WRAP,b.style.whiteSpace="normal","break-word"==b.style.wordWrap){var v=b;null!=v.firstChild&&"DIV"==v.firstChild.nodeName&&
+(v.firstChild.style.width="100%")}}else b.style.whiteSpace="nowrap";p=s.rotation+(p||0);this.rotateHtml&&0!=p?(e.style.display="inline",e.style.zoom="1",e.appendChild(b),8==document.documentMode&&!mxClient.IS_EM&&"DIV"!=this.root.nodeName?(q.appendChild(e),l.appendChild(q)):l.appendChild(e)):8==document.documentMode&&!mxClient.IS_EM?(q.appendChild(b),l.appendChild(q)):(b.style.display="inline",l.appendChild(b));"DIV"!=this.root.nodeName?(r=this.createVmlElement("rect"),r.stroked="false",r.filled=
+"false",r.appendChild(l),this.root.appendChild(r)):this.root.appendChild(l);m?(b.style.overflow="hidden",b.style.width=Math.round(f)+"px",mxClient.IS_QUIRKS||(b.style.maxHeight=Math.round(d)+"px")):"fill"==n?(b.style.overflow="hidden",b.style.width=Math.max(0,f)+1+"px",b.style.height=Math.max(0,d)+1+"px"):"width"==n&&(b.style.overflow="hidden",b.style.width=Math.max(0,f)+1+"px",b.style.maxHeight=Math.max(0,d)+1+"px");if(this.rotateHtml&&0!=p){v=p*(Math.PI/180);p=parseFloat(parseFloat(Math.cos(v)).toFixed(8));
+r=parseFloat(parseFloat(Math.sin(-v)).toFixed(8));v%=2*Math.PI;0>v&&(v+=2*Math.PI);v%=Math.PI;v>Math.PI/2&&(v=Math.PI-v);g=Math.cos(v);var z=Math.sin(v);8==document.documentMode&&!mxClient.IS_EM&&(b.style.display="inline-block",e.style.display="inline-block",q.style.display="inline-block");b.style.visibility="hidden";b.style.position="absolute";document.body.appendChild(b);q=b;null!=q.firstChild&&"DIV"==q.firstChild.nodeName&&(q=q.firstChild);v=q.offsetWidth+3;q=q.offsetHeight;m?(f=Math.min(f,v),
+q=Math.min(q,d)):f=v;k&&(b.style.width=f+"px");if(mxClient.IS_QUIRKS&&(m||"width"==n)&&q>d)q=d,b.style.height=q+"px";d=q;m=(d-d*g+f*-z)/2-r*f*(u+0.5)+p*d*(t+0.5);k=(f-f*g+d*-z)/2+p*f*(u+0.5)+r*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(n=this.createElement("div"),n.style.display="inline-block",n.style.position="absolute",n.style.left=this.format(a+(k-f/2)*s.scale)+"px",n.style.top=this.format(c+(m-d/2)*s.scale)+"px",l.parentNode.appendChild(n),n.appendChild(l)):(s=8==document.documentMode&&
+!mxClient.IS_EM?1:s.scale,l.style.left=this.format(a+(k-f/2)*s)+"px",l.style.top=this.format(c+(m-d/2)*s)+"px");e.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+p+", M12\x3d"+r+", M21\x3d"+-r+", M22\x3d"+p+", sizingMethod\x3d'auto expand')";e.style.backgroundColor=this.rotatedHtmlBackground;1>this.state.alpha&&(e.style.filter+="alpha(opacity\x3d"+100*this.state.alpha+")");e.appendChild(b);b.style.position="";b.style.visibility=""}else 8!=document.documentMode||mxClient.IS_EM?(b.style.verticalAlign=
+"top",1>this.state.alpha&&(l.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),s=b.parentNode,b.style.visibility="hidden",document.body.appendChild(b),f=b.offsetWidth,q=b.offsetHeight,mxClient.IS_QUIRKS&&m&&q>d&&(q=d,b.style.height=q+"px"),d=q,b.style.visibility="",s.appendChild(b),l.style.left=this.format(a+f*u*this.state.scale)+"px",l.style.top=this.format(c+d*t*this.state.scale)+"px"):(1>this.state.alpha&&(b.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),q.style.left=100*u+
+"%",q.style.top=100*t+"%")}else this.plainText(a,c,f,d,mxUtils.htmlEntities(b,!1),e,g,k,l,n,m,p,r)}};
+mxVmlCanvas2D.prototype.plainText=function(a,c,f,d,b,e,g,k,l,n,m,p,r){k=this.state;a=(a+k.dx)*k.scale;c=(c+k.dy)*k.scale;f=this.createVmlElement("shape");f.style.width="1px";f.style.height="1px";f.stroked="false";d=this.createVmlElement("fill");d.color=k.fontColor;d.opacity=100*k.alpha+"%";f.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);f.appendChild(d);d=this.createVmlElement("textpath");d.style.cssText=
"v-text-align:"+e;d.style.align=e;d.style.fontFamily=k.fontFamily;d.string=b;d.on="true";e=k.fontSize*k.scale/this.vmlScale;d.style.fontSize=e+"px";(k.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold");(k.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic");(k.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline");b=b.split("\n");k=e+(b.length-1)*e*mxConstants.LINE_HEIGHT;e=b=0;
g==mxConstants.ALIGN_BOTTOM?e=-k/2:g!=mxConstants.ALIGN_MIDDLE&&(e=k/2);null!=p&&(f.style.rotation=p,g=p*(Math.PI/180),b=Math.sin(g)*e,e*=Math.cos(g));f.appendChild(d);f.style.left=this.format(a-b)+"px";f.style.top=this.format(c+e)+"px";this.root.appendChild(f)};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 mxGuide(a,c){this.graph=a;this.setStates(c)}mxGuide.prototype.graph=null;mxGuide.prototype.states=null;mxGuide.prototype.horizontal=!0;mxGuide.prototype.vertical=!0;mxGuide.prototype.guideX=null;mxGuide.prototype.guideY=null;mxGuide.prototype.setStates=function(a){this.states=a};mxGuide.prototype.isEnabledForEvent=function(a){return!0};mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize/2};
mxGuide.prototype.createGuideShape=function(a){a=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);a.isDashed=!0;return a};
-mxGuide.prototype.move=function(a,c,f){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=c){var d=this.graph.getView().translate,b=this.graph.getView().scale,e=c.x,g=c.y,k=!1,l=null,n=null,m=!1,p=null,q=null,r=this.getGuideTolerance(),s=r,t=r,r=a.clone();r.x+=c.x;r.y+=c.y;var u=r.x,v=r.x+r.width,A=r.getCenterX(),y=r.y,x=r.y+r.height,D=r.getCenterY();c=function(b,d){b+=this.graph.panDx;var c=!1;Math.abs(b-A)<s?(e=b-a.getCenterX(),s=Math.abs(b-A),c=!0):Math.abs(b-u)<s?(e=b-a.x,
-s=Math.abs(b-u),c=!0):Math.abs(b-v)<s&&(e=b-a.x-a.width,s=Math.abs(b-v),c=!0);c&&(l=d,n=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||c};for(var r=function(b){b+=this.graph.panDy;var d=!1;Math.abs(b-D)<t?(g=b-a.getCenterY(),t=Math.abs(b-D),d=!0):Math.abs(b-
-y)<t?(g=b-a.y,t=Math.abs(b-y),d=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),d=!0);d&&(p=B,q=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));m=m||d},z=0;z<this.states.length;z++){var B=this.states[z];null!=B&&(this.horizontal&&(c.call(this,B.getCenterX(),
-B),c.call(this,B.x,B),c.call(this,B.x+B.width,B)),this.vertical&&(r.call(this,B.getCenterY(),B),r.call(this,B.y,B),r.call(this,B.y+B.height,B)))}f&&(k||(f=a.x-(this.graph.snap(a.x/b-d.x)+d.x)*b,e=this.graph.snap(e/b)*b-f),m||(d=a.y-(this.graph.snap(a.y/b-d.y)+d.y)*b,g=this.graph.snap(g/b)*b-d));b=this.graph.container;!k&&null!=this.guideX?this.guideX.node.style.visibility="hidden":null!=this.guideX&&(null!=l&&null!=a&&(minY=Math.min(a.y+g-this.graph.panDy,l.y),maxY=Math.max(a.y+a.height+g-this.graph.panDy,
+mxGuide.prototype.move=function(a,c,f){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=c){var d=this.graph.getView().translate,b=this.graph.getView().scale,e=c.x,g=c.y,k=!1,l=null,n=null,m=!1,p=null,r=null,s=this.getGuideTolerance(),q=s,t=s,s=a.clone();s.x+=c.x;s.y+=c.y;var u=s.x,v=s.x+s.width,z=s.getCenterX(),y=s.y,x=s.y+s.height,D=s.getCenterY();c=function(b,d){b+=this.graph.panDx;var c=!1;Math.abs(b-z)<q?(e=b-a.getCenterX(),q=Math.abs(b-z),c=!0):Math.abs(b-u)<q?(e=b-a.x,
+q=Math.abs(b-u),c=!0):Math.abs(b-v)<q&&(e=b-a.x-a.width,q=Math.abs(b-v),c=!0);c&&(l=d,n=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||c};for(var s=function(b){b+=this.graph.panDy;var d=!1;Math.abs(b-D)<t?(g=b-a.getCenterY(),t=Math.abs(b-D),d=!0):Math.abs(b-
+y)<t?(g=b-a.y,t=Math.abs(b-y),d=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),d=!0);d&&(p=B,r=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));m=m||d},A=0;A<this.states.length;A++){var B=this.states[A];null!=B&&(this.horizontal&&(c.call(this,B.getCenterX(),
+B),c.call(this,B.x,B),c.call(this,B.x+B.width,B)),this.vertical&&(s.call(this,B.getCenterY(),B),s.call(this,B.y,B),s.call(this,B.y+B.height,B)))}f&&(k||(f=a.x-(this.graph.snap(a.x/b-d.x)+d.x)*b,e=this.graph.snap(e/b)*b-f),m||(d=a.y-(this.graph.snap(a.y/b-d.y)+d.y)*b,g=this.graph.snap(g/b)*b-d));b=this.graph.container;!k&&null!=this.guideX?this.guideX.node.style.visibility="hidden":null!=this.guideX&&(null!=l&&null!=a&&(minY=Math.min(a.y+g-this.graph.panDy,l.y),maxY=Math.max(a.y+a.height+g-this.graph.panDy,
l.y+l.height)),this.guideX.points=null!=minY&&null!=maxY?[new mxPoint(n,minY),new mxPoint(n,maxY)]:[new mxPoint(n,-this.graph.panDy),new mxPoint(n,b.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(l,!0),this.guideX.node.style.visibility="visible",this.guideX.redraw());!m&&null!=this.guideY?this.guideY.node.style.visibility="hidden":null!=this.guideY&&(null!=p&&null!=a&&(minX=Math.min(a.x+e-this.graph.panDx,p.x),maxX=Math.max(a.x+a.width+e-this.graph.panDx,p.x+p.width)),this.guideY.points=
-null!=minX&&null!=maxX?[new mxPoint(minX,q),new mxPoint(maxX,q)]:[new mxPoint(-this.graph.panDx,q),new mxPoint(b.scrollWidth-3-this.graph.panDx,q)],this.guideY.stroke=this.getGuideColor(p,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw());c=new mxPoint(e,g)}return c};mxGuide.prototype.getGuideColor=function(a,c){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
+null!=minX&&null!=maxX?[new mxPoint(minX,r),new mxPoint(maxX,r)]:[new mxPoint(-this.graph.panDx,r),new mxPoint(b.scrollWidth-3-this.graph.panDx,r)],this.guideY.stroke=this.getGuideColor(p,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw());c=new mxPoint(e,g)}return c};mxGuide.prototype.getGuideColor=function(a,c){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
mxGuide.prototype.setVisible=function(a){null!=this.guideX&&(this.guideX.node.style.visibility=a?"visible":"hidden");null!=this.guideY&&(this.guideY.node.style.visibility=a?"visible":"hidden")};mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null);null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)};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;
mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
@@ -591,7 +591,7 @@ mxStencil.prototype.drawNode=function(a,c,f,d,b){var e=f.nodeName,g=d.x,k=d.y,l=
n);else if("quad"==e)a.quadTo(g+Number(f.getAttribute("x1"))*l,k+Number(f.getAttribute("y1"))*n,g+Number(f.getAttribute("x2"))*l,k+Number(f.getAttribute("y2"))*n);else if("curve"==e)a.curveTo(g+Number(f.getAttribute("x1"))*l,k+Number(f.getAttribute("y1"))*n,g+Number(f.getAttribute("x2"))*l,k+Number(f.getAttribute("y2"))*n,g+Number(f.getAttribute("x3"))*l,k+Number(f.getAttribute("y3"))*n);else if("arc"==e)a.arcTo(Number(f.getAttribute("rx"))*l,Number(f.getAttribute("ry"))*n,Number(f.getAttribute("x-axis-rotation")),
Number(f.getAttribute("large-arc-flag")),Number(f.getAttribute("sweep-flag")),g+Number(f.getAttribute("x"))*l,k+Number(f.getAttribute("y"))*n);else if("rect"==e)a.rect(g+Number(f.getAttribute("x"))*l,k+Number(f.getAttribute("y"))*n,Number(f.getAttribute("w"))*l,Number(f.getAttribute("h"))*n);else if("roundrect"==e)c=Number(f.getAttribute("arcsize")),0==c&&(c=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),m=Number(f.getAttribute("w"))*l,d=Number(f.getAttribute("h"))*n,c=Number(c)/100,c=Math.min(m*c,d*
c),a.roundrect(g+Number(f.getAttribute("x"))*l,k+Number(f.getAttribute("y"))*n,m,d,c,c);else if("ellipse"==e)a.ellipse(g+Number(f.getAttribute("x"))*l,k+Number(f.getAttribute("y"))*n,Number(f.getAttribute("w"))*l,Number(f.getAttribute("h"))*n);else if("image"==e)c.outline||(c=this.evaluateAttribute(f,"src",c),a.image(g+Number(f.getAttribute("x"))*l,k+Number(f.getAttribute("y"))*n,Number(f.getAttribute("w"))*l,Number(f.getAttribute("h"))*n,c,!1,"1"==f.getAttribute("flipH"),"1"==f.getAttribute("flipV")));
-else if("text"==e){if(!c.outline){m=this.evaluateTextAttribute(f,"str",c);d="1"==f.getAttribute("vertical")?-90:0;if("0"==f.getAttribute("align-shape")){var p=c.rotation,q=1==mxUtils.getValue(c.style,mxConstants.STYLE_FLIPH,0);c=1==mxUtils.getValue(c.style,mxConstants.STYLE_FLIPV,0);d=q&&c?d-p:q||c?d+p:d-p}d-=f.getAttribute("rotation");a.text(g+Number(f.getAttribute("x"))*l,k+Number(f.getAttribute("y"))*n,0,0,m,f.getAttribute("align")||"left",f.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
+else if("text"==e){if(!c.outline){m=this.evaluateTextAttribute(f,"str",c);d="1"==f.getAttribute("vertical")?-90:0;if("0"==f.getAttribute("align-shape")){var p=c.rotation,r=1==mxUtils.getValue(c.style,mxConstants.STYLE_FLIPH,0);c=1==mxUtils.getValue(c.style,mxConstants.STYLE_FLIPV,0);d=r&&c?d-p:r||c?d+p:d-p}d-=f.getAttribute("rotation");a.text(g+Number(f.getAttribute("x"))*l,k+Number(f.getAttribute("y"))*n,0,0,m,f.getAttribute("align")||"left",f.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
e)p=mxStencilRegistry.getStencil(f.getAttribute("name")),null!=p&&(g+=Number(f.getAttribute("x"))*l,k+=Number(f.getAttribute("y"))*n,m=Number(f.getAttribute("w"))*l,d=Number(f.getAttribute("h"))*n,p.drawShape(a,c,g,k,m,d));else if("fillstroke"==e)a.fillAndStroke();else if("fill"==e)a.fill();else if("stroke"==e)a.stroke();else if("strokewidth"==e)l="1"==f.getAttribute("fixed")?1:m,a.setStrokeWidth(Number(f.getAttribute("width"))*l);else if("dashed"==e)a.setDashed("1"==f.getAttribute("dashed"));else if("dashpattern"==
e){if(f=f.getAttribute("pattern"),null!=f){f=f.split(" ");l=[];for(n=0;n<f.length;n++)0<f[n].length&&l.push(Number(f[n])*m);f=l.join(" ");a.setDashPattern(f)}}else"strokecolor"==e?a.setStrokeColor(f.getAttribute("color")):"linecap"==e?a.setLineCap(f.getAttribute("cap")):"linejoin"==e?a.setLineJoin(f.getAttribute("join")):"miterlimit"==e?a.setMiterLimit(Number(f.getAttribute("limit"))):"fillcolor"==e?a.setFillColor(f.getAttribute("color")):"alpha"==e?a.setAlpha(f.getAttribute("alpha")):"fontcolor"==
e?a.setFontColor(f.getAttribute("color")):"fontstyle"==e?a.setFontStyle(f.getAttribute("style")):"fontfamily"==e?a.setFontFamily(f.getAttribute("family")):"fontsize"==e&&a.setFontSize(Number(f.getAttribute("size"))*m);b&&("fillstroke"==e||"fill"==e||"stroke"==e)&&a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
@@ -637,9 +637,9 @@ mxShape.prototype.getShapeRotation=function(){var a=this.getRotation();null!=thi
mxShape.prototype.createTransparentSvgRectangle=function(a,c,f,d){var b=document.createElementNS(mxConstants.NS_SVG,"rect");b.setAttribute("x",a);b.setAttribute("y",c);b.setAttribute("width",f);b.setAttribute("height",d);b.setAttribute("fill","none");b.setAttribute("stroke","none");b.setAttribute("pointer-events","all");return b};mxShape.prototype.setTransparentBackgroundImage=function(a){a.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"};
mxShape.prototype.releaseSvgGradients=function(a){if(null!=a)for(var c in a){var f=a[c];null!=f&&(f.mxRefCount=(f.mxRefCount||0)-1,0==f.mxRefCount&&null!=f.parentNode&&f.parentNode.removeChild(f))}};mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null);this.releaseSvgGradients(this.oldGradients);this.oldGradients=null};
var mxStencilRegistry={stencils:{},addStencil:function(a,c){mxStencilRegistry.stencils[a]=c},getStencil:function(a){return mxStencilRegistry.stencils[a]}},mxMarker={markers:[],addMarker:function(a,c){mxMarker.markers[a]=c},createMarker:function(a,c,f,d,b,e,g,k,l,n){var m=mxMarker.markers[f];return null!=m?m(a,c,f,d,b,e,g,k,l,n):null}};
-(function(){function a(a){a=null!=a?a:2;return function(b,e,c,f,l,n,m,p,q,r){e=1.118*l*q;p=1.118*n*q;l*=m+q;n*=m+q;var s=f.clone();s.x-=e;s.y-=p;m=c!=mxConstants.ARROW_CLASSIC&&c!=mxConstants.ARROW_CLASSIC_THIN?1:0.75;f.x+=-l*m-e;f.y+=-n*m-p;return function(){b.begin();b.moveTo(s.x,s.y);b.lineTo(s.x-l-n/a,s.y-n+l/a);(c==mxConstants.ARROW_CLASSIC||c==mxConstants.ARROW_CLASSIC_THIN)&&b.lineTo(s.x-3*l/4,s.y-3*n/4);b.lineTo(s.x+n/a-l,s.y-n-l/a);b.close();r?b.fillAndStroke():b.stroke()}}}function c(a){a=
-null!=a?a:2;return function(b,e,c,f,l,n,m,p,q,r){e=1.118*l*q;c=1.118*n*q;l*=m+q;n*=m+q;var s=f.clone();s.x-=e;s.y-=c;f.x+=2*-e;f.y+=2*-c;return function(){b.begin();b.moveTo(s.x-l-n/a,s.y-n+l/a);b.lineTo(s.x,s.y);b.lineTo(s.x+n/a-l,s.y-n-l/a);b.stroke()}}}function f(a,b,e,c,f,l,n,m,p,q){m=e==mxConstants.ARROW_DIAMOND?0.7071:0.9862;b=f*p*m;m*=l*p;f*=n+p;l*=n+p;var r=c.clone();r.x-=b;r.y-=m;c.x+=-f-b;c.y+=-l-m;var s=e==mxConstants.ARROW_DIAMOND?2:3.4;return function(){a.begin();a.moveTo(r.x,r.y);a.lineTo(r.x-
-f/2-l/s,r.y+f/s-l/2);a.lineTo(r.x-f,r.y-l);a.lineTo(r.x-f/2+l/s,r.y-l/2-f/s);a.close();q?a.fillAndStroke():a.stroke()}}mxMarker.addMarker("classic",a(2));mxMarker.addMarker("classicThin",a(3));mxMarker.addMarker("block",a(2));mxMarker.addMarker("blockThin",a(3));mxMarker.addMarker("open",c(2));mxMarker.addMarker("openThin",c(3));mxMarker.addMarker("oval",function(a,b,e,c,f,l,n,m,p,q){var r=n/2,s=c.clone();c.x-=f*r;c.y-=l*r;return function(){a.ellipse(s.x-r,s.y-r,n,n);q?a.fillAndStroke():a.stroke()}});
+(function(){function a(a){a=null!=a?a:2;return function(b,e,c,f,l,n,m,p,r,s){e=1.118*l*r;p=1.118*n*r;l*=m+r;n*=m+r;var q=f.clone();q.x-=e;q.y-=p;m=c!=mxConstants.ARROW_CLASSIC&&c!=mxConstants.ARROW_CLASSIC_THIN?1:0.75;f.x+=-l*m-e;f.y+=-n*m-p;return function(){b.begin();b.moveTo(q.x,q.y);b.lineTo(q.x-l-n/a,q.y-n+l/a);(c==mxConstants.ARROW_CLASSIC||c==mxConstants.ARROW_CLASSIC_THIN)&&b.lineTo(q.x-3*l/4,q.y-3*n/4);b.lineTo(q.x+n/a-l,q.y-n-l/a);b.close();s?b.fillAndStroke():b.stroke()}}}function c(a){a=
+null!=a?a:2;return function(b,e,c,f,l,n,m,p,r,s){e=1.118*l*r;c=1.118*n*r;l*=m+r;n*=m+r;var q=f.clone();q.x-=e;q.y-=c;f.x+=2*-e;f.y+=2*-c;return function(){b.begin();b.moveTo(q.x-l-n/a,q.y-n+l/a);b.lineTo(q.x,q.y);b.lineTo(q.x+n/a-l,q.y-n-l/a);b.stroke()}}}function f(a,b,e,c,f,l,n,m,p,r){m=e==mxConstants.ARROW_DIAMOND?0.7071:0.9862;b=f*p*m;m*=l*p;f*=n+p;l*=n+p;var s=c.clone();s.x-=b;s.y-=m;c.x+=-f-b;c.y+=-l-m;var q=e==mxConstants.ARROW_DIAMOND?2:3.4;return function(){a.begin();a.moveTo(s.x,s.y);a.lineTo(s.x-
+f/2-l/q,s.y+f/q-l/2);a.lineTo(s.x-f,s.y-l);a.lineTo(s.x-f/2+l/q,s.y-l/2-f/q);a.close();r?a.fillAndStroke():a.stroke()}}mxMarker.addMarker("classic",a(2));mxMarker.addMarker("classicThin",a(3));mxMarker.addMarker("block",a(2));mxMarker.addMarker("blockThin",a(3));mxMarker.addMarker("open",c(2));mxMarker.addMarker("openThin",c(3));mxMarker.addMarker("oval",function(a,b,e,c,f,l,n,m,p,r){var s=n/2,q=c.clone();c.x-=f*s;c.y-=l*s;return function(){a.ellipse(q.x-s,q.y-s,n,n);r?a.fillAndStroke():a.stroke()}});
mxMarker.addMarker("diamond",f);mxMarker.addMarker("diamondThin",f)})();function mxActor(a,c,f,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=f;this.strokewidth=null!=d?d:1}mxUtils.extend(mxActor,mxShape);mxActor.prototype.paintVertexShape=function(a,c,f,d,b){a.translate(c,f);a.begin();this.redrawPath(a,c,f,d,b);a.fillAndStroke()};
mxActor.prototype.redrawPath=function(a,c,f,d,b){c=d/3;a.moveTo(0,b);a.curveTo(0,3*b/5,0,2*b/5,d/2,2*b/5);a.curveTo(d/2-c,2*b/5,d/2-c,0,d/2,0);a.curveTo(d/2+c,0,d/2+c,2*b/5,d/2,2*b/5);a.curveTo(d,2*b/5,d,3*b/5,d,b);a.close()};function mxCloud(a,c,f,d){mxActor.call(this);this.bounds=a;this.fill=c;this.stroke=f;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
mxCloud.prototype.redrawPath=function(a,c,f,d,b){a.moveTo(0.25*d,0.25*b);a.curveTo(0.05*d,0.25*b,0,0.5*b,0.16*d,0.55*b);a.curveTo(0,0.66*b,0.18*d,0.9*b,0.31*d,0.8*b);a.curveTo(0.4*d,b,0.7*d,b,0.8*d,0.8*b);a.curveTo(d,0.8*b,d,0.6*b,0.875*d,0.5*b);a.curveTo(d,0.3*b,0.8*d,0.1*b,0.625*d,0.2*b);a.curveTo(0.5*d,0.05*b,0.3*d,0.05*b,0.25*d,0.25*b);a.close()};function mxRectangleShape(a,c,f,d){mxShape.call(this);this.bounds=a;this.fill=c;this.stroke=f;this.strokewidth=null!=d?d:1}
@@ -653,19 +653,19 @@ mxRhombus.prototype.paintVertexShape=function(a,c,f,d,b){var e=d/2,g=b/2,k=mxUti
mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,c){null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,c,this.isRounded):this.paintCurvedLine(a,c)};mxPolyline.prototype.paintLine=function(a,c,f){var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,c,f,d,!1);a.stroke()};
mxPolyline.prototype.paintCurvedLine=function(a,c){a.begin();var f=c[0],d=c.length;a.moveTo(f.x,f.y);for(f=1;f<d-2;f++){var b=c[f],e=c[f+1];a.quadTo(b.x,b.y,(b.x+e.x)/2,(b.y+e.y)/2)}b=c[d-2];e=c[d-1];a.quadTo(b.x,b.y,e.x,e.y);a.stroke()};
function mxArrow(a,c,f,d,b,e,g){mxShape.call(this);this.points=a;this.fill=c;this.stroke=f;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=b?b:mxConstants.ARROW_WIDTH;this.spacing=null!=e?e:mxConstants.ARROW_SPACING;this.endSize=null!=g?g:mxConstants.ARROW_SIZE}mxUtils.extend(mxArrow,mxShape);mxArrow.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var c=Math.max(this.arrowWidth,this.endSize);a.grow((c/2+this.strokewidth)*this.scale)};
-mxArrow.prototype.paintEdgeShape=function(a,c){var f=mxConstants.ARROW_SPACING,d=mxConstants.ARROW_WIDTH,b=mxConstants.ARROW_SIZE,e=c[0],g=c[c.length-1],k=g.x-e.x,l=g.y-e.y,n=Math.sqrt(k*k+l*l),m=n-2*f-b,k=k/n,l=l/n,n=d*l/3,d=-d*k/3,b=e.x-n/2+f*k,e=e.y-d/2+f*l,p=b+n,q=e+d,r=p+m*k,m=q+m*l,s=r+n,t=m+d,u=s-3*n,v=t-3*d;a.begin();a.moveTo(b,e);a.lineTo(p,q);a.lineTo(r,m);a.lineTo(s,t);a.lineTo(g.x-f*k,g.y-f*l);a.lineTo(u,v);a.lineTo(u+n,v+d);a.close();a.fillAndStroke()};
+mxArrow.prototype.paintEdgeShape=function(a,c){var f=mxConstants.ARROW_SPACING,d=mxConstants.ARROW_WIDTH,b=mxConstants.ARROW_SIZE,e=c[0],g=c[c.length-1],k=g.x-e.x,l=g.y-e.y,n=Math.sqrt(k*k+l*l),m=n-2*f-b,k=k/n,l=l/n,n=d*l/3,d=-d*k/3,b=e.x-n/2+f*k,e=e.y-d/2+f*l,p=b+n,r=e+d,s=p+m*k,m=r+m*l,q=s+n,t=m+d,u=q-3*n,v=t-3*d;a.begin();a.moveTo(b,e);a.lineTo(p,r);a.lineTo(s,m);a.lineTo(q,t);a.lineTo(g.x-f*k,g.y-f*l);a.lineTo(u,v);a.lineTo(u+n,v+d);a.close();a.fillAndStroke()};
function mxArrowConnector(a,c,f,d,b,e,g){mxShape.call(this);this.points=a;this.fill=c;this.stroke=f;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=b?b:mxConstants.ARROW_WIDTH;this.arrowSpacing=null!=e?e:mxConstants.ARROW_SPACING;this.startSize=mxConstants.ARROW_SIZE/5;this.endSize=mxConstants.ARROW_SIZE/5}mxUtils.extend(mxArrowConnector,mxShape);mxArrowConnector.prototype.useSvgBoundingBox=!0;
mxArrowConnector.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.arrowSpacing=mxConstants.ARROW_SPACING};mxArrowConnector.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.startSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5),this.endSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5))};
mxArrowConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var c=this.getEdgeWidth();this.isMarkerStart()&&(c=Math.max(c,this.getStartArrowWidth()));this.isMarkerEnd()&&(c=Math.max(c,this.getEndArrowWidth()));a.grow((c/2+this.strokewidth)*this.scale)};
-mxArrowConnector.prototype.paintEdgeShape=function(a,c){var f=this.strokewidth;this.outline&&(f=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));for(var d=this.getStartArrowWidth()+f,b=this.getEndArrowWidth()+f,e=this.outline?this.getEdgeWidth()+f:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),n=g?0:this.arrowSpacing+f/2,m=this.startSize+f,f=this.endSize+f,p=this.isArrowRounded(),q=c[c.length-1],r=1;r<c.length-1&&c[r].x==
-c[0].x&&c[r].y==c[0].y;)r++;var s=c[r].x-c[0].x,r=c[r].y-c[0].y,t=Math.sqrt(s*s+r*r);if(0!=t){var u=s/t,v,A=u,y=r/t,x,D=y,t=e*y,z=-e*u,B=[];p?a.setLineJoin("round"):2<c.length&&a.setMiterLimit(1.42);a.begin();s=u;r=y;if(k&&!g)this.paintMarker(a,c[0].x,c[0].y,u,y,m,d,e,n,!0);else{v=c[0].x+t/2+n*u;x=c[0].y+z/2+n*y;var F=c[0].x-t/2+n*u,G=c[0].y-z/2+n*y;g?(a.moveTo(v,x),B.push(function(){a.lineTo(F,G)})):(a.moveTo(F,G),a.lineTo(v,x))}for(var E=x=v=0,t=0;t<c.length-2;t++)if(z=mxUtils.relativeCcw(c[t].x,
-c[t].y,c[t+1].x,c[t+1].y,c[t+2].x,c[t+2].y),v=c[t+2].x-c[t+1].x,x=c[t+2].y-c[t+1].y,E=Math.sqrt(v*v+x*x),0!=E&&(A=v/E,D=x/E,tmp=Math.max(Math.sqrt((u*A+y*D+1)/2),0.04),v=u+A,x=y+D,E=Math.sqrt(v*v+x*x),0!=E)){v/=E;x/=E;var E=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),E=0!=z&&p?Math.max(0.1,E):Math.max(tmp,0.06),H=c[t+1].x+x*e/2/E,I=c[t+1].y-v*e/2/E;x=c[t+1].x-x*e/2/E;v=c[t+1].y+v*e/2/E;0==z||!p?(a.lineTo(H,I),function(b,d){B.push(function(){a.lineTo(b,d)})}(x,v)):-1==z?(z=x+D*e,E=v-A*e,
-a.lineTo(x+y*e,v-u*e),a.quadTo(H,I,z,E),function(b,d){B.push(function(){a.lineTo(b,d)})}(x,v)):(a.lineTo(H,I),function(b,d){var c=H-y*e,f=I+u*e,g=H-D*e,k=I+A*e;B.push(function(){a.quadTo(b,d,c,f)});B.push(function(){a.lineTo(g,k)})}(x,v));u=A;y=D}t=e*D;z=-e*A;if(l&&!g)this.paintMarker(a,q.x,q.y,-u,-y,f,b,e,n,!1);else{a.lineTo(q.x-n*A+t/2,q.y-n*D+z/2);var J=q.x-n*A-t/2,N=q.y-n*D-z/2;g?(a.moveTo(J,N),B.splice(0,0,function(){a.moveTo(J,N)})):a.lineTo(J,N)}for(t=B.length-1;0<=t;t--)B[t]();g?(a.end(),
-a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);p&&a.setLineJoin("flat");2<c.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,c[0].x,c[0].y,s,r,m,d,e,n,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,q.x,q.y,-u,-y,f,b,e,n,!0),a.stroke(),a.end()))}};
+mxArrowConnector.prototype.paintEdgeShape=function(a,c){var f=this.strokewidth;this.outline&&(f=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));for(var d=this.getStartArrowWidth()+f,b=this.getEndArrowWidth()+f,e=this.outline?this.getEdgeWidth()+f:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),n=g?0:this.arrowSpacing+f/2,m=this.startSize+f,f=this.endSize+f,p=this.isArrowRounded(),r=c[c.length-1],s=1;s<c.length-1&&c[s].x==
+c[0].x&&c[s].y==c[0].y;)s++;var q=c[s].x-c[0].x,s=c[s].y-c[0].y,t=Math.sqrt(q*q+s*s);if(0!=t){var u=q/t,v,z=u,y=s/t,x,D=y,t=e*y,A=-e*u,B=[];p?a.setLineJoin("round"):2<c.length&&a.setMiterLimit(1.42);a.begin();q=u;s=y;if(k&&!g)this.paintMarker(a,c[0].x,c[0].y,u,y,m,d,e,n,!0);else{v=c[0].x+t/2+n*u;x=c[0].y+A/2+n*y;var E=c[0].x-t/2+n*u,G=c[0].y-A/2+n*y;g?(a.moveTo(v,x),B.push(function(){a.lineTo(E,G)})):(a.moveTo(E,G),a.lineTo(v,x))}for(var F=x=v=0,t=0;t<c.length-2;t++)if(A=mxUtils.relativeCcw(c[t].x,
+c[t].y,c[t+1].x,c[t+1].y,c[t+2].x,c[t+2].y),v=c[t+2].x-c[t+1].x,x=c[t+2].y-c[t+1].y,F=Math.sqrt(v*v+x*x),0!=F&&(z=v/F,D=x/F,tmp=Math.max(Math.sqrt((u*z+y*D+1)/2),0.04),v=u+z,x=y+D,F=Math.sqrt(v*v+x*x),0!=F)){v/=F;x/=F;var F=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),F=0!=A&&p?Math.max(0.1,F):Math.max(tmp,0.06),H=c[t+1].x+x*e/2/F,I=c[t+1].y-v*e/2/F;x=c[t+1].x-x*e/2/F;v=c[t+1].y+v*e/2/F;0==A||!p?(a.lineTo(H,I),function(b,d){B.push(function(){a.lineTo(b,d)})}(x,v)):-1==A?(A=x+D*e,F=v-z*e,
+a.lineTo(x+y*e,v-u*e),a.quadTo(H,I,A,F),function(b,d){B.push(function(){a.lineTo(b,d)})}(x,v)):(a.lineTo(H,I),function(b,d){var c=H-y*e,f=I+u*e,g=H-D*e,k=I+z*e;B.push(function(){a.quadTo(b,d,c,f)});B.push(function(){a.lineTo(g,k)})}(x,v));u=z;y=D}t=e*D;A=-e*z;if(l&&!g)this.paintMarker(a,r.x,r.y,-u,-y,f,b,e,n,!1);else{a.lineTo(r.x-n*z+t/2,r.y-n*D+A/2);var L=r.x-n*z-t/2,O=r.y-n*D-A/2;g?(a.moveTo(L,O),B.splice(0,0,function(){a.moveTo(L,O)})):a.lineTo(L,O)}for(t=B.length-1;0<=t;t--)B[t]();g?(a.end(),
+a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);p&&a.setLineJoin("flat");2<c.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,c[0].x,c[0].y,q,s,m,d,e,n,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,r.x,r.y,-u,-y,f,b,e,n,!0),a.stroke(),a.end()))}};
mxArrowConnector.prototype.paintMarker=function(a,c,f,d,b,e,g,k,l,n){g=k/g;var m=k*b/2;k=-k*d/2;var p=(l+e)*d;e=(l+e)*b;n?a.moveTo(c-m+p,f-k+e):a.lineTo(c-m+p,f-k+e);a.lineTo(c-m/g+p,f-k/g+e);a.lineTo(c+l*d,f+l*b);a.lineTo(c+m/g+p,f+k/g+e);a.lineTo(c+m+p,f+k+e)};mxArrowConnector.prototype.isArrowRounded=function(){return this.isRounded};mxArrowConnector.prototype.getStartArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEndArrowWidth=function(){return mxConstants.ARROW_WIDTH};
mxArrowConnector.prototype.getEdgeWidth=function(){return mxConstants.ARROW_WIDTH/3};mxArrowConnector.prototype.isOpenEnded=function(){return!1};mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE};mxArrowConnector.prototype.isMarkerEnd=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE};
-function mxText(a,c,f,d,b,e,g,k,l,n,m,p,q,r,s,t,u,v,A,y,x){mxShape.call(this);this.value=a;this.bounds=c;this.color=null!=b?b:"black";this.align=null!=f?f:"";this.valign=null!=d?d:"";this.family=null!=e?e:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(n||0);this.spacingRight=this.spacing+parseInt(m||0);this.spacingBottom=this.spacing+parseInt(p||
-0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=r?r:!0;this.background=s;this.border=t;this.wrap=null!=u?u:!1;this.clipped=null!=v?v:!1;this.overflow=null!=A?A:"visible";this.labelPadding=null!=y?y:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
+function mxText(a,c,f,d,b,e,g,k,l,n,m,p,r,s,q,t,u,v,z,y,x){mxShape.call(this);this.value=a;this.bounds=c;this.color=null!=b?b:"black";this.align=null!=f?f:"";this.valign=null!=d?d:"";this.family=null!=e?e:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(n||0);this.spacingRight=this.spacing+parseInt(m||0);this.spacingBottom=this.spacing+parseInt(p||
+0);this.spacingLeft=this.spacing+parseInt(r||0);this.horizontal=null!=s?s:!0;this.background=q;this.border=t;this.wrap=null!=u?u:!1;this.clipped=null!=v?v:!1;this.overflow=null!=z?z:"visible";this.labelPadding=null!=y?y:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8==document.documentMode&&!mxClient.IS_EM?4:3;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isParseVml=function(){return!1};mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
mxText.prototype.paint=function(a,c){var f=this.scale,d=this.bounds.x/f,b=this.bounds.y/f,e=this.bounds.width/f,f=this.bounds.height/f;this.updateTransform(a,d,b,e,f);this.configureCanvas(a,d,b,e,f);if(c){var g=null!=this.state?this.state.unscaledWidth:null;null!=this.node.firstChild&&this.lastUnscaledWidth!=g&&a.invalidateCachedOffsetSize(this.node);a.updateText(d,b,e,f,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node)}else{var k=(g=mxUtils.isNode(this.value)||
@@ -693,8 +693,8 @@ mxText.prototype.updateInnerHtml=function(a){if(mxUtils.isNode(this.value))a.inn
mxText.prototype.updateHtmlFilter=function(){var a=this.node.style,c=this.margin.x,f=this.margin.y,d=this.scale;mxUtils.setOpacity(this.node,this.opacity);var b=0,e=0,g=null!=this.state?this.state.view.textDiv:null,k=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 l=Math.round(this.bounds.width/this.scale);this.wrap&&0<l?(g.style.whiteSpace="normal",g.style.wordWrap=mxConstants.WORD_WRAP,b=l,this.clipped&&
(b=Math.min(b,this.bounds.width)),g.style.width=b+"px"):g.style.whiteSpace="nowrap";k=g;null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,this.wrap&&"break-word"==g.style.wordWrap&&(k.style.width="100%"));!this.clipped&&this.wrap&&0<l&&(b=k.offsetWidth+this.textWidthPadding,g.style.width=b+"px");e=k.offsetHeight+2;mxClient.IS_QUIRKS&&null!=this.border&&this.border!=mxConstants.NONE&&(e+=3)}else null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,e=k.offsetHeight);b=k.offsetWidth+
this.textWidthPadding;this.clipped&&(e=Math.min(e,this.bounds.height));l=this.bounds.width/d;g=this.bounds.height/d;"fill"==this.overflow?(e=g,b=l):"width"==this.overflow&&(e=k.scrollHeight,b=l);this.offsetWidth=b;this.offsetHeight=e;mxClient.IS_QUIRKS&&(this.clipped||"width"==this.overflow&&0<g)?(g=Math.min(g,e),a.height=Math.round(g)+"px"):g=e;if("fill"!=this.overflow&&"width"!=this.overflow&&(this.clipped&&(b=Math.min(l,b)),l=b,mxClient.IS_QUIRKS&&this.clipped||this.wrap))a.width=Math.round(l)+
-"px";var g=g*d,l=l*d,n=this.getTextRotation()*(Math.PI/180),b=parseFloat(parseFloat(Math.cos(n)).toFixed(8)),e=parseFloat(parseFloat(Math.sin(-n)).toFixed(8)),n=n%(2*Math.PI);0>n&&(n+=2*Math.PI);n%=Math.PI;n>Math.PI/2&&(n=Math.PI-n);var k=Math.cos(n),m=Math.sin(-n),c=l*-(c+0.5),p=g*-(f+0.5),q=(g-g*k+l*m)/2+e*c-b*p;0!=n&&(f="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+b+", M12\x3d"+e+", M21\x3d"+-e+", M22\x3d"+b+", sizingMethod\x3d'auto expand')",a.filter=null!=a.filter&&0<a.filter.length?a.filter+
-(" "+f):f);f=0;"fill"!=this.overflow&&mxClient.IS_QUIRKS&&(f=this.valign==mxConstants.ALIGN_TOP?f-1:this.valign==mxConstants.ALIGN_BOTTOM?f+2:f+1);a.zoom=d;a.left=Math.round(this.bounds.x+((l-l*k+g*m)/2-b*c-e*p)-l/2)+"px";a.top=Math.round(this.bounds.y+q-g/2+f)+"px"};
+"px";var g=g*d,l=l*d,n=this.getTextRotation()*(Math.PI/180),b=parseFloat(parseFloat(Math.cos(n)).toFixed(8)),e=parseFloat(parseFloat(Math.sin(-n)).toFixed(8)),n=n%(2*Math.PI);0>n&&(n+=2*Math.PI);n%=Math.PI;n>Math.PI/2&&(n=Math.PI-n);var k=Math.cos(n),m=Math.sin(-n),c=l*-(c+0.5),p=g*-(f+0.5),r=(g-g*k+l*m)/2+e*c-b*p;0!=n&&(f="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+b+", M12\x3d"+e+", M21\x3d"+-e+", M22\x3d"+b+", sizingMethod\x3d'auto expand')",a.filter=null!=a.filter&&0<a.filter.length?a.filter+
+(" "+f):f);f=0;"fill"!=this.overflow&&mxClient.IS_QUIRKS&&(f=this.valign==mxConstants.ALIGN_TOP?f-1:this.valign==mxConstants.ALIGN_BOTTOM?f+2:f+1);a.zoom=d;a.left=Math.round(this.bounds.x+((l-l*k+g*m)/2-b*c-e*p)-l/2)+"px";a.top=Math.round(this.bounds.y+r-g/2+f)+"px"};
mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var a=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(a=mxUtils.htmlEntities(a,!1));var a=mxUtils.replaceTrailingNewlines(a,"\x3cdiv\x3e\x3cbr\x3e\x3c/div\x3e"),a=this.replaceLinefeeds?a.replace(/\n/g,"\x3cbr/\x3e"):a,c=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,f=null!=this.border&&this.border!=mxConstants.NONE?this.border:
null;if("fill"==this.overflow||"width"==this.overflow)null!=c&&(this.node.style.backgroundColor=c),null!=f&&(this.node.style.border="1px solid "+f);else{var d="";null!=c&&(d+="background-color:"+c+";");null!=f&&(d+="border:1px solid "+f+";");a='\x3cdiv style\x3d"zoom:1;'+d+"display:inline-block;_display:inline;text-decoration:inherit;padding-bottom:1px;padding-right:1px;line-height:"+(mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT)+'"\x3e'+a+"\x3c/div\x3e"}this.node.innerHTML=
a;a=this.node.getElementsByTagName("div");0<a.length&&(c=this.textDirection,c==mxConstants.TEXT_DIRECTION_AUTO&&this.dialect!=mxConstants.DIALECT_STRICTHTML&&(c=this.getAutoDirection()),c==mxConstants.TEXT_DIRECTION_LTR||c==mxConstants.TEXT_DIRECTION_RTL?a[a.length-1].setAttribute("dir",c):a[a.length-1].removeAttribute("dir"))}};
@@ -754,8 +754,8 @@ mxStackLayout.prototype.resizeParentMax=!1;mxStackLayout.prototype.resizeLast=!1
mxStackLayout.prototype.moveCell=function(a,c,f){var d=this.graph.getModel(),b=d.getParent(a),e=this.isHorizontal();if(null!=a&&null!=b){var g=0,k=0,l=d.getChildCount(b);c=e?c:f;g=this.graph.getView().getState(b);null!=g&&(c-=e?g.x:g.y);c/=this.graph.view.scale;for(g=0;g<l;g++)if(f=d.getChildAt(b,g),f!=a&&(f=d.getGeometry(f),null!=f)){f=e?f.x+f.width/2:f.y+f.height/2;if(k<=c&&f>c)break;k=f}e=b.getIndex(a);e=Math.max(0,g-(g>e?1:0));d.add(b,a,e)}};
mxStackLayout.prototype.getParentSize=function(a){var c=this.graph.getModel(),f=c.getGeometry(a);if(null!=this.graph.container&&(null==f&&c.isLayer(a)||a==this.graph.getView().currentRoot))f=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1);return f};
mxStackLayout.prototype.execute=function(a){if(null!=a){var c=this.getParentSize(a),f=this.isHorizontal(),d=this.graph.getModel(),b=null;null!=c&&(b=f?c.height-this.marginTop-this.marginBottom:c.width-this.marginLeft-this.marginRight);var b=b-(2*this.spacing+2*this.border),e=this.x0+this.border+this.marginLeft,g=this.y0+this.border+this.marginTop;if(this.graph.isSwimlane(a)){var k=this.graph.getCellStyle(a),l=mxUtils.getNumber(k,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),k=1==mxUtils.getValue(k,
-mxConstants.STYLE_HORIZONTAL,!0);null!=c&&(l=k?Math.min(l,c.height):Math.min(l,c.width));f==k&&(b-=l);k?g+=l:e+=l}d.beginUpdate();try{for(var l=0,k=null,n=0,m=null,p=d.getChildCount(a),q=0;q<p;q++){var r=d.getChildAt(a,q);if(!this.isVertexIgnored(r)&&this.isVertexMovable(r)){var s=d.getGeometry(r);if(null!=s){s=s.clone();if(null!=this.wrap&&null!=k&&(f&&k.x+k.width+s.width+2*this.spacing>this.wrap||!f&&k.y+k.height+s.height+2*this.spacing>this.wrap))k=null,f?g+=l+this.spacing:e+=l+this.spacing,l=
-0;var l=Math.max(l,f?s.height:s.width),t=0;if(!this.borderCollapse)var u=this.graph.getCellStyle(r),t=mxUtils.getNumber(u,mxConstants.STYLE_STROKEWIDTH,1);null!=k?f?s.x=n+this.spacing+Math.floor(t/2):s.y=n+this.spacing+Math.floor(t/2):this.keepFirstLocation||(f?s.x=e:s.y=g);f?s.y=g:s.x=e;this.fill&&null!=b&&(f?s.height=b:s.width=b);this.setChildGeometry(r,s);m=r;k=s;n=f?k.x+k.width+Math.floor(t/2):k.y+k.height+Math.floor(t/2)}}}this.resizeParent&&null!=c&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,
+mxConstants.STYLE_HORIZONTAL,!0);null!=c&&(l=k?Math.min(l,c.height):Math.min(l,c.width));f==k&&(b-=l);k?g+=l:e+=l}d.beginUpdate();try{for(var l=0,k=null,n=0,m=null,p=d.getChildCount(a),r=0;r<p;r++){var s=d.getChildAt(a,r);if(!this.isVertexIgnored(s)&&this.isVertexMovable(s)){var q=d.getGeometry(s);if(null!=q){q=q.clone();if(null!=this.wrap&&null!=k&&(f&&k.x+k.width+q.width+2*this.spacing>this.wrap||!f&&k.y+k.height+q.height+2*this.spacing>this.wrap))k=null,f?g+=l+this.spacing:e+=l+this.spacing,l=
+0;var l=Math.max(l,f?q.height:q.width),t=0;if(!this.borderCollapse)var u=this.graph.getCellStyle(s),t=mxUtils.getNumber(u,mxConstants.STYLE_STROKEWIDTH,1);null!=k?f?q.x=n+this.spacing+Math.floor(t/2):q.y=n+this.spacing+Math.floor(t/2):this.keepFirstLocation||(f?q.x=e:q.y=g);f?q.y=g:q.x=e;this.fill&&null!=b&&(f?q.height=b:q.width=b);this.setChildGeometry(s,q);m=s;k=q;n=f?k.x+k.width+Math.floor(t/2):k.y+k.height+Math.floor(t/2)}}}this.resizeParent&&null!=c&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,
c,k):this.resizeLast&&null!=c&&(null!=k&&null!=m)&&(f?k.width=c.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=c.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(m,k))}finally{d.endUpdate()}}};mxStackLayout.prototype.setChildGeometry=function(a,c){var f=this.graph.getCellGeometry(a);(null==f||c.x!=f.x||c.y!=f.y||c.width!=f.width||c.height!=f.height)&&this.graph.getModel().setGeometry(a,c)};
mxStackLayout.prototype.updateParentGeometry=function(a,c,f){var d=this.isHorizontal(),b=this.graph.getModel(),e=c.clone();d?(f=f.x+f.width+this.spacing+this.marginRight,e.width=this.resizeParentMax?Math.max(e.width,f):f):(f=f.y+f.height+this.spacing+this.marginBottom,e.height=this.resizeParentMax?Math.max(e.height,f):f);(c.x!=e.x||c.y!=e.y||c.width!=e.width||c.height!=e.height)&&b.setGeometry(a,e)};
function mxPartitionLayout(a,c,f,d){mxGraphLayout.call(this,a);this.horizontal=null!=c?c:!0;this.spacing=f||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};
@@ -786,7 +786,7 @@ mxCompactTreeLayout.prototype.apply=function(a,c){var f=this.graph.getModel(),d=
mxCompactTreeLayout.prototype.createLine=function(a,c,f){var d={};d.dx=a;d.dy=c;d.next=f;return d};mxCompactTreeLayout.prototype.adjustParents=function(){var a=[],c;for(c in this.parentsChanged)a.push(this.parentsChanged[c]);this.arrangeGroups(mxUtils.sortCells(a,!0),this.groupPadding,this.groupPaddingTop,this.groupPaddingRight,this.groupPaddingBottom,this.groupPaddingLeft)};
mxCompactTreeLayout.prototype.localEdgeProcessing=function(a){this.processNodeOutgoing(a);for(a=a.child;null!=a;)this.localEdgeProcessing(a),a=a.next};
mxCompactTreeLayout.prototype.processNodeOutgoing=function(a){for(var c=a.child,f=a.cell,d=0,b=[];null!=c;){d++;var e=c.x;this.horizontal&&(e=c.y);b.push(new WeightedCellSorter(c,e));c=c.next}b.sort(WeightedCellSorter.prototype.compare);var e=a.width,g=(d+1)*this.prefHozEdgeSep;e>g+2*this.prefHozEdgeSep&&(e-=2*this.prefHozEdgeSep);a=e/d;c=a/2;e>g+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep);for(var e=this.minEdgeJetty-this.prefVertEdgeOff,g=0,k=this.getVertexBounds(f),l=0;l<b.length;l++){for(var n=
-b[l].cell.cell,m=this.getVertexBounds(n),n=this.graph.getEdgesBetween(f,n,!1),p=[],q=0,r=0,s=0;s<n.length;s++)this.horizontal?(q=k.x+k.width,r=k.y+c,p.push(new mxPoint(q,r)),q=k.x+k.width+e,p.push(new mxPoint(q,r)),r=m.y+m.height/2):(q=k.x+c,r=k.y+k.height,p.push(new mxPoint(q,r)),r=k.y+k.height+e,p.push(new mxPoint(q,r)),q=m.x+m.width/2),p.push(new mxPoint(q,r)),this.setEdgePoints(n[s],p);l<d/2?e+=this.prefVertEdgeOff:l>d/2&&(e-=this.prefVertEdgeOff);c+=a;g=Math.max(g,e)}};
+b[l].cell.cell,m=this.getVertexBounds(n),n=this.graph.getEdgesBetween(f,n,!1),p=[],r=0,s=0,q=0;q<n.length;q++)this.horizontal?(r=k.x+k.width,s=k.y+c,p.push(new mxPoint(r,s)),r=k.x+k.width+e,p.push(new mxPoint(r,s)),s=m.y+m.height/2):(r=k.x+c,s=k.y+k.height,p.push(new mxPoint(r,s)),s=k.y+k.height+e,p.push(new mxPoint(r,s)),r=m.x+m.width/2),p.push(new mxPoint(r,s)),this.setEdgePoints(n[q],p);l<d/2?e+=this.prefVertEdgeOff:l>d/2&&(e-=this.prefVertEdgeOff);c+=a;g=Math.max(g,e)}};
function WeightedCellSorter(a,c){this.cell=a;this.weightedValue=c}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,c){return null!=a&&null!=c?c.weightedValue>a.weightedValue?1:c.weightedValue<a.weightedValue?-1:c.nudge?1:-1:0};function mxRadialTreeLayout(a){mxCompactTreeLayout.call(this,a,!1)}
mxUtils.extend(mxRadialTreeLayout,mxCompactTreeLayout);mxRadialTreeLayout.prototype.angleOffset=0.5;mxRadialTreeLayout.prototype.rootx=0;mxRadialTreeLayout.prototype.rooty=0;mxRadialTreeLayout.prototype.levelDistance=120;mxRadialTreeLayout.prototype.nodeDistance=10;mxRadialTreeLayout.prototype.autoRadius=!1;mxRadialTreeLayout.prototype.sortEdges=!1;mxRadialTreeLayout.prototype.rowMinX=[];mxRadialTreeLayout.prototype.rowMaxX=[];mxRadialTreeLayout.prototype.rowMinCenX=[];
mxRadialTreeLayout.prototype.rowMaxCenX=[];mxRadialTreeLayout.prototype.rowRadi=[];mxRadialTreeLayout.prototype.row=[];mxRadialTreeLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
@@ -798,9 +798,9 @@ vertexBounds.width/2,this.rowMinCenX[c]),this.rowMaxCenX[c]=Math.max(vertexBound
mxFastOrganicLayout.prototype.resetEdges=!0;mxFastOrganicLayout.prototype.disableEdgeStyle=!0;mxFastOrganicLayout.prototype.forceConstant=50;mxFastOrganicLayout.prototype.forceConstantSquared=0;mxFastOrganicLayout.prototype.minDistanceLimit=2;mxFastOrganicLayout.prototype.maxDistanceLimit=500;mxFastOrganicLayout.prototype.minDistanceLimitSquared=4;mxFastOrganicLayout.prototype.initialTemp=200;mxFastOrganicLayout.prototype.temperature=0;mxFastOrganicLayout.prototype.maxIterations=0;
mxFastOrganicLayout.prototype.iteration=0;mxFastOrganicLayout.prototype.allowedToRun=!0;mxFastOrganicLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
mxFastOrganicLayout.prototype.execute=function(a){var c=this.graph.getModel();this.vertexArray=[];for(var f=this.graph.getChildVertices(a),d=0;d<f.length;d++)this.isVertexIgnored(f[d])||this.vertexArray.push(f[d]);var b=this.useInputOrigin?this.graph.getBoundingBoxFromGeometry(this.vertexArray):null,e=this.vertexArray.length;this.indices=[];this.dispX=[];this.dispY=[];this.cellLocation=[];this.isMoveable=[];this.neighbours=[];this.radius=[];this.radiusSquared=[];0.001>this.forceConstant&&(this.forceConstant=
-0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;d<this.vertexArray.length;d++){var g=this.vertexArray[d];this.cellLocation[d]=[];var k=mxObjectIdentity.get(g);this.indices[k]=d;var l=this.getVertexBounds(g),n=l.width,m=l.height,p=l.x,q=l.y;this.cellLocation[d][0]=p+n/2;this.cellLocation[d][1]=q+m/2;this.radius[d]=Math.min(n,m);this.radiusSquared[d]=this.radius[d]*this.radius[d]}c.beginUpdate();try{for(d=0;d<e;d++){this.dispX[d]=0;this.dispY[d]=0;this.isMoveable[d]=this.isVertexMovable(this.vertexArray[d]);
-var r=this.graph.getConnections(this.vertexArray[d],a),f=this.graph.getOpposites(r,this.vertexArray[d]);this.neighbours[d]=[];for(n=0;n<f.length;n++){this.resetEdges&&this.graph.resetEdge(r[n]);this.disableEdgeStyle&&this.setEdgeStyleEnabled(r[n],!1);var k=mxObjectIdentity.get(f[n]),s=this.indices[k];this.neighbours[d][n]=null!=s?s:d}}this.temperature=this.initialTemp;0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(e));for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;
-this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature()}a=f=null;for(d=0;d<this.vertexArray.length;d++)g=this.vertexArray[d],this.isVertexMovable(g)&&(l=this.getVertexBounds(g),null!=l&&(this.cellLocation[d][0]-=l.width/2,this.cellLocation[d][1]-=l.height/2,p=this.graph.snap(this.cellLocation[d][0]),q=this.graph.snap(this.cellLocation[d][1]),this.setVertexLocation(g,p,q),f=null==f?p:Math.min(f,p),a=null==a?q:Math.min(a,q)));d=-(f||0)+1;g=-(a||0)+1;null!=b&&(d+=b.x,
+0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;d<this.vertexArray.length;d++){var g=this.vertexArray[d];this.cellLocation[d]=[];var k=mxObjectIdentity.get(g);this.indices[k]=d;var l=this.getVertexBounds(g),n=l.width,m=l.height,p=l.x,r=l.y;this.cellLocation[d][0]=p+n/2;this.cellLocation[d][1]=r+m/2;this.radius[d]=Math.min(n,m);this.radiusSquared[d]=this.radius[d]*this.radius[d]}c.beginUpdate();try{for(d=0;d<e;d++){this.dispX[d]=0;this.dispY[d]=0;this.isMoveable[d]=this.isVertexMovable(this.vertexArray[d]);
+var s=this.graph.getConnections(this.vertexArray[d],a),f=this.graph.getOpposites(s,this.vertexArray[d]);this.neighbours[d]=[];for(n=0;n<f.length;n++){this.resetEdges&&this.graph.resetEdge(s[n]);this.disableEdgeStyle&&this.setEdgeStyleEnabled(s[n],!1);var k=mxObjectIdentity.get(f[n]),q=this.indices[k];this.neighbours[d][n]=null!=q?q:d}}this.temperature=this.initialTemp;0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(e));for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;
+this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature()}a=f=null;for(d=0;d<this.vertexArray.length;d++)g=this.vertexArray[d],this.isVertexMovable(g)&&(l=this.getVertexBounds(g),null!=l&&(this.cellLocation[d][0]-=l.width/2,this.cellLocation[d][1]-=l.height/2,p=this.graph.snap(this.cellLocation[d][0]),r=this.graph.snap(this.cellLocation[d][1]),this.setVertexLocation(g,p,r),f=null==f?p:Math.min(f,p),a=null==a?r:Math.min(a,r)));d=-(f||0)+1;g=-(a||0)+1;null!=b&&(d+=b.x,
g+=b.y);this.graph.moveCells(this.vertexArray,d,g)}finally{c.endUpdate()}};mxFastOrganicLayout.prototype.calcPositions=function(){for(var a=0;a<this.vertexArray.length;a++)if(this.isMoveable[a]){var c=Math.sqrt(this.dispX[a]*this.dispX[a]+this.dispY[a]*this.dispY[a]);0.001>c&&(c=0.001);var f=this.dispX[a]/c*Math.min(c,this.temperature),c=this.dispY[a]/c*Math.min(c,this.temperature);this.dispX[a]=0;this.dispY[a]=0;this.cellLocation[a][0]+=f;this.cellLocation[a][1]+=c}};
mxFastOrganicLayout.prototype.calcAttraction=function(){for(var a=0;a<this.vertexArray.length;a++)for(var c=0;c<this.neighbours[a].length;c++){var f=this.neighbours[a][c];if(a!=f&&this.isMoveable[a]&&this.isMoveable[f]){var d=this.cellLocation[a][0]-this.cellLocation[f][0],b=this.cellLocation[a][1]-this.cellLocation[f][1],e=d*d+b*b-this.radiusSquared[a]-this.radiusSquared[f];e<this.minDistanceLimitSquared&&(e=this.minDistanceLimitSquared);var g=Math.sqrt(e),e=e/this.forceConstant,d=d/g*e,b=b/g*e;
this.dispX[a]-=d;this.dispY[a]-=b;this.dispX[f]+=d;this.dispY[f]+=b}}};
@@ -858,9 +858,9 @@ mxMedianHybridCrossingReduction.prototype.execute=function(a){a=this.layout.getM
k}}else{f++;for(b=0;b<this.nestedBestRanks.length;b++){e=a.ranks[b];for(g=0;g<e.length;g++)k=e[g],k.setGeneralPurposeVariable(b,g)}}if(0==d)break}f=[];d=[];for(c=0;c<a.maxRank+1;c++)d[c]=[],f[c]=d[c];for(c=0;c<this.nestedBestRanks.length;c++)for(b=0;b<this.nestedBestRanks[c].length;b++)d[c].push(this.nestedBestRanks[c][b]);a.ranks=f};mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(a){for(var c=a.ranks.length,f=0,d=1;d<c;d++)f+=this.calculateRankCrossing(d,a);return f};
mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(a,c){for(var f=0,d=c.ranks[a],b=c.ranks[a-1],e=[],g=0;g<d.length;g++){for(var k=d[g],l=k.getGeneralPurposeVariable(a),k=k.getPreviousLayerConnectedCells(a),n=[],m=0;m<k.length;m++){var p=k[m].getGeneralPurposeVariable(a-1);n.push(p)}n.sort(function(b,a){return b-a});e[l]=n}d=[];for(g=0;g<e.length;g++)d=d.concat(e[g]);for(e=1;e<b.length;)e<<=1;l=2*e-1;e-=1;b=[];for(g=0;g<l;++g)b[g]=0;for(g=0;g<d.length;g++){l=d[g]+e;for(++b[l];0<
l;)l%2&&(f+=b[l+1]),l=l-1>>1,++b[l]}return f};
-mxMedianHybridCrossingReduction.prototype.transpose=function(a,c){for(var f=!0,d=0;f&&10>d++;)for(var b=1==a%2&&1==d%2,f=!1,e=0;e<c.ranks.length;e++){for(var g=c.ranks[e],k=[],l=0;l<g.length;l++){var n=g[l],m=n.getGeneralPurposeVariable(e);0>m&&(m=l);k[m]=n}for(var p=null,q=null,r=null,s=null,t=null,u=null,v=null,A=null,l=0;l<g.length-1;l++){if(0==l){for(var v=k[l],n=v.getNextLayerConnectedCells(e),m=v.getPreviousLayerConnectedCells(e),r=[],s=[],y=0;y<n.length;y++)r[y]=n[y].getGeneralPurposeVariable(e+
-1);for(y=0;y<m.length;y++)s[y]=m[y].getGeneralPurposeVariable(e-1)}else n=p,m=q,r=t,s=u,v=A;A=k[l+1];p=A.getNextLayerConnectedCells(e);q=A.getPreviousLayerConnectedCells(e);t=[];u=[];for(y=0;y<p.length;y++)t[y]=p[y].getGeneralPurposeVariable(e+1);for(y=0;y<q.length;y++)u[y]=q[y].getGeneralPurposeVariable(e-1);for(var x=0,D=0,y=0;y<r.length;y++)for(var z=0;z<t.length;z++)r[y]>t[z]&&x++,r[y]<t[z]&&D++;for(y=0;y<s.length;y++)for(z=0;z<u.length;z++)s[y]>u[z]&&x++,s[y]<u[z]&&D++;if(D<x||D==x&&b)p=v.getGeneralPurposeVariable(e),
-v.setGeneralPurposeVariable(e,A.getGeneralPurposeVariable(e)),A.setGeneralPurposeVariable(e,p),p=n,q=m,t=r,u=s,A=v,b||(f=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,c){var f=0==a%2;if(f)for(var d=c.maxRank-1;0<=d;d--)this.medianRank(d,f);else for(d=1;d<c.maxRank;d++)this.medianRank(d,f)};
+mxMedianHybridCrossingReduction.prototype.transpose=function(a,c){for(var f=!0,d=0;f&&10>d++;)for(var b=1==a%2&&1==d%2,f=!1,e=0;e<c.ranks.length;e++){for(var g=c.ranks[e],k=[],l=0;l<g.length;l++){var n=g[l],m=n.getGeneralPurposeVariable(e);0>m&&(m=l);k[m]=n}for(var p=null,r=null,s=null,q=null,t=null,u=null,v=null,z=null,l=0;l<g.length-1;l++){if(0==l){for(var v=k[l],n=v.getNextLayerConnectedCells(e),m=v.getPreviousLayerConnectedCells(e),s=[],q=[],y=0;y<n.length;y++)s[y]=n[y].getGeneralPurposeVariable(e+
+1);for(y=0;y<m.length;y++)q[y]=m[y].getGeneralPurposeVariable(e-1)}else n=p,m=r,s=t,q=u,v=z;z=k[l+1];p=z.getNextLayerConnectedCells(e);r=z.getPreviousLayerConnectedCells(e);t=[];u=[];for(y=0;y<p.length;y++)t[y]=p[y].getGeneralPurposeVariable(e+1);for(y=0;y<r.length;y++)u[y]=r[y].getGeneralPurposeVariable(e-1);for(var x=0,D=0,y=0;y<s.length;y++)for(var A=0;A<t.length;A++)s[y]>t[A]&&x++,s[y]<t[A]&&D++;for(y=0;y<q.length;y++)for(A=0;A<u.length;A++)q[y]>u[A]&&x++,q[y]<u[A]&&D++;if(D<x||D==x&&b)p=v.getGeneralPurposeVariable(e),
+v.setGeneralPurposeVariable(e,z.getGeneralPurposeVariable(e)),z.setGeneralPurposeVariable(e,p),p=n,r=m,t=s,u=q,z=v,b||(f=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,c){var f=0==a%2;if(f)for(var d=c.maxRank-1;0<=d;d--)this.medianRank(d,f);else for(d=1;d<c.maxRank;d++)this.medianRank(d,f)};
mxMedianHybridCrossingReduction.prototype.medianRank=function(a,c){for(var f=this.nestedBestRanks[a].length,d=[],b=[],e=0;e<f;e++){var g=this.nestedBestRanks[a][e],k=new MedianCellSorter;k.cell=g;var l;l=c?g.getNextLayerConnectedCells(a):g.getPreviousLayerConnectedCells(a);var n;n=c?a+1:a-1;null!=l&&0!=l.length?(k.medianValue=this.medianValue(l,n),d.push(k)):b[g.getGeneralPurposeVariable(a)]=!0}d.sort(MedianCellSorter.prototype.compare);for(e=0;e<f;e++)null==b[e]&&(g=d.shift().cell,g.setGeneralPurposeVariable(a,
e))};mxMedianHybridCrossingReduction.prototype.medianValue=function(a,c){for(var f=[],d=0,b=0;b<a.length;b++){var e=a[b];f[d++]=e.getGeneralPurposeVariable(c)}f.sort(function(b,a){return b-a});if(1==d%2)return f[Math.floor(d/2)];if(2==d)return(f[0]+f[1])/2;b=d/2;e=f[b-1]-f[0];d=f[d-1]-f[b];return(f[b-1]*d+f[b]*e)/(e+d)};function MedianCellSorter(){}MedianCellSorter.prototype.medianValue=0;MedianCellSorter.prototype.cell=!1;
MedianCellSorter.prototype.compare=function(a,c){return null!=a&&null!=c?c.medianValue>a.medianValue?-1:c.medianValue<a.medianValue?1:0:0};function mxMinimumCycleRemover(a){this.layout=a}mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage;mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover;mxMinimumCycleRemover.prototype.layout=null;
@@ -872,12 +872,12 @@ mxCoordinateAssignment.prototype.widestRankValue=null;mxCoordinateAssignment.pro
mxCoordinateAssignment.prototype.printStatus=function(){var a=this.layout.getModel();mxLog.show();mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3dCoord assignment debug\x3d\x3d\x3d\x3d\x3d\x3d\x3d");for(var c=0;c<a.ranks.length;c++){mxLog.write("Rank ",c," : ");for(var f=a.ranks[c],d=0;d<f.length;d++)mxLog.write(f[d].getGeneralPurposeVariable(c)," ");mxLog.writeln()}mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d")};
mxCoordinateAssignment.prototype.execute=function(a){this.jettyPositions={};a=this.layout.getModel();this.currentXDelta=0;this.initialCoords(this.layout.getGraph(),a);this.fineTuning&&this.minNode(a);var c=1E8;if(this.fineTuning)for(var f=0;f<this.maxIterations;f++){0!=f&&(this.medianPos(f,a),this.minNode(a));if(this.currentXDelta<c){for(var d=0;d<a.ranks.length;d++)for(var b=a.ranks[d],e=0;e<b.length;e++){var g=b[e];g.setX(d,g.getGeneralPurposeVariable(d))}c=this.currentXDelta}else for(d=0;d<a.ranks.length;d++){b=
a.ranks[d];for(e=0;e<b.length;e++)g=b[e],g.setGeneralPurposeVariable(d,g.getX(d))}this.minPath(this.layout.getGraph(),a);this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),a)};
-mxCoordinateAssignment.prototype.minNode=function(a){for(var c=[],f=new mxDictionary,d=[],b=0;b<=a.maxRank;b++){d[b]=a.ranks[b];for(var e=0;e<d[b].length;e++){var g=d[b][e],k=new WeightedCellSorter(g,b);k.rankIndex=e;k.visited=!0;c.push(k);f.put(g,k)}}a=10*c.length;for(e=0;0<c.length&&e<=a;){var g=c.shift(),b=g.cell,l=g.weightedValue,n=parseInt(g.rankIndex),k=b.getNextLayerConnectedCells(l),m=b.getPreviousLayerConnectedCells(l),p=k.length,q=m.length,r=this.medianXValue(k,l+1),s=this.medianXValue(m,
-l-1),t=p+q,u=b.getGeneralPurposeVariable(l),v=u;0<t&&(v=(r*p+s*q)/t);p=!1;v<u-1?0==n?(b.setGeneralPurposeVariable(l,v),p=!0):(n=d[l][n-1],u=n.getGeneralPurposeVariable(l),u=u+n.width/2+this.intraCellSpacing+b.width/2,u<v?(b.setGeneralPurposeVariable(l,v),p=!0):u<b.getGeneralPurposeVariable(l)-1&&(b.setGeneralPurposeVariable(l,u),p=!0)):v>u+1&&(n==d[l].length-1?(b.setGeneralPurposeVariable(l,v),p=!0):(n=d[l][n+1],u=n.getGeneralPurposeVariable(l),u=u-n.width/2-this.intraCellSpacing-b.width/2,u>v?(b.setGeneralPurposeVariable(l,
+mxCoordinateAssignment.prototype.minNode=function(a){for(var c=[],f=new mxDictionary,d=[],b=0;b<=a.maxRank;b++){d[b]=a.ranks[b];for(var e=0;e<d[b].length;e++){var g=d[b][e],k=new WeightedCellSorter(g,b);k.rankIndex=e;k.visited=!0;c.push(k);f.put(g,k)}}a=10*c.length;for(e=0;0<c.length&&e<=a;){var g=c.shift(),b=g.cell,l=g.weightedValue,n=parseInt(g.rankIndex),k=b.getNextLayerConnectedCells(l),m=b.getPreviousLayerConnectedCells(l),p=k.length,r=m.length,s=this.medianXValue(k,l+1),q=this.medianXValue(m,
+l-1),t=p+r,u=b.getGeneralPurposeVariable(l),v=u;0<t&&(v=(s*p+q*r)/t);p=!1;v<u-1?0==n?(b.setGeneralPurposeVariable(l,v),p=!0):(n=d[l][n-1],u=n.getGeneralPurposeVariable(l),u=u+n.width/2+this.intraCellSpacing+b.width/2,u<v?(b.setGeneralPurposeVariable(l,v),p=!0):u<b.getGeneralPurposeVariable(l)-1&&(b.setGeneralPurposeVariable(l,u),p=!0)):v>u+1&&(n==d[l].length-1?(b.setGeneralPurposeVariable(l,v),p=!0):(n=d[l][n+1],u=n.getGeneralPurposeVariable(l),u=u-n.width/2-this.intraCellSpacing-b.width/2,u>v?(b.setGeneralPurposeVariable(l,
v),p=!0):u>b.getGeneralPurposeVariable(l)+1&&(b.setGeneralPurposeVariable(l,u),p=!0)));if(p){for(b=0;b<k.length;b++)l=k[b],l=f.get(l),null!=l&&!1==l.visited&&(l.visited=!0,c.push(l));for(b=0;b<m.length;b++)l=m[b],l=f.get(l),null!=l&&!1==l.visited&&(l.visited=!0,c.push(l))}g.visited=!1;e++}};mxCoordinateAssignment.prototype.medianPos=function(a,c){if(0==a%2)for(var f=c.maxRank;0<f;f--)this.rankMedianPosition(f-1,c,f);else for(f=0;f<c.maxRank-1;f++)this.rankMedianPosition(f+1,c,f)};
mxCoordinateAssignment.prototype.rankMedianPosition=function(a,c,f){c=c.ranks[a];for(var d=[],b={},e=0;e<c.length;e++){var g=c[e];d[e]=new WeightedCellSorter;d[e].cell=g;d[e].rankIndex=e;b[g.id]=d[e];var k=null,k=f<a?g.getPreviousLayerConnectedCells(a):g.getNextLayerConnectedCells(a);d[e].weightedValue=this.calculatedWeightedValue(g,k)}d.sort(WeightedCellSorter.prototype.compare);for(e=0;e<d.length;e++){var l=0,g=d[e].cell,l=0,k=f<a?g.getPreviousLayerConnectedCells(a).slice():g.getNextLayerConnectedCells(a).slice();
-null!=k&&(l=k.length,l=0<l?this.medianXValue(k,f):g.getGeneralPurposeVariable(a));for(var n=0,k=-1E8,m=d[e].rankIndex-1;0<=m;){var p=b[c[m].id];if(null!=p){var q=p.cell;p.visited?(k=q.getGeneralPurposeVariable(a)+q.width/2+this.intraCellSpacing+n+g.width/2,m=-1):(n+=q.width+this.intraCellSpacing,m--)}}n=0;q=1E8;for(m=d[e].rankIndex+1;m<d.length;)if(p=b[c[m].id],null!=p){var r=p.cell;p.visited?(q=r.getGeneralPurposeVariable(a)-r.width/2-this.intraCellSpacing-n-g.width/2,m=d.length):(n+=r.width+this.intraCellSpacing,
-m++)}l>=k&&l<=q?g.setGeneralPurposeVariable(a,l):l<k?(g.setGeneralPurposeVariable(a,k),this.currentXDelta+=k-l):l>q&&(g.setGeneralPurposeVariable(a,q),this.currentXDelta+=l-q);d[e].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,c){for(var f=0,d=0;d<c.length;d++){var b=c[d];a.isVertex()&&b.isVertex()?f++:f=a.isEdge()&&b.isEdge()?f+8:f+2}return f};
+null!=k&&(l=k.length,l=0<l?this.medianXValue(k,f):g.getGeneralPurposeVariable(a));for(var n=0,k=-1E8,m=d[e].rankIndex-1;0<=m;){var p=b[c[m].id];if(null!=p){var r=p.cell;p.visited?(k=r.getGeneralPurposeVariable(a)+r.width/2+this.intraCellSpacing+n+g.width/2,m=-1):(n+=r.width+this.intraCellSpacing,m--)}}n=0;r=1E8;for(m=d[e].rankIndex+1;m<d.length;)if(p=b[c[m].id],null!=p){var s=p.cell;p.visited?(r=s.getGeneralPurposeVariable(a)-s.width/2-this.intraCellSpacing-n-g.width/2,m=d.length):(n+=s.width+this.intraCellSpacing,
+m++)}l>=k&&l<=r?g.setGeneralPurposeVariable(a,l):l<k?(g.setGeneralPurposeVariable(a,k),this.currentXDelta+=k-l):l>r&&(g.setGeneralPurposeVariable(a,r),this.currentXDelta+=l-r);d[e].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,c){for(var f=0,d=0;d<c.length;d++){var b=c[d];a.isVertex()&&b.isVertex()?f++:f=a.isEdge()&&b.isEdge()?f+8:f+2}return f};
mxCoordinateAssignment.prototype.medianXValue=function(a,c){if(0==a.length)return 0;for(var f=[],d=0;d<a.length;d++)f[d]=a[d].getGeneralPurposeVariable(c);f.sort(function(b,a){return b-a});if(1==a.length%2)return f[Math.floor(a.length/2)];d=a.length/2;return(f[d-1]+f[d])/2};
mxCoordinateAssignment.prototype.initialCoords=function(a,c){this.calculateWidestRank(a,c);for(var f=this.widestRank;0<=f;f--)f<c.maxRank&&this.rankCoordinates(f,a,c);for(f=this.widestRank+1;f<=c.maxRank;f++)0<f&&this.rankCoordinates(f,a,c)};
mxCoordinateAssignment.prototype.rankCoordinates=function(a,c,f){c=f.ranks[a];f=0;for(var d=this.initialX+(this.widestRankValue-this.rankWidths[a])/2,b=!1,e=0;e<c.length;e++){var g=c[e];if(g.isVertex()){var k=this.layout.getVertexBounds(g.cell);null!=k?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(g.width=k.width,g.height=k.height):(g.width=k.height,g.height=k.width):b=!0;f=Math.max(f,g.height)}else g.isEdge()&&(k=1,null!=g.edges?k=g.edges.length:mxLog.warn("edge.edges is null"),
@@ -885,19 +885,19 @@ g.width=(k-1)*this.parallelEdgeSpacing);d+=g.width/2;g.setX(a,d);g.setGeneralPur
mxCoordinateAssignment.prototype.calculateWidestRank=function(a,c){var f=-this.interRankCellSpacing,d=0;this.rankWidths=[];this.rankY=[];for(var b=c.maxRank;0<=b;b--){for(var e=0,g=c.ranks[b],k=this.initialX,l=!1,n=0;n<g.length;n++){var m=g[n];if(m.isVertex()){var p=this.layout.getVertexBounds(m.cell);null!=p?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(m.width=p.width,m.height=p.height):(m.width=p.height,m.height=p.width):l=!0;e=Math.max(e,m.height)}else m.isEdge()&&
(p=1,null!=m.edges?p=m.edges.length:mxLog.warn("edge.edges is null"),m.width=(p-1)*this.parallelEdgeSpacing);k+=m.width/2;m.setX(b,k);m.setGeneralPurposeVariable(b,k);k+=m.width/2;k+=this.intraCellSpacing;k>this.widestRankValue&&(this.widestRankValue=k,this.widestRank=b);this.rankWidths[b]=k}!0==l&&mxLog.warn("At least one cell has no bounds");this.rankY[b]=f;k=e/2+d/2+this.interRankCellSpacing;d=e;f=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?f+k:f-
k;for(n=0;n<g.length;n++)g[n].setY(b,f)}};
-mxCoordinateAssignment.prototype.minPath=function(a,c){for(var f=c.edgeMapper.getValues(),d=0;d<f.length;d++){var b=f[d];if(!(1>b.maxRank-b.minRank-1)){for(var e=b.getGeneralPurposeVariable(b.minRank+1),g=!0,k=0,l=b.minRank+2;l<b.maxRank;l++){var n=b.getGeneralPurposeVariable(l);e!=n?(g=!1,e=n):k++}if(!g){for(var g=e=0,n=[],m=[],p=b.getGeneralPurposeVariable(b.minRank+1),l=b.minRank+1;l<b.maxRank-1;l++){var q=b.getX(l+1);p==q?(n[l-b.minRank-1]=p,e++):this.repositionValid(c,b,l+1,p)?(n[l-b.minRank-
-1]=p,e++):p=n[l-b.minRank-1]=q}p=b.getX(l);for(l=b.maxRank-1;l>b.minRank+1;l--)q=b.getX(l-1),p==q?(m[l-b.minRank-2]=p,g++):this.repositionValid(c,b,l-1,p)?(m[l-b.minRank-2]=p,g++):(m[l-b.minRank-2]=b.getX(l-1),p=q);if(g>k||e>k)if(g>=e)for(l=b.maxRank-2;l>b.minRank;l--)b.setX(l,m[l-b.minRank-1]);else if(e>g)for(l=b.minRank+2;l<b.maxRank;l++)b.setX(l,n[l-b.minRank-2])}}}};
+mxCoordinateAssignment.prototype.minPath=function(a,c){for(var f=c.edgeMapper.getValues(),d=0;d<f.length;d++){var b=f[d];if(!(1>b.maxRank-b.minRank-1)){for(var e=b.getGeneralPurposeVariable(b.minRank+1),g=!0,k=0,l=b.minRank+2;l<b.maxRank;l++){var n=b.getGeneralPurposeVariable(l);e!=n?(g=!1,e=n):k++}if(!g){for(var g=e=0,n=[],m=[],p=b.getGeneralPurposeVariable(b.minRank+1),l=b.minRank+1;l<b.maxRank-1;l++){var r=b.getX(l+1);p==r?(n[l-b.minRank-1]=p,e++):this.repositionValid(c,b,l+1,p)?(n[l-b.minRank-
+1]=p,e++):p=n[l-b.minRank-1]=r}p=b.getX(l);for(l=b.maxRank-1;l>b.minRank+1;l--)r=b.getX(l-1),p==r?(m[l-b.minRank-2]=p,g++):this.repositionValid(c,b,l-1,p)?(m[l-b.minRank-2]=p,g++):(m[l-b.minRank-2]=b.getX(l-1),p=r);if(g>k||e>k)if(g>=e)for(l=b.maxRank-2;l>b.minRank;l--)b.setX(l,m[l-b.minRank-1]);else if(e>g)for(l=b.minRank+2;l<b.maxRank;l++)b.setX(l,n[l-b.minRank-2])}}}};
mxCoordinateAssignment.prototype.repositionValid=function(a,c,f,d){a=a.ranks[f];for(var b=-1,e=0;e<a.length;e++)if(c==a[e]){b=e;break}if(0>b)return!1;e=c.getGeneralPurposeVariable(f);if(d<e){if(0==b)return!0;a=a[b-1];f=a.getGeneralPurposeVariable(f);f=f+a.width/2+this.intraCellSpacing+c.width/2;if(!(f<=d))return!1}else if(d>e){if(b==a.length-1)return!0;a=a[b+1];f=a.getGeneralPurposeVariable(f);f=f-a.width/2-this.intraCellSpacing-c.width/2;if(!(f>=d))return!1}return!0};
mxCoordinateAssignment.prototype.setCellLocations=function(a,c){this.rankTopY=[];this.rankBottomY=[];for(var f=0;f<c.ranks.length;f++)this.rankTopY[f]=Number.MAX_VALUE,this.rankBottomY[f]=-Number.MAX_VALUE;for(var d=c.vertexMapper.getValues(),f=0;f<d.length;f++)this.setVertexLocation(d[f]);(this.layout.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.layout.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(c);d=c.edgeMapper.getValues();
for(f=0;f<d.length;f++)this.setEdgePosition(d[f])};
-mxCoordinateAssignment.prototype.localEdgeProcessing=function(a){for(var c=0;c<a.ranks.length;c++)for(var f=a.ranks[c],d=0;d<f.length;d++){var b=f[d];if(b.isVertex())for(var e=b.getPreviousLayerConnectedCells(c),g=c-1,k=0;2>k;k++){if(-1<g&&g<a.ranks.length&&null!=e&&0<e.length){for(var l=[],n=0;n<e.length;n++){var m=new WeightedCellSorter(e[n],e[n].getX(g));l.push(m)}l.sort(WeightedCellSorter.prototype.compare);for(var m=b.x[0]-b.width/2,p=m+b.width,q=e=0,g=[],n=0;n<l.length;n++){var r=l[n].cell,
-s;if(r.isVertex()){s=0==k?b.connectsAsSource:b.connectsAsTarget;for(var t=0;t<s.length;t++)if(s[t].source==r||s[t].target==r)e+=s[t].edges.length,q++,g.push(s[t])}else e+=r.edges.length,q++,g.push(r)}b.width>(e+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(m+=this.prefHozEdgeSep,p-=this.prefHozEdgeSep);l=(p-m)/e;m+=l/2;p=this.minEdgeJetty-this.prefVertEdgeOff;for(n=q=0;n<g.length;n++){r=g[n].edges.length;s=this.jettyPositions[g[n].ids[0]];null==s&&(s=[],this.jettyPositions[g[n].ids[0]]=s);n<e/2?
-p+=this.prefVertEdgeOff:n>e/2&&(p-=this.prefVertEdgeOff);for(t=0;t<r;t++)s[4*t+2*k]=m,m+=l,s[4*t+2*k+1]=p;q=Math.max(q,p)}}e=b.getNextLayerConnectedCells(c);g=c+1}}};
-mxCoordinateAssignment.prototype.setEdgePosition=function(a){var c=0;if(101207!=a.temp[0]){var f=a.maxRank,d=a.minRank;f==d&&(f=a.source.maxRank,d=a.target.minRank);for(var b=0,e=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,n=0;n<a.edges.length;n++){var m=a.edges[n],p=this.layout.getVisibleTerminal(m,!0),q=[],r=a.isReversed;p!=g&&(r=!r);if(null!=e){var s=r?
-2:0,t=r?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[f]:this.rankBottomY[f],u=e[4*b+1+s];r!=l&&(u=-u);var t=t+u,s=e[4*b+s],v=k.model.getTerminal(m,!0);this.layout.isPort(v)&&k.model.getParent(v)==p&&(s=k.view.getState(v),s=null!=s?s.x:p.geometry.x+a.source.width*v.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(s,t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(s,t+u))):(q.push(new mxPoint(t,
-s)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(t+u,s)))}s=a.x.length-1;t=u=-1;p=a.maxRank-1;for(r&&(s=0,u=a.x.length,t=1,p=a.minRank+1);a.maxRank!=a.minRank&&s!=u;s+=t){var v=a.x[s]+c,A=(this.rankTopY[p]+this.rankBottomY[p+1])/2,y=(this.rankTopY[p-1]+this.rankBottomY[p])/2;if(r)var x=A,A=y,y=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(v,A)),q.push(new mxPoint(v,y))):(q.push(new mxPoint(A,v)),q.push(new mxPoint(y,
-v)));this.limitX=Math.max(this.limitX,v);p+=t}null!=e&&(s=r?2:0,t=r?l?this.rankTopY[f]:this.rankBottomY[f]:l?this.rankBottomY[d]:this.rankTopY[d],u=e[4*b+3-s],r!=l&&(u=-u),t-=u,s=e[4*b+2-s],r=k.model.getTerminal(m,!1),p=this.layout.getVisibleTerminal(m,!1),this.layout.isPort(r)&&k.model.getParent(r)==p&&(s=k.view.getState(r),s=null!=s?s.x:p.geometry.x+a.target.width*r.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
-q.push(new mxPoint(s,t-u)),q.push(new mxPoint(s,t))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(t-u,s)),q.push(new mxPoint(t,s))));a.isReversed&&this.processReversedEdge(a,m);this.layout.setEdgePoints(m,q);c=0==c?this.parallelEdgeSpacing:0<c?-c:-c+this.parallelEdgeSpacing;b++}a.temp[0]=101207}};
+mxCoordinateAssignment.prototype.localEdgeProcessing=function(a){for(var c=0;c<a.ranks.length;c++)for(var f=a.ranks[c],d=0;d<f.length;d++){var b=f[d];if(b.isVertex())for(var e=b.getPreviousLayerConnectedCells(c),g=c-1,k=0;2>k;k++){if(-1<g&&g<a.ranks.length&&null!=e&&0<e.length){for(var l=[],n=0;n<e.length;n++){var m=new WeightedCellSorter(e[n],e[n].getX(g));l.push(m)}l.sort(WeightedCellSorter.prototype.compare);for(var m=b.x[0]-b.width/2,p=m+b.width,r=e=0,g=[],n=0;n<l.length;n++){var s=l[n].cell,
+q;if(s.isVertex()){q=0==k?b.connectsAsSource:b.connectsAsTarget;for(var t=0;t<q.length;t++)if(q[t].source==s||q[t].target==s)e+=q[t].edges.length,r++,g.push(q[t])}else e+=s.edges.length,r++,g.push(s)}b.width>(e+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(m+=this.prefHozEdgeSep,p-=this.prefHozEdgeSep);l=(p-m)/e;m+=l/2;p=this.minEdgeJetty-this.prefVertEdgeOff;for(n=r=0;n<g.length;n++){s=g[n].edges.length;q=this.jettyPositions[g[n].ids[0]];null==q&&(q=[],this.jettyPositions[g[n].ids[0]]=q);n<e/2?
+p+=this.prefVertEdgeOff:n>e/2&&(p-=this.prefVertEdgeOff);for(t=0;t<s;t++)q[4*t+2*k]=m,m+=l,q[4*t+2*k+1]=p;r=Math.max(r,p)}}e=b.getNextLayerConnectedCells(c);g=c+1}}};
+mxCoordinateAssignment.prototype.setEdgePosition=function(a){var c=0;if(101207!=a.temp[0]){var f=a.maxRank,d=a.minRank;f==d&&(f=a.source.maxRank,d=a.target.minRank);for(var b=0,e=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,n=0;n<a.edges.length;n++){var m=a.edges[n],p=this.layout.getVisibleTerminal(m,!0),r=[],s=a.isReversed;p!=g&&(s=!s);if(null!=e){var q=s?
+2:0,t=s?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[f]:this.rankBottomY[f],u=e[4*b+1+q];s!=l&&(u=-u);var t=t+u,q=e[4*b+q],v=k.model.getTerminal(m,!0);this.layout.isPort(v)&&k.model.getParent(v)==p&&(q=k.view.getState(v),q=null!=q?q.x:p.geometry.x+a.source.width*v.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(r.push(new mxPoint(q,t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&r.push(new mxPoint(q,t+u))):(r.push(new mxPoint(t,
+q)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&r.push(new mxPoint(t+u,q)))}q=a.x.length-1;t=u=-1;p=a.maxRank-1;for(s&&(q=0,u=a.x.length,t=1,p=a.minRank+1);a.maxRank!=a.minRank&&q!=u;q+=t){var v=a.x[q]+c,z=(this.rankTopY[p]+this.rankBottomY[p+1])/2,y=(this.rankTopY[p-1]+this.rankBottomY[p])/2;if(s)var x=z,z=y,y=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(r.push(new mxPoint(v,z)),r.push(new mxPoint(v,y))):(r.push(new mxPoint(z,v)),r.push(new mxPoint(y,
+v)));this.limitX=Math.max(this.limitX,v);p+=t}null!=e&&(q=s?2:0,t=s?l?this.rankTopY[f]:this.rankBottomY[f]:l?this.rankBottomY[d]:this.rankTopY[d],u=e[4*b+3-q],s!=l&&(u=-u),t-=u,q=e[4*b+2-q],s=k.model.getTerminal(m,!1),p=this.layout.getVisibleTerminal(m,!1),this.layout.isPort(s)&&k.model.getParent(s)==p&&(q=k.view.getState(s),q=null!=q?q.x:p.geometry.x+a.target.width*s.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
+r.push(new mxPoint(q,t-u)),r.push(new mxPoint(q,t))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&r.push(new mxPoint(t-u,q)),r.push(new mxPoint(t,q))));a.isReversed&&this.processReversedEdge(a,m);this.layout.setEdgePoints(m,r);c=0==c?this.parallelEdgeSpacing:0<c?-c:-c+this.parallelEdgeSpacing;b++}a.temp[0]=101207}};
mxCoordinateAssignment.prototype.setVertexLocation=function(a){var c=a.cell,f=a.x[0]-a.width/2,d=a.y[0]-a.height/2;this.rankTopY[a.minRank]=Math.min(this.rankTopY[a.minRank],d);this.rankBottomY[a.minRank]=Math.max(this.rankBottomY[a.minRank],d+a.height);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(c,f,d):this.layout.setVertexLocation(c,d,f);this.limitX=Math.max(this.limitX,f+a.width)};
mxCoordinateAssignment.prototype.processReversedEdge=function(a,c){};function WeightedCellSorter(a,c){this.cell=a;this.weightedValue=c}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,c){return null!=a&&null!=c?c.weightedValue>a.weightedValue?-1:c.weightedValue<a.weightedValue?1:c.nudge?-1:1:0};
function mxSwimlaneOrdering(a){this.layout=a}mxSwimlaneOrdering.prototype=new mxHierarchicalLayoutStage;mxSwimlaneOrdering.prototype.constructor=mxSwimlaneOrdering;mxSwimlaneOrdering.prototype.layout=null;
@@ -927,7 +927,7 @@ this.graph.getChildCells(c[b]);if(null==e||0==e.length)e=this.graph.insertVertex
mxSwimlaneLayout.prototype.updateGroupBounds=function(){var a=[],c=this.model,f;for(f in c.edgeMapper)for(var d=c.edgeMapper[f],b=0;b<d.edges.length;b++)a.push(d.edges[b]);a=this.graph.getBoundingBoxFromGeometry(a,!0);c=[];for(b=0;b<this.swimlanes.length;b++){var e=this.swimlanes[b];f=this.graph.getCellGeometry(e);if(null!=f){var g=this.graph.getChildCells(e),d=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,e=this.graph.getBoundingBoxFromGeometry(g);c[b]=e;d=e.y+f.y-d.height-
this.parentBorder;f=e.y+f.y+e.height;null==a?a=new mxRectangle(0,d,0,f-d):(a.y=Math.min(a.y,d),f=Math.max(a.y+a.height,f),a.height=f-a.y)}}for(b=0;b<this.swimlanes.length;b++)if(e=this.swimlanes[b],f=this.graph.getCellGeometry(e),null!=f){var g=this.graph.getChildCells(e),d=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,k=f.clone(),l=0==b?this.parentBorder:this.interRankCellSpacing/2;k.x+=c[b].x-d.width-l;k.y=k.y+a.y-f.y-this.parentBorder;k.width=c[b].width+d.width+this.interRankCellSpacing/
2+l;k.height=a.height+d.height+2*this.parentBorder;this.graph.model.setGeometry(e,k);this.graph.moveCells(g,-c[b].x+d.width+l,f.y-a.y+this.parentBorder)}};
-mxSwimlaneLayout.prototype.findRoots=function(a,c){var f=[];if(null!=a&&null!=c){var d=this.graph.model,b=null,e=-1E5,g;for(g in c){var k=c[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),n=0,m=0,p=0;p<l.length;p++){var q=this.getVisibleTerminal(l[p],!0);q==k?(q=this.getVisibleTerminal(l[p],!1),d.isAncestor(a,q)&&n++):d.isAncestor(a,q)&&m++}0==m&&0<n&&f.push(k);l=n-m;l>e&&(e=l,b=k)}}0==f.length&&null!=b&&f.push(b)}return f};
+mxSwimlaneLayout.prototype.findRoots=function(a,c){var f=[];if(null!=a&&null!=c){var d=this.graph.model,b=null,e=-1E5,g;for(g in c){var k=c[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),n=0,m=0,p=0;p<l.length;p++){var r=this.getVisibleTerminal(l[p],!0);r==k?(r=this.getVisibleTerminal(l[p],!1),d.isAncestor(a,r)&&n++):d.isAncestor(a,r)&&m++}0==m&&0<n&&f.push(k);l=n-m;l>e&&(e=l,b=k)}}0==f.length&&null!=b&&f.push(b)}return f};
mxSwimlaneLayout.prototype.getEdges=function(a){var c=this.edgesCache.get(a);if(null!=c)return c;for(var f=this.graph.model,c=[],d=this.graph.isCellCollapsed(a),b=f.getChildCount(a),e=0;e<b;e++){var g=f.getChildAt(a,e);if(this.isPort(g))c=c.concat(f.getEdges(g,!0,!0));else if(d||!this.graph.isCellVisible(g))c=c.concat(f.getEdges(g,!0,!0))}c=c.concat(f.getEdges(a,!0,!0));f=[];for(e=0;e<c.length;e++)d=this.getVisibleTerminal(c[e],!0),b=this.getVisibleTerminal(c[e],!1),(d==b||d!=b&&(b==a&&(null==this.parent||
this.graph.isValidAncestor(d,this.parent,this.traverseAncestors))||d==a&&(null==this.parent||this.graph.isValidAncestor(b,this.parent,this.traverseAncestors))))&&f.push(c[e]);this.edgesCache.put(a,f);return f};
mxSwimlaneLayout.prototype.getVisibleTerminal=function(a,c){var f=this.edgesTargetTermCache;c&&(f=this.edgeSourceTermCache);var d=f.get(a);if(null!=d)return d;var d=this.graph.view.getState(a),b=null!=d?d.getVisibleTerminal(c):this.graph.view.getVisibleTerminal(a,c);null==b&&(b=null!=d?d.getVisibleTerminal(c):this.graph.view.getVisibleTerminal(a,c));null!=b&&(this.isPort(b)&&(b=this.graph.model.getParent(b)),f.put(a,b));return b};
@@ -935,8 +935,8 @@ mxSwimlaneLayout.prototype.run=function(a){var c=[],f=[];if(null!=this.swimlanes
b=!0;for(e in d)if(null!=d[e]){b=!1;break}}}}else for(b=0;b<this.roots.length;b++)l={},c.push(l),this.traverse(this.roots[b],!0,null,f,l,c,null);c=[];for(e in f)c.push(f[e]);this.model=new mxSwimlaneModel(this,c,this.roots,a,this.tightenToSource);this.cycleStage(a);this.layeringStage();this.crossingStage(a);initialX=this.placementStage(0,a)};
mxSwimlaneLayout.prototype.filterDescendants=function(a,c){var f=this.graph.model;f.isVertex(a)&&a!=this.parent&&(f.getParent(a)!=this.parent&&this.graph.isCellVisible(a))&&(c[mxObjectIdentity.get(a)]=a);if(this.traverseAncestors||a==this.parent&&this.graph.isCellVisible(a))for(var d=f.getChildCount(a),b=0;b<d;b++){var e=f.getChildAt(a,b);this.isPort(e)||this.filterDescendants(e,c)}};mxSwimlaneLayout.prototype.isPort=function(a){return a.geometry.relative?!0:!1};
mxSwimlaneLayout.prototype.getEdgesBetween=function(a,c,f){f=null!=f?f:!1;for(var d=this.getEdges(a),b=[],e=0;e<d.length;e++){var g=this.getVisibleTerminal(d[e],!0),k=this.getVisibleTerminal(d[e],!1);(g==a&&k==c||!f&&g==c&&k==a)&&b.push(d[e])}return b};
-mxSwimlaneLayout.prototype.traverse=function(a,c,f,d,b,e,g,k){if(null!=a&&null!=d){var l=mxObjectIdentity.get(a);if(null==d[l]&&(null==g||null!=g[l])){null==b[l]&&(b[l]=a);null==d[l]&&(d[l]=a);null!==g&&delete g[l];var n=this.getEdges(a),l=this.graph.model;for(f=0;f<n.length;f++){var m=this.getVisibleTerminal(n[f],!0),p=m==a;p&&(m=this.getVisibleTerminal(n[f],!1));for(var q=0,q=0;q<this.swimlanes.length&&!l.isAncestor(this.swimlanes[q],m);q++);if(!(q>=this.swimlanes.length)&&(q>k||(!c||p)&&q==k))b=
-this.traverse(m,c,n[f],d,b,e,g,q)}}else if(null==b[l])for(f=0;f<e.length;f++)if(a=e[f],null!=a[l]){for(n in a)b[n]=a[n];e.splice(f,1);break}}return b};mxSwimlaneLayout.prototype.cycleStage=function(a){(new mxSwimlaneOrdering(this)).execute(a)};mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxSwimlaneLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
+mxSwimlaneLayout.prototype.traverse=function(a,c,f,d,b,e,g,k){if(null!=a&&null!=d){var l=mxObjectIdentity.get(a);if(null==d[l]&&(null==g||null!=g[l])){null==b[l]&&(b[l]=a);null==d[l]&&(d[l]=a);null!==g&&delete g[l];var n=this.getEdges(a),l=this.graph.model;for(f=0;f<n.length;f++){var m=this.getVisibleTerminal(n[f],!0),p=m==a;p&&(m=this.getVisibleTerminal(n[f],!1));for(var r=0,r=0;r<this.swimlanes.length&&!l.isAncestor(this.swimlanes[r],m);r++);if(!(r>=this.swimlanes.length)&&(r>k||(!c||p)&&r==k))b=
+this.traverse(m,c,n[f],d,b,e,g,r)}}else if(null==b[l])for(f=0;f<e.length;f++)if(a=e[f],null!=a[l]){for(n in a)b[n]=a[n];e.splice(f,1);break}}return b};mxSwimlaneLayout.prototype.cycleStage=function(a){(new mxSwimlaneOrdering(this)).execute(a)};mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxSwimlaneLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
mxSwimlaneLayout.prototype.placementStage=function(a,c){var f=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,a,this.parallelEdgeSpacing);f.fineTuning=this.fineTuning;f.execute(c);return f.limitX+this.interHierarchySpacing};function mxGraphModel(a){this.currentEdit=this.createUndoableEdit();null!=a?this.setRoot(a):this.clear()}mxGraphModel.prototype=new mxEventSource;mxGraphModel.prototype.constructor=mxGraphModel;mxGraphModel.prototype.root=null;
mxGraphModel.prototype.cells=null;mxGraphModel.prototype.maintainEdgeParent=!0;mxGraphModel.prototype.ignoreRelativeEdgeParent=!0;mxGraphModel.prototype.createIds=!0;mxGraphModel.prototype.prefix="";mxGraphModel.prototype.postfix="";mxGraphModel.prototype.nextId=0;mxGraphModel.prototype.currentEdit=null;mxGraphModel.prototype.updateLevel=0;mxGraphModel.prototype.endingUpdate=!1;mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())};mxGraphModel.prototype.isCreateIds=function(){return this.createIds};
mxGraphModel.prototype.setCreateIds=function(a){this.createIds=a};mxGraphModel.prototype.createRoot=function(){var a=new mxCell;a.insert(new mxCell);return a};mxGraphModel.prototype.getCell=function(a){return null!=this.cells?this.cells[a]:null};mxGraphModel.prototype.filterCells=function(a,c){var f=null;if(null!=a)for(var f=[],d=0;d<a.length;d++)c(a[d])&&f.push(a[d]);return f};mxGraphModel.prototype.getDescendants=function(a){return this.filterDescendants(null,a)};
@@ -1000,18 +1000,18 @@ return f},compare:function(a,c){for(var f=Math.min(a.length,c.length),d=0,b=0;b<
Math.tan(e)/2):e<-n?(g.y=a.y,g.x=c-a.height*Math.tan(l)/2):e<n?(g.x=a.x+a.width,g.y=b+a.width*Math.tan(e)/2):(g.y=a.y+a.height,g.x=c+a.height*Math.tan(l)/2);d&&(f.x>=a.x&&f.x<=a.x+a.width?g.x=f.x:f.y>=a.y&&f.y<=a.y+a.height&&(g.y=f.y),f.x<a.x?g.x=a.x:f.x>a.x+a.width&&(g.x=a.x+a.width),f.y<a.y?g.y=a.y:f.y>a.y+a.height&&(g.y=a.y+a.height));return g},EllipsePerimeter:function(a,c,f,d){var b=a.x,e=a.y,g=a.width/2,k=a.height/2,l=b+g,n=e+k;c=f.x;f=f.y;var m=parseInt(c-l),p=parseInt(f-n);if(0==m&&0!=p)return new mxPoint(l,
n+k*p/Math.abs(p));if(0==m&&0==p)return new mxPoint(c,f);if(d){if(f>=e&&f<=e+a.height)return a=f-n,a=Math.sqrt(g*g*(1-a*a/(k*k)))||0,c<=b&&(a=-a),new mxPoint(l+a,f);if(c>=b&&c<=b+a.width)return a=c-l,a=Math.sqrt(k*k*(1-a*a/(g*g)))||0,f<=e&&(a=-a),new mxPoint(c,n+a)}b=p/m;n-=b*l;e=g*g*b*b+k*k;a=-2*l*e;k=Math.sqrt(a*a-4*e*(g*g*b*b*l*l+k*k*l*l-g*g*k*k));g=(-a+k)/(2*e);k=(-a-k)/(2*e);l=b*g+n;n=b*k+n;b=Math.sqrt(Math.pow(g-c,2)+Math.pow(l-f,2));c=Math.sqrt(Math.pow(k-c,2)+Math.pow(n-f,2));e=f=0;b<c?(f=
g,e=l):(f=k,e=n);return new mxPoint(f,e)},RhombusPerimeter:function(a,c,f,d){c=a.x;var b=a.y,e=a.width;a=a.height;var g=c+e/2,k=b+a/2,l=f.x;f=f.y;if(g==l)return k>f?new mxPoint(g,b):new mxPoint(g,b+a);if(k==f)return g>l?new mxPoint(c,k):new mxPoint(c+e,k);var n=g,m=k;d&&(l>=c&&l<=c+e?n=l:f>=b&&f<=b+a&&(m=f));return l<g?f<k?mxUtils.intersection(l,f,n,m,g,b,c,k):mxUtils.intersection(l,f,n,m,g,b+a,c,k):f<k?mxUtils.intersection(l,f,n,m,g,b,c+e,k):mxUtils.intersection(l,f,n,m,g,b+a,c+e,k)},TrianglePerimeter:function(a,
-c,f,d){c=null!=c?c.style[mxConstants.STYLE_DIRECTION]:null;var b=c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH,e=a.x,g=a.y,k=a.width;a=a.height;var l=e+k/2,n=g+a/2,m=new mxPoint(e,g),p=new mxPoint(e+k,n),q=new mxPoint(e,g+a);c==mxConstants.DIRECTION_NORTH?(m=q,p=new mxPoint(l,g),q=new mxPoint(e+k,g+a)):c==mxConstants.DIRECTION_SOUTH?(p=new mxPoint(l,g+a),q=new mxPoint(e+k,g)):c==mxConstants.DIRECTION_WEST&&(m=new mxPoint(e+k,g),p=new mxPoint(e,n),q=new mxPoint(e+k,g+a));var r=f.x-
-l,s=f.y-n,r=b?Math.atan2(r,s):Math.atan2(s,r),t=b?Math.atan2(k,a):Math.atan2(a,k),s=c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_WEST?r>-t&&r<t:r<-Math.PI+t||r>Math.PI-t,t=null;s?t=d&&(b&&f.x>=m.x&&f.x<=q.x||!b&&f.y>=m.y&&f.y<=q.y)?b?new mxPoint(f.x,m.y):new mxPoint(m.x,f.y):c==mxConstants.DIRECTION_NORTH?new mxPoint(e+k/2+a*Math.tan(r)/2,g+a):c==mxConstants.DIRECTION_SOUTH?new mxPoint(e+k/2-a*Math.tan(r)/2,g):c==mxConstants.DIRECTION_WEST?new mxPoint(e+k,g+a/2+k*Math.tan(r)/2):new mxPoint(e,
-g+a/2-k*Math.tan(r)/2):(d&&(d=new mxPoint(l,n),f.y>=g&&f.y<=g+a?(d.x=b?l:c==mxConstants.DIRECTION_WEST?e+k:e,d.y=f.y):f.x>=e&&f.x<=e+k&&(d.x=f.x,d.y=!b?n:c==mxConstants.DIRECTION_NORTH?g+a:g),l=d.x,n=d.y),t=b&&f.x<=e+k/2||!b&&f.y<=g+a/2?mxUtils.intersection(f.x,f.y,l,n,m.x,m.y,p.x,p.y):mxUtils.intersection(f.x,f.y,l,n,p.x,p.y,q.x,q.y));null==t&&(t=new mxPoint(l,n));return t},HexagonPerimeter:function(a,c,f,d){var b=a.x,e=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var n=f.x,m=f.y,p=
--Math.atan2(m-a,n-l),q=Math.PI,r=Math.PI/2,s=new mxPoint(l,a);c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH;c=new mxPoint;s=new mxPoint;if(n<b&&m<e||n<b&&m>e+k||n>b+g&&m<e||n>b+g&&m>e+k)d=!1;if(d){if(t){if(n==l){if(m<=e)return new mxPoint(l,e);if(m>=e+k)return new mxPoint(l,e+k)}else if(n<b){if(m==e+k/4)return new mxPoint(b,e+k/4);if(m==e+3*k/4)return new mxPoint(b,
-e+3*k/4)}else if(n>b+g){if(m==e+k/4)return new mxPoint(b+g,e+k/4);if(m==e+3*k/4)return new mxPoint(b+g,e+3*k/4)}else if(n==b){if(m<a)return new mxPoint(b,e+k/4);if(m>a)return new mxPoint(b,e+3*k/4)}else if(n==b+g){if(m<a)return new mxPoint(b+g,e+k/4);if(m>a)return new mxPoint(b+g,e+3*k/4)}if(m==e)return new mxPoint(l,e);if(m==e+k)return new mxPoint(l,e+k);n<l?m>e+k/4&&m<e+3*k/4?(c=new mxPoint(b,e),s=new mxPoint(b,e+k)):m<e+k/4?(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),s=new mxPoint(b+
-g,e-Math.floor(0.25*k))):m>e+3*k/4&&(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),s=new mxPoint(b+g,e+Math.floor(1.25*k))):n>l&&(m>e+k/4&&m<e+3*k/4?(c=new mxPoint(b+g,e),s=new mxPoint(b+g,e+k)):m<e+k/4?(c=new mxPoint(b,e-Math.floor(0.25*k)),s=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k))):m>e+3*k/4&&(c=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k)),s=new mxPoint(b,e+Math.floor(1.25*k))))}else{if(m==a){if(n<=b)return new mxPoint(b,e+k/2);if(n>=b+g)return new mxPoint(b+g,e+k/
-2)}else if(m<e){if(n==b+g/4)return new mxPoint(b+g/4,e);if(n==b+3*g/4)return new mxPoint(b+3*g/4,e)}else if(m>e+k){if(n==b+g/4)return new mxPoint(b+g/4,e+k);if(n==b+3*g/4)return new mxPoint(b+3*g/4,e+k)}else if(m==e){if(n<l)return new mxPoint(b+g/4,e);if(n>l)return new mxPoint(b+3*g/4,e)}else if(m==e+k){if(n<l)return new mxPoint(b+g/4,e+k);if(m>a)return new mxPoint(b+3*g/4,e+k)}if(n==b)return new mxPoint(b,a);if(n==b+g)return new mxPoint(b+g,a);m<a?n>b+g/4&&n<b+3*g/4?(c=new mxPoint(b,e),s=new mxPoint(b+
-g,e)):n<b+g/4?(c=new mxPoint(b-Math.floor(0.25*g),e+k),s=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k))):n>b+3*g/4&&(c=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k)),s=new mxPoint(b+Math.floor(1.25*g),e+k)):m>a&&(n>b+g/4&&n<b+3*g/4?(c=new mxPoint(b,e+k),s=new mxPoint(b+g,e+k)):n<b+g/4?(c=new mxPoint(b-Math.floor(0.25*g),e),s=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k))):n>b+3*g/4&&(c=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k)),s=new mxPoint(b+Math.floor(1.25*g),e)))}d=
-l;p=a;n>=b&&n<=b+g?(d=n,p=m<a?e+k:e):m>=e&&m<=e+k&&(p=m,d=n<l?b+g:b);s=mxUtils.intersection(d,p,f.x,f.y,c.x,c.y,s.x,s.y)}else{if(t){n=Math.atan2(k/4,g/2);if(p==n)return new mxPoint(b+g,e+Math.floor(0.25*k));if(p==r)return new mxPoint(b+Math.floor(0.5*g),e);if(p==q-n)return new mxPoint(b,e+Math.floor(0.25*k));if(p==-n)return new mxPoint(b+g,e+Math.floor(0.75*k));if(p==-r)return new mxPoint(b+Math.floor(0.5*g),e+k);if(p==-q+n)return new mxPoint(b,e+Math.floor(0.75*k));p<n&&p>-n?(c=new mxPoint(b+g,e),
-s=new mxPoint(b+g,e+k)):p>n&&p<r?(c=new mxPoint(b,e-Math.floor(0.25*k)),s=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k))):p>r&&p<q-n?(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),s=new mxPoint(b+g,e-Math.floor(0.25*k))):p>q-n&&p<=q||p<-q+n&&p>=-q?(c=new mxPoint(b,e),s=new mxPoint(b,e+k)):p<-n&&p>-r?(c=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k)),s=new mxPoint(b,e+Math.floor(1.25*k))):p<-r&&p>-q+n&&(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),s=new mxPoint(b+g,e+
-Math.floor(1.25*k)))}else{n=Math.atan2(k/2,g/4);if(p==n)return new mxPoint(b+Math.floor(0.75*g),e);if(p==q-n)return new mxPoint(b+Math.floor(0.25*g),e);if(p==q||p==-q)return new mxPoint(b,e+Math.floor(0.5*k));if(0==p)return new mxPoint(b+g,e+Math.floor(0.5*k));if(p==-n)return new mxPoint(b+Math.floor(0.75*g),e+k);if(p==-q+n)return new mxPoint(b+Math.floor(0.25*g),e+k);0<p&&p<n?(c=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k)),s=new mxPoint(b+Math.floor(1.25*g),e+k)):p>n&&p<q-n?(c=new mxPoint(b,
-e),s=new mxPoint(b+g,e)):p>q-n&&p<q?(c=new mxPoint(b-Math.floor(0.25*g),e+k),s=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k))):0>p&&p>-n?(c=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k)),s=new mxPoint(b+Math.floor(1.25*g),e)):p<-n&&p>-q+n?(c=new mxPoint(b,e+k),s=new mxPoint(b+g,e+k)):p<-q+n&&p>-q&&(c=new mxPoint(b-Math.floor(0.25*g),e),s=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k)))}s=mxUtils.intersection(l,a,f.x,f.y,c.x,c.y,s.x,s.y)}return null==s?new mxPoint(l,a):s}};
+c,f,d){c=null!=c?c.style[mxConstants.STYLE_DIRECTION]:null;var b=c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH,e=a.x,g=a.y,k=a.width;a=a.height;var l=e+k/2,n=g+a/2,m=new mxPoint(e,g),p=new mxPoint(e+k,n),r=new mxPoint(e,g+a);c==mxConstants.DIRECTION_NORTH?(m=r,p=new mxPoint(l,g),r=new mxPoint(e+k,g+a)):c==mxConstants.DIRECTION_SOUTH?(p=new mxPoint(l,g+a),r=new mxPoint(e+k,g)):c==mxConstants.DIRECTION_WEST&&(m=new mxPoint(e+k,g),p=new mxPoint(e,n),r=new mxPoint(e+k,g+a));var s=f.x-
+l,q=f.y-n,s=b?Math.atan2(s,q):Math.atan2(q,s),t=b?Math.atan2(k,a):Math.atan2(a,k),q=c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_WEST?s>-t&&s<t:s<-Math.PI+t||s>Math.PI-t,t=null;q?t=d&&(b&&f.x>=m.x&&f.x<=r.x||!b&&f.y>=m.y&&f.y<=r.y)?b?new mxPoint(f.x,m.y):new mxPoint(m.x,f.y):c==mxConstants.DIRECTION_NORTH?new mxPoint(e+k/2+a*Math.tan(s)/2,g+a):c==mxConstants.DIRECTION_SOUTH?new mxPoint(e+k/2-a*Math.tan(s)/2,g):c==mxConstants.DIRECTION_WEST?new mxPoint(e+k,g+a/2+k*Math.tan(s)/2):new mxPoint(e,
+g+a/2-k*Math.tan(s)/2):(d&&(d=new mxPoint(l,n),f.y>=g&&f.y<=g+a?(d.x=b?l:c==mxConstants.DIRECTION_WEST?e+k:e,d.y=f.y):f.x>=e&&f.x<=e+k&&(d.x=f.x,d.y=!b?n:c==mxConstants.DIRECTION_NORTH?g+a:g),l=d.x,n=d.y),t=b&&f.x<=e+k/2||!b&&f.y<=g+a/2?mxUtils.intersection(f.x,f.y,l,n,m.x,m.y,p.x,p.y):mxUtils.intersection(f.x,f.y,l,n,p.x,p.y,r.x,r.y));null==t&&(t=new mxPoint(l,n));return t},HexagonPerimeter:function(a,c,f,d){var b=a.x,e=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var n=f.x,m=f.y,p=
+-Math.atan2(m-a,n-l),r=Math.PI,s=Math.PI/2,q=new mxPoint(l,a);c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH;c=new mxPoint;q=new mxPoint;if(n<b&&m<e||n<b&&m>e+k||n>b+g&&m<e||n>b+g&&m>e+k)d=!1;if(d){if(t){if(n==l){if(m<=e)return new mxPoint(l,e);if(m>=e+k)return new mxPoint(l,e+k)}else if(n<b){if(m==e+k/4)return new mxPoint(b,e+k/4);if(m==e+3*k/4)return new mxPoint(b,
+e+3*k/4)}else if(n>b+g){if(m==e+k/4)return new mxPoint(b+g,e+k/4);if(m==e+3*k/4)return new mxPoint(b+g,e+3*k/4)}else if(n==b){if(m<a)return new mxPoint(b,e+k/4);if(m>a)return new mxPoint(b,e+3*k/4)}else if(n==b+g){if(m<a)return new mxPoint(b+g,e+k/4);if(m>a)return new mxPoint(b+g,e+3*k/4)}if(m==e)return new mxPoint(l,e);if(m==e+k)return new mxPoint(l,e+k);n<l?m>e+k/4&&m<e+3*k/4?(c=new mxPoint(b,e),q=new mxPoint(b,e+k)):m<e+k/4?(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),q=new mxPoint(b+
+g,e-Math.floor(0.25*k))):m>e+3*k/4&&(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),q=new mxPoint(b+g,e+Math.floor(1.25*k))):n>l&&(m>e+k/4&&m<e+3*k/4?(c=new mxPoint(b+g,e),q=new mxPoint(b+g,e+k)):m<e+k/4?(c=new mxPoint(b,e-Math.floor(0.25*k)),q=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k))):m>e+3*k/4&&(c=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k)),q=new mxPoint(b,e+Math.floor(1.25*k))))}else{if(m==a){if(n<=b)return new mxPoint(b,e+k/2);if(n>=b+g)return new mxPoint(b+g,e+k/
+2)}else if(m<e){if(n==b+g/4)return new mxPoint(b+g/4,e);if(n==b+3*g/4)return new mxPoint(b+3*g/4,e)}else if(m>e+k){if(n==b+g/4)return new mxPoint(b+g/4,e+k);if(n==b+3*g/4)return new mxPoint(b+3*g/4,e+k)}else if(m==e){if(n<l)return new mxPoint(b+g/4,e);if(n>l)return new mxPoint(b+3*g/4,e)}else if(m==e+k){if(n<l)return new mxPoint(b+g/4,e+k);if(m>a)return new mxPoint(b+3*g/4,e+k)}if(n==b)return new mxPoint(b,a);if(n==b+g)return new mxPoint(b+g,a);m<a?n>b+g/4&&n<b+3*g/4?(c=new mxPoint(b,e),q=new mxPoint(b+
+g,e)):n<b+g/4?(c=new mxPoint(b-Math.floor(0.25*g),e+k),q=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k))):n>b+3*g/4&&(c=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k)),q=new mxPoint(b+Math.floor(1.25*g),e+k)):m>a&&(n>b+g/4&&n<b+3*g/4?(c=new mxPoint(b,e+k),q=new mxPoint(b+g,e+k)):n<b+g/4?(c=new mxPoint(b-Math.floor(0.25*g),e),q=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k))):n>b+3*g/4&&(c=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k)),q=new mxPoint(b+Math.floor(1.25*g),e)))}d=
+l;p=a;n>=b&&n<=b+g?(d=n,p=m<a?e+k:e):m>=e&&m<=e+k&&(p=m,d=n<l?b+g:b);q=mxUtils.intersection(d,p,f.x,f.y,c.x,c.y,q.x,q.y)}else{if(t){n=Math.atan2(k/4,g/2);if(p==n)return new mxPoint(b+g,e+Math.floor(0.25*k));if(p==s)return new mxPoint(b+Math.floor(0.5*g),e);if(p==r-n)return new mxPoint(b,e+Math.floor(0.25*k));if(p==-n)return new mxPoint(b+g,e+Math.floor(0.75*k));if(p==-s)return new mxPoint(b+Math.floor(0.5*g),e+k);if(p==-r+n)return new mxPoint(b,e+Math.floor(0.75*k));p<n&&p>-n?(c=new mxPoint(b+g,e),
+q=new mxPoint(b+g,e+k)):p>n&&p<s?(c=new mxPoint(b,e-Math.floor(0.25*k)),q=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k))):p>s&&p<r-n?(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),q=new mxPoint(b+g,e-Math.floor(0.25*k))):p>r-n&&p<=r||p<-r+n&&p>=-r?(c=new mxPoint(b,e),q=new mxPoint(b,e+k)):p<-n&&p>-s?(c=new mxPoint(b+Math.floor(1.5*g),e+Math.floor(0.5*k)),q=new mxPoint(b,e+Math.floor(1.25*k))):p<-s&&p>-r+n&&(c=new mxPoint(b-Math.floor(0.5*g),e+Math.floor(0.5*k)),q=new mxPoint(b+g,e+
+Math.floor(1.25*k)))}else{n=Math.atan2(k/2,g/4);if(p==n)return new mxPoint(b+Math.floor(0.75*g),e);if(p==r-n)return new mxPoint(b+Math.floor(0.25*g),e);if(p==r||p==-r)return new mxPoint(b,e+Math.floor(0.5*k));if(0==p)return new mxPoint(b+g,e+Math.floor(0.5*k));if(p==-n)return new mxPoint(b+Math.floor(0.75*g),e+k);if(p==-r+n)return new mxPoint(b+Math.floor(0.25*g),e+k);0<p&&p<n?(c=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k)),q=new mxPoint(b+Math.floor(1.25*g),e+k)):p>n&&p<r-n?(c=new mxPoint(b,
+e),q=new mxPoint(b+g,e)):p>r-n&&p<r?(c=new mxPoint(b-Math.floor(0.25*g),e+k),q=new mxPoint(b+Math.floor(0.5*g),e-Math.floor(0.5*k))):0>p&&p>-n?(c=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k)),q=new mxPoint(b+Math.floor(1.25*g),e)):p<-n&&p>-r+n?(c=new mxPoint(b,e+k),q=new mxPoint(b+g,e+k)):p<-r+n&&p>-r&&(c=new mxPoint(b-Math.floor(0.25*g),e),q=new mxPoint(b+Math.floor(0.5*g),e+Math.floor(1.5*k)))}q=mxUtils.intersection(l,a,f.x,f.y,c.x,c.y,q.x,q.y)}return null==q?new mxPoint(l,a):q}};
function mxPrintPreview(a,c,f,d,b,e,g,k,l){this.graph=a;this.scale=null!=c?c:1/a.pageScale;this.border=null!=d?d:0;this.pageFormat=mxRectangle.fromRectangle(null!=f?f:a.pageFormat);this.title=null!=k?k:"Printer-friendly version";this.x0=null!=b?b:0;this.y0=null!=e?e:0;this.borderColor=g;this.pageSelector=null!=l?l:!0}mxPrintPreview.prototype.graph=null;mxPrintPreview.prototype.pageFormat=null;mxPrintPreview.prototype.scale=null;mxPrintPreview.prototype.border=0;
mxPrintPreview.prototype.marginTop=0;mxPrintPreview.prototype.marginBottom=0;mxPrintPreview.prototype.x0=0;mxPrintPreview.prototype.y0=0;mxPrintPreview.prototype.autoOrigin=!0;mxPrintPreview.prototype.printOverlays=!1;mxPrintPreview.prototype.printControls=!1;mxPrintPreview.prototype.printBackgroundImage=!1;mxPrintPreview.prototype.backgroundColor="#ffffff";mxPrintPreview.prototype.borderColor=null;mxPrintPreview.prototype.title=null;mxPrintPreview.prototype.pageSelector=null;
mxPrintPreview.prototype.wnd=null;mxPrintPreview.prototype.targetWindow=null;mxPrintPreview.prototype.pageCount=0;mxPrintPreview.prototype.clipping=!0;mxPrintPreview.prototype.getWindow=function(){return this.wnd};
@@ -1019,10 +1019,10 @@ mxPrintPreview.prototype.getDoctype=function(){var a="";5==document.documentMode
mxPrintPreview.prototype.appendGraph=function(a,c,f,d,b,e){this.graph=a;this.scale=null!=c?c:1/a.pageScale;this.x0=f;this.y0=d;this.open(null,null,b,e)};
mxPrintPreview.prototype.open=function(a,c,f,d){var b=this.graph.cellRenderer.initializeOverlay,e=null;try{this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(b,a){a.init(b.view.getDrawPane())});this.printControls&&(this.graph.cellRenderer.initControl=function(b,a,d,e){a.dialect=b.view.graph.dialect;a.init(b.view.getDrawPane())});this.wnd=null!=c?c:this.wnd;c=!1;null==this.wnd&&(c=!0,this.wnd=window.open());var g=this.wnd.document;if(c){var k=this.getDoctype();null!=k&&0<k.length&&
g.writeln(k);mxClient.IS_VML?g.writeln('\x3chtml xmlns:v\x3d"urn:schemas-microsoft-com:vml" xmlns:o\x3d"urn:schemas-microsoft-com:office:office"\x3e'):("CSS1Compat"===document.compatMode&&g.writeln("\x3c!DOCTYPE html\x3e"),g.writeln("\x3chtml\x3e"));g.writeln("\x3chead\x3e");this.writeHead(g,a);g.writeln("\x3c/head\x3e");g.writeln('\x3cbody class\x3d"mxPage"\x3e')}var l=this.graph.getGraphBounds().clone(),n=this.graph.getView().getScale(),m=n/this.scale,p=this.graph.getView().getTranslate();this.autoOrigin||
-(this.x0-=p.x*this.scale,this.y0-=p.y*this.scale,l.width+=l.x,l.height+=l.y,l.x=0,this.border=l.y=0);var q=this.pageFormat.width-2*this.border,r=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;l.width/=m;l.height/=m;var s=Math.max(1,Math.ceil((l.width+this.x0)/q)),t=Math.max(1,Math.ceil((l.height+this.y0)/r));this.pageCount=s*t;var u=mxUtils.bind(this,function(){if(this.pageSelector&&(1<t||1<s)){var b=this.createPageSelector(t,s);g.body.appendChild(b);
+(this.x0-=p.x*this.scale,this.y0-=p.y*this.scale,l.width+=l.x,l.height+=l.y,l.x=0,this.border=l.y=0);var r=this.pageFormat.width-2*this.border,s=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;l.width/=m;l.height/=m;var q=Math.max(1,Math.ceil((l.width+this.x0)/r)),t=Math.max(1,Math.ceil((l.height+this.y0)/s));this.pageCount=q*t;var u=mxUtils.bind(this,function(){if(this.pageSelector&&(1<t||1<q)){var b=this.createPageSelector(t,q);g.body.appendChild(b);
if(mxClient.IS_IE&&null==g.documentMode||5==g.documentMode||8==g.documentMode||7==g.documentMode){b.style.position="absolute";var a=function(){b.style.top=(g.body.scrollTop||g.documentElement.scrollTop)+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(b){a()});mxEvent.addListener(this.wnd,"resize",function(b){a()})}}}),v=mxUtils.bind(this,function(b,a){null!=this.borderColor&&(b.style.borderColor=this.borderColor,b.style.borderStyle="solid",b.style.borderWidth="1px");b.style.background=this.backgroundColor;
-if(f||a)b.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(b.outerHTML),b.parentNode.removeChild(b)):(b.parentNode.removeChild(b),g.body.appendChild(b));(f||a)&&this.addPageBreak(g)}),A=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=A)for(var y=0;y<A.length;y++)v(A[y],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),y=0;y<t;y++){var D=y*r/this.scale-this.y0/this.scale+(l.y-p.y*n)/n;for(a=0;a<
-s;a++){if(null==this.wnd)return null;var z=a*q/this.scale-this.x0/this.scale+(l.x-p.x*n)/n,B=y*s+a+1,F=new mxRectangle(z,D,q,r),e=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(b){this.addGraphFragment(-z,-D,this.scale,B,b,F);this.printBackgroundImage&&this.insertBackgroundImage(b,-z,-D)}),B);e.setAttribute("id","mxPage-"+B);v(e,null!=x||y<t-1||a<s-1)}}if(null!=x)for(y=0;y<x.length;y++)v(x[y],y<x.length);c&&!d&&(this.closeDocument(),u());this.wnd.focus()}catch(G){null!=
+if(f||a)b.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(b.outerHTML),b.parentNode.removeChild(b)):(b.parentNode.removeChild(b),g.body.appendChild(b));(f||a)&&this.addPageBreak(g)}),z=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=z)for(var y=0;y<z.length;y++)v(z[y],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),y=0;y<t;y++){var D=y*s/this.scale-this.y0/this.scale+(l.y-p.y*n)/n;for(a=0;a<
+q;a++){if(null==this.wnd)return null;var A=a*r/this.scale-this.x0/this.scale+(l.x-p.x*n)/n,B=y*q+a+1,E=new mxRectangle(A,D,r,s),e=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(b){this.addGraphFragment(-A,-D,this.scale,B,b,E);this.printBackgroundImage&&this.insertBackgroundImage(b,-A,-D)}),B);e.setAttribute("id","mxPage-"+B);v(e,null!=x||y<t-1||a<q-1)}}if(null!=x)for(y=0;y<x.length;y++)v(x[y],y<x.length);c&&!d&&(this.closeDocument(),u());this.wnd.focus()}catch(G){null!=
e&&null!=e.parentNode&&e.parentNode.removeChild(e)}finally{this.graph.cellRenderer.initializeOverlay=b}return this.wnd};mxPrintPreview.prototype.addPageBreak=function(a){var c=a.createElement("hr");c.className="mxPageBreak";a.body.appendChild(c)};mxPrintPreview.prototype.closeDocument=function(){if(null!=this.wnd&&null!=this.wnd.document){var a=this.wnd.document;this.writePostfix(a);a.writeln("\x3c/body\x3e");a.writeln("\x3c/html\x3e");a.close();mxEvent.release(a.body)}};
mxPrintPreview.prototype.writeHead=function(a,c){null!=this.title&&a.writeln("\x3ctitle\x3e"+this.title+"\x3c/title\x3e");mxClient.IS_VML&&a.writeln('\x3cstyle type\x3d"text/css"\x3ev\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}\x3c/style\x3e');mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a);a.writeln('\x3cstyle type\x3d"text/css"\x3e');a.writeln("@media print {");a.writeln(" table.mxPageSelector { display: none; }");a.writeln(" hr.mxPageBreak { display: none; }");
a.writeln("}");a.writeln("@media screen {");a.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }");a.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }");a.writeln(" body.mxPage { background: gray; }");a.writeln("}");null!=c&&a.writeln(c);a.writeln("\x3c/style\x3e")};mxPrintPreview.prototype.writePostfix=function(a){};
@@ -1032,10 +1032,10 @@ mxPrintPreview.prototype.renderPage=function(a,c,f,d,b,e){e=this.wnd.document;va
"relative";n.style.marginLeft=f+"px";n.style.marginTop=d+"px";8==e.documentMode&&(l.style.position="absolute",n.style.position="absolute");10==e.documentMode&&(n.style.width="100%",n.style.height="100%");l.appendChild(n);g.appendChild(l);document.body.appendChild(g);k=n}else g.style.width=a+"px",g.style.height=c+"px",g.style.overflow="hidden",g.style.pageBreakInside="avoid",8==e.documentMode&&(g.style.position="relative"),l=document.createElement("div"),l.style.width=a-2*this.border+"px",l.style.height=
c-2*this.border+"px",l.style.overflow="hidden",mxClient.IS_IE&&(null==e.documentMode||5==e.documentMode||8==e.documentMode||7==e.documentMode)?(l.style.marginTop=this.border+"px",l.style.marginLeft=this.border+"px"):(l.style.top=this.border+"px",l.style.left=this.border+"px"),this.graph.dialect==mxConstants.DIALECT_VML&&(l.style.position="absolute"),g.appendChild(l),document.body.appendChild(g),k=l}catch(m){throw g.parentNode.removeChild(g),m;}b(k);return g};
mxPrintPreview.prototype.getRoot=function(){var a=this.graph.view.currentRoot;null==a&&(a=this.graph.getModel().getRoot());return a};
-mxPrintPreview.prototype.addGraphFragment=function(a,c,f,d,b,e){var g=this.graph.getView();d=this.graph.container;this.graph.container=b;var k=g.getCanvas(),l=g.getBackgroundPane(),n=g.getDrawPane(),m=g.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?g.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?g.createVml():g.createHtml();var p=g.isEventsEnabled();g.setEventsEnabled(!1);var q=this.graph.isEnabled();this.graph.setEnabled(!1);var r=g.getTranslate();g.translate=new mxPoint(a,
-c);var s=this.graph.cellRenderer.redraw,t=g.states;a=g.scale;if(this.clipping){var u=new mxRectangle((e.x+r.x)*a,(e.y+r.y)*a,e.width*a/f,e.height*a/f);this.graph.cellRenderer.redraw=function(b,a,d){if(null!=b){var e=t.get(b.cell);if(null!=e&&(e=g.getBoundingBox(e,!1),null!=e&&!mxUtils.intersects(u,e)))return}s.apply(this,arguments)}}a=null;try{var v=[this.getRoot()];a=new mxTemporaryCellStates(g,f,v)}finally{if(mxClient.IS_IE)g.overlayPane.innerHTML="",g.canvas.style.overflow="hidden",g.canvas.style.position=
+mxPrintPreview.prototype.addGraphFragment=function(a,c,f,d,b,e){var g=this.graph.getView();d=this.graph.container;this.graph.container=b;var k=g.getCanvas(),l=g.getBackgroundPane(),n=g.getDrawPane(),m=g.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?g.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?g.createVml():g.createHtml();var p=g.isEventsEnabled();g.setEventsEnabled(!1);var r=this.graph.isEnabled();this.graph.setEnabled(!1);var s=g.getTranslate();g.translate=new mxPoint(a,
+c);var q=this.graph.cellRenderer.redraw,t=g.states;a=g.scale;if(this.clipping){var u=new mxRectangle((e.x+s.x)*a,(e.y+s.y)*a,e.width*a/f,e.height*a/f);this.graph.cellRenderer.redraw=function(b,a,d){if(null!=b){var e=t.get(b.cell);if(null!=e&&(e=g.getBoundingBox(e,!1),null!=e&&!mxUtils.intersects(u,e)))return}q.apply(this,arguments)}}a=null;try{var v=[this.getRoot()];a=new mxTemporaryCellStates(g,f,v)}finally{if(mxClient.IS_IE)g.overlayPane.innerHTML="",g.canvas.style.overflow="hidden",g.canvas.style.position=
"relative",g.canvas.style.top=this.marginTop+"px",g.canvas.style.width=e.width+"px",g.canvas.style.height=e.height+"px";else for(f=b.firstChild;null!=f;)v=f.nextSibling,c=f.nodeName.toLowerCase(),"svg"==c?(f.style.overflow="hidden",f.style.position="relative",f.style.top=this.marginTop+"px",f.setAttribute("width",e.width),f.setAttribute("height",e.height),f.style.width="",f.style.height=""):"default"!=f.style.cursor&&"div"!=c&&f.parentNode.removeChild(f),f=v;this.printBackgroundImage&&(b=b.getElementsByTagName("svg"),
-0<b.length&&(b[0].style.position="absolute"));g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(q);this.graph.container=d;this.graph.cellRenderer.redraw=s;g.canvas=k;g.backgroundPane=l;g.drawPane=n;g.overlayPane=m;g.translate=r;a.destroy();g.setEventsEnabled(p)}};
+0<b.length&&(b[0].style.position="absolute"));g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(r);this.graph.container=d;this.graph.cellRenderer.redraw=q;g.canvas=k;g.backgroundPane=l;g.drawPane=n;g.overlayPane=m;g.translate=s;a.destroy();g.setEventsEnabled(p)}};
mxPrintPreview.prototype.insertBackgroundImage=function(a,c,f){var d=this.graph.backgroundImage;if(null!=d){var b=document.createElement("img");b.style.position="absolute";b.style.marginLeft=Math.round(c*this.scale)+"px";b.style.marginTop=Math.round(f*this.scale)+"px";b.setAttribute("width",Math.round(this.scale*d.width));b.setAttribute("height",Math.round(this.scale*d.height));b.src=d.src;a.insertBefore(b,a.firstChild)}};mxPrintPreview.prototype.getCoverPages=function(){return null};
mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.prototype.print=function(a){a=this.open(a);null!=a&&a.print()};mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)};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};
@@ -1148,25 +1148,25 @@ e),g=e.y<k||e.y>m,k=e.x<l||e.x>n;else l=Math.max(c.x,f.x),n=Math.min(c.x+c.width
c.x=k.x,c.y=k.y);null!=g&&(f=new mxCellState,f.x=g.x,f.y=g.y);null!=c&&null!=f&&(a=Math.max(c.x,f.x),k=Math.min(c.x+c.width,f.x+f.width),a=null!=d?d.x:Math.round(k+(a-k)/2),k=e.getRoutingCenterY(c),e=e.getRoutingCenterY(f),null!=d&&(d.y>=c.y&&d.y<=c.y+c.height&&(k=d.y),d.y>=f.y&&d.y<=f.y+f.height&&(e=d.y)),!mxUtils.contains(f,a,k)&&!mxUtils.contains(c,a,k)&&b.push(new mxPoint(a,k)),!mxUtils.contains(f,a,e)&&!mxUtils.contains(c,a,e)&&b.push(new mxPoint(a,e)),1==b.length&&(null!=d?!mxUtils.contains(f,
a,d.y)&&!mxUtils.contains(c,a,d.y)&&b.push(new mxPoint(a,d.y)):(e=Math.max(c.y,f.y),c=Math.min(c.y+c.height,f.y+f.height),b.push(new mxPoint(a,e+(c-e)/2)))))},TopToBottom:function(a,c,f,d,b){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=e.transformControlPoint(a,d));null!=k&&(c=new mxCellState,c.x=k.x,c.y=k.y);null!=g&&(f=new mxCellState,f.x=g.x,f.y=g.y);null!=c&&null!=f&&(k=Math.max(c.y,f.y),g=Math.min(c.y+c.height,f.y+f.height),a=e.getRoutingCenterX(c),
null!=d&&d.x>=c.x&&d.x<=c.x+c.width&&(a=d.x),k=null!=d?d.y:Math.round(g+(k-g)/2),!mxUtils.contains(f,a,k)&&!mxUtils.contains(c,a,k)&&b.push(new mxPoint(a,k)),a=null!=d&&d.x>=f.x&&d.x<=f.x+f.width?d.x:e.getRoutingCenterX(f),!mxUtils.contains(f,a,k)&&!mxUtils.contains(c,a,k)&&b.push(new mxPoint(a,k)),1==b.length&&(null!=d&&1==b.length?!mxUtils.contains(f,d.x,k)&&!mxUtils.contains(c,d.x,k)&&b.push(new mxPoint(d.x,k)):(e=Math.max(c.x,f.x),c=Math.min(c.x+c.width,f.x+f.width),b.push(new mxPoint(e+(c-e)/
-2,k)))))},SegmentConnector:function(a,c,f,d,b){function e(a){if(null==l||Math.abs(l.x-a.x)>=k||Math.abs(l.y-a.y)>=k)b.push(a),l=a;return l}var g=a.absolutePoints,k=Math.max(1,a.view.scale),l=0<b.length?b[0]:null,n=!0,m=null,p=g[0];null==p&&null!=c?p=new mxPoint(a.view.getRoutingCenterX(c),a.view.getRoutingCenterY(c)):null!=p&&(p=p.clone());p.x=Math.round(p.x);p.y=Math.round(p.y);var q=g.length-1;if(null!=d&&0<d.length){for(var m=[],r=0;r<d.length;r++){var s=a.view.transformControlPoint(a,d[r]);null!=
-s&&(s.x=Math.round(s.x),s.y=Math.round(s.y),m.push(s))}if(0==m.length)return;d=m;null!=p&&null!=d[0]&&(Math.abs(d[0].x-p.x)<k&&(d[0].x=p.x),Math.abs(d[0].y-p.y)<k&&(d[0].y=p.y));s=g[q];null!=s&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-s.x)<k&&(d[d.length-1].x=s.x),Math.abs(d[d.length-1].y-s.y)<k&&(d[d.length-1].y=s.y));var m=d[0],t=c,u=g[0],v=!1,A=!1,v=m;null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),t=null);for(r=0;2>r;r++){var y=null!=u&&u.x==v.x,x=null!=u&&u.y==v.y,D=null!=t&&v.y>=t.y&&
-v.y<=t.y+t.height,t=null!=t&&v.x>=t.x&&v.x<=t.x+t.width,v=x||null==u&&D,A=y||null==u&&t;if(!(0==r&&(v&&A||y&&x))){if(null!=u&&!x&&!y&&(D||t)){n=D?!1:!0;break}if(A||v){n=v;1==r&&(n=0==d.length%2?v:A);break}}t=f;u=g[q];null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),t=null);v=d[d.length-1];y&&x&&(d=d.slice(1))}n&&(null!=g[0]&&g[0].y!=m.y||null==g[0]&&null!=c&&(m.y<c.y||m.y>c.y+c.height))?e(new mxPoint(p.x,m.y)):!n&&(null!=g[0]&&g[0].x!=m.x||null==g[0]&&null!=c&&(m.x<c.x||m.x>c.x+c.width))&&e(new mxPoint(m.x,
-p.y));n?p.y=m.y:p.x=m.x;for(r=0;r<d.length;r++)n=!n,m=d[r],n?p.y=m.y:p.x=m.x,e(p.clone())}else m=p,n=!0;p=g[q];null==p&&null!=f&&(p=new mxPoint(a.view.getRoutingCenterX(f),a.view.getRoutingCenterY(f)));null!=p&&(p.x=Math.round(p.x),p.y=Math.round(p.y),null!=m&&(n&&(null!=g[q]&&g[q].y!=m.y||null==g[q]&&null!=f&&(m.y<f.y||m.y>f.y+f.height))?e(new mxPoint(p.x,m.y)):!n&&(null!=g[q]&&g[q].x!=m.x||null==g[q]&&null!=f&&(m.x<f.x||m.x>f.x+f.width))&&e(new mxPoint(m.x,p.y))));if(null==g[0]&&null!=c)for(;1<
-b.length&&null!=b[1]&&mxUtils.contains(c,b[1].x,b[1].y);)b.splice(1,1);if(null==g[q]&&null!=f)for(;1<b.length&&null!=b[b.length-1]&&mxUtils.contains(f,b[b.length-1].x,b[b.length-1].y);)b.splice(b.length-1,1);null!=s&&null!=b[b.length-1]&&(Math.abs(s.x-b[b.length-1].x)<k&&Math.abs(s.y-b[b.length-1].y)<k)&&(b.splice(b.length-1,1),null!=b[b.length-1]&&(Math.abs(b[b.length-1].x-s.x)<k&&(b[b.length-1].x=s.x),Math.abs(b[b.length-1].y-s.y)<k&&(b[b.length-1].y=s.y)))},orthBuffer:10,orthPointsFallback:!0,
+2,k)))))},SegmentConnector:function(a,c,f,d,b){function e(a){if(null==l||Math.abs(l.x-a.x)>=k||Math.abs(l.y-a.y)>=k)b.push(a),l=a;return l}var g=a.absolutePoints,k=Math.max(1,a.view.scale),l=0<b.length?b[0]:null,n=!0,m=null,p=g[0];null==p&&null!=c?p=new mxPoint(a.view.getRoutingCenterX(c),a.view.getRoutingCenterY(c)):null!=p&&(p=p.clone());p.x=Math.round(p.x);p.y=Math.round(p.y);var r=g.length-1;if(null!=d&&0<d.length){for(var m=[],s=0;s<d.length;s++){var q=a.view.transformControlPoint(a,d[s]);null!=
+q&&(q.x=Math.round(q.x),q.y=Math.round(q.y),m.push(q))}if(0==m.length)return;d=m;null!=p&&null!=d[0]&&(Math.abs(d[0].x-p.x)<k&&(d[0].x=p.x),Math.abs(d[0].y-p.y)<k&&(d[0].y=p.y));q=g[r];null!=q&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-q.x)<k&&(d[d.length-1].x=q.x),Math.abs(d[d.length-1].y-q.y)<k&&(d[d.length-1].y=q.y));var m=d[0],t=c,u=g[0],v=!1,z=!1,v=m;null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),t=null);for(s=0;2>s;s++){var y=null!=u&&u.x==v.x,x=null!=u&&u.y==v.y,D=null!=t&&v.y>=t.y&&
+v.y<=t.y+t.height,t=null!=t&&v.x>=t.x&&v.x<=t.x+t.width,v=x||null==u&&D,z=y||null==u&&t;if(!(0==s&&(v&&z||y&&x))){if(null!=u&&!x&&!y&&(D||t)){n=D?!1:!0;break}if(z||v){n=v;1==s&&(n=0==d.length%2?v:z);break}}t=f;u=g[r];null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),t=null);v=d[d.length-1];y&&x&&(d=d.slice(1))}n&&(null!=g[0]&&g[0].y!=m.y||null==g[0]&&null!=c&&(m.y<c.y||m.y>c.y+c.height))?e(new mxPoint(p.x,m.y)):!n&&(null!=g[0]&&g[0].x!=m.x||null==g[0]&&null!=c&&(m.x<c.x||m.x>c.x+c.width))&&e(new mxPoint(m.x,
+p.y));n?p.y=m.y:p.x=m.x;for(s=0;s<d.length;s++)n=!n,m=d[s],n?p.y=m.y:p.x=m.x,e(p.clone())}else m=p,n=!0;p=g[r];null==p&&null!=f&&(p=new mxPoint(a.view.getRoutingCenterX(f),a.view.getRoutingCenterY(f)));null!=p&&(p.x=Math.round(p.x),p.y=Math.round(p.y),null!=m&&(n&&(null!=g[r]&&g[r].y!=m.y||null==g[r]&&null!=f&&(m.y<f.y||m.y>f.y+f.height))?e(new mxPoint(p.x,m.y)):!n&&(null!=g[r]&&g[r].x!=m.x||null==g[r]&&null!=f&&(m.x<f.x||m.x>f.x+f.width))&&e(new mxPoint(m.x,p.y))));if(null==g[0]&&null!=c)for(;1<
+b.length&&null!=b[1]&&mxUtils.contains(c,b[1].x,b[1].y);)b.splice(1,1);if(null==g[r]&&null!=f)for(;1<b.length&&null!=b[b.length-1]&&mxUtils.contains(f,b[b.length-1].x,b[b.length-1].y);)b.splice(b.length-1,1);null!=q&&null!=b[b.length-1]&&(Math.abs(q.x-b[b.length-1].x)<k&&Math.abs(q.y-b[b.length-1].y)<k)&&(b.splice(b.length-1,1),null!=b[b.length-1]&&(Math.abs(b[b.length-1].x-q.x)<k&&(b[b.length-1].x=q.x),Math.abs(b[b.length-1].y-q.y)<k&&(b[b.length-1].y=q.y)))},orthBuffer:10,orthPointsFallback:!0,
dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,
2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,
VERTEX_MASK:3072,getJettySize:function(a,c,f,d,b){c=mxUtils.getValue(a.style,b?mxConstants.STYLE_SOURCE_JETTY_SIZE:mxConstants.STYLE_TARGET_JETTY_SIZE,mxUtils.getValue(a.style,mxConstants.STYLE_JETTY_SIZE,mxEdgeStyle.orthBuffer));"auto"==c&&(mxUtils.getValue(a.style,b?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE?(a=mxUtils.getNumber(a.style,b?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),c=Math.max(2,Math.ceil((a+
-mxEdgeStyle.orthBuffer)/mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):c=2*mxEdgeStyle.orthBuffer);return c},OrthConnector:function(a,c,f,d,b){var e=a.view.graph,g=null==c?!1:e.getModel().isEdge(c.cell),k=null==f?!1:e.getModel().isEdge(f.cell),e=a.absolutePoints,l=e[0],n=e[e.length-1],m=null!=c?c.x:l.x,p=null!=c?c.y:l.y,q=null!=c?c.width:0,r=null!=c?c.height:0,s=null!=f?f.x:n.x,t=null!=f?f.y:n.y,u=null!=f?f.width:0,v=null!=f?f.height:0,e=a.view.scale*mxEdgeStyle.getJettySize(a,c,f,d,!0),A=a.view.scale*
-mxEdgeStyle.getJettySize(a,c,f,d,!1);null!=c&&f==c&&(e=A=Math.max(e,A));var y=A+e,x=!1;if(null!=l&&null!=n)var x=n.x-l.x,D=n.y-l.y,x=x*x+D*D<y*y;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,c,f,d,b);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=c&&(d[0]=mxUtils.getPortConstraints(c,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(m,
-p,q,r),x),m=x.x,p=x.y,q=x.width,r=x.height));null!=f&&(d[1]=mxUtils.getPortConstraints(f,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(f.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(s,t,u,v),x),s=x.x,t=x.y,u=x.width,v=x.height));m=Math.round(10*m)/10;p=Math.round(10*p)/10;q=Math.round(10*q)/10;r=Math.round(10*r)/10;s=Math.round(10*s)/10;t=Math.round(10*t)/10;u=Math.round(10*u)/10;v=Math.round(10*v)/10;a=[0,0];m=[[m,p,q,r],[s,t,u,v]];A=[e,A];for(x=0;2>
-x;x++)mxEdgeStyle.limits[x][1]=m[x][0]-A[x],mxEdgeStyle.limits[x][2]=m[x][1]-A[x],mxEdgeStyle.limits[x][4]=m[x][0]+m[x][2]+A[x],mxEdgeStyle.limits[x][8]=m[x][1]+m[x][3]+A[x];A=m[0][1]+m[0][3]/2;p=m[1][1]+m[1][3]/2;x=m[0][0]+m[0][2]/2-(m[1][0]+m[1][2]/2);D=A-p;A=0;0>x?A=0>D?2:1:0>=D&&(A=3,0==x&&(A=2));p=null;null!=c&&(p=l);c=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=p&&(c[x][0]=(p.x-m[x][0])/m[x][2],1>=Math.abs(p.x-m[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(p.x-m[x][0]-m[x][2])&&(a[x]=
-mxConstants.DIRECTION_MASK_EAST),c[x][1]=(p.y-m[x][1])/m[x][3],1>=Math.abs(p.y-m[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(p.y-m[x][1]-m[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),p=null,null!=f&&(p=n);x=m[0][1]-(m[1][1]+m[1][3]);n=m[0][0]-(m[1][0]+m[1][2]);p=m[1][1]-(m[0][1]+m[0][3]);q=m[1][0]-(m[0][0]+m[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(p-y,0);mxEdgeStyle.vertexSeperations[3]=
-Math.max(q-y,0);y=[];f=[];l=[];f[0]=n>=q?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;l[0]=x>=p?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;f[1]=mxUtils.reversePortConstraints(f[0]);l[1]=mxUtils.reversePortConstraints(l[0]);n=n>=q?n:q;p=x>=p?x:p;q=[[0,0],[0,0]];r=!1;for(x=0;2>x;x++)0==a[x]&&(0==(f[x]&d[x])&&(f[x]=mxUtils.reversePortConstraints(f[x])),0==(l[x]&d[x])&&(l[x]=mxUtils.reversePortConstraints(l[x])),q[x][0]=l[x],q[x][1]=f[x]);0<p&&0<n&&(0<(f[0]&d[0])&&
-0<(l[1]&d[1])?(q[0][0]=f[0],q[0][1]=l[0],q[1][0]=l[1],q[1][1]=f[1],r=!0):0<(l[0]&d[0])&&0<(f[1]&d[1])&&(q[0][0]=l[0],q[0][1]=f[0],q[1][0]=f[1],q[1][1]=l[1],r=!0));0<p&&!r&&(q[0][0]=l[0],q[0][1]=f[0],q[1][0]=l[1],q[1][1]=f[1],r=!0);0<n&&!r&&(q[0][0]=f[0],q[0][1]=l[0],q[1][0]=f[1],q[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(q[x][0]&d[x])&&(q[x][0]=q[x][1]),y[x]=q[x][0]&d[x],y[x]|=(q[x][1]&d[x])<<8,y[x]|=(q[1-x][x]&d[x])<<16,y[x]|=(q[1-x][1-x]&d[x])<<24,0==(y[x]&15)&&(y[x]<<=8),0==(y[x]&3840)&&(y[x]=
-y[x]&15|y[x]>>8),0==(y[x]&983040)&&(y[x]=y[x]&65535|(y[x]&251658240)>>8),a[x]=y[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];y=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=A;y-=A;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]-=
+mxEdgeStyle.orthBuffer)/mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):c=2*mxEdgeStyle.orthBuffer);return c},OrthConnector:function(a,c,f,d,b){var e=a.view.graph,g=null==c?!1:e.getModel().isEdge(c.cell),k=null==f?!1:e.getModel().isEdge(f.cell),e=a.absolutePoints,l=e[0],n=e[e.length-1],m=null!=c?c.x:l.x,p=null!=c?c.y:l.y,r=null!=c?c.width:0,s=null!=c?c.height:0,q=null!=f?f.x:n.x,t=null!=f?f.y:n.y,u=null!=f?f.width:0,v=null!=f?f.height:0,e=a.view.scale*mxEdgeStyle.getJettySize(a,c,f,d,!0),z=a.view.scale*
+mxEdgeStyle.getJettySize(a,c,f,d,!1);null!=c&&f==c&&(e=z=Math.max(e,z));var y=z+e,x=!1;if(null!=l&&null!=n)var x=n.x-l.x,D=n.y-l.y,x=x*x+D*D<y*y;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,c,f,d,b);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=c&&(d[0]=mxUtils.getPortConstraints(c,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(m,
+p,r,s),x),m=x.x,p=x.y,r=x.width,s=x.height));null!=f&&(d[1]=mxUtils.getPortConstraints(f,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(f.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(q,t,u,v),x),q=x.x,t=x.y,u=x.width,v=x.height));m=Math.round(10*m)/10;p=Math.round(10*p)/10;r=Math.round(10*r)/10;s=Math.round(10*s)/10;q=Math.round(10*q)/10;t=Math.round(10*t)/10;u=Math.round(10*u)/10;v=Math.round(10*v)/10;a=[0,0];m=[[m,p,r,s],[q,t,u,v]];z=[e,z];for(x=0;2>
+x;x++)mxEdgeStyle.limits[x][1]=m[x][0]-z[x],mxEdgeStyle.limits[x][2]=m[x][1]-z[x],mxEdgeStyle.limits[x][4]=m[x][0]+m[x][2]+z[x],mxEdgeStyle.limits[x][8]=m[x][1]+m[x][3]+z[x];z=m[0][1]+m[0][3]/2;p=m[1][1]+m[1][3]/2;x=m[0][0]+m[0][2]/2-(m[1][0]+m[1][2]/2);D=z-p;z=0;0>x?z=0>D?2:1:0>=D&&(z=3,0==x&&(z=2));p=null;null!=c&&(p=l);c=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=p&&(c[x][0]=(p.x-m[x][0])/m[x][2],1>=Math.abs(p.x-m[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(p.x-m[x][0]-m[x][2])&&(a[x]=
+mxConstants.DIRECTION_MASK_EAST),c[x][1]=(p.y-m[x][1])/m[x][3],1>=Math.abs(p.y-m[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(p.y-m[x][1]-m[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),p=null,null!=f&&(p=n);x=m[0][1]-(m[1][1]+m[1][3]);n=m[0][0]-(m[1][0]+m[1][2]);p=m[1][1]-(m[0][1]+m[0][3]);r=m[1][0]-(m[0][0]+m[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(p-y,0);mxEdgeStyle.vertexSeperations[3]=
+Math.max(r-y,0);y=[];f=[];l=[];f[0]=n>=r?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;l[0]=x>=p?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;f[1]=mxUtils.reversePortConstraints(f[0]);l[1]=mxUtils.reversePortConstraints(l[0]);n=n>=r?n:r;p=x>=p?x:p;r=[[0,0],[0,0]];s=!1;for(x=0;2>x;x++)0==a[x]&&(0==(f[x]&d[x])&&(f[x]=mxUtils.reversePortConstraints(f[x])),0==(l[x]&d[x])&&(l[x]=mxUtils.reversePortConstraints(l[x])),r[x][0]=l[x],r[x][1]=f[x]);0<p&&0<n&&(0<(f[0]&d[0])&&
+0<(l[1]&d[1])?(r[0][0]=f[0],r[0][1]=l[0],r[1][0]=l[1],r[1][1]=f[1],s=!0):0<(l[0]&d[0])&&0<(f[1]&d[1])&&(r[0][0]=l[0],r[0][1]=f[0],r[1][0]=f[1],r[1][1]=l[1],s=!0));0<p&&!s&&(r[0][0]=l[0],r[0][1]=f[0],r[1][0]=l[1],r[1][1]=f[1],s=!0);0<n&&!s&&(r[0][0]=f[0],r[0][1]=l[0],r[1][0]=f[1],r[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(r[x][0]&d[x])&&(r[x][0]=r[x][1]),y[x]=r[x][0]&d[x],y[x]|=(r[x][1]&d[x])<<8,y[x]|=(r[1-x][x]&d[x])<<16,y[x]|=(r[1-x][1-x]&d[x])<<24,0==(y[x]&15)&&(y[x]<<=8),0==(y[x]&3840)&&(y[x]=
+y[x]&15|y[x]>>8),0==(y[x]&983040)&&(y[x]=y[x]&65535|(y[x]&251658240)>>8),a[x]=y[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];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]-=
e;mxEdgeStyle.wayPoints1[0][1]+=c[0][1]*m[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=c[0][0]*m[0][2];mxEdgeStyle.wayPoints1[0][1]+=m[0][3]+e;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=m[0][2]+e;mxEdgeStyle.wayPoints1[0][1]+=c[0][1]*m[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=c[0][0]*m[0][2],mxEdgeStyle.wayPoints1[0][1]-=e}e=0;f=y=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?
-0:1;for(x=0;x<d.length;x++)l=d[x]&15,s=l==mxConstants.DIRECTION_MASK_EAST?3:l,s+=A,4<s&&(s-=4),n=mxEdgeStyle.dirVectors[s-1],l=0<s%2?0:1,l!=y&&(e++,mxEdgeStyle.wayPoints1[e][0]=mxEdgeStyle.wayPoints1[e-1][0],mxEdgeStyle.wayPoints1[e][1]=mxEdgeStyle.wayPoints1[e-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),r=0<(d[x]&mxEdgeStyle.SOURCE_MASK),p=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,p<<=A,15<p&&(p>>=4),q=0<(d[x]&mxEdgeStyle.CENTER_MASK),(r||t)&&9>p?(r=r?0:1,s=q&&0==l?m[r][0]+c[r][0]*m[r][2]:q?m[r][1]+c[r][1]*
-m[r][3]:mxEdgeStyle.limits[r][p],0==l?(p=(s-mxEdgeStyle.wayPoints1[e][0])*n[0],0<p&&(mxEdgeStyle.wayPoints1[e][0]+=n[0]*p)):(p=(s-mxEdgeStyle.wayPoints1[e][1])*n[1],0<p&&(mxEdgeStyle.wayPoints1[e][1]+=n[1]*p))):q&&(mxEdgeStyle.wayPoints1[e][0]+=n[0]*Math.abs(mxEdgeStyle.vertexSeperations[s]/2),mxEdgeStyle.wayPoints1[e][1]+=n[1]*Math.abs(mxEdgeStyle.vertexSeperations[s]/2)),0<e&&mxEdgeStyle.wayPoints1[e][l]==mxEdgeStyle.wayPoints1[e-1][l]?e--:y=l;for(x=0;x<=e&&!(x==e&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
+0:1;for(x=0;x<d.length;x++)l=d[x]&15,q=l==mxConstants.DIRECTION_MASK_EAST?3:l,q+=z,4<q&&(q-=4),n=mxEdgeStyle.dirVectors[q-1],l=0<q%2?0:1,l!=y&&(e++,mxEdgeStyle.wayPoints1[e][0]=mxEdgeStyle.wayPoints1[e-1][0],mxEdgeStyle.wayPoints1[e][1]=mxEdgeStyle.wayPoints1[e-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),s=0<(d[x]&mxEdgeStyle.SOURCE_MASK),p=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,p<<=z,15<p&&(p>>=4),r=0<(d[x]&mxEdgeStyle.CENTER_MASK),(s||t)&&9>p?(s=s?0:1,q=r&&0==l?m[s][0]+c[s][0]*m[s][2]:r?m[s][1]+c[s][1]*
+m[s][3]:mxEdgeStyle.limits[s][p],0==l?(p=(q-mxEdgeStyle.wayPoints1[e][0])*n[0],0<p&&(mxEdgeStyle.wayPoints1[e][0]+=n[0]*p)):(p=(q-mxEdgeStyle.wayPoints1[e][1])*n[1],0<p&&(mxEdgeStyle.wayPoints1[e][1]+=n[1]*p))):r&&(mxEdgeStyle.wayPoints1[e][0]+=n[0]*Math.abs(mxEdgeStyle.vertexSeperations[q]/2),mxEdgeStyle.wayPoints1[e][1]+=n[1]*Math.abs(mxEdgeStyle.vertexSeperations[q]/2)),0<e&&mxEdgeStyle.wayPoints1[e][l]==mxEdgeStyle.wayPoints1[e-1][l]?e--:y=l;for(x=0;x<=e&&!(x==e&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
mxConstants.DIRECTION_MASK_WEST))?0:1)==f?0:1)!=(e+1)%2);x++)b.push(new mxPoint(Math.round(mxEdgeStyle.wayPoints1[x][0]),Math.round(mxEdgeStyle.wayPoints1[x][1])));for(a=1;a<b.length;)null==b[a-1]||null==b[a]||b[a-1].x!=b[a].x||b[a-1].y!=b[a].y?a++:b.splice(a,1)}},getRoutePattern:function(a,c,f,d){var b=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];a=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];b-=c;a-=c;1>b&&(b+=4);1>a&&(a+=4);c=routePatterns[b-1][a-1];if(0==f||0==d)null!=inlineRoutePatterns[b-1][a-
1]&&(c=inlineRoutePatterns[b-1][a-1]);return c}},mxStyleRegistry={values:[],putValue:function(a,c){mxStyleRegistry.values[a]=c},getValue:function(a){return mxStyleRegistry.values[a]},getName:function(a){for(var c in mxStyleRegistry.values)if(mxStyleRegistry.values[c]==a)return c;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);
@@ -1221,7 +1221,7 @@ mxGraphView.prototype.updateEdgeBounds=function(a){var c=a.absolutePoints,f=c[0]
Math.max(1,n-k)}};
mxGraphView.prototype.getPoint=function(a,c){var f=a.getCenterX(),d=a.getCenterY();if(null!=a.segments&&(null==c||c.relative)){for(var b=a.absolutePoints.length,e=Math.round(((null!=c?c.x/2:0)+0.5)*a.length),g=a.segments[0],k=0,l=1;e>=Math.round(k+g)&&l<b-1;)k+=g,g=a.segments[l++];b=0==g?0:(e-k)/g;e=a.absolutePoints[l-1];l=a.absolutePoints[l];if(null!=e&&null!=l){k=f=d=0;if(null!=c){var d=c.y,n=c.offset;null!=n&&(f=n.x,k=n.y)}n=l.x-e.x;l=l.y-e.y;f=e.x+n*b+((0==g?0:l/g)*d+f)*this.scale;d=e.y+l*b-((0==
g?0:n/g)*d-k)*this.scale}}else null!=c&&(n=c.offset,null!=n&&(f+=n.x,d+=n.y));return new mxPoint(f,d)};
-mxGraphView.prototype.getRelativePoint=function(a,c,f){var d=this.graph.getModel().getGeometry(a.cell);if(null!=d){var b=a.absolutePoints.length;if(d.relative&&1<b){for(var d=a.length,e=a.segments,g=a.absolutePoints[0],k=a.absolutePoints[1],l=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,c,f),n=0,m=0,p=0,q=2;q<b;q++)m+=e[q-2],k=a.absolutePoints[q],g=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,c,f),g<=l&&(l=g,n=q-1,p=m),g=k;b=e[n];g=a.absolutePoints[n];k=a.absolutePoints[n+1];l=k.x;e=k.y;a=g.x-l;n=g.y-e;l=a-(c-l);e=
+mxGraphView.prototype.getRelativePoint=function(a,c,f){var d=this.graph.getModel().getGeometry(a.cell);if(null!=d){var b=a.absolutePoints.length;if(d.relative&&1<b){for(var d=a.length,e=a.segments,g=a.absolutePoints[0],k=a.absolutePoints[1],l=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,c,f),n=0,m=0,p=0,r=2;r<b;r++)m+=e[r-2],k=a.absolutePoints[r],g=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,c,f),g<=l&&(l=g,n=r-1,p=m),g=k;b=e[n];g=a.absolutePoints[n];k=a.absolutePoints[n+1];l=k.x;e=k.y;a=g.x-l;n=g.y-e;l=a-(c-l);e=
n-(f-e);e=l*a+e*n;a=Math.sqrt(0>=e?0:e*e/(a*a+n*n));a>b&&(a=b);b=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,c,f));-1==mxUtils.relativeCcw(g.x,g.y,k.x,k.y,c,f)&&(b=-b);return new mxPoint(-2*((d/2-p-a)/d),b/this.scale)}}return new mxPoint};
mxGraphView.prototype.updateEdgeLabelOffset=function(a){var c=a.absolutePoints;a.absoluteOffset.x=a.getCenterX();a.absoluteOffset.y=a.getCenterY();if(null!=c&&0<c.length&&null!=a.segments){var f=this.graph.getCellGeometry(a.cell);if(f.relative){var d=this.getPoint(a,f);null!=d&&(a.absoluteOffset=d)}else{var d=c[0],b=c[c.length-1];if(null!=d&&null!=b){var c=b.x-d.x,e=b.y-d.y,g=b=0,f=f.offset;null!=f&&(b=f.x,g=f.y);f=d.y+e/2+g*this.scale;a.absoluteOffset.x=d.x+c/2+b*this.scale;a.absoluteOffset.y=f}}}};
mxGraphView.prototype.getState=function(a,c){c=c||!1;var f=null;if(null!=a&&(f=this.states.get(a),c&&(null==f||this.updateStyle)&&this.graph.isCellVisible(a)))null==f?(f=this.createState(a),this.states.put(a,f)):f.style=this.graph.getCellStyle(a);return f};mxGraphView.prototype.isRendering=function(){return this.rendering};mxGraphView.prototype.setRendering=function(a){this.rendering=a};mxGraphView.prototype.isAllowEval=function(){return this.allowEval};
@@ -1285,7 +1285,7 @@ d-e))}}else this.allowAutoPanning&&!this.panningHandler.isActive()&&(null==this.
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,c,f){a=this.view.translate;var d=this.pageFormat,b=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*b),Math.ceil(d.height*b));c=this.pageBreaksVisible?Math.ceil(c/d.width):1;f=this.pageBreaksVisible?Math.ceil(f/d.height):1;return new mxRectangle(0,0,c*d.width+2+a.x,f*d.height+2+a.y)};
mxGraph.prototype.fit=function(a,c,f,d,b,e){if(null!=this.container){a=null!=a?a:this.getBorder();c=null!=c?c:!1;f=null!=f?f:0;d=null!=d?d:!0;b=null!=b?b:!1;e=null!=e?e:!1;var g=this.getBorderSizes(),k=this.container.offsetWidth-g.x-g.width-1,l=this.container.offsetHeight-g.y-g.height-1,g=this.view.getGraphBounds();if(0<g.width&&0<g.height){c&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var n=this.view.scale,m=g.width/n,p=g.height/n;null!=this.backgroundImage&&(m=Math.max(m,
-this.backgroundImage.width-g.x/n),p=Math.max(p,this.backgroundImage.height-g.y/n));var q=(c?a:2*a)+f,k=k-q,l=l-q;b=b?l/p:e?k/m:Math.min(k/m,l/p);null!=this.minFitScale&&(b=Math.max(b,this.minFitScale));null!=this.maxFitScale&&(b=Math.min(b,this.maxFitScale));if(d)c?this.view.scale!=b&&this.view.setScale(b):mxUtils.hasScrollbars(this.container)?(this.view.setScale(b),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(b,
+this.backgroundImage.width-g.x/n),p=Math.max(p,this.backgroundImage.height-g.y/n));var r=(c?a:2*a)+f,k=k-r,l=l-r;b=b?l/p:e?k/m:Math.min(k/m,l/p);null!=this.minFitScale&&(b=Math.max(b,this.minFitScale));null!=this.maxFitScale&&(b=Math.min(b,this.maxFitScale));if(d)c?this.view.scale!=b&&this.view.setScale(b):mxUtils.hasScrollbars(this.container)?(this.view.setScale(b),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(b,
null!=g.x?Math.floor(this.view.translate.x-g.x/n+a/b+f/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/n+a/b+f/2):a);else return b}}return this.view.scale};
mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var c=this.getBorder(),f=Math.max(0,a.x+a.width+c),c=Math.max(0,a.y+a.height+c);null!=this.minimumContainerSize&&(f=Math.max(f,this.minimumContainerSize.width),c=Math.max(c,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(f,c);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,f),Math.max(1,c));null!=d&&(f=d.width*this.view.scale,
c=d.height*this.view.scale)}null!=this.minimumGraphSize&&(f=Math.max(f,this.minimumGraphSize.width*this.view.scale),c=Math.max(c,this.minimumGraphSize.height*this.view.scale));f=Math.ceil(f);c=Math.ceil(c);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,f)+"px",d.style.minHeight=Math.max(1,c)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,f),Math.max(1,c)):(this.view.canvas.style.minWidth=
@@ -1310,20 +1310,20 @@ this.cellsAdded(f,a,e,null,null,!1,!1);this.cellsMoved(f,-d.x,-d.y,!1,!0);this.c
mxGraph.prototype.getBoundsForGroup=function(a,c,f){c=this.getBoundingBoxFromGeometry(c,!0);null!=c&&(this.isSwimlane(a)&&(a=this.getStartSize(a),c.x-=a.width,c.y-=a.height,c.width+=a.width,c.height+=a.height),null!=f&&(c.x-=f,c.y-=f,c.width+=2*f,c.height+=2*f));return c};mxGraph.prototype.createGroupCell=function(a){a=new mxCell("");a.setVertex(!0);a.setConnectable(!1);return a};
mxGraph.prototype.ungroupCells=function(a){var c=[];if(null==a){a=this.getSelectionCells();for(var f=[],d=0;d<a.length;d++)0<this.model.getChildCount(a[d])&&f.push(a[d]);a=f}if(null!=a&&0<a.length){this.model.beginUpdate();try{for(d=0;d<a.length;d++){var b=this.model.getChildren(a[d]);if(null!=b&&0<b.length){var b=b.slice(),e=this.model.getParent(a[d]),g=this.model.getChildCount(e);this.cellsAdded(b,e,g,null,null,!0);c=c.concat(b)}}this.removeCellsAfterUngroup(a);this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,
"cells",a))}finally{this.model.endUpdate()}}return c};mxGraph.prototype.removeCellsAfterUngroup=function(a){this.cellsRemoved(this.addAllEdges(a))};mxGraph.prototype.removeCellsFromParent=function(a){null==a&&(a=this.getSelectionCells());this.model.beginUpdate();try{var c=this.getDefaultParent(),f=this.model.getChildCount(c);this.cellsAdded(a,c,f,null,null,!0);this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",a))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.updateGroupBounds=function(a,c,f,d,b,e,g){null==a&&(a=this.getSelectionCells());c=null!=c?c:0;f=null!=f?f:!1;d=null!=d?d:0;b=null!=b?b:0;e=null!=e?e:0;g=null!=g?g:0;this.model.beginUpdate();try{for(var k=a.length-1;0<=k;k--){var l=this.getCellGeometry(a[k]);if(null!=l){var n=this.getChildCells(a[k]);if(null!=n&&0<n.length){var m=this.getBoundingBoxFromGeometry(n,!0);if(null!=m&&0<m.width&&0<m.height){var p=0,q=0;if(this.isSwimlane(a[k]))var r=this.getStartSize(a[k]),p=r.width,q=
-r.height;l=l.clone();f&&(l.x=Math.round(l.x+m.x-c-p-g),l.y=Math.round(l.y+m.y-c-q-d));l.width=Math.round(m.width+2*c+p+g+b);l.height=Math.round(m.height+2*c+q+d+e);this.model.setGeometry(a[k],l);this.moveCells(n,c+p-m.x+g,c+q-m.y+d)}}}}}finally{this.model.endUpdate()}return a};
+mxGraph.prototype.updateGroupBounds=function(a,c,f,d,b,e,g){null==a&&(a=this.getSelectionCells());c=null!=c?c:0;f=null!=f?f:!1;d=null!=d?d:0;b=null!=b?b:0;e=null!=e?e:0;g=null!=g?g:0;this.model.beginUpdate();try{for(var k=a.length-1;0<=k;k--){var l=this.getCellGeometry(a[k]);if(null!=l){var n=this.getChildCells(a[k]);if(null!=n&&0<n.length){var m=this.getBoundingBoxFromGeometry(n,!0);if(null!=m&&0<m.width&&0<m.height){var p=0,r=0;if(this.isSwimlane(a[k]))var s=this.getStartSize(a[k]),p=s.width,r=
+s.height;l=l.clone();f&&(l.x=Math.round(l.x+m.x-c-p-g),l.y=Math.round(l.y+m.y-c-r-d));l.width=Math.round(m.width+2*c+p+g+b);l.height=Math.round(m.height+2*c+r+d+e);this.model.setGeometry(a[k],l);this.moveCells(n,c+p-m.x+g,c+r-m.y+d)}}}}}finally{this.model.endUpdate()}return a};
mxGraph.prototype.getBoundingBox=function(a){var c=null;if(null!=a&&0<a.length)for(var f=0;f<a.length;f++)if(this.model.isVertex(a[f])||this.model.isEdge(a[f])){var d=this.view.getBoundingBox(this.view.getState(a[f]),!0);null!=d&&(null==c?c=mxRectangle.fromRectangle(d):c.add(d))}return c};
mxGraph.prototype.cloneCells=function(a,c,f){c=null!=c?c:!0;var d=null;if(null!=a){for(var b=new mxDictionary,d=[],e=0;e<a.length;e++)b.put(a[e],!0),d.push(a[e]);if(0<d.length)for(var g=this.view.scale,k=this.view.translate,d=this.model.cloneCells(a,!0,f),e=0;e<a.length;e++)if(!c&&this.model.isEdge(d[e])&&null!=this.getEdgeValidationError(d[e],this.model.getTerminal(d[e],!0),this.model.getTerminal(d[e],!1)))d[e]=null;else{var l=this.model.getGeometry(d[e]);if(null!=l){var n=this.view.getState(a[e]),
m=this.view.getState(this.model.getParent(a[e]));if(null!=n&&null!=m)if(f=m.origin.x,m=m.origin.y,this.model.isEdge(d[e])){for(var n=n.absolutePoints,p=this.model.getTerminal(a[e],!0);null!=p&&!b.get(p);)p=this.model.getParent(p);null==p&&l.setTerminalPoint(new mxPoint(n[0].x/g-k.x,n[0].y/g-k.y),!0);for(p=this.model.getTerminal(a[e],!1);null!=p&&!b.get(p);)p=this.model.getParent(p);null==p&&(p=n.length-1,l.setTerminalPoint(new mxPoint(n[p].x/g-k.x,n[p].y/g-k.y),!1));l=l.points;if(null!=l)for(n=0;n<
l.length;n++)l[n].x+=f,l[n].y+=m}else l.translate(f,m)}}else d=[]}return d};mxGraph.prototype.insertVertex=function(a,c,f,d,b,e,g,k,l){c=this.createVertex(a,c,f,d,b,e,g,k,l);return this.addCell(c,a)};mxGraph.prototype.createVertex=function(a,c,f,d,b,e,g,k,l){a=new mxGeometry(d,b,e,g);a.relative=null!=l?l:!1;f=new mxCell(f,a,k);f.setId(c);f.setVertex(!0);f.setConnectable(!0);return f};mxGraph.prototype.insertEdge=function(a,c,f,d,b,e){c=this.createEdge(a,c,f,d,b,e);return this.addEdge(c,a,d,b)};
mxGraph.prototype.createEdge=function(a,c,f,d,b,e){a=new mxCell(f,new mxGeometry,e);a.setId(c);a.setEdge(!0);a.geometry.relative=!0;return a};mxGraph.prototype.addEdge=function(a,c,f,d,b){return this.addCell(a,c,b,f,d)};mxGraph.prototype.addCell=function(a,c,f,d,b){return this.addCells([a],c,f,d,b)[0]};
mxGraph.prototype.addCells=function(a,c,f,d,b){null==c&&(c=this.getDefaultParent());null==f&&(f=this.model.getChildCount(c));this.model.beginUpdate();try{this.cellsAdded(a,c,f,d,b,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",a,"parent",c,"index",f,"source",d,"target",b))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.cellsAdded=function(a,c,f,d,b,e,g){if(null!=a&&null!=c&&null!=f){this.model.beginUpdate();try{for(var k=e?this.view.getState(c):null,l=null!=k?k.origin:null,n=new mxPoint(0,0),k=0;k<a.length;k++)if(null==a[k])f--;else{var m=this.model.getParent(a[k]);if(null!=l&&a[k]!=c&&c!=m){var p=this.view.getState(m),q=null!=p?p.origin:n,r=this.model.getGeometry(a[k]);if(null!=r){var s=q.x-l.x,t=q.y-l.y,r=r.clone();r.translate(s,t);!r.relative&&this.model.isVertex(a[k])&&!this.isAllowNegativeCoordinates()&&
-(r.x=Math.max(0,r.x),r.y=Math.max(0,r.y));this.model.setGeometry(a[k],r)}}c==m&&f+k>this.model.getChildCount(c)&&f--;this.model.add(c,a[k],f+k);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[k],!0);this.isExtendParentsOnAdd(a[k])&&this.isExtendParent(a[k])&&this.extendParent(a[k]);(null==g||g)&&this.constrainChild(a[k]);null!=d&&this.cellConnected(a[k],d,!0);null!=b&&this.cellConnected(a[k],b,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",c,"index",f,"source",d,"target",
+mxGraph.prototype.cellsAdded=function(a,c,f,d,b,e,g){if(null!=a&&null!=c&&null!=f){this.model.beginUpdate();try{for(var k=e?this.view.getState(c):null,l=null!=k?k.origin:null,n=new mxPoint(0,0),k=0;k<a.length;k++)if(null==a[k])f--;else{var m=this.model.getParent(a[k]);if(null!=l&&a[k]!=c&&c!=m){var p=this.view.getState(m),r=null!=p?p.origin:n,s=this.model.getGeometry(a[k]);if(null!=s){var q=r.x-l.x,t=r.y-l.y,s=s.clone();s.translate(q,t);!s.relative&&this.model.isVertex(a[k])&&!this.isAllowNegativeCoordinates()&&
+(s.x=Math.max(0,s.x),s.y=Math.max(0,s.y));this.model.setGeometry(a[k],s)}}c==m&&f+k>this.model.getChildCount(c)&&f--;this.model.add(c,a[k],f+k);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[k],!0);this.isExtendParentsOnAdd(a[k])&&this.isExtendParent(a[k])&&this.extendParent(a[k]);(null==g||g)&&this.constrainChild(a[k]);null!=d&&this.cellConnected(a[k],d,!0);null!=b&&this.cellConnected(a[k],b,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",c,"index",f,"source",d,"target",
b,"absolute",e))}finally{this.model.endUpdate()}}};mxGraph.prototype.autoSizeCell=function(a,c){if(null!=c?c:1)for(var f=this.model.getChildCount(a),d=0;d<f;d++)this.autoSizeCell(this.model.getChildAt(a,d));this.getModel().isVertex(a)&&this.isAutoSizeCell(a)&&this.updateCellSize(a)};
mxGraph.prototype.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));this.model.beginUpdate();try{this.cellsRemoved(a),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",a,"includeEdges",c))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.cellsRemoved=function(a){if(null!=a&&0<a.length){var c=this.view.scale,f=this.view.translate;this.model.beginUpdate();try{for(var d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(b=0;b<a.length;b++){for(var e=this.getAllEdges([a[b]]),g=mxUtils.bind(this,function(d,g){var m=this.model.getGeometry(d);if(null!=m){var p=this.view.getState(d);if(null!=p){for(var q=p.getVisibleTerminal(g),r=!1;null!=q;){if(a[b]==q){r=!0;break}q=this.model.getParent(q)}if(r){var q=f.x,r=f.y,s=this.view.getState(this.model.getParent(d));
-null!=s&&this.model.isVertex(s.cell)&&(q=s.x/c,r=s.y/c);m=m.clone();p=p.absolutePoints;s=g?0:p.length-1;m.setTerminalPoint(new mxPoint(p[s].x/c-q,p[s].y/c-r),g);this.model.setTerminal(e[k],null,g);this.model.setGeometry(e[k],m)}}}}),k=0;k<e.length;k++)d.get(e[k])||(g(e[k],!0),g(e[k],!1));this.model.remove(a[b])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",a))}finally{this.model.endUpdate()}}};
+mxGraph.prototype.cellsRemoved=function(a){if(null!=a&&0<a.length){var c=this.view.scale,f=this.view.translate;this.model.beginUpdate();try{for(var d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(b=0;b<a.length;b++){for(var e=this.getAllEdges([a[b]]),g=mxUtils.bind(this,function(d,g){var m=this.model.getGeometry(d);if(null!=m){var p=this.view.getState(d);if(null!=p){for(var r=p.getVisibleTerminal(g),s=!1;null!=r;){if(a[b]==r){s=!0;break}r=this.model.getParent(r)}if(s){var r=f.x,s=f.y,q=this.view.getState(this.model.getParent(d));
+null!=q&&this.model.isVertex(q.cell)&&(r=q.x/c,s=q.y/c);m=m.clone();p=p.absolutePoints;q=g?0:p.length-1;m.setTerminalPoint(new mxPoint(p[q].x/c-r,p[q].y/c-s),g);this.model.setTerminal(e[k],null,g);this.model.setGeometry(e[k],m)}}}}),k=0;k<e.length;k++)d.get(e[k])||(g(e[k],!0),g(e[k],!1));this.model.remove(a[b])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",a))}finally{this.model.endUpdate()}}};
mxGraph.prototype.splitEdge=function(a,c,f,d,b){d=d||0;b=b||0;var e=this.model.getParent(a),g=this.model.getTerminal(a,!0);this.model.beginUpdate();try{if(null==f){f=this.cloneCells([a])[0];var k=this.view.getState(a),l=this.getCellGeometry(f);if(null!=l&&null!=l.points&&null!=k){var n=this.view.translate,m=this.view.scale,p=mxUtils.findNearestSegment(k,(d+n.x)*m,(b+n.y)*m);l.points=l.points.slice(0,p);l=this.getCellGeometry(a);null!=l&&null!=l.points&&(l=l.clone(),l.points=l.points.slice(p),this.model.setGeometry(a,
l))}}this.cellsMoved(c,d,b,!1,!1);this.cellsAdded(c,e,this.model.getChildCount(e),null,null,!0);this.cellsAdded([f],e,this.model.getChildCount(e),g,c[0],!1);this.cellConnected(a,c[0],!0);this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",a,"cells",c,"newEdge",f,"dx",d,"dy",b))}finally{this.model.endUpdate()}return f};
mxGraph.prototype.toggleCells=function(a,c,f){null==c&&(c=this.getSelectionCells());f&&(c=this.addAllEdges(c));this.model.beginUpdate();try{this.cellsToggled(c,a),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",a,"cells",c,"includeEdges",f))}finally{this.model.endUpdate()}return c};mxGraph.prototype.cellsToggled=function(a,c){if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var f=0;f<a.length;f++)this.model.setVisible(a[f],c)}finally{this.model.endUpdate()}}};
@@ -1345,8 +1345,8 @@ mxGraph.prototype.resizeChildCells=function(a,c){for(var f=this.model.getGeometr
mxGraph.prototype.scaleCell=function(a,c,f,d){var b=this.model.getGeometry(a);if(null!=b){var e=this.view.getState(a),e=null!=e?e.style:this.getCellStyle(a),b=b.clone(),g=b.x,k=b.y,l=b.width,n=b.height;b.scale(c,f,"fixed"==e[mxConstants.STYLE_ASPECT]);"1"==e[mxConstants.STYLE_RESIZE_WIDTH]?b.width=l*c:"0"==e[mxConstants.STYLE_RESIZE_WIDTH]&&(b.width=l);"1"==e[mxConstants.STYLE_RESIZE_HEIGHT]?b.height=n*f:"0"==e[mxConstants.STYLE_RESIZE_HEIGHT]&&(b.height=n);this.isCellMovable(a)||(b.x=g,b.y=k);this.isCellResizable(a)||
(b.width=l,b.height=n);this.model.isVertex(a)?this.cellResized(a,b,!0,d):this.model.setGeometry(a,b)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var c=this.model.getParent(a),f=this.getCellGeometry(c);if(null!=c&&null!=f&&!this.isCellCollapsed(c)&&(a=this.getCellGeometry(a),null!=a&&!a.relative&&(f.width<a.x+a.width||f.height<a.y+a.height)))f=f.clone(),f.width=Math.max(f.width,a.x+a.width),f.height=Math.max(f.height,a.y+a.height),this.cellsResized([c],[f],!1)}};
mxGraph.prototype.importCells=function(a,c,f,d,b,e){return this.moveCells(a,c,f,!0,d,b,e)};
-mxGraph.prototype.moveCells=function(a,c,f,d,b,e,g){c=null!=c?c:0;f=null!=f?f:0;d=null!=d?d:!1;if(null!=a&&(0!=c||0!=f||d||null!=b)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(var n=mxUtils.bind(this,function(b){for(;null!=b;){if(k.get(b))return!0;b=this.model.getParent(b)}return!1}),m=[],l=0;l<a.length;l++){var p=this.getCellGeometry(a[l]),q=this.model.getParent(a[l]);(null==p||!p.relative||!this.model.isEdge(q)||
-!n(this.model.getTerminal(q,!0))&&!n(this.model.getTerminal(q,!1)))&&m.push(a[l])}a=m;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==b&&(b=this.getDefaultParent()));var r=this.isAllowNegativeCoordinates();null!=b&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,c,f,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==b,this.isExtendParentsOnMove()&&null==b);this.setAllowNegativeCoordinates(r);if(null!=b){var s=this.model.getChildCount(b);this.cellsAdded(a,b,s,null,
+mxGraph.prototype.moveCells=function(a,c,f,d,b,e,g){c=null!=c?c:0;f=null!=f?f:0;d=null!=d?d:!1;if(null!=a&&(0!=c||0!=f||d||null!=b)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(var n=mxUtils.bind(this,function(b){for(;null!=b;){if(k.get(b))return!0;b=this.model.getParent(b)}return!1}),m=[],l=0;l<a.length;l++){var p=this.getCellGeometry(a[l]),r=this.model.getParent(a[l]);(null==p||!p.relative||!this.model.isEdge(r)||
+!n(this.model.getTerminal(r,!0))&&!n(this.model.getTerminal(r,!1)))&&m.push(a[l])}a=m;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==b&&(b=this.getDefaultParent()));var s=this.isAllowNegativeCoordinates();null!=b&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,c,f,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==b,this.isExtendParentsOnMove()&&null==b);this.setAllowNegativeCoordinates(s);if(null!=b){var q=this.model.getChildCount(b);this.cellsAdded(a,b,q,null,
null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",a,"dx",c,"dy",f,"clone",d,"target",b,"event",e))}finally{this.model.endUpdate()}}return a};
mxGraph.prototype.cellsMoved=function(a,c,f,d,b,e){if(null!=a&&(0!=c||0!=f)){e=null!=e?e:!1;this.model.beginUpdate();try{d&&this.disconnectGraph(a);for(var g=0;g<a.length;g++)this.translateCell(a[g],c,f),e&&this.isExtendParent(a[g])?this.extendParent(a[g]):b&&this.constrainChild(a[g]);this.resetEdgesOnMove&&this.resetEdges(a);this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",a,"dx",c,"dy",f,"disconnect",d))}finally{this.model.endUpdate()}}};
mxGraph.prototype.translateCell=function(a,c,f){var d=this.model.getGeometry(a);if(null!=d){c=parseFloat(c);f=parseFloat(f);d=d.clone();d.translate(c,f);!d.relative&&this.model.isVertex(a)&&!this.isAllowNegativeCoordinates()&&(d.x=Math.max(0,parseFloat(d.x)),d.y=Math.max(0,parseFloat(d.y)));if(d.relative&&!this.model.isEdge(a)){var b=this.model.getParent(a),e=0;this.model.isVertex(b)&&(e=this.view.getState(b),b=null!=e?e.style:this.getCellStyle(b),e=mxUtils.getValue(b,mxConstants.STYLE_ROTATION,0));
@@ -1370,7 +1370,7 @@ d,k,b)),null!=f&&c.perimeter&&(f=this.view.getPerimeterPoint(a,f,!1))):e+=g;0!=e
mxGraph.prototype.cellConnected=function(a,c,f,d){if(null!=a){this.model.beginUpdate();try{var b=this.model.getTerminal(a,f);this.setConnectionConstraint(a,c,f,d);this.isPortsEnabled()&&(d=null,this.isPort(c)&&(d=c.getId(),c=this.getTerminalForPort(c,f)),this.setCellStyles(f?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,d,[a]));this.model.setTerminal(a,c,f);this.resetEdgesOnConnect&&this.resetEdge(a);this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",a,"terminal",c,"source",
f,"previous",b))}finally{this.model.endUpdate()}}};
mxGraph.prototype.disconnectGraph=function(a){if(null!=a){this.model.beginUpdate();try{for(var c=this.view.scale,f=this.view.translate,d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(b=0;b<a.length;b++)if(this.model.isEdge(a[b])){var e=this.model.getGeometry(a[b]);if(null!=e){var g=this.view.getState(a[b]),k=this.view.getState(this.model.getParent(a[b]));if(null!=g&&null!=k){var e=e.clone(),l=-k.origin.x,n=-k.origin.y,m=g.absolutePoints,p=this.model.getTerminal(a[b],!0);if(null!=p&&this.isCellDisconnectable(a[b],
-p,!0)){for(;null!=p&&!d.get(p);)p=this.model.getParent(p);null==p&&(e.setTerminalPoint(new mxPoint(m[0].x/c-f.x+l,m[0].y/c-f.y+n),!0),this.model.setTerminal(a[b],null,!0))}var q=this.model.getTerminal(a[b],!1);if(null!=q&&this.isCellDisconnectable(a[b],q,!1)){for(;null!=q&&!d.get(q);)q=this.model.getParent(q);if(null==q){var r=m.length-1;e.setTerminalPoint(new mxPoint(m[r].x/c-f.x+l,m[r].y/c-f.y+n),!1);this.model.setTerminal(a[b],null,!1)}}this.model.setGeometry(a[b],e)}}}}finally{this.model.endUpdate()}}};
+p,!0)){for(;null!=p&&!d.get(p);)p=this.model.getParent(p);null==p&&(e.setTerminalPoint(new mxPoint(m[0].x/c-f.x+l,m[0].y/c-f.y+n),!0),this.model.setTerminal(a[b],null,!0))}var r=this.model.getTerminal(a[b],!1);if(null!=r&&this.isCellDisconnectable(a[b],r,!1)){for(;null!=r&&!d.get(r);)r=this.model.getParent(r);if(null==r){var s=m.length-1;e.setTerminalPoint(new mxPoint(m[s].x/c-f.x+l,m[s].y/c-f.y+n),!1);this.model.setTerminal(a[b],null,!1)}}this.model.setGeometry(a[b],e)}}}}finally{this.model.endUpdate()}}};
mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot};mxGraph.prototype.getTranslateForRoot=function(a){return null};mxGraph.prototype.isPort=function(a){return!1};mxGraph.prototype.getTerminalForPort=function(a,c){return this.model.getParent(a)};mxGraph.prototype.getChildOffsetForCell=function(a){return null};mxGraph.prototype.enterGroup=function(a){a=a||this.getSelectionCell();null!=a&&this.isValidRoot(a)&&(this.view.setCurrentRoot(a),this.clearSelection())};
mxGraph.prototype.exitGroup=function(){var a=this.model.getRoot(),c=this.getCurrentRoot();if(null!=c){for(var f=this.model.getParent(c);f!=a&&!this.isValidRoot(f)&&this.model.getParent(f)!=a;)f=this.model.getParent(f);f==a||this.model.getParent(f)==a?this.view.setCurrentRoot(null):this.view.setCurrentRoot(f);null!=this.view.getState(c)&&this.setSelectionCell(c)}};mxGraph.prototype.home=function(){var a=this.getCurrentRoot();null!=a&&(this.view.setCurrentRoot(null),null!=this.view.getState(a)&&this.setSelectionCell(a))};
mxGraph.prototype.isValidRoot=function(a){return null!=a};mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()};mxGraph.prototype.getCellBounds=function(a,c,f){var d=[a];c&&(d=d.concat(this.model.getEdges(a)));d=this.view.getBounds(d);if(f){f=this.model.getChildCount(a);for(var b=0;b<f;b++){var e=this.getCellBounds(this.model.getChildAt(a,b),c,!0);null!=d?d.add(e):d=e}}return d};
@@ -1445,9 +1445,9 @@ mxGraph.prototype.getEdges=function(a,c,f,d,b,e){f=null!=f?f:!0;d=null!=d?d:!0;b
mxGraph.prototype.getOpposites=function(a,c,f,d){f=null!=f?f:!0;d=null!=d?d:!0;var b=[],e=new mxDictionary;if(null!=a)for(var g=0;g<a.length;g++){var k=this.view.getState(a[g]),l=null!=k?k.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[g],!0),k=null!=k?k.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[g],!1);l==c&&null!=k&&k!=c&&d?e.get(k)||(e.put(k,!0),b.push(k)):k==c&&null!=l&&l!=c&&f&&!e.get(l)&&(e.put(l,!0),b.push(l))}return b};
mxGraph.prototype.getEdgesBetween=function(a,c,f){f=null!=f?f:!1;for(var d=this.getEdges(a),b=[],e=0;e<d.length;e++){var g=this.view.getState(d[e]),k=null!=g?g.getVisibleTerminal(!0):this.view.getVisibleTerminal(d[e],!0),g=null!=g?g.getVisibleTerminal(!1):this.view.getVisibleTerminal(d[e],!1);(k==a&&g==c||!f&&k==c&&g==a)&&b.push(d[e])}return b};
mxGraph.prototype.getPointForEvent=function(a,c){var f=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=this.view.scale,b=this.view.translate,e=!1!=c?this.gridSize/2:0;f.x=this.snap(f.x/d-b.x-e);f.y=this.snap(f.y/d-b.y-e);return f};
-mxGraph.prototype.getCells=function(a,c,f,d,b,e){e=null!=e?e:[];if(0<f||0<d){var g=this.getModel(),k=a+f,l=c+d;null==b&&(b=this.getCurrentRoot(),null==b&&(b=g.getRoot()));if(null!=b)for(var n=g.getChildCount(b),m=0;m<n;m++){var p=g.getChildAt(b,m),q=this.view.getState(p);if(null!=q&&this.isCellVisible(p)){var r=mxUtils.getValue(q.style,mxConstants.STYLE_ROTATION)||0;0!=r&&(q=mxUtils.getBoundingBox(q,r));(g.isEdge(p)||g.isVertex(p))&&q.x>=a&&q.y+q.height<=l&&q.y>=c&&q.x+q.width<=k?e.push(p):this.getCells(a,
+mxGraph.prototype.getCells=function(a,c,f,d,b,e){e=null!=e?e:[];if(0<f||0<d){var g=this.getModel(),k=a+f,l=c+d;null==b&&(b=this.getCurrentRoot(),null==b&&(b=g.getRoot()));if(null!=b)for(var n=g.getChildCount(b),m=0;m<n;m++){var p=g.getChildAt(b,m),r=this.view.getState(p);if(null!=r&&this.isCellVisible(p)){var s=mxUtils.getValue(r.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(r=mxUtils.getBoundingBox(r,s));(g.isEdge(p)||g.isVertex(p))&&r.x>=a&&r.y+r.height<=l&&r.y>=c&&r.x+r.width<=k?e.push(p):this.getCells(a,
c,f,d,p,e)}}}return e};mxGraph.prototype.getCellsBeyond=function(a,c,f,d,b){var e=[];if(d||b)if(null==f&&(f=this.getDefaultParent()),null!=f)for(var g=this.model.getChildCount(f),k=0;k<g;k++){var l=this.model.getChildAt(f,k),n=this.view.getState(l);this.isCellVisible(l)&&null!=n&&(!d||n.x>=a)&&(!b||n.y>=c)&&e.push(l)}return e};
-mxGraph.prototype.findTreeRoots=function(a,c,f){c=null!=c?c:!1;f=null!=f?f:!1;var d=[];if(null!=a){for(var b=this.getModel(),e=b.getChildCount(a),g=null,k=0,l=0;l<e;l++){var n=b.getChildAt(a,l);if(this.model.isVertex(n)&&this.isCellVisible(n)){for(var m=this.getConnections(n,c?a:null),p=0,q=0,r=0;r<m.length;r++)this.view.getVisibleTerminal(m[r],!0)==n?p++:q++;(f&&0==p&&0<q||!f&&0==q&&0<p)&&d.push(n);m=f?q-p:p-q;m>k&&(k=m,g=n)}}0==d.length&&null!=g&&d.push(g)}return d};
+mxGraph.prototype.findTreeRoots=function(a,c,f){c=null!=c?c:!1;f=null!=f?f:!1;var d=[];if(null!=a){for(var b=this.getModel(),e=b.getChildCount(a),g=null,k=0,l=0;l<e;l++){var n=b.getChildAt(a,l);if(this.model.isVertex(n)&&this.isCellVisible(n)){for(var m=this.getConnections(n,c?a:null),p=0,r=0,s=0;s<m.length;s++)this.view.getVisibleTerminal(m[s],!0)==n?p++:r++;(f&&0==p&&0<r||!f&&0==r&&0<p)&&d.push(n);m=f?r-p:p-r;m>k&&(k=m,g=n)}}0==d.length&&null!=g&&d.push(g)}return d};
mxGraph.prototype.traverse=function(a,c,f,d,b){if(null!=f&&null!=a&&(c=null!=c?c:!0,b=b||new mxDictionary,!b.get(a)&&(b.put(a,!0),d=f(a,d),null==d||d)))if(d=this.model.getEdgeCount(a),0<d)for(var e=0;e<d;e++){var g=this.model.getEdgeAt(a,e),k=this.model.getTerminal(g,!0)==a;if(!c||k)k=this.model.getTerminal(g,!k),this.traverse(k,c,f,g,b)}};mxGraph.prototype.isCellSelected=function(a){return this.getSelectionModel().isSelected(a)};mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()};
mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()};mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length};mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]};mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()};mxGraph.prototype.setSelectionCell=function(a){this.getSelectionModel().setCell(a)};mxGraph.prototype.setSelectionCells=function(a){this.getSelectionModel().setCells(a)};
mxGraph.prototype.addSelectionCell=function(a){this.getSelectionModel().addCell(a)};mxGraph.prototype.addSelectionCells=function(a){this.getSelectionModel().addCells(a)};mxGraph.prototype.removeSelectionCell=function(a){this.getSelectionModel().removeCell(a)};mxGraph.prototype.removeSelectionCells=function(a){this.getSelectionModel().removeCells(a)};mxGraph.prototype.selectRegion=function(a,c){var f=this.getCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(f,c);return f};
@@ -1637,8 +1637,8 @@ mxConnectionHandler.prototype.drawPreview=function(){this.updatePreview(null==th
mxConnectionHandler.prototype.connect=function(a,c,f,d){if(null!=c||this.isCreateTarget(f)||this.graph.allowDanglingEdges){var b=this.graph.getModel(),e=!1,g=null;b.beginUpdate();try{if(null!=a&&null==c&&(!this.graph.isIgnoreTerminalEvent(f)&&this.isCreateTarget(f))&&(c=this.createTargetVertex(f,a),null!=c)){d=this.graph.getDropTarget([c],f,d);e=!0;if(null==d||!this.graph.getModel().isEdge(d)){var k=this.graph.getView().getState(d);if(null!=k){var l=b.getGeometry(c);l.x-=k.origin.x;l.y-=k.origin.y}}else d=
this.graph.getDefaultParent();this.graph.addCell(c,d)}var n=this.graph.getDefaultParent();null!=a&&null!=c&&(b.getParent(a)==b.getParent(c)&&b.getParent(b.getParent(a))!=b.getRoot())&&(n=b.getParent(a),null!=a.geometry&&a.geometry.relative&&null!=c.geometry&&c.geometry.relative&&(n=b.getParent(n)));var m=k=null;null!=this.edgeState&&(k=this.edgeState.cell.value,m=this.edgeState.cell.style);g=this.insertEdge(n,null,k,a,c,m);if(null!=g){this.graph.setConnectionConstraint(g,a,!0,this.sourceConstraint);
this.graph.setConnectionConstraint(g,c,!1,this.constraintHandler.currentConstraint);null!=this.edgeState&&b.setGeometry(g,this.edgeState.cell.geometry);b.getParent(a);if(this.isInsertBefore(g,a,c,f,d)){n=null;for(l=a;null!=l.parent&&null!=l.geometry&&l.geometry.relative&&l.parent!=g.parent;)l=this.graph.model.getParent(l);null!=l&&null!=l.parent&&l.parent==g.parent&&(n=l.parent.getIndex(l),l.parent.insert(g,n))}var p=b.getGeometry(g);null==p&&(p=new mxGeometry,p.relative=!0,b.setGeometry(g,p));if(null!=
-this.waypoints&&0<this.waypoints.length){var q=this.graph.view.scale,r=this.graph.view.translate;p.points=[];for(a=0;a<this.waypoints.length;a++){var s=this.waypoints[a];p.points.push(new mxPoint(s.x/q-r.x,s.y/q-r.y))}}if(null==c){var t=this.graph.view.translate,q=this.graph.view.scale,s=null!=this.originalPoint?new mxPoint(this.originalPoint.x/q-t.x,this.originalPoint.y/q-t.y):new mxPoint(this.currentPoint.x/q-t.x,this.currentPoint.y/q-t.y);s.x-=this.graph.panDx/this.graph.view.scale;s.y-=this.graph.panDy/
-this.graph.view.scale;p.setTerminalPoint(s,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",g,"terminal",c,"event",f,"target",d,"terminalInserted",e))}}catch(u){mxLog.show(),mxLog.debug(u.message)}finally{b.endUpdate()}this.select&&this.selectCells(g,e?c:null)}};mxConnectionHandler.prototype.selectCells=function(a,c){this.graph.setSelectionCell(a)};
+this.waypoints&&0<this.waypoints.length){var r=this.graph.view.scale,s=this.graph.view.translate;p.points=[];for(a=0;a<this.waypoints.length;a++){var q=this.waypoints[a];p.points.push(new mxPoint(q.x/r-s.x,q.y/r-s.y))}}if(null==c){var t=this.graph.view.translate,r=this.graph.view.scale,q=null!=this.originalPoint?new mxPoint(this.originalPoint.x/r-t.x,this.originalPoint.y/r-t.y):new mxPoint(this.currentPoint.x/r-t.x,this.currentPoint.y/r-t.y);q.x-=this.graph.panDx/this.graph.view.scale;q.y-=this.graph.panDy/
+this.graph.view.scale;p.setTerminalPoint(q,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",g,"terminal",c,"event",f,"target",d,"terminalInserted",e))}}catch(u){mxLog.show(),mxLog.debug(u.message)}finally{b.endUpdate()}this.select&&this.selectCells(g,e?c:null)}};mxConnectionHandler.prototype.selectCells=function(a,c){this.graph.setSelectionCell(a)};
mxConnectionHandler.prototype.insertEdge=function(a,c,f,d,b,e){if(null==this.factoryMethod)return this.graph.insertEdge(a,c,f,d,b,e);c=this.createEdge(f,d,b,e);return this.graph.addEdge(c,a,d,b)};
mxConnectionHandler.prototype.createTargetVertex=function(a,c){for(var f=this.graph.getCellGeometry(c);null!=f&&f.relative;)c=this.graph.getModel().getParent(c),f=this.graph.getCellGeometry(c);var d=this.graph.cloneCells([c])[0],f=this.graph.getModel().getGeometry(d);if(null!=f){var b=this.graph.view.translate,e=this.graph.view.scale,g=new mxPoint(this.currentPoint.x/e-b.x,this.currentPoint.y/e-b.y);f.x=Math.round(g.x-f.width/2-this.graph.panDx/e);f.y=Math.round(g.y-f.height/2-this.graph.panDy/e);
g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(c);if(null!=k){var l=k.x/e-b.x,b=k.y/e-b.y;Math.abs(l-f.x)<=g&&(f.x=Math.round(l));Math.abs(b-f.y)<=g&&(f.y=Math.round(b))}}}return d};mxConnectionHandler.prototype.getAlignmentTolerance=function(a){return this.graph.isGridEnabled()?this.graph.gridSize/2:this.graph.tolerance};
@@ -1654,7 +1654,7 @@ mxConstraintHandler.prototype.getCellForEvent=function(a,c){var f=a.getCell();if
mxConstraintHandler.prototype.update=function(a,c,f,d){if(this.isEnabled()&&!this.isEventIgnored(a)){null==this.mouseleaveHandler&&null!=this.graph.container&&(this.mouseleaveHandler=mxUtils.bind(this,function(){this.reset()}),mxEvent.addListener(this.graph.container,"mouseleave",this.resetHandler));var b=this.getTolerance(a),e=null!=d?d.x:a.getGraphX(),g=null!=d?d.y:a.getGraphY(),e=new mxRectangle(e-b,g-b,2*b,2*b),b=new mxRectangle(a.getGraphX()-b,a.getGraphY()-b,2*b,2*b),k=this.graph.view.getState(this.getCellForEvent(a,
d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,b))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,c);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=b.getCenterX(),l=b.getCenterY(),n=0;n<this.focusIcons.length;n++){var m=
g-this.focusIcons[n].bounds.getCenterX(),p=l-this.focusIcons[n].bounds.getCenterY(),m=m*m+p*p;if((this.intersects(this.focusIcons[n],b,c,f)||null!=d&&this.intersects(this.focusIcons[n],e,c,f))&&(null==a||m<a)){this.currentConstraint=this.constraints[n];this.currentPoint=this.focusPoints[n];a=m;m=this.focusIcons[n].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
-mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var q=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,q)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,r)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
mxConstraintHandler.prototype.setFocus=function(a,c,f){this.constraints=null!=c&&!this.isStateIgnored(c,f)&&this.graph.isCellConnectable(c.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(c,f)||[]:[]:null;if(null!=this.constraints){this.currentFocus=c;this.currentFocusArea=new mxRectangle(c.x,c.y,c.width,c.height);if(null!=this.focusIcons){for(f=0;f<this.focusIcons.length;f++)this.focusIcons[f].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(f=
0;f<this.constraints.length;f++){var d=this.graph.getConnectionPoint(c,this.constraints[f]),b=this.getImageForConstraint(c,this.constraints[f],d),e=b.src,b=new mxRectangle(Math.round(d.x-b.width/2),Math.round(d.y-b.height/2),b.width,b.height),e=new mxImageShape(b,e);e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;e.preserveImageAspect=!1;e.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(e.node,
"dragstart",function(b){mxEvent.consume(b);return!1});null!=e.node.previousSibling&&e.node.parentNode.insertBefore(e.node,e.node.parentNode.firstChild);b=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:c});e.redraw();mxEvent.redirectMouseEvents(e.node,this.graph,b);this.currentFocusArea.add(e.bounds);this.focusIcons.push(e);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -1726,8 +1726,8 @@ mxVertexHandler.prototype.reset=function(){null!=this.sizers&&null!=this.index&&
this.customHandles.length;a++)this.customHandles[a].reset();null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview());this.removeHint();this.redrawHandles();this.unscaledBounds=this.edgeHandlers=null};
mxVertexHandler.prototype.resizeCell=function(a,c,f,d,b,e,g){b=this.graph.model.getGeometry(a);null!=b&&(d==mxEvent.LABEL_HANDLE?(f=this.graph.view.scale,c=Math.round((this.labelShape.bounds.getCenterX()-this.startX)/f),f=Math.round((this.labelShape.bounds.getCenterY()-this.startY)/f),b=b.clone(),null==b.offset?b.offset=new mxPoint(c,f):(b.offset.x+=c,b.offset.y+=f),this.graph.model.setGeometry(a,b)):null!=this.unscaledBounds&&(f=this.graph.view.scale,(0!=this.childOffsetX||0!=this.childOffsetY)&&
this.moveChildren(a,Math.round(this.childOffsetX/f),Math.round(this.childOffsetY/f)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,c,f){for(var d=this.graph.getModel(),b=d.getChildCount(a),e=0;e<b;e++){var g=d.getChildAt(a,e),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(c,f),d.setGeometry(g,k))}};
-mxVertexHandler.prototype.union=function(a,c,f,d,b,e,g,k,l){if(this.singleSizer)return d=a.x+a.width+c,g=a.y+a.height+f,b&&(d=this.graph.snap(d/e)*e,g=this.graph.snap(g/e)*e),e=new mxRectangle(a.x,a.y,0,0),e.add(new mxRectangle(d,g,0,0)),e;var n=a.width,m=a.height,p=a.x-g.x*e,q=p+n;a=a.y-g.y*e;var r=a+m,s=p+n/2,t=a+m/2;4<d?(r+=f,b&&(r=this.graph.snap(r/e)*e)):3>d&&(a+=f,b&&(a=this.graph.snap(a/e)*e));if(0==d||3==d||5==d)p+=c,b&&(p=this.graph.snap(p/e)*e);else if(2==d||4==d||7==d)q+=c,b&&(q=this.graph.snap(q/
-e)*e);b=q-p;f=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?b=f*k:f=b/k,0==d&&(p=q-b,a=r-f)));l&&(b+=b-n,f+=f-m,p+=s-(p+b/2),a+=t-(a+f/2));0>b&&(p+=b,b=Math.abs(b));0>f&&(a+=f,f=Math.abs(f));d=new mxRectangle(p+g.x*e,a+g.y*e,b,f);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*e+this.minBounds.width*e+Math.max(0,this.x0*e-d.x)),d.height=Math.max(d.height,this.minBounds.y*e+this.minBounds.height*e+Math.max(0,this.y0*e-d.y)));
+mxVertexHandler.prototype.union=function(a,c,f,d,b,e,g,k,l){if(this.singleSizer)return d=a.x+a.width+c,g=a.y+a.height+f,b&&(d=this.graph.snap(d/e)*e,g=this.graph.snap(g/e)*e),e=new mxRectangle(a.x,a.y,0,0),e.add(new mxRectangle(d,g,0,0)),e;var n=a.width,m=a.height,p=a.x-g.x*e,r=p+n;a=a.y-g.y*e;var s=a+m,q=p+n/2,t=a+m/2;4<d?(s+=f,b&&(s=this.graph.snap(s/e)*e)):3>d&&(a+=f,b&&(a=this.graph.snap(a/e)*e));if(0==d||3==d||5==d)p+=c,b&&(p=this.graph.snap(p/e)*e);else if(2==d||4==d||7==d)r+=c,b&&(r=this.graph.snap(r/
+e)*e);b=r-p;f=s-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?b=f*k:f=b/k,0==d&&(p=r-b,a=s-f)));l&&(b+=b-n,f+=f-m,p+=q-(p+b/2),a+=t-(a+f/2));0>b&&(p+=b,b=Math.abs(b));0>f&&(a+=f,f=Math.abs(f));d=new mxRectangle(p+g.x*e,a+g.y*e,b,f);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*e+this.minBounds.width*e+Math.max(0,this.x0*e-d.x)),d.height=Math.max(d.height,this.minBounds.y*e+this.minBounds.height*e+Math.max(0,this.y0*e-d.y)));
return d};mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.redrawHandles();this.drawPreview()};
mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;if(null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]&&(this.bounds.width<2*this.sizers[0].bounds.width+2*c||this.bounds.height<2*this.sizers[0].bounds.height+2*c))c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c;return a};
mxVertexHandler.prototype.redrawHandles=function(){var a=this.tolerance;this.verticalOffset=this.horizontalOffset=0;var c=this.bounds;if(null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]){if(null==this.index&&this.manageSizers&&8<=this.sizers.length){var f=this.getHandlePadding();this.horizontalOffset=f.x;this.verticalOffset=f.y;if(0!=this.horizontalOffset||0!=this.verticalOffset)c=new mxRectangle(c.x,c.y,c.width,c.height),c.x-=this.horizontalOffset/2,c.width+=this.horizontalOffset,c.y-=
@@ -1863,7 +1863,7 @@ mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener
function mxDefaultKeyHandler(a){if(null!=a){this.editor=a;this.handler=new mxKeyHandler(a.graph);var c=this.handler.escape;this.handler.escape=function(f){c.apply(this,arguments);a.hideProperties();a.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",f))}}}mxDefaultKeyHandler.prototype.editor=null;mxDefaultKeyHandler.prototype.handler=null;
mxDefaultKeyHandler.prototype.bindAction=function(a,c,f){var d=mxUtils.bind(this,function(){this.editor.execute(c)});f?this.handler.bindControlKey(a,d):this.handler.bindKey(a,d)};mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy();this.handler=null};function mxDefaultPopupMenu(a){this.config=a}mxDefaultPopupMenu.prototype.imageBasePath=null;mxDefaultPopupMenu.prototype.config=null;
mxDefaultPopupMenu.prototype.createMenu=function(a,c,f,d){if(null!=this.config){var b=this.createConditions(a,f,d);this.addItems(a,c,f,d,b,this.config.firstChild,null)}};
-mxDefaultPopupMenu.prototype.addItems=function(a,c,f,d,b,e,g){for(var k=!1;null!=e;){if("add"==e.nodeName){var l=e.getAttribute("if");if(null==l||b[l]){var l=e.getAttribute("as"),l=mxResources.get(l)||l,n=mxUtils.eval(mxUtils.getTextContent(e)),m=e.getAttribute("action"),p=e.getAttribute("icon"),q=e.getAttribute("iconCls"),r=e.getAttribute("enabled-if"),r=null==r||b[r];k&&(c.addSeparator(g),k=!1);null!=p&&this.imageBasePath&&(p=this.imageBasePath+p);l=this.addAction(c,a,l,p,n,m,f,g,q,r);this.addItems(a,
+mxDefaultPopupMenu.prototype.addItems=function(a,c,f,d,b,e,g){for(var k=!1;null!=e;){if("add"==e.nodeName){var l=e.getAttribute("if");if(null==l||b[l]){var l=e.getAttribute("as"),l=mxResources.get(l)||l,n=mxUtils.eval(mxUtils.getTextContent(e)),m=e.getAttribute("action"),p=e.getAttribute("icon"),r=e.getAttribute("iconCls"),s=e.getAttribute("enabled-if"),s=null==s||b[s];k&&(c.addSeparator(g),k=!1);null!=p&&this.imageBasePath&&(p=this.imageBasePath+p);l=this.addAction(c,a,l,p,n,m,f,g,r,s);this.addItems(a,
c,f,d,b,e.firstChild,l)}}else"separator"==e.nodeName&&(k=!0);e=e.nextSibling}};mxDefaultPopupMenu.prototype.addAction=function(a,c,f,d,b,e,g,k,l,n){return a.addItem(f,d,function(a){"function"==typeof b&&b.call(c,c,g,a);null!=e&&c.execute(e,g,a)},k,l,n)};
mxDefaultPopupMenu.prototype.createConditions=function(a,c,f){var d=a.graph.getModel(),b=d.getChildCount(c),e=[];e.nocell=null==c;e.ncells=1<a.graph.getSelectionCount();e.notRoot=d.getRoot()!=d.getParent(a.graph.getDefaultParent());e.cell=null!=c;d=null!=c&&1==a.graph.getSelectionCount();e.nonEmpty=d&&0<b;e.expandable=d&&a.graph.isCellFoldable(c,!1);e.collapsable=d&&a.graph.isCellFoldable(c,!0);e.validRoot=d&&a.graph.isValidRoot(c);e.emptyValidRoot=e.validRoot&&0==b;e.swimlane=d&&a.graph.isSwimlane(c);
b=this.config.getElementsByTagName("condition");for(d=0;d<b.length;d++){var g=mxUtils.eval(mxUtils.getTextContent(b[d])),k=b[d].getAttribute("name");null!=k&&"function"==typeof g&&(e[k]=g(a,c,f))}return e};function mxDefaultToolbar(a,c){this.editor=c;null!=a&&null!=c&&this.init(a)}mxDefaultToolbar.prototype.editor=null;mxDefaultToolbar.prototype.toolbar=null;mxDefaultToolbar.prototype.resetHandler=null;mxDefaultToolbar.prototype.spacing=4;mxDefaultToolbar.prototype.connectOnDrop=!1;
@@ -1916,8 +1916,8 @@ mxEditor.prototype.postDiagram=function(a,c){this.escapePostData&&(c=encodeURICo
mxEditor.prototype.swapStyles=function(a,c){var f=this.graph.getStylesheet().styles[c];this.graph.getView().getStylesheet().putCellStyle(c,this.graph.getStylesheet().styles[a]);this.graph.getStylesheet().putCellStyle(a,f);this.graph.refresh()};
mxEditor.prototype.showProperties=function(a){a=a||this.graph.getSelectionCell();null==a&&(a=this.graph.getCurrentRoot(),null==a&&(a=this.graph.getModel().getRoot()));if(null!=a){this.graph.stopEditing(!0);var c=mxUtils.getOffset(this.graph.container),f=c.x+10,c=c.y;if(null!=this.properties&&!this.movePropertiesDialog)f=this.properties.getX(),c=this.properties.getY();else{var d=this.graph.getCellBounds(a);null!=d&&(f+=d.x+Math.min(200,d.width),c+=d.y)}this.hideProperties();a=this.createProperties(a);
null!=a&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,a,f,c,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}};mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties};
-mxEditor.prototype.createProperties=function(a){var c=this.graph.getModel(),f=c.getValue(a);if(mxUtils.isNode(f)){var d=new mxForm("properties");d.addText("ID",a.getId()).setAttribute("readonly","true");var b=null,e=null,g=null,k=null,l=null;c.isVertex(a)&&(b=c.getGeometry(a),null!=b&&(e=d.addText("top",b.y),g=d.addText("left",b.x),k=d.addText("width",b.width),l=d.addText("height",b.height)));for(var n=c.getStyle(a),m=d.addText("Style",n||""),p=f.attributes,q=[],f=0;f<p.length;f++)q[f]=d.addTextarea(p[f].nodeName,
-p[f].value,"label"==p[f].nodeName?4:2);f=mxUtils.bind(this,function(){this.hideProperties();c.beginUpdate();try{null!=b&&(b=b.clone(),b.x=parseFloat(g.value),b.y=parseFloat(e.value),b.width=parseFloat(k.value),b.height=parseFloat(l.value),c.setGeometry(a,b));0<m.value.length?c.setStyle(a,m.value):c.setStyle(a,null);for(var d=0;d<p.length;d++){var f=new mxCellAttributeChange(a,p[d].nodeName,q[d].value);c.execute(f)}this.graph.isAutoSizeCell(a)&&this.graph.updateCellSize(a)}finally{c.endUpdate()}});
+mxEditor.prototype.createProperties=function(a){var c=this.graph.getModel(),f=c.getValue(a);if(mxUtils.isNode(f)){var d=new mxForm("properties");d.addText("ID",a.getId()).setAttribute("readonly","true");var b=null,e=null,g=null,k=null,l=null;c.isVertex(a)&&(b=c.getGeometry(a),null!=b&&(e=d.addText("top",b.y),g=d.addText("left",b.x),k=d.addText("width",b.width),l=d.addText("height",b.height)));for(var n=c.getStyle(a),m=d.addText("Style",n||""),p=f.attributes,r=[],f=0;f<p.length;f++)r[f]=d.addTextarea(p[f].nodeName,
+p[f].value,"label"==p[f].nodeName?4:2);f=mxUtils.bind(this,function(){this.hideProperties();c.beginUpdate();try{null!=b&&(b=b.clone(),b.x=parseFloat(g.value),b.y=parseFloat(e.value),b.width=parseFloat(k.value),b.height=parseFloat(l.value),c.setGeometry(a,b));0<m.value.length?c.setStyle(a,m.value):c.setStyle(a,null);for(var d=0;d<p.length;d++){var f=new mxCellAttributeChange(a,p[d].nodeName,r[d].value);c.execute(f)}this.graph.isAutoSizeCell(a)&&this.graph.updateCellSize(a)}finally{c.endUpdate()}});
n=mxUtils.bind(this,function(){this.hideProperties()});d.addButtons(f,n);return d.table}return null};mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)};
mxEditor.prototype.showTasks=function(){if(null==this.tasks){var a=document.createElement("div");a.style.padding="4px";a.style.paddingLeft="20px";var c=document.body.clientWidth,c=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,a,c-220,this.tasksTop,200);c.setClosable(!0);c.destroyOnClose=!1;var f=mxUtils.bind(this,function(d){mxEvent.release(a);a.innerHTML="";this.createTasks(a)});this.graph.getModel().addListener(mxEvent.CHANGE,f);this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
f);this.graph.addListener(mxEvent.ROOT,f);null!=this.tasksWindowImage&&c.setImage(this.tasksWindowImage);this.tasks=c;this.createTasks(a)}this.tasks.setVisible(!0)};mxEditor.prototype.refreshTasks=function(a){null!=this.tasks&&(a=this.tasks.content,mxEvent.release(a),a.innerHTML="",this.createTasks(a))};mxEditor.prototype.createTasks=function(a){};
@@ -1969,10 +1969,10 @@ function(a,f){var d=typeof f;"function"==d?f=mxStyleRegistry.getName(style[j]):"
g={});for(e=f.firstChild;null!=e;){if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var k=e.getAttribute("as");if("add"==e.nodeName){var l=mxUtils.getTextContent(e),n=null;null!=l&&0<l.length&&mxStylesheetCodec.allowEval?n=mxUtils.eval(l):(n=e.getAttribute("value"),mxUtils.isNumeric(n)&&(n=parseFloat(n)));null!=n&&(g[k]=n)}else"remove"==e.nodeName&&delete g[k]}e=e.nextSibling}d.putCellStyle(b,g)}f=f.nextSibling}return d};return a}());mxStylesheetCodec.allowEval=!0;
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultKeyHandler);a.encode=function(a,f){return null};a.decode=function(a,f,d){if(null!=d)for(f=f.firstChild;null!=f;){if(!this.processInclude(a,f,d)&&"add"==f.nodeName){var b=f.getAttribute("as"),e=f.getAttribute("action"),g=f.getAttribute("control");d.bindAction(b,e,g)}f=f.nextSibling}return d};return a}());
var mxDefaultToolbarCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultToolbar);a.encode=function(a,f){return null};a.decode=function(a,f,d){if(null!=d){var b=d.editor;for(f=f.firstChild;null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(a,f,d))if("separator"==f.nodeName)d.addSeparator();else if("br"==f.nodeName)d.toolbar.addBreak();else if("hr"==f.nodeName)d.toolbar.addLine();else if("add"==f.nodeName){var e=f.getAttribute("as"),e=mxResources.get(e)||
-e,g=f.getAttribute("icon"),k=f.getAttribute("pressedIcon"),l=f.getAttribute("action"),n=f.getAttribute("mode"),m=f.getAttribute("template"),p="0"!=f.getAttribute("toggle"),q=mxUtils.getTextContent(f),r=null;if(null!=l)r=d.addItem(e,g,l,k);else if(null!=n)var s=mxDefaultToolbarCodec.allowEval?mxUtils.eval(q):null,r=d.addMode(e,g,n,k,s);else if(null!=m||null!=q&&0<q.length)r=b.templates[m],m=f.getAttribute("style"),null!=r&&null!=m&&(r=b.graph.cloneCells([r])[0],r.setStyle(m)),m=null,null!=q&&0<q.length&&
-mxDefaultToolbarCodec.allowEval&&(m=mxUtils.eval(q)),r=d.addPrototype(e,g,r,k,m,p);else if(k=mxUtils.getChildNodes(f),0<k.length)if(null==g){m=d.addActionCombo(e);for(e=0;e<k.length;e++)p=k[e],"separator"==p.nodeName?d.addOption(m,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),p=p.getAttribute("action"),d.addActionOption(m,g,p))}else{var t=null,u=d.addPrototype(e,g,function(){var a=b.templates[t.value];if(null!=a){var a=a.clone(),d=t.options[t.selectedIndex].cellStyle;null!=d&&a.setStyle(d);return a}mxLog.warn("Template "+
-a+" not found");return null},null,null,p),t=d.addCombo();mxEvent.addListener(t,"change",function(){d.toolbar.selectMode(u,function(a){a=mxUtils.convertPoint(b.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a));return b.addVertex(null,s(),a.x,a.y)});d.toolbar.noReset=!1});for(e=0;e<k.length;e++)p=k[e],"separator"==p.nodeName?d.addOption(t,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),q=p.getAttribute("template"),d.addOption(t,g,q||m).cellStyle=p.getAttribute("style"))}null!=r&&(m=f.getAttribute("id"),
-null!=m&&0<m.length&&r.setAttribute("id",m))}f=f.nextSibling}}return d};return a}());mxDefaultToolbarCodec.allowEval=!0;mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultPopupMenu);a.encode=function(a,f){return null};a.decode=function(a,f,d){var b=f.getElementsByTagName("include")[0];null!=b?this.processInclude(a,b,d):null!=d&&(d.config=f);return d};return a}());
+e,g=f.getAttribute("icon"),k=f.getAttribute("pressedIcon"),l=f.getAttribute("action"),n=f.getAttribute("mode"),m=f.getAttribute("template"),p="0"!=f.getAttribute("toggle"),r=mxUtils.getTextContent(f),s=null;if(null!=l)s=d.addItem(e,g,l,k);else if(null!=n)var q=mxDefaultToolbarCodec.allowEval?mxUtils.eval(r):null,s=d.addMode(e,g,n,k,q);else if(null!=m||null!=r&&0<r.length)s=b.templates[m],m=f.getAttribute("style"),null!=s&&null!=m&&(s=b.graph.cloneCells([s])[0],s.setStyle(m)),m=null,null!=r&&0<r.length&&
+mxDefaultToolbarCodec.allowEval&&(m=mxUtils.eval(r)),s=d.addPrototype(e,g,s,k,m,p);else if(k=mxUtils.getChildNodes(f),0<k.length)if(null==g){m=d.addActionCombo(e);for(e=0;e<k.length;e++)p=k[e],"separator"==p.nodeName?d.addOption(m,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),p=p.getAttribute("action"),d.addActionOption(m,g,p))}else{var t=null,u=d.addPrototype(e,g,function(){var a=b.templates[t.value];if(null!=a){var a=a.clone(),d=t.options[t.selectedIndex].cellStyle;null!=d&&a.setStyle(d);return a}mxLog.warn("Template "+
+a+" not found");return null},null,null,p),t=d.addCombo();mxEvent.addListener(t,"change",function(){d.toolbar.selectMode(u,function(a){a=mxUtils.convertPoint(b.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a));return b.addVertex(null,q(),a.x,a.y)});d.toolbar.noReset=!1});for(e=0;e<k.length;e++)p=k[e],"separator"==p.nodeName?d.addOption(t,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),r=p.getAttribute("template"),d.addOption(t,g,r||m).cellStyle=p.getAttribute("style"))}null!=s&&(m=f.getAttribute("id"),
+null!=m&&0<m.length&&s.setAttribute("id",m))}f=f.nextSibling}}return d};return a}());mxDefaultToolbarCodec.allowEval=!0;mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultPopupMenu);a.encode=function(a,f){return null};a.decode=function(a,f,d){var b=f.getElementsByTagName("include")[0];null!=b?this.processInclude(a,b,d):null!=d&&(d.config=f);return d};return a}());
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));a.afterDecode=function(a,f,d){a=f.getAttribute("defaultEdge");null!=a&&(f.removeAttribute("defaultEdge"),d.defaultEdge=d.templates[a]);a=f.getAttribute("defaultGroup");null!=a&&(f.removeAttribute("defaultGroup"),d.defaultGroup=d.templates[a]);return d};a.decodeChild=function(a,f,d){if("Array"==f.nodeName){if("templates"==f.getAttribute("as")){this.decodeTemplates(a,
f,d);return}}else if("ui"==f.nodeName){this.decodeUi(a,f,d);return}mxObjectCodec.prototype.decodeChild.apply(this,arguments)};a.decodeUi=function(a,f,d){for(a=f.firstChild;null!=a;){if("add"==a.nodeName){f=a.getAttribute("as");var b=a.getAttribute("element"),e=a.getAttribute("style"),g=null;if(null!=b)g=document.getElementById(b),null!=g&&null!=e&&(g.style.cssText+=";"+e);else{var b=parseInt(a.getAttribute("x")),k=parseInt(a.getAttribute("y")),l=a.getAttribute("width"),n=a.getAttribute("height"),
g=document.createElement("div");g.style.cssText=e;(new mxWindow(mxResources.get(f)||f,g,b,k,l,n,!1,!0)).setVisible(!0)}"graph"==f?d.setGraphContainer(g):"toolbar"==f?d.setToolbarContainer(g):"title"==f?d.setTitleContainer(g):"status"==f?d.setStatusContainer(g):"map"==f&&d.setMapContainer(g)}else"resource"==a.nodeName?mxResources.add(a.getAttribute("basename")):"stylesheet"==a.nodeName&&mxClient.link("stylesheet",a.getAttribute("name"));a=a.nextSibling}};a.decodeTemplates=function(a,f,d){null==d.templates&&
@@ -2018,12 +2018,12 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
"geDiagramContainer geDiagramBackdrop",d.style.backgroundImage="none",d.style.backgroundColor=""):(b.container.className="geDiagramContainer",d.style.backgroundPosition=c,d.style.backgroundColor=a,d.style.backgroundImage=e)};mxGraphView.prototype.createSvgGrid=function(b){for(var a=this.graph.gridSize*this.scale;a<this.minGridSize;)a*=2;for(var d=this.gridSteps*a,e=[],c=1;c<this.gridSteps;c++){var f=c*a;e.push("M 0 "+f+" L "+d+" "+f+" M "+f+" 0 L "+f+" "+d)}return'\x3csvg width\x3d"'+d+'" height\x3d"'+
d+'" xmlns\x3d"'+mxConstants.NS_SVG+'"\x3e\x3cdefs\x3e\x3cpattern id\x3d"grid" width\x3d"'+d+'" height\x3d"'+d+'" patternUnits\x3d"userSpaceOnUse"\x3e\x3cpath d\x3d"'+e.join(" ")+'" fill\x3d"none" stroke\x3d"'+b+'" opacity\x3d"0.2" stroke-width\x3d"1"/\x3e\x3cpath d\x3d"M '+d+" 0 L 0 0 0 "+d+'" fill\x3d"none" stroke\x3d"'+b+'" stroke-width\x3d"1"/\x3e\x3c/pattern\x3e\x3c/defs\x3e\x3crect width\x3d"100%" height\x3d"100%" fill\x3d"url(#grid)"/\x3e\x3c/svg\x3e'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=
function(b,d){a.apply(this,arguments);if(null!=this.shiftPreview1){var e=this.view.canvas;null!=e.ownerSVGElement&&(e=e.ownerSVGElement);var c=this.gridSize*this.view.scale*this.view.gridSteps,c=-Math.round(c-mxUtils.mod(this.view.translate.x*this.view.scale+b,c))+"px "+-Math.round(c-mxUtils.mod(this.view.translate.y*this.view.scale+d,c))+"px";e.style.backgroundPosition=c}};mxGraph.prototype.updatePageBreaks=function(b,a,d){var e=this.view.scale,c=this.view.translate,f=this.pageFormat,g=e*this.pageScale,
-s=this.view.getBackgroundPageBounds();a=s.width;d=s.height;var t=new mxRectangle(e*c.x,e*c.y,f.width*g,f.height*g),u=(b=b&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(d/t.height)-1:0,v=b?Math.ceil(a/t.width)-1:0,A=s.x+a,y=s.y+d;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var a=b==this.horizontalPageBreaks?u:v,d=0;d<=a;d++){var e=b==this.horizontalPageBreaks?
-[new mxPoint(Math.round(s.x),Math.round(s.y+(d+1)*t.height)),new mxPoint(Math.round(A),Math.round(s.y+(d+1)*t.height))]:[new mxPoint(Math.round(s.x+(d+1)*t.width),Math.round(s.y)),new mxPoint(Math.round(s.x+(d+1)*t.width),Math.round(y))];null!=b[d]?(b[d].points=e,b[d].redraw()):(e=new mxPolyline(e,this.pageBreakColor),e.dialect=this.dialect,e.isDashed=this.pageBreakDashed,e.pointerEvents=!1,e.init(this.view.backgroundPane),e.redraw(),b[d]=e)}for(d=a;d<b.length;d++)b[d].destroy();b.splice(a,b.length-
+q=this.view.getBackgroundPageBounds();a=q.width;d=q.height;var t=new mxRectangle(e*c.x,e*c.y,f.width*g,f.height*g),u=(b=b&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(d/t.height)-1:0,v=b?Math.ceil(a/t.width)-1:0,z=q.x+a,y=q.y+d;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var a=b==this.horizontalPageBreaks?u:v,d=0;d<=a;d++){var e=b==this.horizontalPageBreaks?
+[new mxPoint(Math.round(q.x),Math.round(q.y+(d+1)*t.height)),new mxPoint(Math.round(z),Math.round(q.y+(d+1)*t.height))]:[new mxPoint(Math.round(q.x+(d+1)*t.width),Math.round(q.y)),new mxPoint(Math.round(q.x+(d+1)*t.width),Math.round(y))];null!=b[d]?(b[d].points=e,b[d].redraw()):(e=new mxPolyline(e,this.pageBreakColor),e.dialect=this.dialect,e.isDashed=this.pageBreakDashed,e.pointerEvents=!1,e.init(this.view.backgroundPane),e.redraw(),b[d]=e)}for(d=a;d<b.length;d++)b[d].destroy();b.splice(a,b.length-
a)}});b(this.horizontalPageBreaks);b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,a,d){for(var e=0;e<a.length;e++)if(this.graph.getModel().isVertex(a[e])){var f=this.graph.getCellGeometry(a[e]);if(null!=f&&f.relative)return!1}return c.apply(this,arguments)};var f=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=f.apply(this,arguments);b.intersects=
mxUtils.bind(this,function(a,d){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff","#cacaca")};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),a=0<b.width?b.x/this.scale-this.translate.x:0,d=0<b.height?b.y/this.scale-this.translate.y:0,e=b.width/this.scale,c=b.height/this.scale,f=this.graph.pageFormat,g=this.graph.pageScale,
-b=f.width*g,f=f.height*g,g=Math.floor(Math.min(0,a)/b),s=Math.floor(Math.min(0,d)/f),a=Math.ceil(Math.max(1,a+e)/b),d=Math.ceil(Math.max(1,d+c)/f);return new mxRectangle(this.scale*(this.translate.x+g*b),this.scale*(this.translate.y+s*f),this.scale*(a-g)*b,this.scale*(d-s)*f)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,a){d.apply(this,arguments);if(this.dialect!=mxConstants.DIALECT_SVG&&null!=this.view.backgroundPageShape&&(!this.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.container)))this.view.backgroundPageShape.node.style.marginLeft=
-b+"px",this.view.backgroundPageShape.node.style.marginTop=a+"px"};var b=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,d,e,c,f,g){var r=b.apply(this,arguments);null!=g&&!g&&mxEvent.addListener(r,"mousedown",function(b){mxEvent.consume(b)});return r};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(b){var a=this.graph.getModel(),d=a.getParent(this.graph.getSelectionCell()),c=e.apply(this,arguments),f=a.getParent(c);
+b=f.width*g,f=f.height*g,g=Math.floor(Math.min(0,a)/b),q=Math.floor(Math.min(0,d)/f),a=Math.ceil(Math.max(1,a+e)/b),d=Math.ceil(Math.max(1,d+c)/f);return new mxRectangle(this.scale*(this.translate.x+g*b),this.scale*(this.translate.y+q*f),this.scale*(a-g)*b,this.scale*(d-q)*f)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,a){d.apply(this,arguments);if(this.dialect!=mxConstants.DIALECT_SVG&&null!=this.view.backgroundPageShape&&(!this.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.container)))this.view.backgroundPageShape.node.style.marginLeft=
+b+"px",this.view.backgroundPageShape.node.style.marginTop=a+"px"};var b=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,d,e,c,f,g){var s=b.apply(this,arguments);null!=g&&!g&&mxEvent.addListener(s,"mousedown",function(b){mxEvent.consume(b)});return s};var e=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(b){var a=this.graph.getModel(),d=a.getParent(this.graph.getSelectionCell()),c=e.apply(this,arguments),f=a.getParent(c);
if(null==d||d!=c&&d!=f)for(;!this.graph.isCellSelected(c)&&!this.graph.isCellSelected(f)&&a.isVertex(f)&&!this.graph.isContainer(f);)c=f,f=this.graph.getModel().getParent(c);return c};var g=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(b,a){var d=g.apply(this,arguments);if(!d)for(var e=this.graph.getModel(),c=e.getParent(b);null!=c;){if(this.graph.isCellSelected(c)&&e.isVertex(c)){d=!0;break}c=e.getParent(c)}return d};mxGraphHandler.prototype.selectDelayed=
function(b){if(!this.graph.popupMenuHandler.isPopupTrigger(b)){var a=b.getCell();null==a&&(a=this.cell);var d=this.graph.view.getState(a);if(!(null!=d&&b.isSource(d.control)))for(var d=this.graph.getModel(),e=d.getParent(a);!this.graph.isCellSelected(e)&&d.isVertex(e);)a=e,e=d.getParent(a);this.graph.selectCellForEvent(a,b.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(b){b=b.getCell();for(var a=this.graph.getModel(),d=a.getParent(b);a.isVertex(d)&&!this.graph.isContainer(d);)this.graph.isCellSelected(d)&&
(b=d),d=a.getParent(d);return b}})();
@@ -2034,16 +2034,16 @@ c,this.toolbarContainer.onmousedown=c,this.diagramContainer.onselectstart=c,this
d.parentNode}})};this.hoverIcons=this.createHoverIcons();mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var a=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-a.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-a.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var b=!1,e=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=
function(a,d){return b||e.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32==a.which?(b=!0,this.hoverIcons.reset(),d.container.style.cursor="move",!d.isEditing()&&mxEvent.getSource(a)==d.container&&mxEvent.consume(a)):!mxEvent.isConsumed(a)&&27==a.keyCode&&this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";b=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);
var g=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return g.apply(this,arguments)||b||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var k=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(b){return k.apply(this,arguments)||13==b.keyCode&&(mxEvent.isControlDown(b)||
-mxClient.IS_MAC&&mxEvent.isMetaDown(b))};var l=!1,n=null,m=null,p=null,q=mxUtils.bind(this,function(){if(l!=d.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,a=[];null!=b;){var e=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),a.push(b));b=e}b=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var c=0;c<p.length;c++)this.toolbar.container.appendChild(p[c]);this.toolbar.fontMenu=
-n;this.toolbar.sizeMenu=m}l=d.cellEditor.isContentEditing();n=b;m=e;p=a}}),r=this,s=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){s.apply(this,arguments);q();if(d.cellEditor.isContentEditing()){var b=!1,a=function(){b||(b=!0,window.setTimeout(function(){for(var a=d.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a&&(a=mxUtils.getCurrentStyle(a),null!=a&&null!=r.toolbar)){var e=a.fontFamily;"'"==e.charAt(0)&&(e=e.substring(1));"'"==e.charAt(e.length-
-1)&&(e=e.substring(0,e.length-1));r.toolbar.setFontName(e);r.toolbar.setFontSize(parseInt(a.fontSize))}b=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",a);mxEvent.addListener(d.cellEditor.textarea,"touchend",a);mxEvent.addListener(d.cellEditor.textarea,"mouseup",a);mxEvent.addListener(d.cellEditor.textarea,"keyup",a);a()}};var t=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(b,a){t.apply(this,arguments);q()};d.container.setAttribute("tabindex","0");d.container.style.cursor=
+mxClient.IS_MAC&&mxEvent.isMetaDown(b))};var l=!1,n=null,m=null,p=null,r=mxUtils.bind(this,function(){if(l!=d.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,a=[];null!=b;){var e=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),a.push(b));b=e}b=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var c=0;c<p.length;c++)this.toolbar.container.appendChild(p[c]);this.toolbar.fontMenu=
+n;this.toolbar.sizeMenu=m}l=d.cellEditor.isContentEditing();n=b;m=e;p=a}}),s=this,q=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){q.apply(this,arguments);r();if(d.cellEditor.isContentEditing()){var b=!1,a=function(){b||(b=!0,window.setTimeout(function(){for(var a=d.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a&&(a=mxUtils.getCurrentStyle(a),null!=a&&null!=s.toolbar)){var e=a.fontFamily;"'"==e.charAt(0)&&(e=e.substring(1));"'"==e.charAt(e.length-
+1)&&(e=e.substring(0,e.length-1));s.toolbar.setFontName(e);s.toolbar.setFontSize(parseInt(a.fontSize))}b=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",a);mxEvent.addListener(d.cellEditor.textarea,"touchend",a);mxEvent.addListener(d.cellEditor.textarea,"mouseup",a);mxEvent.addListener(d.cellEditor.textarea,"keyup",a);a()}};var t=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(b,a){t.apply(this,arguments);r()};d.container.setAttribute("tabindex","0");d.container.style.cursor=
"default";window.self===window.top&&null!=d.container.parentNode&&d.container.focus();var u=d.fireMouseEvent;d.fireMouseEvent=function(b,a,d){b==mxEvent.MOUSE_DOWN&&this.container.focus();u.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,a,d){this.menus.createPopupMenu(b,a,d)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var v="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),A="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(b){var a=d.view.getState(b);if(null!=a){b=b.clone();b.style="";b=d.getCellStyle(b);var e=[],c=[],f;for(f in a.style)b[f]!=a.style[f]&&(e.push(a.style[f]),c.push(f));f=d.getModel().getStyle(a.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],n=l.indexOf("\x3d");
+this.getKeyHandler=function(){return keyHandler};var v="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(b){var a=d.view.getState(b);if(null!=a){b=b.clone();b.style="";b=d.getCellStyle(b);var e=[],c=[],f;for(f in a.style)b[f]!=a.style[f]&&(e.push(a.style[f]),c.push(f));f=d.getModel().getStyle(a.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],n=l.indexOf("\x3d");
0<=n&&(f=l.substring(0,n),l=l.substring(n+1),null!=b[f]&&"none"==l&&(e.push(l),c.push(f)))}d.getModel().isEdge(a.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",e,"cells",[a.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=d.defaultEdgeStyle;d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var y=["fontFamily","fontSize","fontColor"],x="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),
-D=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],y,["align"],["html"]];for(a=0;a<D.length;a++)for(c=0;c<D[a].length;c++)v.push(D[a][c]);for(a=0;a<A.length;a++)v.push(A[a]);var z=function(b,a){d.getModel().beginUpdate();try{if(a)for(var e=d.getModel().isEdge(k),c=e?d.currentEdgeStyle:d.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],f=0;f<e.length;f++){var g=c[e[f]];null!=g&&d.setCellStyles(e[f],
-g,b)}else for(g=0;g<b.length;g++){for(var k=b[g],l=d.getModel().getStyle(k),n=null!=l?l.split(";"):[],m=v.slice(),f=0;f<n.length;f++){var u=n[f],t=u.indexOf("\x3d");if(0<=t){var s=u.substring(0,t),r=mxUtils.indexOf(m,s);0<=r&&m.splice(r,1);for(var q=0;q<D.length;q++){var p=D[q];if(0<=mxUtils.indexOf(p,s))for(var y=0;y<p.length;y++){var x=mxUtils.indexOf(m,p[y]);0<=x&&m.splice(x,1)}}}}c=(e=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<m.length;f++){var s=m[f],z=c[s];if(null!=
-z&&("shape"!=s||e))(!e||0>mxUtils.indexOf(A,s))&&d.setCellStyles(s,z,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(b,a){z(a.getProperty("cells"))});d.addListener("textInserted",function(b,a){z(a.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(b,a){var d=[a.getProperty("cell")];a.getProperty("terminalInserted")&&d.push(a.getProperty("terminal"));z(d)});this.addListener("styleChanged",mxUtils.bind(this,function(b,a){var e=a.getProperty("cells"),
-c=!1,f=!1;if(0<e.length)for(var g=0;g<e.length&&!(c=d.getModel().isVertex(e[g])||c,(f=d.getModel().isEdge(e[g])||f)&&c);g++);else f=c=!0;for(var e=a.getProperty("keys"),k=a.getProperty("values"),g=0;g<e.length;g++){var l=0<=mxUtils.indexOf(y,e[g]);if("strokeColor"!=e[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(A,e[g]))f||0<=mxUtils.indexOf(x,e[g])?null==k[g]?delete d.currentEdgeStyle[e[g]]:d.currentEdgeStyle[e[g]]=k[g]:c&&0<=mxUtils.indexOf(v,e[g])&&(null==k[g]?delete d.currentVertexStyle[e[g]]:
+D=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],y,["align"],["html"]];for(a=0;a<D.length;a++)for(c=0;c<D[a].length;c++)v.push(D[a][c]);for(a=0;a<z.length;a++)v.push(z[a]);var A=function(b,a){d.getModel().beginUpdate();try{if(a)for(var e=d.getModel().isEdge(k),c=e?d.currentEdgeStyle:d.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],f=0;f<e.length;f++){var g=c[e[f]];null!=g&&d.setCellStyles(e[f],
+g,b)}else for(g=0;g<b.length;g++){for(var k=b[g],l=d.getModel().getStyle(k),n=null!=l?l.split(";"):[],m=v.slice(),f=0;f<n.length;f++){var p=n[f],t=p.indexOf("\x3d");if(0<=t){var u=p.substring(0,t),q=mxUtils.indexOf(m,u);0<=q&&m.splice(q,1);for(var r=0;r<D.length;r++){var s=D[r];if(0<=mxUtils.indexOf(s,u))for(var x=0;x<s.length;x++){var y=mxUtils.indexOf(m,s[x]);0<=y&&m.splice(y,1)}}}}c=(e=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<m.length;f++){var u=m[f],A=c[u];if(null!=
+A&&("shape"!=u||e))(!e||0>mxUtils.indexOf(z,u))&&d.setCellStyles(u,A,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(b,a){A(a.getProperty("cells"))});d.addListener("textInserted",function(b,a){A(a.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(b,a){var d=[a.getProperty("cell")];a.getProperty("terminalInserted")&&d.push(a.getProperty("terminal"));A(d)});this.addListener("styleChanged",mxUtils.bind(this,function(b,a){var e=a.getProperty("cells"),
+c=!1,f=!1;if(0<e.length)for(var g=0;g<e.length&&!(c=d.getModel().isVertex(e[g])||c,(f=d.getModel().isEdge(e[g])||f)&&c);g++);else f=c=!0;for(var e=a.getProperty("keys"),k=a.getProperty("values"),g=0;g<e.length;g++){var l=0<=mxUtils.indexOf(y,e[g]);if("strokeColor"!=e[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(z,e[g]))f||0<=mxUtils.indexOf(x,e[g])?null==k[g]?delete d.currentEdgeStyle[e[g]]:d.currentEdgeStyle[e[g]]=k[g]:c&&0<=mxUtils.indexOf(v,e[g])&&(null==k[g]?delete d.currentVertexStyle[e[g]]:
d.currentVertexStyle[e[g]]=k[g]);else if(0<=mxUtils.indexOf(v,e[g])){if(c||l)null==k[g]?delete d.currentVertexStyle[e[g]]:d.currentVertexStyle[e[g]]=k[g];if(f||l||0<=mxUtils.indexOf(x,e[g]))null==k[g]?delete d.currentEdgeStyle[e[g]]:d.currentEdgeStyle[e[g]]=k[g]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
"orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
@@ -2072,15 +2072,15 @@ f);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",
function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor.previousLargeImage,mxResources.get("previousPage")||"Previous Page"),g=document.createElement("div");g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontFamily="Helvetica,Arial";g.style.marginTop="8px";g.style.color="#ffffff";this.chromelessToolbar.appendChild(g);var k=d(mxUtils.bind(this,function(b){this.actions.get("nextPage").funct();mxEvent.consume(b)}),Editor.nextLargeImage,mxResources.get("nextPage")||
"Next Page"),l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(g.innerHTML="",mxUtils.write(g,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});e.style.paddingLeft="0px";e.style.paddingRight="4px";k.style.paddingLeft="4px";k.style.paddingRight="0px";var n=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(k.style.display="",e.style.display="",g.style.display="inline-block"):(k.style.display=
"none",e.style.display="none",g.style.display="none");l()});this.editor.addListener("resetGraphView",n);this.editor.addListener("pageSelected",l);d(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutLargeImage,(mxResources.get("zoomOut")||"Zoom Out")+" (Alt+Mousewheel)");d(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInLargeImage,(mxResources.get("zoomIn")||"Zoom In")+" (Alt+Mousewheel)");d(mxUtils.bind(this,
-function(b){a.lightbox?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),c(!1)):c(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,mxResources.get("fit")||"Fit");var m=null,p=null,q=mxUtils.bind(this,function(b){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);m=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);m=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";
-p=null}),600)}),b||200)}),r=mxUtils.bind(this,function(b){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var s=d(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
-"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var d=s.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
-mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=d.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=d.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")||"Layers"),t=a.getModel();t.addListener(mxEvent.CHANGE,function(){s.style.display=1<t.getChildCount(t.root)?
+function(b){a.lightbox?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),c(!1)):c(!0);mxEvent.consume(b)}),Editor.actualSizeLargeImage,mxResources.get("fit")||"Fit");var m=null,p=null,r=mxUtils.bind(this,function(b){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);m=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);m=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";
+p=null}),600)}),b||200)}),s=mxUtils.bind(this,function(b){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var q=d(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
+"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var d=q.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
+mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=d.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=d.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")||"Layers"),t=a.getModel();t.addListener(mxEvent.CHANGE,function(){q.style.display=1<t.getChildCount(t.root)?
"":"none"})}null!=this.editor.editButtonLink&&d(mxUtils.bind(this,function(b){"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml(),null,!0):window.open(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("openInNewWindow")||"Open in New Window");a.lightbox&&this.container!=document.body&&d(mxUtils.bind(this,function(b){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeLargeImage,(mxResources.get("close")||
-"Close")+" (Escape)");this.chromelessToolbar.style.display="none";a.container.appendChild(this.chromelessToolbar);this.chromelessToolbar.style.marginLeft=-(24*b+10)+"px";this.addChromelessClickHandler();mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||r(30),q())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,
-"mouseenter",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?q():r(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?q():r(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||r(30)}));var u=a.getTolerance(),v=this;a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();
-this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(b,a){},mouseUp:function(b,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<u&&Math.abs(this.scrollTop-a.container.scrollTop)<u&&Math.abs(this.startX-d.getGraphX())<u&&Math.abs(this.startY-d.getGraphY())<u&&(0<parseFloat(v.chromelessToolbar.style.opacity||0)?q():r(30))}})}else if(this.editor.extendCanvas){var A=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&
-mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),a=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*a.width;this.translate.y=b.y-(this.y0||0)*a.height}A.apply(this,arguments)};var y=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),d=this.getPagePadding(),e=this.getPageSize(),c=Math.ceil(2*d.x+b.width*e.width),f=Math.ceil(2*d.y+b.height*e.height),g=a.minimumGraphSize;if(null==
+"Close")+" (Escape)");this.chromelessToolbar.style.display="none";a.container.appendChild(this.chromelessToolbar);this.chromelessToolbar.style.marginLeft=-(24*b+10)+"px";this.addChromelessClickHandler();mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||s(30),r())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,
+"mouseenter",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?r():s(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?r():s(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||s(30)}));var u=a.getTolerance(),v=this;a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();
+this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(b,a){},mouseUp:function(b,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<u&&Math.abs(this.scrollTop-a.container.scrollTop)<u&&Math.abs(this.startX-d.getGraphX())<u&&Math.abs(this.startY-d.getGraphY())<u&&(0<parseFloat(v.chromelessToolbar.style.opacity||0)?r():s(30))}})}else if(this.editor.extendCanvas){var z=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&
+mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),a=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*a.width;this.translate.y=b.y-(this.y0||0)*a.height}z.apply(this,arguments)};var y=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),d=this.getPagePadding(),e=this.getPageSize(),c=Math.ceil(2*d.x+b.width*e.width),f=Math.ceil(2*d.y+b.height*e.height),g=a.minimumGraphSize;if(null==
g||g.width!=c||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,c,f);c=d.x-b.x*e.width;d=d.y-b.y*e.height;!this.autoTranslate&&(this.view.translate.x!=c||this.view.translate.y!=d)?(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,e=a.view.translate.y,a.view.setTranslate(c,d),a.container.scrollLeft+=Math.round((c-b)*a.view.scale),a.container.scrollTop+=Math.round((d-e)*a.view.scale),this.autoTranslate=!1):y.apply(this,arguments)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=
1;var x=null;a.lazyZoom=function(b){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);b?0.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+0.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale):0.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale-0.01)/this.view.scale:(this.cumulativeZoomFactor/=
this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(0.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){this.zoom(this.cumulativeZoomFactor);null!=c&&c(!1);if(null!=x&&mxUtils.hasScrollbars(a.container)){var b=mxUtils.getOffset(a.container),d=a.container.offsetHeight/2-x.y+b.y;a.container.scrollLeft-=(a.container.offsetWidth/
@@ -2106,7 +2106,7 @@ EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),c=this.actions.get("redo"),f=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());c.setEnabled(this.canRedo())});f.addListener(mxEvent.ADD,d);f.addListener(mxEvent.UNDO,d);f.addListener(mxEvent.REDO,d);f.addListener(mxEvent.CLEAR,d);var b=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){b.apply(this,arguments);d()};var e=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(b,a){e.apply(this,arguments);d()};d()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),f=!1,d=!1,b=a.getSelectionCells();if(null!=b)for(var e=0;e<b.length;e++){var g=b[e];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(f=!0);if(d&&f)break}b="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),f=!1,d=!1,b=a.getSelectionCells();if(null!=b)for(var e=0;e<b.length;e++){var g=b[e];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(f=!0);if(d&&f)break}b="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
0;e<b.length;e++)this.actions.get(b[e]).setEnabled(c);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("clearWaypoints").setEnabled(d);this.actions.get("rotation").setEnabled(f);this.actions.get("wordWrap").setEnabled(f);this.actions.get("autosize").setEnabled(f);this.actions.get("collapsible").setEnabled(f);d=f&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<
a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(c||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(f&&1==a.getSelectionCount()&&
(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));c=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(c);this.actions.get("collapse").setEnabled(c);this.actions.get("editLink").setEnabled(1==
@@ -2175,14 +2175,14 @@ n+"px";var l=-Math.round(g.x-this.tooltipBorder),g=-Math.round(g.y-this.tooltipB
(this.graph2.view.drawPane.style.left=l+"px",this.graph2.view.drawPane.style.top=g+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=p+"px";this.tooltip.style.top=m+"px";this.tooltipImage.style.left=p-13+"px";this.tooltipImage.style.top=m+n/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?g():this.thread=window.setTimeout(g,this.tooltipDelay);this.currentElt=a}};
Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)};
Sidebar.prototype.addEntry=function(a,c){if(null!=this.taglist&&null!=a&&0<a.length)for(var f=a.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),d=0;d<f.length;d++)if(f[d]=f[d].replace(/\.*\d*$/,""),1<f[d].length){var b=this.taglist[f[d]];null==b&&(b={entries:[],dict:new mxDictionary},this.taglist[f[d]]=b);null==b.dict.get(c)&&(b.dict.put(c,c),b.entries.push(c))}return c};
-Sidebar.prototype.searchEntries=function(a,c,f,d,b){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");b=new mxDictionary;var g=(f+1)*c;a=[];for(var k=0,l=0;l<e.length;l++)if(0<e[l].length){var n=this.taglist[e[l]],m=new mxDictionary;if(null!=n){var p=n.entries;a=[];for(var q=0;q<p.length;q++)if(n=p[q],0==k==(null==b.get(n))&&(m.put(n,n),a.push(n),l==e.length-1&&a.length==g)){d(a.slice(f*c,g),g,!0,e);return}}else a=[];b=m;k++}b=a.length;d(a.slice(f*c,(f+1)*c),b,!1,e)}else d([],null,
+Sidebar.prototype.searchEntries=function(a,c,f,d,b){if(null!=this.taglist&&null!=a){var e=a.toLowerCase().split(" ");b=new mxDictionary;var g=(f+1)*c;a=[];for(var k=0,l=0;l<e.length;l++)if(0<e[l].length){var n=this.taglist[e[l]],m=new mxDictionary;if(null!=n){var p=n.entries;a=[];for(var r=0;r<p.length;r++)if(n=p[r],0==k==(null==b.get(n))&&(m.put(n,n),a.push(n),l==e.length-1&&a.length==g)){d(a.slice(f*c,g),g,!0,e);return}}else a=[];b=m;k++}b=a.length;d(a.slice(f*c,(f+1)*c),b,!1,e)}else d([],null,
null,e)};Sidebar.prototype.filterTags=function(a){if(null!=a){a=a.split(" ");for(var c=[],f={},d=0;d<a.length;d++)null==f[a[d]]&&(f[a[d]]="1",c.push(a[d]));return c.join(" ")}return null};Sidebar.prototype.cloneCell=function(a,c){var f=a.clone();null!=c&&(f.value=c);return f};
Sidebar.prototype.addSearchPalette=function(a){var c=document.createElement("div");c.style.visibility="hidden";this.container.appendChild(c);var f=document.createElement("div");f.className="geSidebar";f.style.boxSizing="border-box";f.style.overflow="hidden";f.style.width="100%";f.style.padding="8px";f.style.paddingTop="14px";f.style.paddingBottom="0px";a||(f.style.display="none");var d=document.createElement("div");d.style.whiteSpace="nowrap";d.style.textOverflow="clip";d.style.paddingBottom="8px";
d.style.cursor="default";var b=document.createElement("input");b.setAttribute("placeholder",mxResources.get("searchShapes"));b.setAttribute("type","text");b.style.fontSize="12px";b.style.overflow="hidden";b.style.boxSizing="border-box";b.style.border="solid 1px #d5d5d5";b.style.borderRadius="4px";b.style.width="100%";b.style.outline="none";b.style.padding="6px";d.appendChild(b);var e=document.createElement("img");e.setAttribute("src",Sidebar.prototype.searchImage);e.setAttribute("title",mxResources.get("search"));
e.style.position="relative";e.style.left="-18px";mxClient.IS_QUIRKS?(b.style.height="28px",e.style.top="-4px"):e.style.top="1px";e.style.background="url('"+this.editorUi.editor.transparentImage+"')";var g;d.appendChild(e);f.appendChild(d);var k=document.createElement("center"),l=mxUtils.button(mxResources.get("moreResults"),function(){g()});l.style.display="none";l.style.lineHeight="normal";l.style.marginTop="4px";l.style.marginBottom="8px";k.style.paddingTop="4px";k.style.paddingBottom="8px";k.appendChild(l);
-f.appendChild(k);var n="",m=!1,p=!1,q=0,r={},s=12,t=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var b=f.firstChild;null!=b;){var a=b.nextSibling;b!=d&&b!=k&&b.parentNode.removeChild(b);b=a}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),l.style.display="none",n=b.value="",t());b.focus()});g=mxUtils.bind(this,function(){s=4*Math.max(1,
-Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=b.value){if(null!=k.parentNode&&(n!=b.value&&(t(),n=b.value,r={},p=!1,q=0),!m&&!p)){l.setAttribute("disabled","true");l.style.display="";l.style.cursor="wait";l.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(n,s,q,mxUtils.bind(this,function(b,d,e,c){if(this.currentSearch==a){b=null!=b?b:[];m=!1;q++;k.parentNode.removeChild(k);this.insertSearchHint(f,n,s,q,b,d,e,
-c);for(d=0;d<b.length;d++)c=b[d](),null==r[c.innerHTML]&&(r[c.innerHTML]="1",f.appendChild(b[d]()));e?(l.removeAttribute("disabled"),l.innerHTML=mxResources.get("moreResults")):(l.innerHTML=mxResources.get("reset"),l.style.display="none",p=!0);l.style.cursor="";f.appendChild(k)}}),mxUtils.bind(this,function(){l.style.cursor=""}))}}else t(),n=b.value="",r={},l.style.display="none",p=!1,b.focus()});mxEvent.addListener(b,"keydown",mxUtils.bind(this,function(b){13==b.keyCode&&g()}));mxEvent.addListener(b,
+f.appendChild(k);var n="",m=!1,p=!1,r=0,s={},q=12,t=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var b=f.firstChild;null!=b;){var a=b.nextSibling;b!=d&&b!=k&&b.parentNode.removeChild(b);b=a}});mxEvent.addListener(e,"click",function(){e.getAttribute("src")==Dialog.prototype.closeImage&&(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search")),l.style.display="none",n=b.value="",t());b.focus()});g=mxUtils.bind(this,function(){q=4*Math.max(1,
+Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=b.value){if(null!=k.parentNode&&(n!=b.value&&(t(),n=b.value,s={},p=!1,r=0),!m&&!p)){l.setAttribute("disabled","true");l.style.display="";l.style.cursor="wait";l.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(n,q,r,mxUtils.bind(this,function(b,d,e,c){if(this.currentSearch==a){b=null!=b?b:[];m=!1;r++;k.parentNode.removeChild(k);this.insertSearchHint(f,n,q,r,b,d,e,
+c);for(d=0;d<b.length;d++)c=b[d](),null==s[c.innerHTML]&&(s[c.innerHTML]="1",f.appendChild(b[d]()));e?(l.removeAttribute("disabled"),l.innerHTML=mxResources.get("moreResults")):(l.innerHTML=mxResources.get("reset"),l.style.display="none",p=!0);l.style.cursor="";f.appendChild(k)}}),mxUtils.bind(this,function(){l.style.cursor=""}))}}else t(),n=b.value="",s={},l.style.display="none",p=!1,b.focus()});mxEvent.addListener(b,"keydown",mxUtils.bind(this,function(b){13==b.keyCode&&g()}));mxEvent.addListener(b,
"focus",function(){b.style.paddingRight=""});mxEvent.addListener(b,"blur",function(){b.style.paddingRight="20px"});b.style.paddingRight="20px";mxEvent.addListener(b,"keyup",mxUtils.bind(this,function(a){""==b.value?(e.setAttribute("src",Sidebar.prototype.searchImage),e.setAttribute("title",mxResources.get("search"))):(e.setAttribute("src",Dialog.prototype.closeImage),e.setAttribute("title",mxResources.get("reset")));""==b.value?(p=!0,l.style.display="none"):b.value!=n?(l.style.display="none",p=!1):
m||(l.style.display=p?"none":"")}));mxEvent.addListener(b,"mousedown",function(b){b.stopPropagation&&b.stopPropagation();b.cancelBubble=!0});mxEvent.addListener(b,"selectstart",function(b){b.stopPropagation&&b.stopPropagation();b.cancelBubble=!0});a=document.createElement("div");a.appendChild(f);this.container.appendChild(a);this.palettes.search=[c,a]};
Sidebar.prototype.insertSearchHint=function(a,c,f,d,b,e,g,k){0==b.length&&1==d&&(f=document.createElement("div"),f.className="geTitle",f.style.cssText="background-color:transparent;border-color:transparent;color:gray;padding:6px 0px 0px 0px !important;margin:4px 8px 4px 8px;text-align:center;cursor:default !important",mxUtils.write(f,mxResources.get("noResultsFor",[c])),a.appendChild(f))};
@@ -2291,41 +2291,41 @@ Sidebar.prototype.createItem=function(a,c,f,d,b,e,g){var k=document.createElemen
0,b,e);1<a.length||a[0].vertex?(d=this.createDragSource(k,this.createDropHandler(a,!0,g,n),this.createDragPreview(b,e),a,n),this.addClickHandler(k,d,a),d.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(d=this.createDragSource(k,this.createDropHandler(a,!1,g,n),this.createDragPreview(b,e),a,n),this.addClickHandler(k,d,a));mxClient.IS_IOS||mxEvent.addGestureListeners(k,null,mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&
this.showTooltip(k,a,n.width,n.height,c,f)}));return k};
Sidebar.prototype.updateShapes=function(a,c){var f=this.editorUi.editor.graph,d=f.getCellStyle(a),b=[];f.model.beginUpdate();try{for(var e=f.getModel().getStyle(a),g="shadow dashed dashPattern fontFamily fontSize fontColor align startFill startSize endFill endSize strokeColor strokeWidth fillColor gradientColor html part noEdgeStyle edgeStyle elbow childLayout".split(" "),k=0;k<c.length;k++){var l=c[k];if(f.getModel().isVertex(l)==f.getModel().isVertex(a)||f.getModel().isEdge(l)==f.getModel().isEdge(a)){var n=
-f.view.getState(l),m=null!=n?n.style:f.getCellStyle(c[k]);f.getModel().setStyle(l,e);if(null!=n&&"1"==mxUtils.getValue(n.style,"composite","0"))for(var p=f.model.getChildCount(l);0<=p;p--)f.model.remove(f.model.getChildAt(l,p));if(null!=m){"umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=d[mxConstants.STYLE_SHAPE]&&(f.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[l]),f.setCellStyles("participant",d[mxConstants.STYLE_SHAPE],[l]));for(p=0;p<g.length;p++){var q=m[g[p]];null!=q&&f.setCellStyles(g[p],
-q,[l])}}b.push(l)}}}finally{f.model.endUpdate()}return b};
+f.view.getState(l),m=null!=n?n.style:f.getCellStyle(c[k]);f.getModel().setStyle(l,e);if(null!=n&&"1"==mxUtils.getValue(n.style,"composite","0"))for(var p=f.model.getChildCount(l);0<=p;p--)f.model.remove(f.model.getChildAt(l,p));if(null!=m){"umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=d[mxConstants.STYLE_SHAPE]&&(f.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[l]),f.setCellStyles("participant",d[mxConstants.STYLE_SHAPE],[l]));for(p=0;p<g.length;p++){var r=m[g[p]];null!=r&&f.setCellStyles(g[p],
+r,[l])}}b.push(l)}}}finally{f.model.endUpdate()}return b};
Sidebar.prototype.createDropHandler=function(a,c,f,d){f=null!=f?f:!0;return mxUtils.bind(this,function(b,e,g,k,l){if(b.isEnabled()){a=b.getImportableCells(a);if(0<a.length){b.stopEditing();var n=null!=g?b.isValidDropTarget(g,a,e):!1,m=null;null!=g&&!n&&(g=null);if(!b.isCellLocked(g||b.getDefaultParent())){b.model.beginUpdate();try{k=Math.round(k);l=Math.round(l);if(c&&b.isSplitTarget(g,a,e)){var p=b.cloneCells(a);b.splitEdge(g,p,null,k-d.width/2,l-d.height/2);m=p}else 0<a.length&&(m=b.importCells(a,
-k,l,g));if(null!=b.layoutManager){var q=b.layoutManager.getLayout(g);if(null!=q){var r=b.view.scale,s=b.view.translate,t=(k+s.x)*r,u=(l+s.y)*r;for(g=0;g<m.length;g++)q.moveCell(m[g],t,u)}}f&&b.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{b.model.endUpdate()}null!=m&&0<m.length&&(b.scrollCellToVisible(m[0]),b.setSelectionCells(m))}}mxEvent.consume(e)}})};
+k,l,g));if(null!=b.layoutManager){var r=b.layoutManager.getLayout(g);if(null!=r){var s=b.view.scale,q=b.view.translate,t=(k+q.x)*s,u=(l+q.y)*s;for(g=0;g<m.length;g++)r.moveCell(m[g],t,u)}}f&&b.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{b.model.endUpdate()}null!=m&&0<m.length&&(b.scrollCellToVisible(m[0]),b.setSelectionCells(m))}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,c){var f=document.createElement("div");f.style.border="1px dashed black";f.style.width=a+"px";f.style.height=c+"px";return f};
-Sidebar.prototype.dropAndConnect=function(a,c,f,d){var b=this.getDropAndConnectGeometry(a,c[d],f,c);if(null!=b){var e=this.editorUi.editor.graph,g=[];e.model.beginUpdate();try{var k=e.getCellGeometry(a),l=e.getCellGeometry(c[d]),n=e.model.getParent(a),m=!0;if(null!=e.layoutManager){var p=e.layoutManager.getLayout(n);if(null!=p&&p.constructor==mxStackLayout&&(m=!1,g=e.view.getState(n),null!=g)){var q=new mxPoint(g.x/e.view.scale-e.view.translate.x,g.y/e.view.scale-e.view.translate.y);b.x+=q.x;b.y+=
-q.y;var r=b.getTerminalPoint(!1);null!=r&&(r.x+=q.x,r.y+=q.y)}}var s=l.x,t=l.y;e.model.isEdge(c[d])&&(t=s=0);var u=e.model.isEdge(a)||null!=k&&!k.relative&&m,g=c=e.importCells(c,b.x-(u?s:0),b.y-(u?t:0),u?n:null);if(e.model.isEdge(a))e.model.setTerminal(a,c[d],f==mxConstants.DIRECTION_NORTH);else if(e.model.isEdge(c[d])){e.model.setTerminal(c[d],a,!0);var v=e.getCellGeometry(c[d]);v.points=null;if(null!=v.getTerminalPoint(!1))v.setTerminalPoint(b.getTerminalPoint(!1),!1);else if(u&&e.model.isVertex(n)){var A=
-e.view.getState(n),q=new mxPoint(A.x/e.view.scale-e.view.translate.x,A.y/e.view.scale-e.view.translate.y);e.cellsMoved(c,q.x,q.y,null,null,!0)}}else l=e.getCellGeometry(c[d]),s=b.x-Math.round(l.x),t=b.y-Math.round(l.y),b.x=Math.round(l.x),b.y=Math.round(l.y),e.model.setGeometry(c[d],b),e.cellsMoved(c,s,t,null,null,!0),g=c.slice(),c.push(e.insertEdge(null,null,"",a,c[d],e.createCurrentEdgeStyle()));e.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{e.model.endUpdate()}e.setSelectionCells(g)}};
+Sidebar.prototype.dropAndConnect=function(a,c,f,d){var b=this.getDropAndConnectGeometry(a,c[d],f,c);if(null!=b){var e=this.editorUi.editor.graph,g=[];e.model.beginUpdate();try{var k=e.getCellGeometry(a),l=e.getCellGeometry(c[d]),n=e.model.getParent(a),m=!0;if(null!=e.layoutManager){var p=e.layoutManager.getLayout(n);if(null!=p&&p.constructor==mxStackLayout&&(m=!1,g=e.view.getState(n),null!=g)){var r=new mxPoint(g.x/e.view.scale-e.view.translate.x,g.y/e.view.scale-e.view.translate.y);b.x+=r.x;b.y+=
+r.y;var s=b.getTerminalPoint(!1);null!=s&&(s.x+=r.x,s.y+=r.y)}}var q=l.x,t=l.y;e.model.isEdge(c[d])&&(t=q=0);var u=e.model.isEdge(a)||null!=k&&!k.relative&&m,g=c=e.importCells(c,b.x-(u?q:0),b.y-(u?t:0),u?n:null);if(e.model.isEdge(a))e.model.setTerminal(a,c[d],f==mxConstants.DIRECTION_NORTH);else if(e.model.isEdge(c[d])){e.model.setTerminal(c[d],a,!0);var v=e.getCellGeometry(c[d]);v.points=null;if(null!=v.getTerminalPoint(!1))v.setTerminalPoint(b.getTerminalPoint(!1),!1);else if(u&&e.model.isVertex(n)){var z=
+e.view.getState(n),r=new mxPoint(z.x/e.view.scale-e.view.translate.x,z.y/e.view.scale-e.view.translate.y);e.cellsMoved(c,r.x,r.y,null,null,!0)}}else l=e.getCellGeometry(c[d]),q=b.x-Math.round(l.x),t=b.y-Math.round(l.y),b.x=Math.round(l.x),b.y=Math.round(l.y),e.model.setGeometry(c[d],b),e.cellsMoved(c,q,t,null,null,!0),g=c.slice(),c.push(e.insertEdge(null,null,"",a,c[d],e.createCurrentEdgeStyle()));e.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{e.model.endUpdate()}e.setSelectionCells(g)}};
Sidebar.prototype.getDropAndConnectGeometry=function(a,c,f,d){var b=this.editorUi.editor.graph,e=b.view,g=1<d.length,k=b.getCellGeometry(a);d=b.getCellGeometry(c);null!=k&&null!=d&&(d=d.clone(),b.model.isEdge(a)?(a=b.view.getState(a),k=a.absolutePoints,c=k[0],b=k[k.length-1],f==mxConstants.DIRECTION_NORTH?(d.x=c.x/e.scale-e.translate.x-d.width/2,d.y=c.y/e.scale-e.translate.y-d.height/2):(d.x=b.x/e.scale-e.translate.x-d.width/2,d.y=b.y/e.scale-e.translate.y-d.height/2)):(k.relative&&(a=b.view.getState(a),
k=k.clone(),k.x=(a.x-e.translate.x)/e.scale,k.y=(a.y-e.translate.y)/e.scale),e=b.defaultEdgeLength,b.model.isEdge(c)&&null!=d.getTerminalPoint(!0)&&null!=d.getTerminalPoint(!1)?(c=d.getTerminalPoint(!0),b=d.getTerminalPoint(!1),e=b.x-c.x,c=b.y-c.y,e=Math.sqrt(e*e+c*c),d.x=k.getCenterX(),d.y=k.getCenterY(),d.width=1,d.height=1,f==mxConstants.DIRECTION_NORTH?(d.height=e,d.y=k.y-e,d.setTerminalPoint(new mxPoint(d.x,d.y),!1)):f==mxConstants.DIRECTION_EAST?(d.width=e,d.x=k.x+k.width,d.setTerminalPoint(new mxPoint(d.x+
d.width,d.y),!1)):f==mxConstants.DIRECTION_SOUTH?(d.height=e,d.y=k.y+k.height,d.setTerminalPoint(new mxPoint(d.x,d.y+d.height),!1)):f==mxConstants.DIRECTION_WEST&&(d.width=e,d.x=k.x-e,d.setTerminalPoint(new mxPoint(d.x,d.y),!1))):(!g&&45<d.width&&(45<d.height&&45<k.width&&45<k.height)&&(d.width*=k.height/d.height,d.height=k.height),d.x=k.x+k.width/2-d.width/2,d.y=k.y+k.height/2-d.height/2,f==mxConstants.DIRECTION_NORTH?d.y=d.y-k.height/2-d.height/2-e:f==mxConstants.DIRECTION_EAST?d.x=d.x+k.width/
2+d.width/2+e:f==mxConstants.DIRECTION_SOUTH?d.y=d.y+k.height/2+d.height/2+e:f==mxConstants.DIRECTION_WEST&&(d.x=d.x-k.width/2-d.width/2-e),b.model.isEdge(c)&&null!=d.getTerminalPoint(!0)&&null!=c.getTerminal(!1)&&(k=b.getCellGeometry(c.getTerminal(!1)),null!=k&&(f==mxConstants.DIRECTION_NORTH?(d.x-=k.getCenterX(),d.y-=k.getCenterY()+k.height/2):f==mxConstants.DIRECTION_EAST?(d.x-=k.getCenterX()-k.width/2,d.y-=k.getCenterY()):f==mxConstants.DIRECTION_SOUTH?(d.x-=k.getCenterX(),d.y-=k.getCenterY()-
k.height/2):f==mxConstants.DIRECTION_WEST&&(d.x-=k.getCenterX()+k.width/2,d.y-=k.getCenterY()))))));return d};
Sidebar.prototype.createDragSource=function(a,c,f,d,b){function e(b,a){var d=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(d=document.createElement(mxClient.VML_PREFIX+":image"),d.setAttribute("src",b.src),d.style.borderStyle="none"):(d=document.createElement("div"),d.style.backgroundImage="url("+b.src+")",d.style.backgroundPosition="center",d.style.backgroundRepeat="no-repeat"),d.style.width=b.width+4+"px",d.style.height=b.height+4+"px",d.style.display=
-mxClient.IS_QUIRKS?"inline":"inline-block"):(d=mxUtils.createImage(b.src),d.style.width=b.width+"px",d.style.height=b.height+"px");null!=a&&d.setAttribute("title",a);mxUtils.setOpacity(d,b==this.refreshTarget?30:20);d.style.position="absolute";d.style.cursor="crosshair";return d}function g(b,a,d,c){null!=c.parentNode&&(mxUtils.contains(d,b,a)?(mxUtils.setOpacity(c,100),I=c):mxUtils.setOpacity(c,c==B?30:20));return d}for(var k=this.editorUi,l=k.editor.graph,n=null,m=null,p=this,q=0;q<d.length&&!(null==
-m&&this.editorUi.editor.graph.model.isVertex(d[q])?m=q:null==n&&this.editorUi.editor.graph.model.isEdge(d[q])&&null==this.editorUi.editor.graph.model.getTerminal(d[q],!0)&&(n=q),null!=m&&null!=n);q++);var r=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(b,a,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=d&&null!=v&&I==B){var k=b.isCellSelected(v.cell)?b.getSelectionCells():[v.cell],k=this.updateShapes(b.model.isEdge(v.cell)?d[0]:d[m],
-k);b.setSelectionCells(k)}else null!=d&&null!=I&&null!=t&&I!=B?(k=b.model.isEdge(t.cell)||null==n?m:n,this.dropAndConnect(t.cell,d,H,k)):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(b.view.getState(b.getSelectionCell()))}),f,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);this.editorUi.editor.graph.addListener(mxEvent.ESCAPE,function(b,a){r.isActive()&&r.reset()});var s=r.mouseDown;r.mouseDown=function(b){!mxEvent.isPopupTrigger(b)&&!mxEvent.isMultiTouchEvent(b)&&
-(l.stopEditing(),s.apply(this,arguments))};var t=null,u=null,v=null,A=!1,y=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),D=e(this.triangleDown,mxResources.get("connect")),z=e(this.triangleLeft,mxResources.get("connect")),B=e(this.refreshTarget,mxResources.get("replace")),F=null,G=e(this.roundDrop),E=e(this.roundDrop),H=mxConstants.DIRECTION_NORTH,I=null,J=r.createPreviewElement;r.createPreviewElement=function(b){var a=J.apply(this,arguments);mxClient.IS_SVG&&
-(a.style.pointerEvents="none");this.previewElementWidth=a.style.width;this.previewElementHeight=a.style.height;return a};var N=r.dragEnter;r.dragEnter=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("none");N.apply(this,arguments)};var T=r.dragExit;r.dragExit=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("");T.apply(this,arguments)};r.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=I&&this.currentGuide.hide();if(null!=
+mxClient.IS_QUIRKS?"inline":"inline-block"):(d=mxUtils.createImage(b.src),d.style.width=b.width+"px",d.style.height=b.height+"px");null!=a&&d.setAttribute("title",a);mxUtils.setOpacity(d,b==this.refreshTarget?30:20);d.style.position="absolute";d.style.cursor="crosshair";return d}function g(b,a,d,c){null!=c.parentNode&&(mxUtils.contains(d,b,a)?(mxUtils.setOpacity(c,100),I=c):mxUtils.setOpacity(c,c==B?30:20));return d}for(var k=this.editorUi,l=k.editor.graph,n=null,m=null,p=this,r=0;r<d.length&&!(null==
+m&&this.editorUi.editor.graph.model.isVertex(d[r])?m=r:null==n&&this.editorUi.editor.graph.model.isEdge(d[r])&&null==this.editorUi.editor.graph.model.getTerminal(d[r],!0)&&(n=r),null!=m&&null!=n);r++);var s=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(b,a,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=d&&null!=v&&I==B){var k=b.isCellSelected(v.cell)?b.getSelectionCells():[v.cell],k=this.updateShapes(b.model.isEdge(v.cell)?d[0]:d[m],
+k);b.setSelectionCells(k)}else null!=d&&null!=I&&null!=t&&I!=B?(k=b.model.isEdge(t.cell)||null==n?m:n,this.dropAndConnect(t.cell,d,H,k)):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(b.view.getState(b.getSelectionCell()))}),f,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);this.editorUi.editor.graph.addListener(mxEvent.ESCAPE,function(b,a){s.isActive()&&s.reset()});var q=s.mouseDown;s.mouseDown=function(b){!mxEvent.isPopupTrigger(b)&&!mxEvent.isMultiTouchEvent(b)&&
+(l.stopEditing(),q.apply(this,arguments))};var t=null,u=null,v=null,z=!1,y=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),D=e(this.triangleDown,mxResources.get("connect")),A=e(this.triangleLeft,mxResources.get("connect")),B=e(this.refreshTarget,mxResources.get("replace")),E=null,G=e(this.roundDrop),F=e(this.roundDrop),H=mxConstants.DIRECTION_NORTH,I=null,L=s.createPreviewElement;s.createPreviewElement=function(b){var a=L.apply(this,arguments);mxClient.IS_SVG&&
+(a.style.pointerEvents="none");this.previewElementWidth=a.style.width;this.previewElementHeight=a.style.height;return a};var O=s.dragEnter;s.dragEnter=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("none");O.apply(this,arguments)};var T=s.dragExit;s.dragExit=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("");T.apply(this,arguments)};s.dragOver=function(a,c){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=I&&this.currentGuide.hide();if(null!=
this.previewElement){var e=a.view;if(null!=v&&I==B)this.previewElement.style.display=a.model.isEdge(v.cell)?"none":"",this.previewElement.style.left=v.x+"px",this.previewElement.style.top=v.y+"px",this.previewElement.style.width=v.width+"px",this.previewElement.style.height=v.height+"px";else if(null!=t&&null!=I){var f=a.model.isEdge(t.cell)||null==n?m:n,g=p.getDropAndConnectGeometry(t.cell,d[f],H,d),k=!a.model.isEdge(t.cell)?a.getCellGeometry(t.cell):null,l=a.getCellGeometry(d[f]),u=a.model.getParent(t.cell),
-s=e.translate.x*e.scale,q=e.translate.y*e.scale;null!=k&&!k.relative&&a.model.isVertex(u)&&(q=e.getState(u),s=q.x,q=q.y);k=l.x;l=l.y;a.model.isEdge(d[f])&&(l=k=0);this.previewElement.style.left=(g.x-k)*e.scale+s+"px";this.previewElement.style.top=(g.y-l)*e.scale+q+"px";1==d.length&&(this.previewElement.style.width=g.width*e.scale+"px",this.previewElement.style.height=g.height*e.scale+"px");this.previewElement.style.display=""}else null!=r.currentHighlight.state&&a.model.isEdge(r.currentHighlight.state.cell)?
-(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-b.width*e.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-b.height*e.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var Y=(new Date).getTime(),C=0,U=null,P=this.editorUi.editor.graph.getCellStyle(d[0]);r.getDropTarget=mxUtils.bind(this,function(b,
-a,c,e){var f=!mxEvent.isAltDown(e)&&null!=d?b.getCellAt(a,c):null;if(null!=f&&!this.graph.isCellConnectable(f)){var k=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(k)&&this.graph.isCellConnectable(k)&&(f=k)}b.isCellLocked(f)&&(f=null);var l=b.view.getState(f),k=I=null;U!=l?(U=l,Y=(new Date).getTime(),C=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=l&&(this.updateThread=window.setTimeout(function(){null==I&&(U=l,r.getDropTarget(b,a,c,e))},this.dropTargetDelay+
-10))):C=(new Date).getTime()-Y;if(2500>C&&null!=l&&!mxEvent.isShiftDown(e)&&(mxUtils.getValue(l.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(P,mxConstants.STYLE_SHAPE)&&mxUtils.getValue(l.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||"image"==mxUtils.getValue(P,mxConstants.STYLE_SHAPE)||1500<C||b.model.isEdge(l.cell))&&C>this.dropTargetDelay&&(b.model.isVertex(l.cell)&&null!=m||b.model.isEdge(l.cell)&&b.model.isEdge(d[0]))){v=l;var n=b.model.isEdge(l.cell)?b.view.getPoint(l):
-new mxPoint(l.getCenterX(),l.getCenterY()),n=new mxRectangle(n.x-this.refreshTarget.width/2,n.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);B.style.left=Math.floor(n.x)+"px";B.style.top=Math.floor(n.y)+"px";null==F&&(b.container.appendChild(B),F=B.parentNode);g(a,c,n,B)}else null==v||!mxUtils.contains(v,a,c)||1500<C&&!mxEvent.isShiftDown(e)?(v=null,null!=F&&(B.parentNode.removeChild(B),F=null)):null!=v&&null!=F&&(n=b.model.isEdge(v.cell)?b.view.getPoint(v):new mxPoint(v.getCenterX(),
-v.getCenterY()),n=new mxRectangle(n.x-this.refreshTarget.width/2,n.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),g(a,c,n,B));if(A&&null!=t&&!mxEvent.isAltDown(e)&&null==I){k=mxRectangle.fromRectangle(t);if(b.model.isEdge(t.cell)){var s=t.absolutePoints;null!=G.parentNode&&(n=s[0],k.add(g(a,c,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),G)));null!=E.parentNode&&(s=s[s.length-1],k.add(g(a,c,new mxRectangle(s.x-
-this.roundDrop.width/2,s.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),E)))}else n=mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(n=mxRectangle.fromRectangle(t.shape.boundingBox)),n.grow(this.graph.tolerance),n.grow(HoverIcons.prototype.arrowSpacing),s=this.graph.selectionCellsHandler.getHandler(t.cell),null!=s&&(n.x-=s.horizontalOffset/2,n.y-=s.verticalOffset/2,n.width+=s.horizontalOffset,n.height+=s.verticalOffset,null!=s.rotationShape&&null!=s.rotationShape.node&&
-("hidden"!=s.rotationShape.node.style.visibility&&"none"!=s.rotationShape.node.style.display&&null!=s.rotationShape.boundingBox)&&n.add(s.rotationShape.boundingBox)),k.add(g(a,c,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,n.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),y)),k.add(g(a,c,new mxRectangle(n.x+n.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),k.add(g(a,c,new mxRectangle(t.getCenterX()-this.triangleDown.width/
-2,n.y+n.height,this.triangleDown.width,this.triangleDown.height),D)),k.add(g(a,c,new mxRectangle(n.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),z));null!=k&&k.grow(10)}H=mxConstants.DIRECTION_NORTH;I==x?H=mxConstants.DIRECTION_EAST:I==D||I==E?H=mxConstants.DIRECTION_SOUTH:I==z&&(H=mxConstants.DIRECTION_WEST);null!=v&&I==B&&(l=v);n=(null==m||b.isCellConnectable(d[m]))&&(b.model.isEdge(f)&&null!=m||b.model.isVertex(f)&&b.isCellConnectable(f));
-if(null!=t&&5E3<=C||t!=l&&(null==k||!mxUtils.contains(k,a,c)||500<C&&null==I&&n))if(A=!1,t=5E3>C&&C>this.dropTargetDelay||b.model.isEdge(f)?l:null,null!=t&&n){k=[G,E,y,x,D,z];for(n=0;n<k.length;n++)null!=k[n].parentNode&&k[n].parentNode.removeChild(k[n]);b.model.isEdge(f)?(s=l.absolutePoints,null!=s&&(n=s[0],s=s[s.length-1],k=b.tolerance,new mxRectangle(a-k,c-k,2*k,2*k),G.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",G.style.top=Math.floor(n.y-this.roundDrop.height/2)+"px",E.style.left=Math.floor(s.x-
-this.roundDrop.width/2)+"px",E.style.top=Math.floor(s.y-this.roundDrop.height/2)+"px",null==b.model.getTerminal(f,!0)&&b.container.appendChild(G),null==b.model.getTerminal(f,!1)&&b.container.appendChild(E))):(n=mxRectangle.fromRectangle(l),null!=l.shape&&null!=l.shape.boundingBox&&(n=mxRectangle.fromRectangle(l.shape.boundingBox)),n.grow(this.graph.tolerance),n.grow(HoverIcons.prototype.arrowSpacing),s=this.graph.selectionCellsHandler.getHandler(l.cell),null!=s&&(n.x-=s.horizontalOffset/2,n.y-=s.verticalOffset/
-2,n.width+=s.horizontalOffset,n.height+=s.verticalOffset,null!=s.rotationShape&&null!=s.rotationShape.node&&("hidden"!=s.rotationShape.node.style.visibility&&"none"!=s.rotationShape.node.style.display&&null!=s.rotationShape.boundingBox)&&n.add(s.rotationShape.boundingBox)),y.style.left=Math.floor(l.getCenterX()-this.triangleUp.width/2)+"px",y.style.top=Math.floor(n.y-this.triangleUp.height)+"px",x.style.left=Math.floor(n.x+n.width)+"px",x.style.top=Math.floor(l.getCenterY()-this.triangleRight.height/
-2)+"px",D.style.left=y.style.left,D.style.top=Math.floor(n.y+n.height)+"px",z.style.left=Math.floor(n.x-this.triangleLeft.width)+"px",z.style.top=x.style.top,"eastwest"!=l.style.portConstraint&&(b.container.appendChild(y),b.container.appendChild(D)),b.container.appendChild(x),b.container.appendChild(z));null!=l&&(u=b.selectionCellsHandler.getHandler(l.cell),null!=u&&null!=u.setHandlesVisible&&u.setHandlesVisible(!1));A=!0}else{k=[G,E,y,x,D,z];for(n=0;n<k.length;n++)null!=k[n].parentNode&&k[n].parentNode.removeChild(k[n])}!A&&
-null!=u&&u.setHandlesVisible(!0);f=(!mxEvent.isAltDown(e)||mxEvent.isShiftDown(e))&&!(null!=v&&I==B)?mxDragSource.prototype.getDropTarget.apply(this,arguments):null;k=b.getModel();if(null!=f&&(null!=I||!b.isSplitTarget(f,d,e))){for(;null!=f&&!b.isValidDropTarget(f,d,e)&&k.isVertex(k.getParent(f));)f=k.getParent(f);if(b.view.currentRoot==f||!b.isValidRoot(f)&&0==b.getModel().getChildCount(f)||b.isCellLocked(f)||k.isEdge(f))f=null}return f});r.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,
-arguments);for(var b=[G,E,B,y,x,D,z],a=0;a<b.length;a++)null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a]);null!=t&&null!=u&&u.reset();I=F=v=t=u=null};return r};
+q=e.translate.x*e.scale,r=e.translate.y*e.scale;null!=k&&!k.relative&&a.model.isVertex(u)&&(r=e.getState(u),q=r.x,r=r.y);k=l.x;l=l.y;a.model.isEdge(d[f])&&(l=k=0);this.previewElement.style.left=(g.x-k)*e.scale+q+"px";this.previewElement.style.top=(g.y-l)*e.scale+r+"px";1==d.length&&(this.previewElement.style.width=g.width*e.scale+"px",this.previewElement.style.height=g.height*e.scale+"px");this.previewElement.style.display=""}else null!=s.currentHighlight.state&&a.model.isEdge(s.currentHighlight.state.cell)?
+(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-b.width*e.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-b.height*e.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var Y=(new Date).getTime(),C=0,U=null,P=this.editorUi.editor.graph.getCellStyle(d[0]);s.getDropTarget=mxUtils.bind(this,function(b,
+a,e,c){var f=!mxEvent.isAltDown(c)&&null!=d?b.getCellAt(a,e):null;if(null!=f&&!this.graph.isCellConnectable(f)){var k=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(k)&&this.graph.isCellConnectable(k)&&(f=k)}b.isCellLocked(f)&&(f=null);var l=b.view.getState(f),k=I=null;U!=l?(U=l,Y=(new Date).getTime(),C=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=l&&(this.updateThread=window.setTimeout(function(){null==I&&(U=l,s.getDropTarget(b,a,e,c))},this.dropTargetDelay+
+10))):C=(new Date).getTime()-Y;if(2500>C&&null!=l&&!mxEvent.isShiftDown(c)&&(mxUtils.getValue(l.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(P,mxConstants.STYLE_SHAPE)&&mxUtils.getValue(l.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||"image"==mxUtils.getValue(P,mxConstants.STYLE_SHAPE)||1500<C||b.model.isEdge(l.cell))&&C>this.dropTargetDelay&&(b.model.isVertex(l.cell)&&null!=m||b.model.isEdge(l.cell)&&b.model.isEdge(d[0]))){v=l;var n=b.model.isEdge(l.cell)?b.view.getPoint(l):
+new mxPoint(l.getCenterX(),l.getCenterY()),n=new mxRectangle(n.x-this.refreshTarget.width/2,n.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);B.style.left=Math.floor(n.x)+"px";B.style.top=Math.floor(n.y)+"px";null==E&&(b.container.appendChild(B),E=B.parentNode);g(a,e,n,B)}else null==v||!mxUtils.contains(v,a,e)||1500<C&&!mxEvent.isShiftDown(c)?(v=null,null!=E&&(B.parentNode.removeChild(B),E=null)):null!=v&&null!=E&&(n=b.model.isEdge(v.cell)?b.view.getPoint(v):new mxPoint(v.getCenterX(),
+v.getCenterY()),n=new mxRectangle(n.x-this.refreshTarget.width/2,n.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),g(a,e,n,B));if(z&&null!=t&&!mxEvent.isAltDown(c)&&null==I){k=mxRectangle.fromRectangle(t);if(b.model.isEdge(t.cell)){var p=t.absolutePoints;null!=G.parentNode&&(n=p[0],k.add(g(a,e,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),G)));null!=F.parentNode&&(p=p[p.length-1],k.add(g(a,e,new mxRectangle(p.x-
+this.roundDrop.width/2,p.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),F)))}else n=mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(n=mxRectangle.fromRectangle(t.shape.boundingBox)),n.grow(this.graph.tolerance),n.grow(HoverIcons.prototype.arrowSpacing),p=this.graph.selectionCellsHandler.getHandler(t.cell),null!=p&&(n.x-=p.horizontalOffset/2,n.y-=p.verticalOffset/2,n.width+=p.horizontalOffset,n.height+=p.verticalOffset,null!=p.rotationShape&&null!=p.rotationShape.node&&
+("hidden"!=p.rotationShape.node.style.visibility&&"none"!=p.rotationShape.node.style.display&&null!=p.rotationShape.boundingBox)&&n.add(p.rotationShape.boundingBox)),k.add(g(a,e,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,n.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),y)),k.add(g(a,e,new mxRectangle(n.x+n.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),k.add(g(a,e,new mxRectangle(t.getCenterX()-this.triangleDown.width/
+2,n.y+n.height,this.triangleDown.width,this.triangleDown.height),D)),k.add(g(a,e,new mxRectangle(n.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),A));null!=k&&k.grow(10)}H=mxConstants.DIRECTION_NORTH;I==x?H=mxConstants.DIRECTION_EAST:I==D||I==F?H=mxConstants.DIRECTION_SOUTH:I==A&&(H=mxConstants.DIRECTION_WEST);null!=v&&I==B&&(l=v);n=(null==m||b.isCellConnectable(d[m]))&&(b.model.isEdge(f)&&null!=m||b.model.isVertex(f)&&b.isCellConnectable(f));
+if(null!=t&&5E3<=C||t!=l&&(null==k||!mxUtils.contains(k,a,e)||500<C&&null==I&&n))if(z=!1,t=5E3>C&&C>this.dropTargetDelay||b.model.isEdge(f)?l:null,null!=t&&n){k=[G,F,y,x,D,A];for(n=0;n<k.length;n++)null!=k[n].parentNode&&k[n].parentNode.removeChild(k[n]);b.model.isEdge(f)?(p=l.absolutePoints,null!=p&&(n=p[0],p=p[p.length-1],k=b.tolerance,new mxRectangle(a-k,e-k,2*k,2*k),G.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",G.style.top=Math.floor(n.y-this.roundDrop.height/2)+"px",F.style.left=Math.floor(p.x-
+this.roundDrop.width/2)+"px",F.style.top=Math.floor(p.y-this.roundDrop.height/2)+"px",null==b.model.getTerminal(f,!0)&&b.container.appendChild(G),null==b.model.getTerminal(f,!1)&&b.container.appendChild(F))):(n=mxRectangle.fromRectangle(l),null!=l.shape&&null!=l.shape.boundingBox&&(n=mxRectangle.fromRectangle(l.shape.boundingBox)),n.grow(this.graph.tolerance),n.grow(HoverIcons.prototype.arrowSpacing),p=this.graph.selectionCellsHandler.getHandler(l.cell),null!=p&&(n.x-=p.horizontalOffset/2,n.y-=p.verticalOffset/
+2,n.width+=p.horizontalOffset,n.height+=p.verticalOffset,null!=p.rotationShape&&null!=p.rotationShape.node&&("hidden"!=p.rotationShape.node.style.visibility&&"none"!=p.rotationShape.node.style.display&&null!=p.rotationShape.boundingBox)&&n.add(p.rotationShape.boundingBox)),y.style.left=Math.floor(l.getCenterX()-this.triangleUp.width/2)+"px",y.style.top=Math.floor(n.y-this.triangleUp.height)+"px",x.style.left=Math.floor(n.x+n.width)+"px",x.style.top=Math.floor(l.getCenterY()-this.triangleRight.height/
+2)+"px",D.style.left=y.style.left,D.style.top=Math.floor(n.y+n.height)+"px",A.style.left=Math.floor(n.x-this.triangleLeft.width)+"px",A.style.top=x.style.top,"eastwest"!=l.style.portConstraint&&(b.container.appendChild(y),b.container.appendChild(D)),b.container.appendChild(x),b.container.appendChild(A));null!=l&&(u=b.selectionCellsHandler.getHandler(l.cell),null!=u&&null!=u.setHandlesVisible&&u.setHandlesVisible(!1));z=!0}else{k=[G,F,y,x,D,A];for(n=0;n<k.length;n++)null!=k[n].parentNode&&k[n].parentNode.removeChild(k[n])}!z&&
+null!=u&&u.setHandlesVisible(!0);f=(!mxEvent.isAltDown(c)||mxEvent.isShiftDown(c))&&!(null!=v&&I==B)?mxDragSource.prototype.getDropTarget.apply(this,arguments):null;k=b.getModel();if(null!=f&&(null!=I||!b.isSplitTarget(f,d,c))){for(;null!=f&&!b.isValidDropTarget(f,d,c)&&k.isVertex(k.getParent(f));)f=k.getParent(f);if(b.view.currentRoot==f||!b.isValidRoot(f)&&0==b.getModel().getChildCount(f)||b.isCellLocked(f)||k.isEdge(f))f=null}return f});s.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,
+arguments);for(var b=[G,F,B,y,x,D,A],a=0;a<b.length;a++)null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a]);null!=t&&null!=u&&u.reset();I=E=v=t=u=null};return s};
Sidebar.prototype.itemClicked=function(a,c,f,d){d=this.editorUi.editor.graph;if(mxEvent.isAltDown(f)){if(1==d.getSelectionCount()&&d.model.isVertex(d.getSelectionCell())){c=null;for(var b=0;b<a.length&&null==c;b++)d.model.isVertex(a[b])&&(c=b);null!=c&&(this.dropAndConnect(d.getSelectionCell(),a,mxEvent.isMetaDown(f)||mxEvent.isControlDown(f)?mxEvent.isShiftDown(f)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(f)?mxConstants.DIRECTION_EAST:mxConstants.DIRECTION_SOUTH,
c),d.scrollCellToVisible(d.getSelectionCell()))}}else mxEvent.isShiftDown(f)?d.isSelectionEmpty()||(this.updateShapes(a[0],d.getSelectionCells()),d.scrollCellToVisible(d.getSelectionCell())):(a=d.getFreeInsertPoint(),c.drop(d,f,null,a.x,a.y),null!=this.editorUi.hoverIcons&&mxEvent.isTouchEvent(f)&&this.editorUi.hoverIcons.update(d.view.getState(d.getSelectionCell())))};
Sidebar.prototype.addClickHandler=function(a,c,f){var d=this.editorUi.editor.graph,b=c.mouseUp,e=null;mxEvent.addGestureListeners(a,function(b){e=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b))});c.mouseUp=mxUtils.bind(this,function(g){if(!mxEvent.isPopupTrigger(g)&&null==this.currentGraph&&null!=e){var k=d.tolerance;Math.abs(e.x-mxEvent.getClientX(g))<=k&&Math.abs(e.y-mxEvent.getClientY(g))<=k&&this.itemClicked(f,c,g,a)}b.apply(c,arguments);e=null;this.currentElt=a})};
@@ -2338,10 +2338,10 @@ this.container.appendChild(f);null!=a&&(this.palettes[a]=[c,f]);return b};
Sidebar.prototype.addFoldingHandler=function(a,c,f){var d=!1;if(!mxClient.IS_IE||8<=document.documentMode)a.style.backgroundImage="none"==c.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";a.style.backgroundRepeat="no-repeat";a.style.backgroundPosition="0% 50%";mxEvent.addListener(a,"click",mxUtils.bind(this,function(b){if("none"==c.style.display){if(d)c.style.display="block";else if(d=!0,null!=f){a.style.cursor="wait";var e=a.innerHTML;a.innerHTML=mxResources.get("loading")+
"...";window.setTimeout(function(){var b=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;f(c);mxClient.NO_FO=b;c.style.display="block";a.style.cursor="";a.innerHTML=e},0)}else c.style.display="block";a.style.backgroundImage="url('"+this.expandedImage+"')"}else a.style.backgroundImage="url('"+this.collapsedImage+"')",c.style.display="none";mxEvent.consume(b)}))};
Sidebar.prototype.removePalette=function(a){var c=this.palettes[a];if(null!=c){this.palettes[a]=null;for(a=0;a<c.length;a++)this.container.removeChild(c[a]);return!0}return!1};
-Sidebar.prototype.addImagePalette=function(a,c,f,d,b,e,g){for(var k=[],l=0;l<b.length;l++)mxUtils.bind(this,function(b,a,c){if(null==c){c=b.lastIndexOf("/");var e=b.lastIndexOf(".");c=b.substring(0<=c?c+1:0,0<=e?e:b.length).replace(/[-_]/g," ")}k.push(this.createVertexTemplateEntry("image;html\x3d1;labelBackgroundColor\x3d#ffffff;image\x3d"+f+b+d,this.defaultImageWidth,this.defaultImageHeight,"",a,null!=a,null,this.filterTags(c)))})(b[l],null!=e?e[l]:null,null!=g?g[b[l]]:null);this.addPaletteFunctions(a,
+Sidebar.prototype.addImagePalette=function(a,c,f,d,b,e,g){for(var k=[],l=0;l<b.length;l++)mxUtils.bind(this,function(b,a,e){if(null==e){e=b.lastIndexOf("/");var c=b.lastIndexOf(".");e=b.substring(0<=e?e+1:0,0<=c?c:b.length).replace(/[-_]/g," ")}k.push(this.createVertexTemplateEntry("image;html\x3d1;labelBackgroundColor\x3d#ffffff;image\x3d"+f+b+d,this.defaultImageWidth,this.defaultImageHeight,"",a,null!=a,null,this.filterTags(e)))})(b[l],null!=e?e[l]:null,null!=g?g[b[l]]:null);this.addPaletteFunctions(a,
c,!1,k)};Sidebar.prototype.getTagsForStencil=function(a,c,f){a=a.split(".");for(var d=1;d<a.length;d++)a[d]=a[d].replace(/_/g," ");a.push(c.replace(/_/g," "));null!=f&&a.push(f);return a.slice(1,a.length)};
-Sidebar.prototype.addStencilPalette=function(a,c,f,d,b,e,g,k,l){g=null!=g?g:1;if(this.addStencilsToIndex){var n=[];if(null!=l)for(var m=0;m<l.length;m++)n.push(l[m]);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(a,c,e,f,l){if(null==b||0>mxUtils.indexOf(b,c)){e=this.getTagsForStencil(a,c);var m=null!=k?k[c]:null;null!=m&&e.push(m);n.push(this.createVertexTemplateEntry("shape\x3d"+a+c.toLowerCase()+d,Math.round(f*g),Math.round(l*g),"",c.replace(/_/g," "),null,null,this.filterTags(e.join(" "))))}}),
-!0,!0);this.addPaletteFunctions(a,c,!1,n)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==d&&(d="");null!=e&&e.call(this,a);if(null!=l)for(var c=0;c<l.length;c++)l[c](a);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(c,e,f,k,l){(null==b||0>mxUtils.indexOf(b,e))&&a.appendChild(this.createVertexTemplate("shape\x3d"+c+e.toLowerCase()+d,Math.round(k*g),Math.round(l*g),"",e.replace(/_/g," "),!0))}),!0)}))};
+Sidebar.prototype.addStencilPalette=function(a,c,f,d,b,e,g,k,l){g=null!=g?g:1;if(this.addStencilsToIndex){var n=[];if(null!=l)for(var m=0;m<l.length;m++)n.push(l[m]);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(a,e,c,f,l){if(null==b||0>mxUtils.indexOf(b,e)){c=this.getTagsForStencil(a,e);var m=null!=k?k[e]:null;null!=m&&c.push(m);n.push(this.createVertexTemplateEntry("shape\x3d"+a+e.toLowerCase()+d,Math.round(f*g),Math.round(l*g),"",e.replace(/_/g," "),null,null,this.filterTags(c.join(" "))))}}),
+!0,!0);this.addPaletteFunctions(a,c,!1,n)}else this.addPalette(a,c,!1,mxUtils.bind(this,function(a){null==d&&(d="");null!=e&&e.call(this,a);if(null!=l)for(var c=0;c<l.length;c++)l[c](a);mxStencilRegistry.loadStencilSet(f,mxUtils.bind(this,function(e,c,f,k,l){(null==b||0>mxUtils.indexOf(b,c))&&a.appendChild(this.createVertexTemplate("shape\x3d"+e+c.toLowerCase()+d,Math.round(k*g),Math.round(l*g),"",c.replace(/_/g," "),!0))}),!0)}))};
Sidebar.prototype.destroy=function(){null!=this.graph&&(null!=this.graph.container&&null!=this.graph.container.parentNode&&this.graph.container.parentNode.removeChild(this.graph.container),this.graph.destroy(),this.graph=null);null!=this.pointerUpHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null);null!=this.pointerDownHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),
this.pointerDownHandler=null);null!=this.pointerMoveHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null);null!=this.pointerOutHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0);mxConstants.SHADOW_OPACITY=0.25;mxConstants.SHADOWCOLOR="#000000";
mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(c){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
@@ -2349,22 +2349,22 @@ mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhC
Graph=function(a,c,f,d,b){mxGraph.call(this,a,c,f,d);this.themes=b||this.defaultThemes;a=this.baseUrl;c=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=a.indexOf("/",c+2),0<c&&(this.domainUrl=a.substring(0,c)),c=a.lastIndexOf("/"),0<c&&(this.domainPathUrl=a.substring(0,c+1)));this.isHtmlLabel=function(b){var a=this.view.getState(b);b=null!=a?a.style:this.getCellStyle(b);return"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var e=null,g=null,k=null,l=null,n=!1;
this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,a){if("mouseDown"==a.getProperty("eventName")&&this.isEnabled()){var d=a.getProperty("event");if(!mxEvent.isControlDown(d.getEvent())&&!mxEvent.isShiftDown(d.getEvent())){var c=d.getState();null!=c&&this.model.isEdge(c.cell)&&(e=new mxPoint(d.getGraphX(),d.getGraphY()),n=this.isCellSelected(c.cell),k=c,g=d,null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,d.getGraphX(),d.getGraphY())?l=mxEvent.LABEL_HANDLE:
(c=this.selectionCellsHandler.getHandler(c.cell),null!=c&&null!=c.bends&&0<c.bends.length&&(l=c.getHandleForEvent(d))))}}}));this.addMouseListener({mouseDown:function(b,a){},mouseMove:mxUtils.bind(this,function(b,a){if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(a.getEvent())&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isAltDown(a.getEvent())){var d=this.tolerance;if(null!=e&&null!=k&&null!=g){var c=k;if(Math.abs(e.x-a.getGraphX())>d*this.view.scale||Math.abs(e.y-a.getGraphY())>
-d*this.view.scale){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var m=f.getHandleForEvent(g),u=this.view.getEdgeStyle(c),d=u==mxEdgeStyle.EntityRelation;!n&&l==mxEvent.LABEL_HANDLE&&(m=l);if(!d||0==m||m==f.bends.length-1||m==mxEvent.LABEL_HANDLE){if(m==mxEvent.LABEL_HANDLE||0==m||null!=c.visibleSourceState||m==f.bends.length-1||null!=c.visibleTargetState){if(!d&&m!=mxEvent.LABEL_HANDLE){d=
-c.absolutePoints;if(null!=d&&(null==u&&null==m||u==mxEdgeStyle.OrthConnector))m=l,null==m&&(m=new mxRectangle(e.x,e.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,d[0].x,d[0].y)?m=0:mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y)?m=f.bends.length-1:null!=u&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?m=2:(m=mxUtils.findNearestSegment(c,e.x,e.y),m=null==u?mxEvent.VIRTUAL_HANDLE-
+d*this.view.scale){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var m=f.getHandleForEvent(g),p=this.view.getEdgeStyle(c),d=p==mxEdgeStyle.EntityRelation;!n&&l==mxEvent.LABEL_HANDLE&&(m=l);if(!d||0==m||m==f.bends.length-1||m==mxEvent.LABEL_HANDLE){if(m==mxEvent.LABEL_HANDLE||0==m||null!=c.visibleSourceState||m==f.bends.length-1||null!=c.visibleTargetState){if(!d&&m!=mxEvent.LABEL_HANDLE){d=
+c.absolutePoints;if(null!=d&&(null==p&&null==m||p==mxEdgeStyle.OrthConnector))m=l,null==m&&(m=new mxRectangle(e.x,e.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,d[0].x,d[0].y)?m=0:mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y)?m=f.bends.length-1:null!=p&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?m=2:(m=mxUtils.findNearestSegment(c,e.x,e.y),m=null==p?mxEvent.VIRTUAL_HANDLE-
m:m+1));null==m&&(m=mxEvent.VIRTUAL_HANDLE)}f.start(a.getGraphX(),a.getGraphX(),m);l=e=g=k=null;n=!1;a.consume();this.graphHandler.reset()}}else if(d&&(null!=c.visibleSourceState||null!=c.visibleTargetState))this.graphHandler.reset(),a.consume()}}}else if(c=a.getState(),null!=c&&this.model.isEdge(c.cell)){f=null;d=c.absolutePoints;if(null!=d)if(m=new mxRectangle(a.getGraphX(),a.getGraphY()),m.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,
-a.getGraphX(),a.getGraphY()))f="move";else if(mxUtils.contains(m,d[0].x,d[0].y)||mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y))f="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)u=this.view.getEdgeStyle(c),f="crosshair",u!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(u=mxUtils.findNearestSegment(c,a.getGraphX(),a.getGraphY()),u<d.length-1&&0<=u&&(f=0==Math.round(d[u].x-d[u+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}}),mouseUp:mxUtils.bind(this,function(b,
+a.getGraphX(),a.getGraphY()))f="move";else if(mxUtils.contains(m,d[0].x,d[0].y)||mxUtils.contains(m,d[d.length-1].x,d[d.length-1].y))f="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)p=this.view.getEdgeStyle(c),f="crosshair",p!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(p=mxUtils.findNearestSegment(c,a.getGraphX(),a.getGraphY()),p<d.length-1&&0<=p&&(f=0==Math.round(d[p].x-d[p+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}}),mouseUp:mxUtils.bind(this,function(b,
a){l=e=g=k=null})})}this.cellRenderer.getLabelValue=function(b){var a=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);b.view.graph.isHtmlLabel(b.cell)&&(a=1!=b.style.html?mxUtils.htmlEntities(a,!1):b.view.graph.sanitizeHtml(a));return a};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=
!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(b,a){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var a=[],d=this.graph.pageFormat,c=this.graph.pageScale,e=d.width*c,d=d.height*
c,c=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)a.push(new mxRectangle(((g.x+k)*e+c.x)*f,(g.y*d+c.y)*f,e*f,d*f));for(k=0;k<g.height;k++)a.push(new mxRectangle((g.x*e+c.x)*f,((g.y+k)*d+c.y)*f,e*f,d*f));b=a.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,a){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor=
"#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(b){for(var a=mxGraphHandler.prototype.getCells.apply(this,arguments),d=[],c=0;c<a.length;c++){var e=this.graph.view.getState(a[c]),e=null!=e?e.style:this.graph.getCellStyle(a[c]);"1"==mxUtils.getValue(e,"part","0")?(e=this.graph.model.getParent(a[c]),this.graph.model.isVertex(e)&&0>mxUtils.indexOf(a,e)&&d.push(e)):
-d.push(a[c])}return d};this.connectionHandler.createTargetVertex=function(b,a){var d=this.graph.view.getState(a),d=null!=d?d.style:this.graph.getCellStyle(a);mxUtils.getValue(d,"part",!1)&&(d=this.graph.model.getParent(a),this.graph.model.isVertex(d)&&(a=d));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var p=new mxRubberband(this);this.getRubberband=function(){return p};var q=(new Date).getTime(),r=0,s=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=
-function(){var b=this.currentState;s.apply(this,arguments);b!=this.currentState?(q=(new Date).getTime(),r=0):r=(new Date).getTime()-q};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var u=this.isToggleEvent;this.isToggleEvent=function(b){return u.apply(this,
-arguments)||mxEvent.isShiftDown(b)};var v=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(b){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var A=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(A=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
-function(){this.isEnabled()&&(this.container.style.cursor=A)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var y=this.click;this.click=function(b){if(!this.isEnabled()&&!b.isConsumed()){var a=b.getCell();null!=a&&(a=this.getLinkForCell(a),null!=a&&window.open(a))}else return y.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(b){if(this.isEnabled())return x.apply(this,arguments);if(null!=
-this.getLinkForCell(b))return"pointer"};this.selectRegion=function(b,a){var d=this.getAllCells(b.x,b.y,b.width,b.height);this.selectCellsForEvent(d,a);return d};this.getAllCells=function(b,a,d,c,e,f){f=null!=f?f:[];if(0<d||0<c){var g=this.getModel(),k=b+d,l=a+c;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var n=g.getChildCount(e),m=0;m<n;m++){var u=g.getChildAt(e,m),t=this.view.getState(u);if(null!=t&&this.isCellVisible(u)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var s=
-mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(t=mxUtils.getBoundingBox(t,s));(g.isEdge(u)||g.isVertex(u))&&t.x>=b&&(t.y+t.height<=l&&t.y>=a&&t.x+t.width<=k)&&f.push(u);this.getAllCells(b,a,d,c,u,f)}}}return f};var D=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,a,d){return this.graph.isCellSelected(b)?!1:D.apply(this,arguments)};this.isCellLocked=function(b){for(b=this.view.getState(b);null!=b;){if("1"==mxUtils.getValue(b.style,
-"locked","0"))return!0;b=this.view.getState(this.model.getParent(b.cell))}return!1};var z=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,a){if("mouseDown"==a.getProperty("eventName")){var d=a.getProperty("event").getState();z=null!=d&&!this.isSelectionEmpty()&&!this.isCellSelected(d.cell)?this.getSelectionCells():null}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,a){if(!mxEvent.isMultiTouchEvent(a)){var d=a.getProperty("event"),c=a.getProperty("cell");
-null==c?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),p.start(d.x,d.y)):null!=z?this.addSelectionCells(z):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);z=null;a.consume()}}));this.connectionHandler.selectCells=function(b,a){this.graph.setSelectionCell(a||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,a){return a&&b.view.graph.isCellSelected(b.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
+d.push(a[c])}return d};this.connectionHandler.createTargetVertex=function(b,a){var d=this.graph.view.getState(a),d=null!=d?d.style:this.graph.getCellStyle(a);mxUtils.getValue(d,"part",!1)&&(d=this.graph.model.getParent(a),this.graph.model.isVertex(d)&&(a=d));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var p=new mxRubberband(this);this.getRubberband=function(){return p};var r=(new Date).getTime(),s=0,q=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=
+function(){var b=this.currentState;q.apply(this,arguments);b!=this.currentState?(r=(new Date).getTime(),s=0):s=(new Date).getTime()-r};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<s||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var u=this.isToggleEvent;this.isToggleEvent=function(b){return u.apply(this,
+arguments)||mxEvent.isShiftDown(b)};var v=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(b){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var z=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(z=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
+function(){this.isEnabled()&&(this.container.style.cursor=z)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var y=this.click;this.click=function(b){if(!this.isEnabled()&&!b.isConsumed()){var a=b.getCell();null!=a&&(a=this.getLinkForCell(a),null!=a&&window.open(a))}else return y.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(b){if(this.isEnabled())return x.apply(this,arguments);if(null!=
+this.getLinkForCell(b))return"pointer"};this.selectRegion=function(b,a){var d=this.getAllCells(b.x,b.y,b.width,b.height);this.selectCellsForEvent(d,a);return d};this.getAllCells=function(b,a,d,c,e,f){f=null!=f?f:[];if(0<d||0<c){var g=this.getModel(),k=b+d,l=a+c;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var n=g.getChildCount(e),m=0;m<n;m++){var p=g.getChildAt(e,m),t=this.view.getState(p);if(null!=t&&this.isCellVisible(p)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var u=
+mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=u&&(t=mxUtils.getBoundingBox(t,u));(g.isEdge(p)||g.isVertex(p))&&t.x>=b&&(t.y+t.height<=l&&t.y>=a&&t.x+t.width<=k)&&f.push(p);this.getAllCells(b,a,d,c,p,f)}}}return f};var D=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,a,d){return this.graph.isCellSelected(b)?!1:D.apply(this,arguments)};this.isCellLocked=function(b){for(b=this.view.getState(b);null!=b;){if("1"==mxUtils.getValue(b.style,
+"locked","0"))return!0;b=this.view.getState(this.model.getParent(b.cell))}return!1};var A=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,a){if("mouseDown"==a.getProperty("eventName")){var d=a.getProperty("event").getState();A=null!=d&&!this.isSelectionEmpty()&&!this.isCellSelected(d.cell)?this.getSelectionCells():null}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,a){if(!mxEvent.isMultiTouchEvent(a)){var d=a.getProperty("event"),c=a.getProperty("cell");
+null==c?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),p.start(d.x,d.y)):null!=A?this.addSelectionCells(A):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);A=null;a.consume()}}));this.connectionHandler.selectCells=function(b,a){this.graph.setSelectionCell(a||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,a){return a&&b.view.graph.isCellSelected(b.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var B=this.updateMouseEvent;this.updateMouseEvent=function(b){b=B.apply(this,arguments);this.isCellLocked(b.getCell())&&(b.state=null);return b}}};
Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkTarget="_blank";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;
Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};
@@ -2380,8 +2380,8 @@ Graph.prototype.isLabelMovable=function(a){var c=this.view.getState(a),c=null!=c
Graph.prototype.getGlobalVariable=function(a){var c=null;"date"==a?c=(new Date).toLocaleDateString():"time"==a?c=(new Date).toLocaleTimeString():"timestamp"==a?c=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),c=this.formatDate(new Date,a));return c};
Graph.prototype.formatDate=function(a,c,f){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,b=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,e=/[^-+\dA-Z]/g,g=function(b,a){b=String(b);for(a=a||2;b.length<a;)b="0"+b;return b};1==arguments.length&&"[object String]"==Object.prototype.toString.call(a)&&
-!/\d/.test(a)&&(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(d.masks[c]||c||d.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),f=!0);var k=f?"getUTC":"get",l=a[k+"Date"](),n=a[k+"Day"](),m=a[k+"Month"](),p=a[k+"FullYear"](),q=a[k+"Hours"](),r=a[k+"Minutes"](),s=a[k+"Seconds"](),k=a[k+"Milliseconds"](),t=f?0:a.getTimezoneOffset(),u={d:l,dd:g(l),ddd:d.i18n.dayNames[n],dddd:d.i18n.dayNames[n+7],m:m+1,mm:g(m+1),mmm:d.i18n.monthNames[m],mmmm:d.i18n.monthNames[m+
-12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:g(q%12||12),H:q,HH:g(q),M:r,MM:g(r),s:s,ss:g(s),l:g(k,3),L:g(99<k?Math.round(k/10):k),t:12>q?"a":"p",tt:12>q?"am":"pm",T:12>q?"A":"P",TT:12>q?"AM":"PM",Z:f?"UTC":(String(a).match(b)||[""]).pop().replace(e,""),o:(0<t?"-":"+")+g(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in u?u[b]:b.slice(1,
+!/\d/.test(a)&&(c=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");c=String(d.masks[c]||c||d.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),f=!0);var k=f?"getUTC":"get",l=a[k+"Date"](),n=a[k+"Day"](),m=a[k+"Month"](),p=a[k+"FullYear"](),r=a[k+"Hours"](),s=a[k+"Minutes"](),q=a[k+"Seconds"](),k=a[k+"Milliseconds"](),t=f?0:a.getTimezoneOffset(),u={d:l,dd:g(l),ddd:d.i18n.dayNames[n],dddd:d.i18n.dayNames[n+7],m:m+1,mm:g(m+1),mmm:d.i18n.monthNames[m],mmmm:d.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:r%12||12,hh:g(r%12||12),H:r,HH:g(r),M:s,MM:g(s),s:q,ss:g(q),l:g(k,3),L:g(99<k?Math.round(k/10):k),t:12>r?"a":"p",tt:12>r?"am":"pm",T:12>r?"A":"P",TT:12>r?"AM":"PM",Z:f?"UTC":(String(a).match(b)||[""]).pop().replace(e,""),o:(0<t?"-":"+")+g(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in u?u[b]:b.slice(1,
b.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var c=this.getModel(),f=c.getChildCount(c.root),d=0;d<f;d++)(function(b){var d=document.createElement("div");d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.style.padding="2px";d.style.whiteSpace="nowrap";var f=document.createElement("input");f.setAttribute("type","checkbox");c.isVisible(b)&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d.appendChild(f);var k=b.value||
mxResources.get("background")||"Background";d.setAttribute("title",k);mxUtils.write(d,k);a.appendChild(d);mxEvent.addListener(f,"click",function(){null!=f.getAttribute("checked")?f.removeAttribute("checked"):f.setAttribute("checked","checked");c.setVisible(b,f.checked)})})(c.getChildAt(c.root,d));return a};
@@ -2390,9 +2390,9 @@ match.index)+(null!=e?e:b));d=match.index+b.length}}f.push(c.substring(d));retur
Graph.prototype.connectVertex=function(a,c,f,d,b){var e=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);c==mxConstants.DIRECTION_NORTH?(e.x+=a.geometry.width/2,e.y-=f):c==mxConstants.DIRECTION_SOUTH?(e.x+=a.geometry.width/2,e.y+=a.geometry.height+f):(e.x=c==mxConstants.DIRECTION_WEST?e.x-f:e.x+(a.geometry.width+f),e.y+=a.geometry.height/2);f=this.view.getState(this.model.getParent(a));
var g=this.view.scale,k=this.view.translate,l=k.x*g,k=k.y*g;this.model.isVertex(f.cell)&&(l=f.x,k=f.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(e.x+=a.parent.geometry.x,e.y+=a.parent.geometry.y);f=mxEvent.isControlDown(d)&&!b?null:this.getCellAt(l+e.x*g,k+e.y*g);this.model.isAncestor(f,a)&&(f=null);for(g=f;null!=g;){if(this.isCellLocked(g)){f=null;break}g=this.model.getParent(g)}null!=f&&(g=this.view.getState(a),l=this.view.getState(f),null!=g&&null!=l&&mxUtils.intersects(g,l)&&(f=null));
if(b=!mxEvent.isShiftDown(d)||b)c==mxConstants.DIRECTION_NORTH?e.y-=a.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?e.y+=a.geometry.height/2:e.x=c==mxConstants.DIRECTION_WEST?e.x-a.geometry.width/2:e.x+a.geometry.width/2;null!=f&&!this.isCellConnectable(f)&&(g=this.getModel().getParent(f),this.getModel().isVertex(g)&&this.isCellConnectable(g)&&(f=g));if(f==a||this.model.isEdge(f)||!this.isCellConnectable(f))f=null;g=[];this.model.beginUpdate();try{l=f;if(null==l&&b){for(var k=a,n=this.getCellGeometry(a);null!=
-n&&n.relative;)k=this.getModel().getParent(k),n=this.getCellGeometry(k);var m=this.view.getState(k),p=null!=m?m.style:this.getCellStyle(k);if(mxUtils.getValue(p,"part",!1)){var q=this.model.getParent(k);this.model.isVertex(q)&&(k=q)}l=this.duplicateCells([k],!1)[0];n=this.getCellGeometry(l);null!=n&&(n.x=e.x-n.width/2,n.y=e.y-n.height/2)}n=null;null!=this.layoutManager&&(n=this.layoutManager.getLayout(this.model.getParent(a)));var r=mxEvent.isControlDown(d)&&b||null==f&&null!=n&&n.constructor==mxStackLayout?
-null:this.insertEdge(this.model.getParent(a),null,"",a,l,this.createCurrentEdgeStyle());if(null!=r&&this.connectionHandler.insertBeforeSource){var s=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=r.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==r.parent&&(s=d.parent.getIndex(d),d.parent.insert(r,s))}null==f&&null!=l&&(null!=n&&null!=a.parent&&n.constructor==mxStackLayout&&c==mxConstants.DIRECTION_WEST)&&(s=a.parent.getIndex(a),a.parent.insert(l,
-s));null!=r&&g.push(r);null==f&&null!=l&&g.push(l);null==l&&null!=r&&r.geometry.setTerminalPoint(e,!1);null!=r&&this.fireEvent(new mxEventObject("cellsInserted","cells",[r]))}finally{this.model.endUpdate()}return g};
+n&&n.relative;)k=this.getModel().getParent(k),n=this.getCellGeometry(k);var m=this.view.getState(k),p=null!=m?m.style:this.getCellStyle(k);if(mxUtils.getValue(p,"part",!1)){var r=this.model.getParent(k);this.model.isVertex(r)&&(k=r)}l=this.duplicateCells([k],!1)[0];n=this.getCellGeometry(l);null!=n&&(n.x=e.x-n.width/2,n.y=e.y-n.height/2)}n=null;null!=this.layoutManager&&(n=this.layoutManager.getLayout(this.model.getParent(a)));var s=mxEvent.isControlDown(d)&&b||null==f&&null!=n&&n.constructor==mxStackLayout?
+null:this.insertEdge(this.model.getParent(a),null,"",a,l,this.createCurrentEdgeStyle());if(null!=s&&this.connectionHandler.insertBeforeSource){var q=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=s.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==s.parent&&(q=d.parent.getIndex(d),d.parent.insert(s,q))}null==f&&null!=l&&(null!=n&&null!=a.parent&&n.constructor==mxStackLayout&&c==mxConstants.DIRECTION_WEST)&&(q=a.parent.getIndex(a),a.parent.insert(l,
+q));null!=s&&g.push(s);null==f&&null!=l&&g.push(l);null==l&&null!=s&&s.geometry.setTerminalPoint(e,!1);null!=s&&this.fireEvent(new mxEventObject("cellsInserted","cells",[s]))}finally{this.model.endUpdate()}return g};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),c=[],f="",d;for(d in this.model.cells)if(f=this.model.cells[d],this.model.isVertex(f)||this.model.isEdge(f))this.isHtmlLabel(f)?(a.innerHTML=this.getLabel(f),f=mxUtils.extractTextWithWhitespace([a])):f=this.getLabel(f),f=mxUtils.trim(f.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<f.length&&c.push(f);return c.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var c=a.getAttribute("placeholder"),f=a,d=null;null==d&&null!=f;)null!=f.value&&"object"==typeof f.value&&(d=f.hasAttribute(c)?null!=f.getAttribute(c)?f.getAttribute(c):"":null),f=this.model.getParent(f);return d||""}return a.value.getAttribute("label")}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
@@ -2448,8 +2448,8 @@ HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.get
HoverIcons.prototype.update=function(a,c,f){if(this.graph.connectionArrowsEnabled){var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){!this.isActive()&&!this.graph.isMouseDown&&!this.graph.panningHandler.isActive()&&(this.prev=a,this.update(a,c,f))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-
this.startTime);this.setDisplay("");if(null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,c,f))this.reset(!1);else if(null!=this.currentState||d>this.activationDelay)if(this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==c||null==f||!mxUtils.contains(this.bbox,c,f)))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(d,b,c,f){if(null!=b&&null!=d&&("1"==b.style.snapToPoint||"1"==d.style.snapToPoint)){b=this.getTerminalPort(d,b,f);var k=this.getNextPoint(d,c,f),l=this.graph.isOrthogonal(d),n=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=n)var p=Math.cos(-n),q=Math.sin(-n),k=mxUtils.getRotatedPoint(k,p,q,m);p=parseFloat(d.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);p+=parseFloat(d.style[f?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(b,k,0==n&&l,p);0!=n&&(p=Math.cos(n),q=Math.sin(n),k=mxUtils.getRotatedPoint(k,p,q,m));if(null!=b){n=this.graph.getAllConnectionConstraints(b);l=m=null;for(p=0;p<n.length;p++)if(q=this.graph.getConnectionPoint(b,n[p]),null!=q){var r=(q.x-k.x)*(q.x-k.x)+(q.y-k.y)*(q.y-k.y);if(null==l||r<l)m=q,l=r}null!=m&&(k=m)}d.setAbsoluteTerminalPoint(k,f)}else a.apply(this,
+(function(){var a=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(d,b,c,f){if(null!=b&&null!=d&&("1"==b.style.snapToPoint||"1"==d.style.snapToPoint)){b=this.getTerminalPort(d,b,f);var k=this.getNextPoint(d,c,f),l=this.graph.isOrthogonal(d),n=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=n)var p=Math.cos(-n),r=Math.sin(-n),k=mxUtils.getRotatedPoint(k,p,r,m);p=parseFloat(d.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);p+=parseFloat(d.style[f?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(b,k,0==n&&l,p);0!=n&&(p=Math.cos(n),r=Math.sin(n),k=mxUtils.getRotatedPoint(k,p,r,m));if(null!=b){n=this.graph.getAllConnectionConstraints(b);l=m=null;for(p=0;p<n.length;p++)if(r=this.graph.getConnectionPoint(b,n[p]),null!=r){var s=(r.x-k.x)*(r.x-k.x)+(r.y-k.y)*(r.y-k.y);if(null==l||s<l)m=r,l=s}null!=m&&(k=m)}d.setAbsoluteTerminalPoint(k,f)}else a.apply(this,
arguments)};var c=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,e){var f=c.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=e.state&&(f=e.state.view.graph.replacePlaceholders(e.state.cell,f));return f};var f=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"stencil("==b.substring(0,
8))try{var c=b.substring(8,b.length-1),g=mxUtils.parseXml(a.view.graph.decompress(c));return new mxShape(new mxStencil(g.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return f.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.getStencil=function(a){var c=mxStencilRegistry.stencils[a];if(null==c&&null==mxCellRenderer.prototype.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var f=mxStencilRegistry.getBasenameForStencil(a);if(null!=f){c=mxStencilRegistry.libraries[f];if(null!=c){if(null==mxStencilRegistry.packages[f]){mxStencilRegistry.packages[f]=1;for(f=0;f<c.length;f++){var d=c[f];if(".xml"==d.toLowerCase().substring(d.length-4,d.length))mxStencilRegistry.loadStencilSet(d,null);else if(".js"==d.toLowerCase().substring(d.length-
@@ -2469,34 +2469,34 @@ f[1]),2<f.length?"0"!=f[2]:!0))}}catch(g){}return c}if(null!=b.shape)if(null!=b.
this.setCellStyles(mxConstants.STYLE_ELBOW,a,[b]))}};Graph.prototype.isValidRoot=function(b){for(var a=this.model.getChildCount(b),d=0,c=0;c<a;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null!=e&&!e.relative&&d++)}return 0<d||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b){var a=this.view.getState(b),a=null!=a?a.style:this.getCellStyle(b);return"1"!=mxUtils.getValue(a,"part","0")&&(this.isContainer(b)||mxGraph.prototype.isValidDropTarget.apply(this,
arguments)&&"0"!=mxUtils.getValue(a,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var a=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(a&&null!=b&&null!=this.layoutManager){var d=this.model.getParent(b);null!=d&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(a=!1))}return a};Graph.prototype.getPreferredSizeForCell=
function(b){var a=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=a&&(a.width+=10,a.height+=4,this.gridEnabled&&(a.width=this.snap(a.width),a.height=this.snap(a.height)));return a};Graph.prototype.turnShapes=function(b){var a=this.getModel(),d=[];a.beginUpdate();try{for(var c=0;c<b.length;c++){var e=b[c];if(a.isEdge(e)){var f=a.getTerminal(e,!0),g=a.getTerminal(e,!1);a.setTerminal(e,g,!0);a.setTerminal(e,f,!1);var k=a.getGeometry(e);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();
-var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);a.setGeometry(e,k);var m=this.view.getState(e),u=this.view.getState(f),t=this.view.getState(g);if(null!=m){var s=null!=u?this.getConnectionConstraint(m,u,!0):null,v=null!=t?this.getConnectionConstraint(m,t,!1):null;this.setConnectionConstraint(e,f,!0,v);this.setConnectionConstraint(e,g,!1,s)}d.push(e)}}else if(a.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
-2;k.y+=k.height/2-k.width/2;var r=k.width;k.width=k.height;k.height=r;a.setGeometry(e,k);var q=this.view.getState(e);if(null!=q){var p=q.style[mxConstants.STYLE_DIRECTION]||"east";"east"==p?p="south":"south"==p?p="west":"west"==p?p="north":"north"==p&&(p="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,p,[e])}d.push(e)}}}finally{a.endUpdate()}return d};Graph.prototype.processChange=function(b){mxGraph.prototype.processChange.apply(this,arguments);if(b instanceof mxValueChange&&null!=b.cell.value&&
+var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);a.setGeometry(e,k);var m=this.view.getState(e),p=this.view.getState(f),t=this.view.getState(g);if(null!=m){var u=null!=p?this.getConnectionConstraint(m,p,!0):null,q=null!=t?this.getConnectionConstraint(m,t,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,u)}d.push(e)}}else if(a.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
+2;k.y+=k.height/2-k.width/2;var r=k.width;k.width=k.height;k.height=r;a.setGeometry(e,k);var v=this.view.getState(e);if(null!=v){var s=v.style[mxConstants.STYLE_DIRECTION]||"east";"east"==s?s="south":"south"==s?s="west":"west"==s?s="north":"north"==s&&(s="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,s,[e])}d.push(e)}}}finally{a.endUpdate()}return d};Graph.prototype.processChange=function(b){mxGraph.prototype.processChange.apply(this,arguments);if(b instanceof mxValueChange&&null!=b.cell.value&&
"object"==typeof b.cell.value){var a=this.model.getDescendants(b.cell);if(0<a.length)for(var d=0;d<a.length;d++)this.isReplacePlaceholders(a[d])&&this.view.invalidate(a[d],!1,!1)}};Graph.prototype.cellLabelChanged=function(b,a,d){a=this.zapGremlins(a);this.model.beginUpdate();try{if(null!=b.value&&"object"==typeof b.value){if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),e=b;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==
typeof e.value&&e.hasAttribute(c)){this.setAttributeForCell(e,c,a);break}e=this.model.getParent(e)}var f=b.value.cloneNode(!0);f.setAttribute("label",a);a=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.removeCellsAfterUngroup=function(b){for(var a=[],d=0;d<b.length;d++)if(this.isCellDeletable(b[d])){var c=this.view.getState(b[d]);if(null!=c){var e=mxUtils.getValue(c.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(c.style,
mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);e==mxConstants.NONE&&c==mxConstants.NONE&&a.push(b[d])}}b=a;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(b,a){this.setAttributeForCell(b,"link",a)};Graph.prototype.setTooltipForCell=function(b,a){this.setAttributeForCell(b,"tooltip",a)};Graph.prototype.setAttributeForCell=function(b,a,d){var c=null;null!=b.value&&"object"==typeof b.value?c=b.value.cloneNode(!0):(c=mxUtils.createXmlDocument().createElement("UserObject"),
c.setAttribute("label",b.value||""));null!=d&&0<d.length?c.setAttribute(a,d):c.removeAttribute(a);this.model.setValue(b,c)};Graph.prototype.getDropTarget=function(b,a,d,c){this.getModel();if(mxEvent.isAltDown(a))return null;for(var e=0;e<b.length;e++)if(this.model.isEdge(this.model.getParent(b[e])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,b);this.firstClickState=b.getState();this.firstClickSource=
b.getSource()};Graph.prototype.dblClick=function(b,a){if(this.isEnabled()){var d=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b));if(null!=b&&!this.model.isVertex(a)){var c=this.model.isEdge(a)?this.view.getState(a):null,e=mxEvent.getSource(b);if(this.firstClickState==c&&this.firstClickSource==e&&(null==c||null==c.text||null==c.text.node||!mxUtils.contains(c.text.boundingBox,d.x,d.y)&&!mxUtils.isAncestorNode(c.text.node,mxEvent.getSource(b))))if(null==c&&!this.isCellLocked(this.getDefaultParent())||
null!=c&&!this.isCellLocked(c.cell))if(null!=c||mxClient.IS_VML&&e==this.view.getCanvas()||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)a=this.addText(d.x,d.y,c)}mxGraph.prototype.dblClick.call(this,b,a)}};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),a=this.container.scrollLeft/this.view.scale-this.view.translate.x,d=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var c=this.getPageLayout(),e=this.getPageSize(),a=Math.max(a,c.x*
-e.width),d=Math.max(d,c.y*e.height);return new mxPoint(this.snap(a+b),this.snap(d+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,a=this.getGraphBounds(),d=this.getInsertPoint(),c=this.snap(Math.max(d.x,a.x/b.scale-b.translate.x+(0==a.width?this.gridSize:0))),b=this.snap(Math.max(d.y,(a.y+a.height)/b.scale-b.translate.y+(0==a.height?1:2)*this.gridSize));return new mxPoint(c,b)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(b,a,d){var c=
-new mxCell;c.value="Text";c.style="text;html\x3d1;resizable\x3d0;points\x3d[];";c.geometry=new mxGeometry(0,0,0,0);c.vertex=!0;if(null!=d){c.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";c.geometry.relative=!0;c.connectable=!1;var e=this.view.getRelativePoint(d,b,a);c.geometry.x=Math.round(1E4*e.x)/1E4;c.geometry.y=Math.round(e.y);c.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(d,c.geometry),f=this.view.scale;c.geometry.offset=new mxPoint(Math.round((b-
-e.x)/f),Math.round((a-e.y)/f))}else c.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,c.geometry.width=40,c.geometry.height=20,c.geometry.x=Math.round(b/this.view.scale)-e.x,c.geometry.y=Math.round(a/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([c],null!=d?d.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[c])),this.autoSizeCell(c)}finally{this.getModel().endUpdate()}return c};Graph.prototype.getLinkUrl=function(b){return b};
-Graph.prototype.getAbsoluteUrl=function(b){null!=b&&this.isRelativeUrl(b)&&(b="/"==b.charAt(0)?this.domainUrl+b:this.domainPathUrl+b);return b};Graph.prototype.isBlankLink=function(b){var a=this.domainUrl;return"self"!=urlParams.target&&null!=b&&"#"!=b.charAt(0)&&b.substring(0,a.length)!=a&&!this.isRelativeUrl(b)};Graph.prototype.isRelativeUrl=function(b){return!/^(?:[a-z]+:)?\/\//i.test(b)&&"data:image"!=b.substring(0,10)&&"mailto:"!=b.substring(0,7)};Graph.prototype.addClickHandler=function(b,a,
-d){var c=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var d=0;d<b.length;d++){var c=this.getLinkUrl(b[d].getAttribute("href"));b[d].setAttribute("href",c);null!=c&&!this.isBlankLink(c)&&(window!=window.top?(b[d].setAttribute("target","_top"),c.charAt("#")?b[d].setAttribute("href",this.baseUrl+c):b[d].setAttribute("href",this.getAbsoluteUrl(c))):"_blank"==b[d].getAttribute("target")&&b[d].removeAttribute("target"),null!=a&&mxEvent.addListener(b[d],"click",
-a))}});this.model.addListener(mxEvent.CHANGE,c);c();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(g,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){b=g.view.getState(b.getCell());b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(b,a){this.startX=
-a.getGraphX();this.startY=a.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(a)},mouseMove:function(b,a){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-a.getGraphX()),c=Math.abs(this.startY-a.getGraphY());(d>f||c>f)&&this.clear()}}else"a"==a.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&(a.getState()==
-this.currentState||null==a.getState())&&g.intersects(this.currentState,a.getGraphX(),a.getGraphY())||this.updateCurrentState(a)},mouseUp:function(b,c){var e=c.getSource(),k=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!c.isConsumed()&&(null==c.getState()||!c.isSource(c.getState().control))&&(mxEvent.isLeftMouseButton(c.getEvent())||mxEvent.isTouchEvent(c.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=a&&a(c.getEvent()),"#"==k.charAt(0)?window!=window.top?window.open(g.baseUrl+
-k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),c.consume()):null!=d&&!c.isConsumed()&&(Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f)&&d(c.getEvent())},activate:function(b){var a=g.getLinkForCell(b.cell);this.currentLink=null!=a?g.getLinkUrl(a):null;null!=this.currentLink&&(g.container.style.cursor="pointer",
-null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(b){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,a){b=null!=b?b:this.getSelectionCells();a=null!=a?a:!0;b=this.model.getTopmostCells(b);var d=this.getModel(),c=this.gridSize,e=[];d.beginUpdate();
+e.width),d=Math.max(d,c.y*e.height);return new mxPoint(this.snap(a+b),this.snap(d+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,a=this.getGraphBounds(),d=this.getInsertPoint(),c=this.snap(Math.round(Math.max(d.x,a.x/b.scale-b.translate.x+(0==a.width?this.gridSize:0)))),b=this.snap(Math.round(Math.max(d.y,(a.y+a.height)/b.scale-b.translate.y+(0==a.height?1:2)*this.gridSize)));return new mxPoint(c,b)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(b,a,d){var c=new mxCell;c.value="Text";c.style="text;html\x3d1;resizable\x3d0;points\x3d[];";c.geometry=new mxGeometry(0,0,0,0);c.vertex=!0;if(null!=d){c.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";c.geometry.relative=!0;c.connectable=!1;var e=this.view.getRelativePoint(d,b,a);c.geometry.x=Math.round(1E4*e.x)/1E4;c.geometry.y=Math.round(e.y);c.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(d,c.geometry),f=this.view.scale;c.geometry.offset=
+new mxPoint(Math.round((b-e.x)/f),Math.round((a-e.y)/f))}else c.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,c.geometry.width=40,c.geometry.height=20,c.geometry.x=Math.round(b/this.view.scale)-e.x,c.geometry.y=Math.round(a/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([c],null!=d?d.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[c])),this.autoSizeCell(c)}finally{this.getModel().endUpdate()}return c};Graph.prototype.getLinkUrl=
+function(b){return b};Graph.prototype.getAbsoluteUrl=function(b){null!=b&&this.isRelativeUrl(b)&&(b="/"==b.charAt(0)?this.domainUrl+b:this.domainPathUrl+b);return b};Graph.prototype.isBlankLink=function(b){var a=this.domainUrl;return"self"!=urlParams.target&&null!=b&&"#"!=b.charAt(0)&&b.substring(0,a.length)!=a&&!this.isRelativeUrl(b)};Graph.prototype.isRelativeUrl=function(b){return!/^(?:[a-z]+:)?\/\//i.test(b)&&"data:image"!=b.substring(0,10)&&"mailto:"!=b.substring(0,7)};Graph.prototype.addClickHandler=
+function(b,a,d){var c=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var d=0;d<b.length;d++){var c=this.getLinkUrl(b[d].getAttribute("href"));b[d].setAttribute("href",c);null!=c&&!this.isBlankLink(c)&&(window!=window.top?(b[d].setAttribute("target","_top"),c.charAt("#")?b[d].setAttribute("href",this.baseUrl+c):b[d].setAttribute("href",this.getAbsoluteUrl(c))):"_blank"==b[d].getAttribute("target")&&b[d].removeAttribute("target"),null!=a&&mxEvent.addListener(b[d],
+"click",a))}});this.model.addListener(mxEvent.CHANGE,c);c();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(g,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){b=g.view.getState(b.getCell());b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(b,
+a){this.startX=a.getGraphX();this.startY=a.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(a)},mouseMove:function(b,a){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-a.getGraphX()),c=Math.abs(this.startY-a.getGraphY());(d>f||c>f)&&this.clear()}}else"a"==a.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&
+(a.getState()==this.currentState||null==a.getState())&&g.intersects(this.currentState,a.getGraphX(),a.getGraphY())||this.updateCurrentState(a)},mouseUp:function(b,c){var e=c.getSource(),k=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!c.isConsumed()&&(null==c.getState()||!c.isSource(c.getState().control))&&(mxEvent.isLeftMouseButton(c.getEvent())||mxEvent.isTouchEvent(c.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=a&&a(c.getEvent()),"#"==k.charAt(0)?window!=window.top?
+window.open(g.baseUrl+k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),c.consume()):null!=d&&!c.isConsumed()&&(Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f)&&d(c.getEvent())},activate:function(b){var a=g.getLinkForCell(b.cell);this.currentLink=null!=a?g.getLinkUrl(a):null;null!=this.currentLink&&(g.container.style.cursor=
+"pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(b){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,a){b=null!=b?b:this.getSelectionCells();a=null!=a?a:!0;b=this.model.getTopmostCells(b);var d=this.getModel(),c=this.gridSize,e=[];d.beginUpdate();
try{for(var f=this.cloneCells(b,!1),g=0;g<b.length;g++){var k=d.getParent(b[g]),l=this.moveCells([f[g]],c,c,!1,k)[0];e.push(l);if(a)d.add(k,f[g]);else{var n=k.getIndex(b[g]);d.add(k,f[g],n+1)}}}finally{d.endUpdate()}return e};Graph.prototype.insertImage=function(b,a,d){if(null!=b){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<c.length;f++)e.push(c[f]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(f=
b.length-1;0<=f;f--)if(0==f||b[f]!=e[f-1]){b[f].setAttribute("width",a);b[f].setAttribute("height",d);break}}};Graph.prototype.isCellResizable=function(b){var a=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(b),d=null!=d?d.style:this.getCellStyle(b);return a||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(b,a){null==a&&(a=this.getSelectionCells());if(null!=a&&1<a.length){for(var d=
[],c=null,e=null,f=0;f<a.length;f++)if(this.getModel().isVertex(a[f])){var g=this.view.getState(a[f]);if(null!=g){var k=b?g.getCenterX():g.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;d.push(g)}}if(2<d.length){d.sort(function(a,d){return b?a.x-d.x:a.y-d.y});g=this.view.translate;k=this.view.scale;e=e/k-(b?g.x:g.y);c=c/k-(b?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(c-e)/(d.length-1),c=e,f=1;f<d.length-1;f++){var n=this.getCellGeometry(d[f].cell),c=c+l;null!=n&&(n=n.clone(),
b?n.x=Math.round(c-n.width/2):n.y=Math.round(c-n.height/2),this.getModel().setGeometry(d[f].cell,n))}}finally{this.getModel().endUpdate()}}}return a};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.encodeCells=function(b){for(var a=this.cloneCells(b),d=0;d<a.length;d++){var c=this.view.getState(b[d]);if(null!=c){var e=this.getCellGeometry(a[d]);null!=e&&e.relative&&(e.relative=!1,e.x=c.x/c.view.scale-c.view.translate.x,
e.y=c.y/c.view.scale-c.view.translate.y)}}for(var c=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),0),d=0;d<b.length;d++)e.add(f,a[d]);return c.encode(e)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,a){return this.getLinkForCell(b.cell)});return b};Graph.prototype.getSvg=function(b,a,d,c,e,f,g){a=null!=a?a:1;d=null!=d?d:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;c=c?this.view.getBackgroundPageBounds():f?
-this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==c)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(b,a){(f||b.view.graph.isCellSelected(b.cell))&&l.apply(this,arguments)};var n=this.view.scale,m=mxUtils.createXmlDocument(),u=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=b&&(null!=u.style?u.style.backgroundColor=b:u.setAttribute("style","background-color:"+
-b));null==m.createElementNS?(u.setAttribute("xmlns",mxConstants.NS_SVG),u.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):u.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=a/n;u.setAttribute("width",Math.ceil(c.width*b)+2*d+"px");u.setAttribute("height",Math.ceil(c.height*b)+2*d+"px");u.setAttribute("version","1.1");var t=u;e&&(t=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),t.setAttribute("transform","translate(0.5,0.5)"),
-u.appendChild(t));m.appendChild(u);m=new mxSvgCanvas2D(t);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((d/a-c.x)/n),Math.floor((d/a-c.y)/n));var s=m.createAlternateContent;m.createAlternateContent=function(b,a,d,c,e,f,g,k,l,n,m,u,t){var v=this.state;if(null!=this.foAltText&&(0==c||0!=v.fontSize&&f.length<5*c/v.fontSize)){var r=this.createElement("text");r.setAttribute("x",Math.round(c/2));r.setAttribute("y",Math.round((e+v.fontSize)/2));r.setAttribute("fill",v.fontColor||"black");
-r.setAttribute("text-anchor","middle");r.setAttribute("font-size",Math.round(v.fontSize)+"px");r.setAttribute("font-family",v.fontFamily);(v.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&r.setAttribute("font-weight","bold");(v.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&r.setAttribute("font-style","italic");(v.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&r.setAttribute("text-decoration","underline");mxUtils.write(r,f);return r}return s.apply(this,
-arguments)};d=this.backgroundImage;null!=d&&(e=n/a,a=this.view.translate,e=new mxRectangle(a.x*e,a.y*e,d.width*e,d.height*e),mxUtils.intersects(c,e)&&m.image(a.x,a.y,d.width,d.height,d.src,!0));m.scale(b);m.textEnabled=g;k.drawState(this.getView().getState(this.model.root),m);return u};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var a=window.getSelection();a.getRangeAt&&a.rangeCount&&(b=a.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());
+this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==c)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(b,a){(f||b.view.graph.isCellSelected(b.cell))&&l.apply(this,arguments)};var n=this.view.scale,m=mxUtils.createXmlDocument(),p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=b&&(null!=p.style?p.style.backgroundColor=b:p.setAttribute("style","background-color:"+
+b));null==m.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=a/n;p.setAttribute("width",Math.ceil(c.width*b)+2*d+"px");p.setAttribute("height",Math.ceil(c.height*b)+2*d+"px");p.setAttribute("version","1.1");var t=p;e&&(t=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),t.setAttribute("transform","translate(0.5,0.5)"),
+p.appendChild(t));m.appendChild(p);m=new mxSvgCanvas2D(t);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((d/a-c.x)/n),Math.floor((d/a-c.y)/n));var u=m.createAlternateContent;m.createAlternateContent=function(b,a,d,c,e,f,g,k,l,n,m,p,t){var q=this.state;if(null!=this.foAltText&&(0==c||0!=q.fontSize&&f.length<5*c/q.fontSize)){var r=this.createElement("text");r.setAttribute("x",Math.round(c/2));r.setAttribute("y",Math.round((e+q.fontSize)/2));r.setAttribute("fill",q.fontColor||"black");
+r.setAttribute("text-anchor","middle");r.setAttribute("font-size",Math.round(q.fontSize)+"px");r.setAttribute("font-family",q.fontFamily);(q.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&r.setAttribute("font-weight","bold");(q.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&r.setAttribute("font-style","italic");(q.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&r.setAttribute("text-decoration","underline");mxUtils.write(r,f);return r}return u.apply(this,
+arguments)};d=this.backgroundImage;null!=d&&(e=n/a,a=this.view.translate,e=new mxRectangle(a.x*e,a.y*e,d.width*e,d.height*e),mxUtils.intersects(c,e)&&m.image(a.x,a.y,d.width,d.height,d.src,!0));m.scale(b);m.textEnabled=g;k.drawState(this.getView().getState(this.model.root),m);return p};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var a=window.getSelection();a.getRangeAt&&a.rangeCount&&(b=a.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());
return b};Graph.prototype.getParentByName=function(b,a,d){for(;null!=b&&b.nodeName!=a;){if(b==d)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var a=null;if(window.getSelection){if(a=window.getSelection(),a.getRangeAt&&a.rangeCount){var d=document.createRange();d.selectNode(b);a.removeAllRanges();a.addRange(d)}}else if((a=document.selection)&&"Control"!=a.type)b=a.createRange(),b.collapse(!0),d=a.createRange(),d.setEndPoint("StartToStart",b),d.select()};Graph.prototype.insertRow=
function(b,a){for(var d=b.tBodies[0],c=0<d.rows.length?d.rows[0].cells.length:1,d=d.insertRow(a),e=0;e<c;e++)mxUtils.br(d.insertCell(-1));return d.cells[0]};Graph.prototype.deleteRow=function(b,a){b.tBodies[0].deleteRow(a)};Graph.prototype.insertColumn=function(b,a){var d=b.tHead;if(null!=d)for(var c=0;c<d.rows.length;c++){var e=document.createElement("th");d.rows[c].appendChild(e);mxUtils.br(e)}d=b.tBodies[0];for(c=0;c<d.rows.length;c++)e=d.rows[c].insertCell(a),mxUtils.br(e);return d.rows[0].cells[0<=
a?a:d.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(b,a){if(0<=a)for(var d=b.tBodies[0].rows,c=0;c<d.length;c++)d[c].cells.length>a&&d[c].deleteCell(a)};Graph.prototype.pasteHtmlAtCaret=function(b){var a;if(window.getSelection){if(a=window.getSelection(),a.getRangeAt&&a.rangeCount){a=a.getRangeAt(0);a.deleteContents();var d=document.createElement("div");d.innerHTML=b;b=document.createDocumentFragment();for(var c;c=d.firstChild;)lastNode=b.appendChild(c);a.insertNode(b)}}else(a=document.selection)&&
@@ -2539,39 +2539,39 @@ HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangl
HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxVertexHandler.prototype.rotationHandleVSpacing=-20;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=
!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=
18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-24,mxConstraintHandler.prototype.getTolerance=function(b){return mxEvent.isMouseEvent(b.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(b){var a=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(a)||mxEvent.isPopupTrigger(a)&&(null==b.getState()||mxEvent.isControlDown(a)||mxEvent.isShiftDown(a))};
-var q=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(b,a){q.apply(this,arguments);mxEvent.isTouchEvent(a.getEvent())&&this.graph.isCellSelected(a.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var a=b.getEvent();return mxEvent.isLeftMouseButton(a)&&(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a))||this.usePopupTrigger&&mxEvent.isPopupTrigger(a)};
+var r=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(b,a){r.apply(this,arguments);mxEvent.isTouchEvent(a.getEvent())&&this.graph.isCellSelected(a.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var a=b.getEvent();return mxEvent.isLeftMouseButton(a)&&(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a))||this.usePopupTrigger&&mxEvent.isPopupTrigger(a)};
mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())};mxRubberband.prototype.mouseUp=function(b,a){var d=null!=this.div&&"none"!=this.div.style.display,c=null,e=null,f=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(c=this.first.x,e=this.first.y,f=(this.currentX-c)/this.graph.view.scale,g=(this.currentY-e)/this.graph.view.scale,
mxEvent.isAltDown(a.getEvent())||(f=this.graph.snap(f),g=this.graph.snap(g)));this.reset();if(d){if(mxEvent.isAltDown(a.getEvent())&&this.graph.isToggleEvent(a.getEvent())){var f=new mxRectangle(this.x,this.y,this.width,this.height),k=this.graph.getCells(f.x,f.y,f.width,f.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(a)){this.graph.model.beginUpdate();try{k=this.graph.getCellsBeyond(c,e,this.graph.getDefaultParent(),!0,!0);for(d=0;d<k.length;d++)if(this.graph.isCellMovable(k[d])){var l=
this.graph.view.getState(k[d]),n=this.graph.getCellGeometry(k[d]);null!=l&&null!=n&&(n=n.clone(),n.translate(f,g),this.graph.model.setGeometry(k[d],n))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,a.getEvent());a.consume()}};mxRubberband.prototype.mouseMove=function(b,a){if(!a.isConsumed()&&null!=this.first){var d=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);d.x-=c.x;d.y-=c.y;
var c=a.getX()+d.x,d=a.getY()+d.y,e=this.first.x-c,f=this.first.y-d,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(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.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=c-this.width),this.y<this.first.y&&(this.y=d-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),a.consume()}};var r=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);r.apply(this,arguments)};var s=(new Date).getTime(),t=0,u=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,a,d,c){u.apply(this,arguments);d!=this.currentTerminalState?(s=(new Date).getTime(),t=0):t=(new Date).getTime()-s;this.currentTerminalState=
+this.secondDiv=null)),a.consume()}};var s=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);s.apply(this,arguments)};var q=(new Date).getTime(),t=0,u=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,a,d,c){u.apply(this,arguments);d!=this.currentTerminalState?(q=(new Date).getTime(),t=0):t=(new Date).getTime()-q;this.currentTerminalState=
d};var v=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<t||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&v.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(b,a){var d=null!=
b&&0==b,c=this.state.getVisibleTerminalState(d),e=null!=b&&(0==b||b>=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 A=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return A.apply(this,arguments)};var y=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=
+this.preferHtml&&(d-=1);return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var y=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 y.apply(this,arguments)};var x=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))):x.apply(this,arguments)};var D=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)&&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()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};
-var z=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,a){z.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,a){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":
-"none")};var F=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){F.apply(this,arguments);var b=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var a=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
+var A=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,a){A.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,a){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":
+"none")};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);var b=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var a=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(b,d){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(b,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));a()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(b,a){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,
this.editingHandler);var d=this.graph.getLinkForCell(this.state.cell);this.updateLinkHint(d);null!=d&&(b=!0);b&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(b){if(null==b||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=b){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="4px 10px 6px 10px",this.linkHint.style.fontSize="90%",this.linkHint.style.opacity="1",this.linkHint.style.filter=
"",this.updateLinkHint(b),this.graph.container.appendChild(this.linkHint));var d=b;60<d.length&&(d=d.substring(0,36)+"..."+d.substring(d.length-20));var c=document.createElement("a");c.setAttribute("href",this.graph.getLinkUrl(b));c.setAttribute("title",b);null!=this.graph.linkTarget&&c.setAttribute("target",this.graph.linkTarget);mxUtils.write(c,d);this.linkHint.innerHTML="";this.linkHint.appendChild(c);this.graph.isEnabled()&&"function"===typeof this.graph.editLink&&(b=document.createElement("img"),
b.setAttribute("src",IMAGE_PATH+"/edit.gif"),b.setAttribute("title",mxResources.get("editLink")),b.setAttribute("width","11"),b.setAttribute("height","11"),b.style.marginLeft="10px",b.style.marginBottom="-1px",b.style.cursor="pointer",this.linkHint.appendChild(b),mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(b)})))}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var G=
mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){G.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var b=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});
-this.selectionHandler=mxUtils.bind(this,function(a,d){b()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));b();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var a=this.graph.getLinkForCell(this.state.cell);null!=a&&(this.updateLinkHint(a),this.redrawHandles())};var E=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=
-function(){E.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var H=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){H.apply(this);if(null!=this.state&&null!=this.linkHint){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),a=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(a,this.state.style[mxConstants.STYLE_ROTATION]||
+this.selectionHandler=mxUtils.bind(this,function(a,d){b()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));b();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var a=this.graph.getLinkForCell(this.state.cell);null!=a&&(this.updateLinkHint(a),this.redrawHandles())};var F=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=
+function(){F.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var H=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){H.apply(this);if(null!=this.state&&null!=this.linkHint){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),a=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(a,this.state.style[mxConstants.STYLE_ROTATION]||
"0",b),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state;null==b&&(b=this.state);this.linkHint.style.left=Math.round(a.x+(a.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(b.y+b.height+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){I.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
-1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){J.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&
-(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var N=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(N.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(b.y+
+1==this.graph.getSelectionCount()?"":"none")};var L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){L.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&
+(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var O=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(O.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(b.y+
b.height+6+this.state.view.graph.tolerance)+"px"}};var T=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){T.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var Y=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){Y.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),
this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();
-(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function f(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function e(){mxActor.call(this)}function g(){mxCylinder.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function n(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function q(){mxActor.call(this)}function r(){mxActor.call(this)}function s(b,a){this.canvas=
-b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=a;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,s.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,s.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,s.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,s.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,s.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,s.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function A(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function D(){mxShape.call(this)}function z(){mxShape.call(this)}function B(){mxEllipse.call(this)}function F(){mxShape.call(this)}
-function G(){mxShape.call(this)}function E(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function I(){mxShape.call(this)}function J(){mxShape.call(this)}function N(){mxCylinder.call(this)}function T(){mxDoubleEllipse.call(this)}function Y(){mxDoubleEllipse.call(this)}function C(){mxArrowConnector.call(this);this.spacing=0}function U(){mxArrowConnector.call(this);this.spacing=0}function P(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function M(){mxActor.call(this)}
-function V(){mxActor.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function R(){mxActor.call(this)}function Z(){mxActor.call(this)}function ea(){mxActor.call(this)}function da(){mxActor.call(this)}function S(){mxActor.call(this)}function X(){mxEllipse.call(this)}function aa(){mxEllipse.call(this)}function W(){mxEllipse.call(this)}function Q(){mxRhombus.call(this)}function ga(){mxEllipse.call(this)}function ca(){mxEllipse.call(this)}function $(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}
+(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function f(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function e(){mxActor.call(this)}function g(){mxCylinder.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function n(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function r(){mxActor.call(this)}function s(){mxActor.call(this)}function q(b,a){this.canvas=
+b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=a;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,q.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,q.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,q.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,q.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
+this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function z(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function D(){mxShape.call(this)}function A(){mxShape.call(this)}function B(){mxEllipse.call(this)}function E(){mxShape.call(this)}
+function G(){mxShape.call(this)}function F(){mxRectangleShape.call(this)}function H(){mxShape.call(this)}function I(){mxShape.call(this)}function L(){mxShape.call(this)}function O(){mxCylinder.call(this)}function T(){mxDoubleEllipse.call(this)}function Y(){mxDoubleEllipse.call(this)}function C(){mxArrowConnector.call(this);this.spacing=0}function U(){mxArrowConnector.call(this);this.spacing=0}function P(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}function M(){mxActor.call(this)}
+function V(){mxActor.call(this)}function J(){mxActor.call(this)}function K(){mxActor.call(this)}function R(){mxActor.call(this)}function Z(){mxActor.call(this)}function ea(){mxActor.call(this)}function da(){mxActor.call(this)}function S(){mxActor.call(this)}function X(){mxEllipse.call(this)}function aa(){mxEllipse.call(this)}function W(){mxEllipse.call(this)}function Q(){mxRhombus.call(this)}function ga(){mxEllipse.call(this)}function ca(){mxEllipse.call(this)}function $(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}
function ia(){mxActor.call(this)}function ba(){mxActor.call(this)}function ka(){mxActor.call(this)}function va(b,a,d,c,e,f,g,k,l,n){g+=l;var m=c.clone();c.x-=e*(2*g+l);c.y-=f*(2*g+l);e*=g+l;f*=g+l;return function(){b.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);n?b.fillAndStroke():b.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(b,a,d,c,e,f){a=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(b.moveTo(a,e),b.lineTo(a,a),
b.lineTo(0,0),b.moveTo(a,a),b.lineTo(c,a)):(b.moveTo(0,0),b.lineTo(c-a,0),b.lineTo(c,a),b.lineTo(c,e),b.lineTo(a,e),b.lineTo(0,e-a),b.lineTo(0,0),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var sa=Math.tan(mxUtils.toRadians(30)),na=(0.5-sa)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(b,a,d,c,e){a=Math.min(c,e/sa);b.translate((c-a)/2,(e-a)/2+a/4);b.moveTo(0,0.25*a);b.lineTo(0.5*a,a*na);b.lineTo(a,0.25*a);b.lineTo(0.5*a,(0.5-na)*a);b.lineTo(0,
0.25*a);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=c;mxUtils.extend(f,mxCylinder);f.prototype.size=20;f.prototype.redrawPath=function(b,a,d,c,e,f){a=Math.min(c,e/(0.5+sa));f?(b.moveTo(0,0.25*a),b.lineTo(0.5*a,(0.5-na)*a),b.lineTo(a,0.25*a),b.moveTo(0.5*a,(0.5-na)*a),b.lineTo(0.5*a,(1-na)*a)):(b.translate((c-a)/2,(e-a)/2),b.moveTo(0,0.25*a),b.lineTo(0.5*a,a*na),b.lineTo(a,0.25*a),b.lineTo(a,0.75*a),b.lineTo(0.5*a,(1-na)*a),b.lineTo(0,0.75*a),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.isoCube=
@@ -2584,47 +2584,47 @@ b.lineTo(c-a,0),b.lineTo(c,0)),b.lineTo(c,e),b.lineTo(0,e),b.lineTo(0,d),b.close
a)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.card=k;mxUtils.extend(l,mxActor);l.prototype.size=0.4;l.prototype.redrawPath=function(b,a,d,c,e){a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,a/2);b.quadTo(c/4,1.4*a,c/2,a/2);b.quadTo(3*c/4,a*(1-1.4),c,a/2);b.lineTo(c,e-a/2);b.quadTo(3*c/4,e-1.4*a,c/2,e-a/2);b.quadTo(c/4,e-a*(1-1.4),0,e-a/2);b.lineTo(0,a/2);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.tape=l;mxUtils.extend(n,
mxActor);n.prototype.size=0.3;n.prototype.redrawPath=function(b,a,d,c,e){a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,0);b.lineTo(c,0);b.lineTo(c,e-a/2);b.quadTo(3*c/4,e-1.4*a,c/2,e-a/2);b.quadTo(c/4,e-a*(1-1.4),0,e-a/2);b.lineTo(0,a/2);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.document=n;mxUtils.extend(m,mxActor);m.prototype.size=0.2;m.prototype.redrawPath=function(b,a,d,c,e){a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(a,0),new mxPoint(c,0),new mxPoint(c-a,e)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.parallelogram=m;mxUtils.extend(p,mxActor);p.prototype.size=0.2;p.prototype.redrawPath=function(b,a,d,c,e){a=c*Math.max(0,Math.min(0.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(a,0),new mxPoint(c-a,0),new mxPoint(c,e)],this.isRounded,d,!0)};mxCellRenderer.prototype.defaultShapes.trapezoid=p;mxUtils.extend(q,mxActor);q.prototype.size=0.5;q.prototype.redrawPath=function(b,a,d,c,e){b.setFillColor(null);a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,
-0),new mxPoint(a,0),new mxPoint(a,e/2),new mxPoint(0,e/2),new mxPoint(a,e/2),new mxPoint(a,e),new mxPoint(c,e)],this.isRounded,d,!1);b.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=q;mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(b,a,d,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);a=c/5;b.rect(0,0,a,e);b.fillAndStroke();b.rect(2*a,0,a,e);b.fillAndStroke();b.rect(4*a,0,a,e);b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=r;s.prototype.moveTo=
-function(b,a){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=a;this.firstX=b;this.firstY=a};s.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};s.prototype.quadTo=function(b,a,d,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=d;this.lastY=c};s.prototype.curveTo=function(b,a,d,c,e,f){this.originalCurveTo.apply(this.canvas,
-arguments);this.lastX=e;this.lastY=f};s.prototype.arcTo=function(b,a,d,c,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};s.prototype.lineTo=function(b,a){if(null!=this.lastX&&null!=this.lastY){var d=Math.abs(b-this.lastX),c=Math.abs(a-this.lastY),e=Math.sqrt(d*d+c*c);if(2>e)this.originalLineTo.apply(this.canvas,arguments);else{var f=Math.round(e/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},
-l=k(b-this.lastX)*d/f,k=k(a-this.lastY)*c/f,d=d/e,c=c/e,e=0;e<f;e++){var n=l*e+this.lastX,m=k*e+this.lastY,u=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,n-u*c,m-u*d)}this.originalLineTo.call(this.canvas,b,a)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=a};s.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
-this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var za=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(b){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==b.handHiggle&&(b.handJiggle=new s(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));za.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Aa=mxRectangleShape.prototype.isHtmlAllowed;
+mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(a,0),new mxPoint(c-a,0),new mxPoint(c,e)],this.isRounded,d,!0)};mxCellRenderer.prototype.defaultShapes.trapezoid=p;mxUtils.extend(r,mxActor);r.prototype.size=0.5;r.prototype.redrawPath=function(b,a,d,c,e){b.setFillColor(null);a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,
+0),new mxPoint(a,0),new mxPoint(a,e/2),new mxPoint(0,e/2),new mxPoint(a,e/2),new mxPoint(a,e),new mxPoint(c,e)],this.isRounded,d,!1);b.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=r;mxUtils.extend(s,mxActor);s.prototype.redrawPath=function(b,a,d,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);a=c/5;b.rect(0,0,a,e);b.fillAndStroke();b.rect(2*a,0,a,e);b.fillAndStroke();b.rect(4*a,0,a,e);b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=s;q.prototype.moveTo=
+function(b,a){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=a;this.firstX=b;this.firstY=a};q.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};q.prototype.quadTo=function(b,a,d,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=d;this.lastY=c};q.prototype.curveTo=function(b,a,d,c,e,f){this.originalCurveTo.apply(this.canvas,
+arguments);this.lastX=e;this.lastY=f};q.prototype.arcTo=function(b,a,d,c,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};q.prototype.lineTo=function(b,a){if(null!=this.lastX&&null!=this.lastY){var d=Math.abs(b-this.lastX),c=Math.abs(a-this.lastY),e=Math.sqrt(d*d+c*c);if(2>e)this.originalLineTo.apply(this.canvas,arguments);else{var f=Math.round(e/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},
+l=k(b-this.lastX)*d/f,k=k(a-this.lastY)*c/f,d=d/e,c=c/e,e=0;e<f;e++){var n=l*e+this.lastX,m=k*e+this.lastY,p=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,n-p*c,m-p*d)}this.originalLineTo.call(this.canvas,b,a)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=a};q.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
+this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var za=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(b){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==b.handHiggle&&(b.handJiggle=new q(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));za.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Aa=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Aa.apply(this,arguments)};var Ba=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,a,d,c,e){if(null==b.handJiggle)Ba.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
mxConstants.NONE){if(!f&&(null==this.fill||this.fill==mxConstants.NONE))b.pointerEvents=!1;b.begin();this.isRounded?(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(c*f,e*f),b.moveTo(a+f,d),b.lineTo(a+c-f,d),b.quadTo(a+c,d,a+c,d+f),b.lineTo(a+c,d+e-f),b.quadTo(a+c,d+e,a+c-f,d+e),b.lineTo(a+f,d+e),b.quadTo(a,d+e,a,d+e-f),b.lineTo(a,d+f),b.quadTo(a,d,a+f,d)):(b.moveTo(a,d),b.lineTo(a+c,d),b.lineTo(a+c,d+e),b.lineTo(a,d+e),b.lineTo(a,
d));b.close();b.end();b.fillAndStroke()}}};var Ca=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(b,a,d,c,e){null==b.handJiggle&&Ca.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=0.1;t.prototype.isHtmlAllowed=function(){return!1};t.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var a=
b.width,d=b.height;b=new mxRectangle(b.x,b.y,a,d);var c=a*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.max(c,Math.min(a*e,d*e));b.x+=c;b.width-=2*c}return b};t.prototype.paintForeground=function(b,a,d,c,e){var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(c*g,e*g));b.begin();b.moveTo(a+f,d);b.lineTo(a+f,d+e);b.moveTo(a+c-f,d);b.lineTo(a+c-f,d+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.process=t;mxUtils.extend(u,mxActor);u.prototype.size=0.2;u.prototype.redrawPath=function(b,a,d,c,e){a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c-a,0),new mxPoint(c,e/2),new mxPoint(c-a,e),new mxPoint(0,e),new mxPoint(a,e/2)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.step=u;mxUtils.extend(v,mxHexagon);v.prototype.size=0.25;v.prototype.redrawPath=function(b,a,d,c,e){a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;this.addPoints(b,[new mxPoint(a,0),new mxPoint(c-a,0),new mxPoint(c,0.5*e),new mxPoint(c-a,e),new mxPoint(a,e),new mxPoint(0,0.5*e)],this.isRounded,d,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=v;mxUtils.extend(A,mxRectangleShape);A.prototype.isHtmlAllowed=function(){return!1};A.prototype.paintForeground=function(b,a,d,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(a+c/2,d+f);b.lineTo(a+c/2,d+e-f);b.moveTo(a+f,d+e/2);b.lineTo(a+c-f,d+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.prototype.defaultShapes.plus=A;var wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var a=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+a,b.y+a,b.width-2*a,b.height-2*a)}return b};mxRhombus.prototype.paintVertexShape=function(b,a,d,c,e){wa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
+2;this.addPoints(b,[new mxPoint(a,0),new mxPoint(c-a,0),new mxPoint(c,0.5*e),new mxPoint(c-a,e),new mxPoint(a,e),new mxPoint(0,0.5*e)],this.isRounded,d,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=v;mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.paintForeground=function(b,a,d,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(a+c/2,d+f);b.lineTo(a+c/2,d+e-f);b.moveTo(a+f,d+e/2);b.lineTo(a+c-f,d+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var a=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+a,b.y+a,b.width-2*a,b.height-2*a)}return b};mxRhombus.prototype.paintVertexShape=function(b,a,d,c,e){wa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);a+=f;d+=f;c-=2*f;e-=2*f;0<c&&0<e&&(b.setShadow(!1),wa.apply(this,[b,a,d,c,e]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var a=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+a,b.y+a,b.width-2*a,b.height-2*a)}return b};y.prototype.paintForeground=function(b,a,d,
c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);a+=f;d+=f;c-=2*f;e-=2*f;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var f=0,g=null;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var k=this.style["symbol"+f+"Align"],l=this.style["symbol"+f+"VerticalAlign"],n=this.style["symbol"+f+"Width"],m=this.style["symbol"+
-f+"Height"],u=this.style["symbol"+f+"Spacing"]||0,t=this.style["symbol"+f+"ArcSpacing"];null!=t&&(u+=this.getArcSize(c+this.strokewidth,e+this.strokewidth)*t);var t=a,s=d,t=k==mxConstants.ALIGN_CENTER?t+(c-n)/2:k==mxConstants.ALIGN_RIGHT?t+(c-n-u):t+u,s=l==mxConstants.ALIGN_MIDDLE?s+(e-m)/2:l==mxConstants.ALIGN_BOTTOM?s+(e-m-u):s+u;b.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,b,t,s,n,m);b.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
+f+"Height"],p=this.style["symbol"+f+"Spacing"]||0,t=this.style["symbol"+f+"ArcSpacing"];null!=t&&(p+=this.getArcSize(c+this.strokewidth,e+this.strokewidth)*t);var t=a,q=d,t=k==mxConstants.ALIGN_CENTER?t+(c-n)/2:k==mxConstants.ALIGN_RIGHT?t+(c-n-p):t+p,q=l==mxConstants.ALIGN_MIDDLE?q+(e-m)/2:l==mxConstants.ALIGN_BOTTOM?q+(e-m-p):q+p;b.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,b,t,q,n,m);b.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.prototype.defaultShapes.ext=y;mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(b,a,d,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.prototype.defaultShapes.message=x;mxUtils.extend(D,mxShape);D.prototype.paintBackground=function(b,a,d,c,e){b.translate(a,d);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,
-e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=D;mxUtils.extend(z,mxShape);z.prototype.getLabelBounds=function(b){return new mxRectangle(b.x+b.width/6,b.y,5*b.width/6,b.height)};z.prototype.paintBackground=function(b,a,d,c,e){b.translate(a,d);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();
-b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=z;mxUtils.extend(B,mxEllipse);B.prototype.paintVertexShape=function(b,a,d,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(a+c/8,d+e);b.lineTo(a+7*c/8,d+e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=B;mxUtils.extend(F,mxShape);F.prototype.paintVertexShape=function(b,a,d,c,e){b.translate(a,d);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,
-0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=F;mxUtils.extend(G,mxShape);G.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};G.prototype.paintBackground=function(b,a,d,c,e){b.translate(a,d);b.begin();b.moveTo(3*c/8,1.1*(e/8));b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};G.prototype.paintForeground=function(b,a,d,c,e){b.begin();b.moveTo(3*c/8,1.1*(e/8));b.lineTo(5*c/8,e/
-4);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlControl=G;mxUtils.extend(E,mxRectangleShape);E.prototype.size=40;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.getLabelBounds=function(b){var a=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,a)};E.prototype.paintBackground=function(b,a,d,c,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),
-g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,a,d,c,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=E&&(g=new g,g.apply(this.state),b.save(),g.paintVertexShape(b,a,d,c,f),b.restore()));f<e&&(b.setDashed(!0),b.begin(),b.moveTo(a+c/2,d+f),b.lineTo(a+c/2,d+e),b.end(),b.stroke())};E.prototype.paintForeground=function(b,a,d,c,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
-mxRectangleShape.prototype.paintForeground.call(this,b,a,d,c,Math.min(e,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=E;mxUtils.extend(H,mxShape);H.prototype.width=60;H.prototype.height=30;H.prototype.corner=10;H.prototype.getLabelBounds=function(b){var a=Math.max(0,Math.min(b.width,parseFloat(mxUtils.getValue(this.style,"width",this.width))*this.scale)),d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"height",this.height))*this.scale));return new mxRectangle(b.x,b.y,
+e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=D;mxUtils.extend(A,mxShape);A.prototype.getLabelBounds=function(b){return new mxRectangle(b.x+b.width/6,b.y,5*b.width/6,b.height)};A.prototype.paintBackground=function(b,a,d,c,e){b.translate(a,d);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();
+b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=A;mxUtils.extend(B,mxEllipse);B.prototype.paintVertexShape=function(b,a,d,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(a+c/8,d+e);b.lineTo(a+7*c/8,d+e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=B;mxUtils.extend(E,mxShape);E.prototype.paintVertexShape=function(b,a,d,c,e){b.translate(a,d);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,
+0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=E;mxUtils.extend(G,mxShape);G.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};G.prototype.paintBackground=function(b,a,d,c,e){b.translate(a,d);b.begin();b.moveTo(3*c/8,1.1*(e/8));b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};G.prototype.paintForeground=function(b,a,d,c,e){b.begin();b.moveTo(3*c/8,1.1*(e/8));b.lineTo(5*c/8,e/
+4);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlControl=G;mxUtils.extend(F,mxRectangleShape);F.prototype.size=40;F.prototype.isHtmlAllowed=function(){return!1};F.prototype.getLabelBounds=function(b){var a=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,a)};F.prototype.paintBackground=function(b,a,d,c,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),
+g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,a,d,c,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=F&&(g=new g,g.apply(this.state),b.save(),g.paintVertexShape(b,a,d,c,f),b.restore()));f<e&&(b.setDashed(!0),b.begin(),b.moveTo(a+c/2,d+f),b.lineTo(a+c/2,d+e),b.end(),b.stroke())};F.prototype.paintForeground=function(b,a,d,c,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
+mxRectangleShape.prototype.paintForeground.call(this,b,a,d,c,Math.min(e,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=F;mxUtils.extend(H,mxShape);H.prototype.width=60;H.prototype.height=30;H.prototype.corner=10;H.prototype.getLabelBounds=function(b){var a=Math.max(0,Math.min(b.width,parseFloat(mxUtils.getValue(this.style,"width",this.width))*this.scale)),d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"height",this.height))*this.scale));return new mxRectangle(b.x,b.y,
a,d)};H.prototype.paintBackground=function(b,a,d,c,e){var f=this.corner,g=Math.min(c,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),k=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height))));b.begin();b.moveTo(a,d);b.lineTo(a+g,d);b.lineTo(a+g,d+Math.max(0,k-1.5*f));b.lineTo(a+Math.max(0,g-f),d+k);b.lineTo(a,d+k);b.close();b.fillAndStroke();b.begin();b.moveTo(a+g,d);b.lineTo(a+c,d);b.lineTo(a+c,d+e);b.lineTo(a,d+e);b.lineTo(a,d+k);b.stroke()};
-mxCellRenderer.prototype.defaultShapes.umlFrame=H;mxPerimeter.LifelinePerimeter=function(b,a,d,c){c=E.prototype.size;null!=a&&(c=mxUtils.getValue(a.style,"size",c)*a.view.scale);a=parseFloat(a.style[mxConstants.STYLE_STROKEWIDTH]||1)*a.view.scale/2-1;d.x<b.getCenterX()&&(a=-1*(a+1));return new mxPoint(b.getCenterX()+a,Math.min(b.y+b.height,Math.max(b.y+c,d.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,a,d,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,
+mxCellRenderer.prototype.defaultShapes.umlFrame=H;mxPerimeter.LifelinePerimeter=function(b,a,d,c){c=F.prototype.size;null!=a&&(c=mxUtils.getValue(a.style,"size",c)*a.view.scale);a=parseFloat(a.style[mxConstants.STYLE_STROKEWIDTH]||1)*a.view.scale/2-1;d.x<b.getCenterX()&&(a=-1*(a+1));return new mxPoint(b.getCenterX()+a,Math.min(b.y+b.height,Math.max(b.y+c,d.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,a,d,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,
arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(b,a,d,c){c=parseFloat(a.style[mxConstants.STYLE_STROKEWIDTH]||1)*a.view.scale/2-1;null!=a.style.backboneSize&&(c+=parseFloat(a.style.backboneSize)*a.view.scale/2-1);if("south"==a.style[mxConstants.STYLE_DIRECTION]||"north"==a.style[mxConstants.STYLE_DIRECTION])return d.x<b.getCenterX()&&(c=-1*(c+1)),new mxPoint(b.getCenterX()+c,Math.min(b.y+b.height,Math.max(b.y,d.y)));
d.y<b.getCenterY()&&(c+=1,c*=-1);return new mxPoint(Math.min(b.x+b.width,Math.max(b.x,d.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxUtils.extend(I,mxShape);I.prototype.size=10;I.prototype.paintBackground=function(b,a,d,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(a,d);b.ellipse((c-f)/2,0,f,f);b.fillAndStroke();b.begin();b.moveTo(c/2,f);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.lollipop=
-I;mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.inset=2;J.prototype.paintBackground=function(b,a,d,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(a,d);b.begin();b.moveTo(c/2,f+g);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-f)/2-g,f/2);b.quadTo((c-f)/2-g,f+g,c/2,f+g);b.quadTo((c+f)/2+g,f+g,(c+f)/2+g,f/2);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
-J;mxUtils.extend(N,mxCylinder);N.prototype.jettyWidth=32;N.prototype.jettyHeight=12;N.prototype.redrawPath=function(b,a,d,c,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));a=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=0.3*e-a/2,l=0.7*e-a/2;f?(b.moveTo(d,k),b.lineTo(g,k),b.lineTo(g,k+a),b.lineTo(d,k+a),b.moveTo(d,l),b.lineTo(g,l),b.lineTo(g,l+a),b.lineTo(d,l+a)):(b.moveTo(d,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(d,e),
-b.lineTo(d,l+a),b.lineTo(0,l+a),b.lineTo(0,l),b.lineTo(d,l),b.lineTo(d,k+a),b.lineTo(0,k+a),b.lineTo(0,k),b.lineTo(d,k),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.component=N;mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(b,a,d,c,e){var f=Math.min(4,Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(a+f,d+f,c-2*f,e-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(a,d,c,e),b.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
+I;mxUtils.extend(L,mxShape);L.prototype.size=10;L.prototype.inset=2;L.prototype.paintBackground=function(b,a,d,c,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(a,d);b.begin();b.moveTo(c/2,f+g);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-f)/2-g,f/2);b.quadTo((c-f)/2-g,f+g,c/2,f+g);b.quadTo((c+f)/2+g,f+g,(c+f)/2+g,f/2);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
+L;mxUtils.extend(O,mxCylinder);O.prototype.jettyWidth=32;O.prototype.jettyHeight=12;O.prototype.redrawPath=function(b,a,d,c,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));a=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=0.3*e-a/2,l=0.7*e-a/2;f?(b.moveTo(d,k),b.lineTo(g,k),b.lineTo(g,k+a),b.lineTo(d,k+a),b.moveTo(d,l),b.lineTo(g,l),b.lineTo(g,l+a),b.lineTo(d,l+a)):(b.moveTo(d,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(d,e),
+b.lineTo(d,l+a),b.lineTo(0,l+a),b.lineTo(0,l),b.lineTo(d,l),b.lineTo(d,k+a),b.lineTo(0,k+a),b.lineTo(0,k),b.lineTo(d,k),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.component=O;mxUtils.extend(T,mxDoubleEllipse);T.prototype.outerStroke=!0;T.prototype.paintVertexShape=function(b,a,d,c,e){var f=Math.min(4,Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(a+f,d+f,c-2*f,e-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(a,d,c,e),b.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
T;mxUtils.extend(Y,T);Y.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=Y;mxUtils.extend(C,mxArrowConnector);C.prototype.defaultWidth=4;C.prototype.isOpenEnded=function(){return!0};C.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};C.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=C;mxUtils.extend(U,mxArrowConnector);U.prototype.defaultWidth=
10;U.prototype.defaultArrowWidth=20;U.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};U.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};U.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=U;mxUtils.extend(P,
-mxActor);P.prototype.size=30;P.prototype.redrawPath=function(b,a,d,c,e){a=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(0,a),new mxPoint(c,0),new mxPoint(c,e)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.manualInput=P;mxUtils.extend(O,mxRectangleShape);O.prototype.dx=20;O.prototype.dy=20;O.prototype.isHtmlAllowed=function(){return!1};
-O.prototype.paintForeground=function(b,a,d,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(c*g,e*g));g=Math.max(f,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(a,d+f);b.lineTo(a+c,d+f);b.end();b.stroke();
-b.begin();b.moveTo(a+g,d);b.lineTo(a+g,d+e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.internalStorage=O;mxUtils.extend(M,mxActor);M.prototype.dx=20;M.prototype.dy=20;M.prototype.redrawPath=function(b,a,d,c,e){a=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,
+mxActor);P.prototype.size=30;P.prototype.redrawPath=function(b,a,d,c,e){a=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(0,a),new mxPoint(c,0),new mxPoint(c,e)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.manualInput=P;mxUtils.extend(N,mxRectangleShape);N.prototype.dx=20;N.prototype.dy=20;N.prototype.isHtmlAllowed=function(){return!1};
+N.prototype.paintForeground=function(b,a,d,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(c*g,e*g));g=Math.max(f,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(a,d+f);b.lineTo(a+c,d+f);b.end();b.stroke();
+b.begin();b.moveTo(a+g,d);b.lineTo(a+g,d+e);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.internalStorage=N;mxUtils.extend(M,mxActor);M.prototype.dx=20;M.prototype.dy=20;M.prototype.redrawPath=function(b,a,d,c,e){a=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,d),new mxPoint(a,d),new mxPoint(a,e),new mxPoint(0,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.prototype.defaultShapes.corner=M;mxUtils.extend(V,mxActor);V.prototype.dx=20;V.prototype.dy=20;V.prototype.redrawPath=function(b,a,d,c,e){a=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));Math.abs(c-a);Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,d),new mxPoint((c+a)/2,d),new mxPoint((c+a)/2,e),new mxPoint((c-a)/2,e),new mxPoint((c-a)/2,d),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.prototype.defaultShapes.tee=V;mxUtils.extend(K,mxActor);K.prototype.arrowWidth=
-0.3;K.prototype.arrowSize=0.2;K.prototype.redrawPath=function(b,a,d,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(e-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,d),new mxPoint(c-a,d),new mxPoint(c-a,0),new mxPoint(c,e/2),new mxPoint(c-a,e),new mxPoint(c-a,
-f),new mxPoint(0,f)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=K;mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(b,a,d,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",K.prototype.arrowWidth))));a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",K.prototype.arrowSize))));d=(e-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,
-[new mxPoint(0,e/2),new mxPoint(a,0),new mxPoint(a,d),new mxPoint(c-a,d),new mxPoint(c-a,0),new mxPoint(c,e/2),new mxPoint(c-a,e),new mxPoint(c-a,f),new mxPoint(a,f),new mxPoint(a,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.doubleArrow=L;mxUtils.extend(R,mxActor);R.prototype.size=0.1;R.prototype.redrawPath=function(b,a,d,c,e){a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(a,0);b.lineTo(c,0);b.quadTo(c-2*a,e/2,c,e);b.lineTo(a,
+"dy",this.dy))));Math.abs(c-a);Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,d),new mxPoint((c+a)/2,d),new mxPoint((c+a)/2,e),new mxPoint((c-a)/2,e),new mxPoint((c-a)/2,d),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.prototype.defaultShapes.tee=V;mxUtils.extend(J,mxActor);J.prototype.arrowWidth=
+0.3;J.prototype.arrowSize=0.2;J.prototype.redrawPath=function(b,a,d,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(e-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,d),new mxPoint(c-a,d),new mxPoint(c-a,0),new mxPoint(c,e/2),new mxPoint(c-a,e),new mxPoint(c-a,
+f),new mxPoint(0,f)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=J;mxUtils.extend(K,mxActor);K.prototype.redrawPath=function(b,a,d,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",J.prototype.arrowWidth))));a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",J.prototype.arrowSize))));d=(e-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,
+[new mxPoint(0,e/2),new mxPoint(a,0),new mxPoint(a,d),new mxPoint(c-a,d),new mxPoint(c-a,0),new mxPoint(c,e/2),new mxPoint(c-a,e),new mxPoint(c-a,f),new mxPoint(a,f),new mxPoint(a,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.doubleArrow=K;mxUtils.extend(R,mxActor);R.prototype.size=0.1;R.prototype.redrawPath=function(b,a,d,c,e){a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(a,0);b.lineTo(c,0);b.quadTo(c-2*a,e/2,c,e);b.lineTo(a,
e);b.quadTo(a-2*a,e/2,a,0);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.dataStorage=R;mxUtils.extend(Z,mxActor);Z.prototype.redrawPath=function(b,a,d,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.or=Z;mxUtils.extend(ea,mxActor);ea.prototype.redrawPath=function(b,a,d,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.xor=ea;mxUtils.extend(da,
mxActor);da.prototype.size=20;da.prototype.redrawPath=function(b,a,d,c,e){a=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(a,0),new mxPoint(c-a,0),new mxPoint(c,0.8*a),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,0.8*a)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.loopLimit=da;mxUtils.extend(S,mxActor);S.prototype.size=0.375;
S.prototype.redrawPath=function(b,a,d,c,e){a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-a),new mxPoint(c/2,e),new mxPoint(0,e-a)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.offPageConnector=S;mxUtils.extend(X,mxEllipse);X.prototype.paintVertexShape=function(b,a,d,c,e){mxEllipse.prototype.paintVertexShape.apply(this,
@@ -2636,15 +2636,15 @@ this.style&&(b.setStrokeColor(this.stroke),b.rect(a,d,c,e),b.fill(),"1"==mxUtils
mxCellRenderer.prototype.defaultShapes.partialRectangle=$;mxUtils.extend(fa,mxEllipse);fa.prototype.paintVertexShape=function(b,a,d,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(a+c/2,d),b.lineTo(a+c/2,d+e)):(b.moveTo(a,d+e/2),b.lineTo(a+c,d+e/2));b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.lineEllipse=fa;mxUtils.extend(ia,mxActor);ia.prototype.redrawPath=function(b,a,d,c,e){a=Math.min(c,
e/2);b.moveTo(0,0);b.lineTo(c-a,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-a,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.delay=ia;mxUtils.extend(ba,mxActor);ba.prototype.size=0.2;ba.prototype.redrawPath=function(b,a,d,c,e){a=Math.min(e,c);var f=Math.max(0,Math.min(a,a*parseFloat(mxUtils.getValue(this.style,"size",this.size))));a=(e-f)/2;d=a+f;var g=(c-f)/2,f=g+f;b.moveTo(0,a);b.lineTo(g,a);b.lineTo(g,0);b.lineTo(f,0);b.lineTo(f,a);b.lineTo(c,a);b.lineTo(c,d);b.lineTo(f,d);
b.lineTo(f,e);b.lineTo(g,e);b.lineTo(g,d);b.lineTo(0,d);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.cross=ba;mxUtils.extend(ka,mxActor);ka.prototype.size=0.25;ka.prototype.redrawPath=function(b,a,d,c,e){a=Math.min(c,e/2);d=Math.min(c-a,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(d,0);b.lineTo(c-a,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-a,e);b.lineTo(d,e);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.display=ka;mxMarker.addMarker("dash",
-function(b,a,d,c,e,f,g,k,l,n){var m=e*(g+l+1),u=f*(g+l+1);return function(){b.begin();b.moveTo(c.x-m/2-u/2,c.y-u/2+m/2);b.lineTo(c.x+u/2-3*m/2,c.y-3*u/2-m/2);b.stroke()}});mxMarker.addMarker("cross",function(b,a,d,c,e,f,g,k,l,n){var m=e*(g+l+1),u=f*(g+l+1);return function(){b.begin();b.moveTo(c.x-m/2-u/2,c.y-u/2+m/2);b.lineTo(c.x+u/2-3*m/2,c.y-3*u/2-m/2);b.moveTo(c.x-m/2+u/2,c.y-u/2-m/2);b.lineTo(c.x-u/2-3*m/2,c.y-3*u/2+m/2);b.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",
-function(b,a,d,c,e,f,g,k,l,n){var m=c.clone(),u=va.apply(this,arguments),t=e*(g+2*l),s=f*(g+2*l);return function(){u.apply(this,arguments);b.begin();b.moveTo(m.x-e*l,m.y-f*l);b.lineTo(m.x-2*t+e*l,m.y-2*s+f*l);b.moveTo(m.x-t-s+f*l,m.y-s+t-e*l);b.lineTo(m.x+s-t-f*l,m.y-s-t+e*l);b.stroke()}});mxMarker.addMarker("async",function(b,a,d,c,e,f,g,k,l,n){a=1.118*e*l;d=1.118*f*l;e*=g+l;f*=g+l;var m=c.clone();m.x-=a;m.y-=d;c.x+=1*-e-a;c.y+=1*-f-d;return function(){b.begin();b.moveTo(m.x,m.y);k?b.lineTo(m.x-
-e-f/2,m.y-f+e/2):b.lineTo(m.x+f/2-e,m.y-f-e/2);b.lineTo(m.x-e,m.y-f);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(a,d,c,e,f,g,k,l,n,m){f*=k+n;g*=k+n;var u=e.clone();return function(){a.begin();a.moveTo(u.x,u.y);l?a.lineTo(u.x-f-g/b,u.y-g+f/b):a.lineTo(u.x+g/b-f,u.y-g-f/b);a.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ha=function(b,a,d,c,e){b=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);
+function(b,a,d,c,e,f,g,k,l,n){var m=e*(g+l+1),p=f*(g+l+1);return function(){b.begin();b.moveTo(c.x-m/2-p/2,c.y-p/2+m/2);b.lineTo(c.x+p/2-3*m/2,c.y-3*p/2-m/2);b.stroke()}});mxMarker.addMarker("cross",function(b,a,d,c,e,f,g,k,l,n){var m=e*(g+l+1),p=f*(g+l+1);return function(){b.begin();b.moveTo(c.x-m/2-p/2,c.y-p/2+m/2);b.lineTo(c.x+p/2-3*m/2,c.y-3*p/2-m/2);b.moveTo(c.x-m/2+p/2,c.y-p/2-m/2);b.lineTo(c.x-p/2-3*m/2,c.y-3*p/2+m/2);b.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",
+function(b,a,d,c,e,f,g,k,l,n){var m=c.clone(),p=va.apply(this,arguments),t=e*(g+2*l),q=f*(g+2*l);return function(){p.apply(this,arguments);b.begin();b.moveTo(m.x-e*l,m.y-f*l);b.lineTo(m.x-2*t+e*l,m.y-2*q+f*l);b.moveTo(m.x-t-q+f*l,m.y-q+t-e*l);b.lineTo(m.x+q-t-f*l,m.y-q-t+e*l);b.stroke()}});mxMarker.addMarker("async",function(b,a,d,c,e,f,g,k,l,n){a=1.118*e*l;d=1.118*f*l;e*=g+l;f*=g+l;var m=c.clone();m.x-=a;m.y-=d;c.x+=1*-e-a;c.y+=1*-f-d;return function(){b.begin();b.moveTo(m.x,m.y);k?b.lineTo(m.x-
+e-f/2,m.y-f+e/2):b.lineTo(m.x+f/2-e,m.y-f-e/2);b.lineTo(m.x-e,m.y-f);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(a,d,c,e,f,g,k,l,n,m){f*=k+n;g*=k+n;var p=e.clone();return function(){a.begin();a.moveTo(p.x,p.y);l?a.lineTo(p.x-f-g/b,p.y-g+f/b):a.lineTo(p.x+g/b-f,p.y-g-f/b);a.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ha=function(b,a,d,c,e){b=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);
b.execute=function(){for(var b=0;b<a.length;b++)this.copyStyle(a[b])};b.getPosition=d;b.setPosition=c;b.ignoreGrid=null!=e?e:!0;return b},ma=function(b,a){return ha(b,[mxConstants.STYLE_ARCSIZE],function(d){var c=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100,e=null!=a?a:d.height/8;return new mxPoint(d.x+d.width-Math.min(Math.max(d.width/2,d.height/2),Math.min(d.width,d.height)*c),d.y+e)},function(b,a,d){b=Math.min(50,Math.max(0,
100*(b.width-a.x+b.x)/Math.min(b.width,b.height)));this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(b)})},la=function(){return function(b){var a=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a}},ja=function(b){return function(a){var d=[ha(a,["size"],function(a){var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size))));return new mxPoint(a.x+0.75*d*a.width,a.y+a.height/4)},function(a,d){this.state.style.size=Math.max(0,
Math.min(b,(d.x-a.x)/(0.75*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ma(a));return d}},pa=function(b,a,d){d=null!=d?d:1;return function(c){var e=[ha(c,["size"],function(a){var d=parseFloat(mxUtils.getValue(this.state.style,"size",b));return new mxPoint(a.x+d*a.width,a.getCenterY())},function(b,a){this.state.style.size=Math.max(0,Math.min(d,(a.x-b.x)/b.width))})];a&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ma(c));return e}},ta=function(b,a,d){return function(c){var e=
[ha(c,["size"],function(d){var c=Math.max(0,Math.min(d.width,Math.min(d.height,parseFloat(mxUtils.getValue(this.state.style,"size",a)))))*b;return new mxPoint(d.x+c,d.y+c)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,d.x-a.x),Math.min(a.height,d.y-a.y)))/b)})];d&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(ma(c));return e}},xa=function(b){return function(a){return[ha(a,["arrowWidth","arrowSize"],function(a){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"arrowWidth",K.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",K.prototype.arrowSize)));return new mxPoint(a.x+(1-c)*a.width,a.y+(1-d)*a.height/2)},function(a,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(a.y+a.height/2-d.y)/a.height)));this.state.style.arrowSize=Math.max(0,Math.min(b,(a.x+a.width-d.x)/a.width))})]}},oa=function(b,a,d,c,e){var f=b.absolutePoints,g=f.length-1,k=b.view.translate,l=b.view.scale,n=d?f[0]:f[g],m=d?f[1]:f[g-
-1],u=m.x-n.x,t=m.y-n.y,s=Math.sqrt(u*u+t*t);return ha(b,a,function(b){b=c.call(this,s,u/s,t/s,n,m);return new mxPoint(b.x/l-k.x,b.y/l-k.y)},function(b,a,d){b=Math.sqrt(u*u+t*t);a.x=(a.x+k.x)*l;a.y=(a.y+k.y)*l;e.call(this,b,u/b,t/b,n,m,a,d)})},ya=function(b,a,d){return oa(b,["width"],a,function(a,c,e,f,g){g=b.shape.getEdgeWidth()*b.view.scale+d;return new mxPoint(f.x+c*a/4+e*g/2,f.y+e*a/4-c*g/2)},function(a,c,e,f,g,k){a=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));b.style.width=Math.round(2*
+"arrowWidth",J.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",J.prototype.arrowSize)));return new mxPoint(a.x+(1-c)*a.width,a.y+(1-d)*a.height/2)},function(a,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(a.y+a.height/2-d.y)/a.height)));this.state.style.arrowSize=Math.max(0,Math.min(b,(a.x+a.width-d.x)/a.width))})]}},oa=function(b,a,d,c,e){var f=b.absolutePoints,g=f.length-1,k=b.view.translate,l=b.view.scale,n=d?f[0]:f[g],m=d?f[1]:f[g-
+1],p=m.x-n.x,t=m.y-n.y,q=Math.sqrt(p*p+t*t);return ha(b,a,function(b){b=c.call(this,q,p/q,t/q,n,m);return new mxPoint(b.x/l-k.x,b.y/l-k.y)},function(b,a,d){b=Math.sqrt(p*p+t*t);a.x=(a.x+k.x)*l;a.y=(a.y+k.y)*l;e.call(this,b,p/b,t/b,n,m,a,d)})},ya=function(b,a,d){return oa(b,["width"],a,function(a,c,e,f,g){g=b.shape.getEdgeWidth()*b.view.scale+d;return new mxPoint(f.x+c*a/4+e*g/2,f.y+e*a/4-c*g/2)},function(a,c,e,f,g,k){a=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));b.style.width=Math.round(2*
a)/b.view.scale-d})},ua={link:function(b){return[ya(b,!0,10),ya(b,!1,10)]},flexArrow:function(b){var a=b.view.graph.gridSize/b.view.scale,d=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(oa(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(a,d,c,e,f){a=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+
d*(f+b.shape.strokewidth*b.view.scale)+c*a/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)-d*a/2)},function(d,c,e,f,g,k,l){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,k.x,k.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*d)/b.view.scale;mxEvent.isControlDown(l.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||
Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<a/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),d.push(oa(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(a,d,c,e,f){a=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+d*(f+b.shape.strokewidth*
@@ -2656,28 +2656,28 @@ d,c,e,f){a=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxU
b.style.endWidth=Math.max(0,Math.round(2*d)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(l.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<a/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<
a&&(b.style.endWidth=b.style.startWidth))})));return d},swimlane:function(b){var a=[ha(b,[mxConstants.STYLE_STARTSIZE],function(a){var d=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(a.getCenterX(),a.y+Math.max(0,Math.min(a.height,d))):new mxPoint(a.x+Math.max(0,Math.min(a.width,d)),a.getCenterY())},function(a,d){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,
mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(a.height,d.y-a.y))):Math.round(Math.max(0,Math.min(a.width,d.x-a.x)))})];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var d=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));a.push(ma(b,d/2))}return a},label:la(),ext:la(),rectangle:la(),triangle:la(),rhombus:la(),hexagon:la(),umlLifeline:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,
-"size",E.prototype.size))));return new mxPoint(b.getCenterX(),b.y+a)},function(b,a){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))},!1)]},umlFrame:function(b){var a=[ha(b,["width","height"],function(b){var a=Math.max(H.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),d=Math.max(1.5*H.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(b.x+a,b.y+d)},function(b,
+"size",F.prototype.size))));return new mxPoint(b.getCenterX(),b.y+a)},function(b,a){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))},!1)]},umlFrame:function(b){var a=[ha(b,["width","height"],function(b){var a=Math.max(H.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",H.prototype.width))),d=Math.max(1.5*H.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",H.prototype.height)));return new mxPoint(b.x+a,b.y+d)},function(b,
a){this.state.style.width=Math.round(Math.max(H.prototype.corner,Math.min(b.width,a.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*H.prototype.corner,Math.min(b.height,a.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a},process:function(b){var a=[ha(b,["size"],function(b){var a=Math.max(0,Math.min(0.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(b.x+b.width*a,b.y+b.height/4)},function(b,a){this.state.style.size=
Math.max(0,Math.min(0.5,(a.x-b.x)/b.width))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a},cross:function(b){return[ha(b,["size"],function(b){var a=Math.min(b.width,b.height),a=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ba.prototype.size)))*a/2;return new mxPoint(b.getCenterX()-a,b.getCenterY()-a)},function(b,a){var d=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(2*(Math.max(0,b.getCenterY()-a.y)/d),2*(Math.max(0,
b.getCenterX()-a.x)/d))))})]},note:function(a){return[ha(a,["size"],function(a){var d=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",b.prototype.size)))));return new mxPoint(a.x+a.width-d,a.y+d)},function(b,a){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-a.x),Math.min(b.height,a.y-b.y))))})]},manualInput:function(b){var a=[ha(b,["size"],function(b){var a=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
"size",P.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*a/4)},function(b,a){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(a.y-b.y)/3)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a},dataStorage:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",R.prototype.size))));return new mxPoint(b.x+(1-a)*b.width,b.getCenterY())},function(b,a){this.state.style.size=Math.max(0,
-Math.min(1,(b.x+b.width-a.x)/b.width))})]},internalStorage:function(b){var a=[ha(b,["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(b.x+a,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,a.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})];mxUtils.getValue(b.style,
+Math.min(1,(b.x+b.width-a.x)/b.width))})]},internalStorage:function(b){var a=[ha(b,["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(b.x+a,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,a.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})];mxUtils.getValue(b.style,
mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a},corner:function(b){return[ha(b,["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",M.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",M.prototype.dy)));return new mxPoint(b.x+a,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,a.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})]},tee:function(b){return[ha(b,
["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",V.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",V.prototype.dy)));return new mxPoint(b.x+(b.width+a)/2,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,a.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})]},singleArrow:xa(1),doubleArrow:xa(0.5),folder:function(b){return[ha(b,["tabWidth",
"tabHeight"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(a=b.width-a);return new mxPoint(b.x+a,b.y+d)},function(b,a){var d=Math.max(0,Math.min(b.width,a.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==
mxConstants.ALIGN_RIGHT&&(d=b.width-d);this.state.style.tabWidth=Math.round(d);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})]},document:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-a)*b.height)},function(b,a){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-a.y)/b.height))})]},tape:function(b){return[ha(b,["size"],
function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(b.getCenterX(),b.y+a*b.height/2)},function(b,a){this.state.style.size=Math.max(0,Math.min(1,2*((a.y-b.y)/b.height)))})]},offPageConnector:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",S.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-a)*b.height)},function(b,a){this.state.style.size=
-Math.max(0,Math.min(1,(b.y+b.height-a.y)/b.height))})]},step:pa(u.prototype.size,!0),hexagon:pa(v.prototype.size,!0,0.5),curlyBracket:pa(q.prototype.size,!1),display:pa(ka.prototype.size,!1),cube:ta(1,a.prototype.size,!1),card:ta(0.5,k.prototype.size,!0),loopLimit:ta(0.5,da.prototype.size,!0),trapezoid:ja(0.5),parallelogram:ja(1)};Graph.createHandle=ha;Graph.handleFactory=ua;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var b=
+Math.max(0,Math.min(1,(b.y+b.height-a.y)/b.height))})]},step:pa(u.prototype.size,!0),hexagon:pa(v.prototype.size,!0,0.5),curlyBracket:pa(r.prototype.size,!1),display:pa(ka.prototype.size,!1),cube:ta(1,a.prototype.size,!1),card:ta(0.5,k.prototype.size,!0),loopLimit:ta(0.5,da.prototype.size,!0),trapezoid:ja(0.5),parallelogram:ja(1)};Graph.createHandle=ha;Graph.handleFactory=ua;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var b=
ua[this.state.style.shape];if(null!=b)return b(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var b=ua[this.state.style.shape];if(null!=b)return b(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var qa=new mxPoint(1,0),ra=new mxPoint(1,0),ja=mxUtils.toRadians(-30),la=Math.cos(ja),ja=Math.sin(ja),qa=mxUtils.getRotatedPoint(qa,la,ja),ja=mxUtils.toRadians(-150),la=Math.cos(ja),ja=Math.sin(ja),
-ra=mxUtils.getRotatedPoint(ra,la,ja);mxEdgeStyle.IsometricConnector=function(b,a,d,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var g=b.absolutePoints,k=g[0],g=g[g.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==k&&null!=a&&(k=new mxPoint(a.getCenterX(),a.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var l=qa.x,n=qa.y,m=ra.x,u=ra.y,t="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=g&&null!=k){var s=k;b=function(b,a,d){b-=s.x;var c=
-a-s.y;a=(u*b-m*c)/(l*u-n*m);b=(n*b-l*c)/(n*m-l*u);t?(d&&(s=new mxPoint(s.x+l*a,s.y+n*a),e.push(s)),s=new mxPoint(s.x+m*b,s.y+u*b)):(d&&(s=new mxPoint(s.x+m*b,s.y+u*b),e.push(s)),s=new mxPoint(s.x+l*a,s.y+n*a));e.push(s)};null==c&&(c=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));b(c.x,c.y,!0);b(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Da=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,a){if(a==mxEdgeStyle.IsometricConnector){var d=
+ra=mxUtils.getRotatedPoint(ra,la,ja);mxEdgeStyle.IsometricConnector=function(b,a,d,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var g=b.absolutePoints,k=g[0],g=g[g.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==k&&null!=a&&(k=new mxPoint(a.getCenterX(),a.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var l=qa.x,n=qa.y,m=ra.x,p=ra.y,t="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=g&&null!=k){var q=k;b=function(b,a,d){b-=q.x;var c=
+a-q.y;a=(p*b-m*c)/(l*p-n*m);b=(n*b-l*c)/(n*m-l*p);t?(d&&(q=new mxPoint(q.x+l*a,q.y+n*a),e.push(q)),q=new mxPoint(q.x+m*b,q.y+p*b)):(d&&(q=new mxPoint(q.x+m*b,q.y+p*b),e.push(q)),q=new mxPoint(q.x+l*a,q.y+n*a));e.push(q)};null==c&&(c=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));b(c.x,c.y,!0);b(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Da=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,a){if(a==mxEdgeStyle.IsometricConnector){var d=
new mxElbowEdgeHandler(b);d.snapToTerminals=!1;return d}return Da.apply(this,arguments)};c.prototype.constraints=[];f.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,
0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0.5,
-0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;A.prototype.constraints=mxRectangleShape.prototype.constraints;b.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
-mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxEllipse.prototype.constraints;aa.prototype.constraints=mxEllipse.prototype.constraints;W.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;
+0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;b.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
+mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxEllipse.prototype.constraints;aa.prototype.constraints=mxEllipse.prototype.constraints;W.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;
P.prototype.constraints=mxRectangleShape.prototype.constraints;ia.prototype.constraints=mxRectangleShape.prototype.constraints;ka.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.15,0.05),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.85,0.05),
!1),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.3),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.7),!0),new mxConnectionConstraint(new mxPoint(0.15,0.95),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.85,0.95),!1)];D.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,
-0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
+0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];O.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.25,
0.2),!1),new mxConnectionConstraint(new mxPoint(0.1,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(0.75,0.25),!1),new mxConnectionConstraint(new mxPoint(0.9,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];e.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0.5,
0.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.75,0.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];l.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.35),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.65),!1),new mxConnectionConstraint(new mxPoint(1,
@@ -2688,57 +2688,57 @@ new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new
0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(0.875,0.75),!1),new mxConnectionConstraint(new mxPoint(0.375,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0.25),!1),new mxConnectionConstraint(new mxPoint(0.4,0.1),!1),new mxConnectionConstraint(new mxPoint(0.16,
0.55),!1),new mxConnectionConstraint(new mxPoint(0.07,0.4),!1),new mxConnectionConstraint(new mxPoint(0.31,0.8),!1),new mxConnectionConstraint(new mxPoint(0.13,0.77),!1),new mxConnectionConstraint(new mxPoint(0.8,0.8),!1),new mxConnectionConstraint(new mxPoint(0.55,0.95),!1),new mxConnectionConstraint(new mxPoint(0.875,0.5),!1),new mxConnectionConstraint(new mxPoint(0.96,0.7),!1),new mxConnectionConstraint(new mxPoint(0.625,0.2),!1),new mxConnectionConstraint(new mxPoint(0.88,0.25),!1)];m.prototype.constraints=
mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,
-0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;V.prototype.constraints=null;M.prototype.constraints=null;K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];L.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
-0.5),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];E.prototype.constraints=null;Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)];ea.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.175,
+0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;V.prototype.constraints=null;M.prototype.constraints=null;J.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
+0.5),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];F.prototype.constraints=null;Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)];ea.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.175,
0.25),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.175,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(b){d.escape();var a=d.getDeletableCells(d.getSelectionCells());if(null!=a&&0<a.length){var c=d.model.getParents(a);d.removeCells(a,b);if(null!=c){b=[];for(a=0;a<c.length;a++)(d.model.isVertex(c[a])||d.model.isEdge(c[a]))&&b.push(c[a]);d.setSelectionCells(b)}}}var c=this.editorUi,f=c.editor,d=f.graph,b=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){window.open(c.getUrl())});this.addAction("open...",
function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){c.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(b,a){try{var d=mxUtils.parseXml(b),c=new mxGraphModel;(new mxCodec(d)).decode(d.documentElement,c);var e=c.getChildren(c.getChildAt(c.getRoot(),0));f.graph.setSelectionCells(f.graph.importCells(e))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+
": "+p.message)}}));c.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=b;this.addAction("save",function(){c.saveFile(!1)},null,null,"Ctrl+S").isEnabled=b;this.addAction("saveAs...",function(){c.saveFile(!0)},null,null,"Ctrl+Shift+S").isEnabled=b;this.addAction("export...",function(){c.showDialog((new ExportDialog(c)).container,300,210,!0,!0)});this.addAction("editDiagram...",function(){var b=new EditDiagramDialog(c);c.showDialog(b.container,620,
420,!0,!0);b.init()});this.addAction("pageSetup...",function(){c.showDialog((new PageSetupDialog(c)).container,320,220,!0,!0)}).isEnabled=b;this.addAction("print...",function(){c.showDialog((new PrintDialog(c)).container,300,180,!0,!0)},null,"sprite-print","Ctrl+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){c.undo()},null,"sprite-undo","Ctrl+Z");this.addAction("redo",function(){c.redo()},null,"sprite-redo",!mxClient.IS_WIN?"Ctrl+Shift+Z":"Ctrl+Y");
this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X");this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C");this.addAction("paste",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V");this.addAction("pasteHere",function(b){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){d.getModel().beginUpdate();try{var a=mxClipboard.paste(d);if(null!=a){var c=d.getBoundingBoxFromGeometry(a);
-if(null!=c){var e=d.view.translate,f=d.view.scale,p=e.y,q=Math.round(d.snap(d.popupMenuHandler.triggerX/f-e.x)),r=Math.round(d.snap(d.popupMenuHandler.triggerY/f-p));d.cellsMoved(a,q-c.x,r-c.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,"Ctrl+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,"Ctrl+D");this.addAction("turn",
+if(null!=c){var e=d.view.translate,f=d.view.scale,p=e.y,r=Math.round(d.snap(d.popupMenuHandler.triggerX/f-e.x)),s=Math.round(d.snap(d.popupMenuHandler.triggerY/f-p));d.cellsMoved(a,r-c.x,s-c.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,"Ctrl+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,"Ctrl+D");this.addAction("turn",
function(){d.setSelectionCells(d.turnShapes(d.getSelectionCells()))},null,null,"Ctrl+R");this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,"Ctrl+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,"Ctrl+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var b=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,b);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,b);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,b);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,b);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,b);d.toggleCellStyles("connectable",b)}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},
null,null,"Ctrl+Shift+Page Up");this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Ctrl+Shift+Page Down");this.addAction("expand",function(){d.foldCells(!1)},null,null,"Ctrl+Page Down");this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Ctrl+Page Up");this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container",
-"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("editData...",function(){var b=d.getSelectionCell()||d.getModel().getRoot();null!=b&&(b=new EditDataDialog(c,b),c.showDialog(b.container,
-320,320,!0,!1),b.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(c,mxResources.get("editTooltip")+":",d,function(d){b.setTooltipForCell(a,d)});c.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",function(){var b=d.getLinkForCell(d.getSelectionCell());null!=
-b&&window.open(b)});this.addAction("editLink...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d=b.getLinkForCell(a)||"";c.showLinkDialog(d,mxResources.get("apply"),function(d){d=mxUtils.trim(d);b.setLinkForCell(a,0<d.length?d:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=new LinkDialog(c,"",mxResources.get("insert"),function(b,a){b=mxUtils.trim(b);if(0<b.length){var c=b.substring(b.lastIndexOf("/")+
-1),e=null;null!=a&&0<a.length&&(e=a[0].iconUrl,c=a[0].name||a[0].type,c=c.charAt(0).toUpperCase()+c.substring(1),30<c.length&&(c=c.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),c=new mxCell(c,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=e?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+e:"spacing\x3d10;"));c.vertex=!0;d.setLinkForCell(c,b);d.cellSizeUpdated(c,!0);d.setSelectionCell(d.addCell(c));
-d.scrollCellToVisible(d.getSelectionCell())}});c.showDialog(b.container,420,90,!0,!0);b.init()}}).isEnabled=b;this.addAction("link...",mxUtils.bind(this,function(){var b=c.editor.graph;if(b.isEnabled())if(b.cellEditor.isContentEditing()){var a=b.getParentByName(b.getSelectedElement(),"A",b.cellEditor.textarea),d="";null!=a&&(d=a.getAttribute("href")||"");var e=b.cellEditor.saveSelection();c.showLinkDialog(d,mxResources.get("apply"),mxUtils.bind(this,function(a){b.cellEditor.restoreSelection(e);if(null!=
-a)if(0==a.length)document.execCommand("unlink",!1);else{for(var d=b.cellEditor.textarea.getElementsByTagName("a"),c=[],f=0;f<d.length;f++)c.push(d[f]);document.execCommand("createlink",!1,mxUtils.trim(a));a=b.cellEditor.textarea.getElementsByTagName("a");if(a.length==c.length+1)for(f=a.length-1;0<=f;f--)if(0==f||a[f]!=c[f-1]){a[f].setAttribute("target","_blank");break}}}))}else b.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=b;this.addAction("autosize",
-function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var c=b[a];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var e=d.view.getState(c),f=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=e&&null!=e.text&&null!=f&&d.isWrapping(c)?(f=f.clone(),f.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,f)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+Shift+Y");this.addAction("formattedText",
-function(){var b=d.getView().getState(d.getSelectionCell());if(null!=b){var a="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==b.style.html)a=null,"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&d.cellLabelChanged(b.cell,d.convertValueToString(b.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(b.cell);"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(b.cell,d.sanitizeHtml(e))}d.setCellStyles("html",a);c.fireEvent(new mxEventObject("styleChanged",
-"keys",["html"],"values",[null!=a?a:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var b=d.getView().getState(d.getSelectionCell()),a="wrap";d.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(a=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,a)});this.addAction("rotation",function(){var b="0",a=d.getView().getState(d.getSelectionCell());null!=a&&(b=a.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(c,
-b,mxResources.get("apply"),function(b){null!=b&&0<b.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,b)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");c.showDialog(b.container,300,80,!0,!0);b.init()});this.addAction("resetView",function(){d.zoomTo(1);c.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(b){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",function(b){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",
-function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/b.width/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=b.y*d.view.scale,d.container.scrollLeft=Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),
-null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*b.width)/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=Math.min(b.y,(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(b.x,(d.container.scrollWidth-d.container.clientWidth)/
-2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var b=d.getPagePadding();d.container.scrollLeft=Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,
-parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&d.zoomTo(b/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&c.setPageScale(b/100)}),mxResources.get("pageScale")+
-" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}));var e=null,e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());c.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.isGridEnabled()});e.setEnabled(!1);e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;c.fireEvent(new mxEventObject("guidesEnabledChanged"))});e.setToggleAction(!0);
-e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});e.setEnabled(!1);e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});e=this.addAction("collapseExpand",function(){c.setFoldingEnabled(!d.foldingEnabled)});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.foldingEnabled});e.isEnabled=b;e=this.addAction("scrollbars",function(){c.setScrollbars(!c.hasScrollbars())});
-e.setToggleAction(!0);e.setSelectedCallback(function(){return d.scrollbars});e=this.addAction("pageView",mxUtils.bind(this,function(){c.setPageVisible(!d.pageVisible)}));e.setToggleAction(!0);e.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){c.pickColor(d.background||"none",function(b){c.setBackgroundColor(b)})}));e=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;
-c.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionArrowsEnabled});e=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());c.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());
-c.fireEvent(new mxEventObject("copyConnectChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});e.isEnabled=b;e=this.addAction("autosave",function(){c.editor.setAutosave(!c.editor.autosave)});e.setToggleAction(!0);e.setSelectedCallback(function(){return c.editor.autosave});e.isEnabled=b;e.visible=!1;this.addAction("help",function(){var b="";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);window.open(RESOURCES_PATH+
-"/help"+b+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){c.showDialog((new AboutDialog(c)).container,320,280,!0,!0)},null,null,"F1"));e=mxUtils.bind(this,function(b,a,c,e){return this.addAction(b,function(){null!=c&&d.cellEditor.isContentEditing()?c():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,a))},null,null,e)});e("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");e("italic",mxConstants.FONT_ITALIC,
-function(){document.execCommand("italic",!1,null)},"Ctrl+I");e("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){c.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){c.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){c.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){c.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
-this.addAction("backgroundColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){c.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){c.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,
-null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,
-mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",
-function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged",
-"keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var b=d.getSelectionCells(),a=d.view.getState(b[0]),e=null!=a?a.style:d.getCellStyle(b[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,
-null);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
-this.addAction("collapsible",function(){var b=d.view.getState(d.getSelectionCell()),a="1";null!=b&&null!=d.getFoldingImage(b)&&(a="0");d.setCellStyles("collapsible",a);c.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[a],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var b=d.getSelectionCells();if(null!=b&&0<b.length){var a=d.getModel(),a=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",a.getStyle(b[0])||"",
-function(a){null!=a&&d.setCellStyle(mxUtils.trim(a),b)},null,null,400,220);this.editorUi.showDialog(a.container,420,300,!0,!0);a.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&c.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&c.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var b=d.getSelectionCell();if(null!=b&&d.getModel().isEdge(b)){var a=
-f.graph.selectionCellsHandler.getHandler(b);if(a instanceof mxEdgeHandler){for(var c=d.view.translate,e=d.view.scale,m=c.x,c=c.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=p;)m+=p.x,c+=p.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);m=Math.round(d.snap(d.popupMenuHandler.triggerX/e-m));e=Math.round(d.snap(d.popupMenuHandler.triggerY/e-c));a.addPointAt(a.state,m,e)}}});this.addAction("removeWaypoint",function(){var b=c.actions.get("removeWaypoint");null!=
-b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var c=b[a];if(d.getModel().isEdge(c)){var e=d.getCellGeometry(c);null!=e&&(e=e.clone(),e.points=null,d.getModel().setGeometry(c,e))}}}finally{d.getModel().endUpdate()}}});e=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),
-null,null,"Ctrl+,");e=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",a=d.getView().getState(d.getSelectionCell()),e="";null!=a&&(e=a.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();c.showImageDialog(b,e,function(b,
-a,c){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(b,a,c);else{var e=d.getSelectionCells();if(null!=b){var g=null;d.getModel().beginUpdate();try{if(0==e.length)var k=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,a,c,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,b,e);var l=d.view.getState(e[0]),v=null!=l?l.style:d.getCellStyle(e[0]);"image"!=v[mxConstants.STYLE_SHAPE]&&
-"label"!=v[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e);if(1==d.getSelectionCount()&&null!=a&&null!=c){var A=e[0],y=d.getModel().getGeometry(A);null!=y&&(y=y.clone(),y.width=a,y.height=c,d.getModel().setGeometry(A,y))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=b;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
-(d.clearSelection(),c.actions.get("image").funct())}).isEnabled=b;e=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("layers"))):
-this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));e=this.addAction("formatPanel",mxUtils.bind(this,function(){c.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return 0<c.formatWidth}));e=this.addAction("outline",mxUtils.bind(this,
-function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(c,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());c.fireEvent(new mxEventObject("outline"))}),
-null,null,"Ctrl+Shift+O");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,c,f,d,b){var e;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),e=mxResources.get(a)+"..."):e=mxResources.get(a);return this.put(a,new Action(e,c,f,d,b))};Actions.prototype.put=function(a,c){return this.actions[a]=c};Actions.prototype.get=function(a){return this.actions[a]};
-function Action(a,c,f,d,b){mxEventSource.call(this);this.label=a;this.funct=c;this.enabled=null!=f?f:!0;this.iconCls=d;this.shortcut=b;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
+"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var b=d.getSelectionCell()||
+d.getModel().getRoot();null!=b&&(b=new EditDataDialog(c,b),c.showDialog(b.container,320,320,!0,!1),b.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(c,mxResources.get("editTooltip")+":",d,function(d){b.setTooltipForCell(a,d)});c.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",
+function(){var b=d.getLinkForCell(d.getSelectionCell());null!=b&&window.open(b)});this.addAction("editLink...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d=b.getLinkForCell(a)||"";c.showLinkDialog(d,mxResources.get("apply"),function(d){d=mxUtils.trim(d);b.setLinkForCell(a,0<d.length?d:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=new LinkDialog(c,"",mxResources.get("insert"),
+function(b,a){b=mxUtils.trim(b);if(0<b.length){var c=b.substring(b.lastIndexOf("/")+1),e=null;null!=a&&0<a.length&&(e=a[0].iconUrl,c=a[0].name||a[0].type,c=c.charAt(0).toUpperCase()+c.substring(1),30<c.length&&(c=c.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),c=new mxCell(c,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=e?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+e:"spacing\x3d10;"));
+c.vertex=!0;d.setLinkForCell(c,b);d.cellSizeUpdated(c,!0);d.setSelectionCell(d.addCell(c));d.scrollCellToVisible(d.getSelectionCell())}});c.showDialog(b.container,420,90,!0,!0);b.init()}}).isEnabled=b;this.addAction("link...",mxUtils.bind(this,function(){var b=c.editor.graph;if(b.isEnabled())if(b.cellEditor.isContentEditing()){var a=b.getParentByName(b.getSelectedElement(),"A",b.cellEditor.textarea),d="";null!=a&&(d=a.getAttribute("href")||"");var e=b.cellEditor.saveSelection();c.showLinkDialog(d,
+mxResources.get("apply"),mxUtils.bind(this,function(a){b.cellEditor.restoreSelection(e);if(null!=a)if(0==a.length)document.execCommand("unlink",!1);else{for(var d=b.cellEditor.textarea.getElementsByTagName("a"),c=[],f=0;f<d.length;f++)c.push(d[f]);document.execCommand("createlink",!1,mxUtils.trim(a));a=b.cellEditor.textarea.getElementsByTagName("a");if(a.length==c.length+1)for(f=a.length-1;0<=f;f--)if(0==f||a[f]!=c[f-1]){a[f].setAttribute("target","_blank");break}}}))}else b.isSelectionEmpty()?this.get("insertLink").funct():
+this.get("editLink").funct()})).isEnabled=b;this.addAction("autosize",function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var c=b[a];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var e=d.view.getState(c),f=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=e&&null!=e.text&&null!=f&&d.isWrapping(c)?(f=f.clone(),f.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,f)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},
+null,null,"Ctrl+Shift+Y");this.addAction("formattedText",function(){var b=d.getView().getState(d.getSelectionCell());if(null!=b){var a="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==b.style.html)a=null,"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&d.cellLabelChanged(b.cell,d.convertValueToString(b.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(b.cell);"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(b.cell,
+d.sanitizeHtml(e))}d.setCellStyles("html",a);c.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=a?a:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var b=d.getView().getState(d.getSelectionCell()),a="wrap";d.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(a=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,a)});this.addAction("rotation",function(){var b="0",a=d.getView().getState(d.getSelectionCell());
+null!=a&&(b=a.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(c,b,mxResources.get("apply"),function(b){null!=b&&0<b.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,b)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");c.showDialog(b.container,300,80,!0,!0);b.init()});this.addAction("resetView",function(){d.zoomTo(1);c.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(b){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",
+function(b){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/b.width/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=b.y*d.view.scale,d.container.scrollLeft=
+Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*b.width)/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=Math.min(b.y,(d.container.scrollHeight-d.container.clientHeight)/
+2),d.container.scrollLeft=Math.min(b.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var b=d.getPagePadding();d.container.scrollLeft=Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",
+new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&d.zoomTo(b/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),
+mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&c.setPageScale(b/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}));var e=null,e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());c.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.isGridEnabled()});e.setEnabled(!1);e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=
+!d.graphHandler.guidesEnabled;c.fireEvent(new mxEventObject("guidesEnabledChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});e.setEnabled(!1);e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});e=this.addAction("collapseExpand",function(){c.setFoldingEnabled(!d.foldingEnabled)});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.foldingEnabled});
+e.isEnabled=b;e=this.addAction("scrollbars",function(){c.setScrollbars(!c.hasScrollbars())});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.scrollbars});e=this.addAction("pageView",mxUtils.bind(this,function(){c.setPageVisible(!d.pageVisible)}));e.setToggleAction(!0);e.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){c.pickColor(d.background||"none",function(b){c.setBackgroundColor(b)})}));
+e=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;c.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionArrowsEnabled});e=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());c.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});
+e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());c.fireEvent(new mxEventObject("copyConnectChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});e.isEnabled=b;e=this.addAction("autosave",function(){c.editor.setAutosave(!c.editor.autosave)});e.setToggleAction(!0);e.setSelectedCallback(function(){return c.editor.autosave});e.isEnabled=b;e.visible=!1;this.addAction("help",function(){var b=
+"";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);window.open(RESOURCES_PATH+"/help"+b+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){c.showDialog((new AboutDialog(c)).container,320,280,!0,!0)},null,null,"F1"));e=mxUtils.bind(this,function(b,a,c,e){return this.addAction(b,function(){null!=c&&d.cellEditor.isContentEditing()?c():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,a))},null,null,e)});e("bold",
+mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");e("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},"Ctrl+I");e("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){c.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){c.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",
+function(){c.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){c.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){c.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){c.menus.toggleStyle(mxConstants.STYLE_SHADOW)});
+this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
+null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],
+"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,
+"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var b=d.getSelectionCells(),a=d.view.getState(b[0]),e=null!=a?a.style:d.getCellStyle(b[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?
+"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),c.fireEvent(new mxEventObject("styleChanged","keys",
+[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var b=d.view.getState(d.getSelectionCell()),a="1";null!=b&&null!=d.getFoldingImage(b)&&(a="0");d.setCellStyles("collapsible",a);c.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[a],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var b=d.getSelectionCells();
+if(null!=b&&0<b.length){var a=d.getModel(),a=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",a.getStyle(b[0])||"",function(a){null!=a&&d.setCellStyle(mxUtils.trim(a),b)},null,null,400,220);this.editorUi.showDialog(a.container,420,300,!0,!0);a.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&c.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&
+c.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var b=d.getSelectionCell();if(null!=b&&d.getModel().isEdge(b)){var a=f.graph.selectionCellsHandler.getHandler(b);if(a instanceof mxEdgeHandler){for(var c=d.view.translate,e=d.view.scale,m=c.x,c=c.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=p;)m+=p.x,c+=p.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);m=Math.round(d.snap(d.popupMenuHandler.triggerX/e-m));e=Math.round(d.snap(d.popupMenuHandler.triggerY/
+e-c));a.addPointAt(a.state,m,e)}}});this.addAction("removeWaypoint",function(){var b=c.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var c=b[a];if(d.getModel().isEdge(c)){var e=d.getCellGeometry(c);null!=e&&(e=e.clone(),e.points=null,d.getModel().setGeometry(c,e))}}}finally{d.getModel().endUpdate()}}});e=this.addAction("subscript",
+mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,"Ctrl+,");e=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",a=d.getView().getState(d.getSelectionCell()),e="";null!=a&&
+(e=a.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();c.showImageDialog(b,e,function(b,a,c){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(b,a,c);else{var e=d.getSelectionCells();if(null!=b){var g=null;d.getModel().beginUpdate();try{if(0==e.length)var k=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,a,c,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,
+b,e);var l=d.view.getState(e[0]),v=null!=l?l.style:d.getCellStyle(e[0]);"image"!=v[mxConstants.STYLE_SHAPE]&&"label"!=v[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e);if(1==d.getSelectionCount()&&null!=a&&null!=c){var z=e[0],y=d.getModel().getGeometry(z);null!=y&&(y=y.clone(),y.width=a,y.height=c,d.getModel().setGeometry(z,y))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=
+b;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),c.actions.get("image").funct())}).isEnabled=b;e=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("layers"))}),
+this.layersWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("layers"))):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));e=this.addAction("formatPanel",mxUtils.bind(this,function(){c.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,
+function(){return 0<c.formatWidth}));e=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(c,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());
+c.fireEvent(new mxEventObject("outline"))}),null,null,"Ctrl+Shift+O");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,c,f,d,b){var e;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),e=mxResources.get(a)+"..."):e=mxResources.get(a);return this.put(a,new Action(e,c,f,d,b))};Actions.prototype.put=function(a,c){return this.actions[a]=c};
+Actions.prototype.get=function(a){return this.actions[a]};function Action(a,c,f,d,b){mxEventSource.call(this);this.label=a;this.funct=c;this.enabled=null!=f?f:!0;this.iconCls=d;this.shortcut=b;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};Menus=function(a){this.editorUi=a;this.menus={};this.init();mxClient.IS_SVG||((new Image).src=this.checkmarkImage)};Menus.prototype.defaultFont="Helvetica";Menus.prototype.defaultFontSize="12";Menus.prototype.defaultMenuItems="file edit view arrange extras help".split(" ");Menus.prototype.defaultFonts="Helvetica;Verdana;Times New Roman;Garamond;Comic Sans MS;Courier New;Georgia;Lucida Console;Tahoma".split(";");
Menus.prototype.init=function(){var a=this.editorUi.editor.graph,c=mxUtils.bind(a,a.isEnabled);this.customFonts=[];this.customFontSizes=[];this.put("fontFamily",new Menu(mxUtils.bind(this,function(a,d){for(var b=mxUtils.bind(this,function(b){this.styleChange(a,b,[mxConstants.STYLE_FONTFAMILY],[b],null,d,function(){document.execCommand("fontname",!1,b)}).firstChild.nextSibling.style.fontFamily=b}),c=0;c<this.defaultFonts.length;c++)b(this.defaultFonts[c]);a.addSeparator(d);if(0<this.customFonts.length){for(c=
0;c<this.customFonts.length;c++)b(this.customFonts[c]);a.addSeparator(d);a.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFonts=[]}),d);a.addSeparator(d)}this.promptChange(a,mxResources.get("custom")+"...","",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,d,!0,mxUtils.bind(this,function(b){this.customFonts.push(b)}))})));this.put("formatBlock",new Menu(mxUtils.bind(this,function(c,d){function b(b,g){return c.addItem(b,null,mxUtils.bind(this,function(){a.cellEditor.textarea.focus();
@@ -2757,14 +2757,14 @@ null,mxUtils.bind(this,function(){var b=new mxCircleLayout(a);this.editorUi.exec
d){this.addMenuItems(a,["toFront","toBack","-"],d);this.addSubmenu("direction",a,d);this.addMenuItems(a,["turn","-"],d);this.addSubmenu("align",a,d);this.addSubmenu("distribute",a,d);a.addSeparator(d);this.addSubmenu("navigation",a,d);this.addSubmenu("insert",a,d);this.addSubmenu("layout",a,d);this.addMenuItems(a,"- group ungroup removeFromGroup - clearWaypoints autosize".split(" "),d)}))).isEnabled=c;this.put("insert",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["insertLink","insertImage"],
d)})));this.put("view",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,(null!=this.editorUi.format?["formatPanel"]:[]).concat("outline layers - pageView pageScale - scrollbars tooltips - grid guides - connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),d))})));this.put("viewPanels",new Menu(mxUtils.bind(this,function(a,d){null!=this.editorUi.format&&this.addMenuItems(a,["formatPanel"],d);this.addMenuItems(a,["outline","layers"],d)})));this.put("viewZoom",new Menu(mxUtils.bind(this,
function(c,d){this.addMenuItems(c,["resetView","-"],d);for(var b=[0.25,0.5,0.75,1,1.25,1.5,2,3,4],e=0;e<b.length;e++)(function(b){c.addItem(100*b+"%",null,function(){a.zoomTo(b)},d)})(b[e]);this.addMenuItems(c,"- fitWindow fitPageWidth fitPage fitTwoPages - customZoom".split(" "),d)})));this.put("file",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,"new open - save saveAs - import export - pageSetup print".split(" "),d)})));this.put("edit",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,
-"undo redo - cut copy paste delete - duplicate - editData editTooltip editStyle - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("extras",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["copyConnect","collapseExpand","-","editDiagram"])})));this.put("help",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["help","-","about"])})))};Menus.prototype.put=function(a,c){return this.menus[a]=c};Menus.prototype.get=function(a){return this.menus[a]};
-Menus.prototype.addSubmenu=function(a,c,f){var d=this.get(a).isEnabled();if(c.showDisabled||d)f=c.addItem(mxResources.get(a),null,null,f,null,d),this.addMenu(a,c,f)};Menus.prototype.addMenu=function(a,c,f){var d=this.get(a);null!=d&&(c.showDisabled||d.isEnabled())&&this.get(a).execute(c,f)};
+"undo redo - cut copy paste delete - duplicate - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("extras",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["copyConnect","collapseExpand","-","editDiagram"])})));this.put("help",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["help","-","about"])})))};Menus.prototype.put=function(a,c){return this.menus[a]=c};
+Menus.prototype.get=function(a){return this.menus[a]};Menus.prototype.addSubmenu=function(a,c,f){var d=this.get(a).isEnabled();if(c.showDisabled||d)f=c.addItem(mxResources.get(a),null,null,f,null,d),this.addMenu(a,c,f)};Menus.prototype.addMenu=function(a,c,f){var d=this.get(a);null!=d&&(c.showDisabled||d.isEnabled())&&this.get(a).execute(c,f)};
Menus.prototype.addInsertTableItem=function(a){function c(b,a){for(var d=["\x3ctable\x3e"],c=0;c<b;c++){d.push("\x3ctr\x3e");for(var e=0;e<a;e++)d.push("\x3ctd\x3e\x3cbr\x3e\x3c/td\x3e");d.push("\x3c/tr\x3e")}d.push("\x3c/table\x3e");return d.join("")}var f=this.editorUi.editor.graph;a=a.addItem("",null,mxUtils.bind(this,function(b){var a=f.getParentByName(mxEvent.getSource(b),"TD");if(null!=a){var d=f.getParentByName(a,"TR"),e=f.cellEditor.textarea.getElementsByTagName("table");b=[];for(var m=0;m<
e.length;m++)b.push(e[m]);f.container.focus();f.pasteHtmlAtCaret(c(d.sectionRowIndex+1,a.cellIndex+1));a=f.cellEditor.textarea.getElementsByTagName("table");if(a.length==b.length+1)for(m=a.length-1;0<=m;m--)if(0==m||a[m]!=b[m-1]){f.selectNode(a[m].rows[0].cells[0]);break}}}));var d='\x3cimg src\x3d"'+mxClient.imageBasePath+'/transparent.gif" width\x3d"16" height\x3d"16"/\x3e';a.firstChild.innerHTML="";var b=function(b,a){var c=document.createElement("table");c.setAttribute("border","1");c.style.borderCollapse=
-"collapse";mxClient.IS_QUIRKS||c.setAttribute("cellPadding","8");for(var e=0;e<b;e++)for(var f=c.insertRow(e),p=0;p<a;p++){var q=f.insertCell(-1);mxClient.IS_QUIRKS&&(q.innerHTML=d)}return c}(5,5);a.firstChild.appendChild(b);var e=document.createElement("div");e.style.padding="4px";e.style.fontSize=Menus.prototype.defaultFontSize+"px";e.innerHTML="1x1";a.firstChild.appendChild(e);mxEvent.addListener(b,"mouseover",function(a){var c=f.getParentByName(mxEvent.getSource(a),"TD");if(null!=c){for(var l=
-f.getParentByName(c,"TR"),n=Math.min(20,l.sectionRowIndex+2),m=Math.min(20,c.cellIndex+2),p=b.rows.length;p<n;p++)for(var q=b.insertRow(p),r=0;r<b.rows[0].cells.length;r++){var s=q.insertCell(-1);mxClient.IS_QUIRKS&&(s.innerHTML=d)}for(p=0;p<b.rows.length;p++){q=b.rows[p];for(r=q.cells.length;r<m;r++)s=q.insertCell(-1),mxClient.IS_QUIRKS&&(s.innerHTML=d)}e.innerHTML=c.cellIndex+1+"x"+(l.sectionRowIndex+1);for(n=0;n<b.rows.length;n++){m=b.rows[n];for(p=0;p<m.cells.length;p++)m.cells[p].style.backgroundColor=
+"collapse";mxClient.IS_QUIRKS||c.setAttribute("cellPadding","8");for(var e=0;e<b;e++)for(var f=c.insertRow(e),p=0;p<a;p++){var r=f.insertCell(-1);mxClient.IS_QUIRKS&&(r.innerHTML=d)}return c}(5,5);a.firstChild.appendChild(b);var e=document.createElement("div");e.style.padding="4px";e.style.fontSize=Menus.prototype.defaultFontSize+"px";e.innerHTML="1x1";a.firstChild.appendChild(e);mxEvent.addListener(b,"mouseover",function(a){var c=f.getParentByName(mxEvent.getSource(a),"TD");if(null!=c){for(var l=
+f.getParentByName(c,"TR"),n=Math.min(20,l.sectionRowIndex+2),m=Math.min(20,c.cellIndex+2),p=b.rows.length;p<n;p++)for(var r=b.insertRow(p),s=0;s<b.rows[0].cells.length;s++){var q=r.insertCell(-1);mxClient.IS_QUIRKS&&(q.innerHTML=d)}for(p=0;p<b.rows.length;p++){r=b.rows[p];for(s=r.cells.length;s<m;s++)q=r.insertCell(-1),mxClient.IS_QUIRKS&&(q.innerHTML=d)}e.innerHTML=c.cellIndex+1+"x"+(l.sectionRowIndex+1);for(n=0;n<b.rows.length;n++){m=b.rows[n];for(p=0;p<m.cells.length;p++)m.cells[p].style.backgroundColor=
n<=l.sectionRowIndex&&p<=c.cellIndex?"blue":"white"}mxEvent.consume(a)}})};
-Menus.prototype.edgeStyleChange=function(a,c,f,d,b,e,g){return a.addItem(c,null,mxUtils.bind(this,function(){var b=this.editorUi.editor.graph;b.stopEditing(!1);b.getModel().beginUpdate();try{for(var a=b.getSelectionCells(),c=[],e=0;e<a.length;e++){var p=a[e];if(b.getModel().isEdge(p)){if(g){var q=b.getCellGeometry(p);null!=q&&(q=q.clone(),q.points=null,b.getModel().setGeometry(p,q))}for(var r=0;r<f.length;r++)b.setCellStyles(f[r],d[r],[p]);c.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
+Menus.prototype.edgeStyleChange=function(a,c,f,d,b,e,g){return a.addItem(c,null,mxUtils.bind(this,function(){var b=this.editorUi.editor.graph;b.stopEditing(!1);b.getModel().beginUpdate();try{for(var a=b.getSelectionCells(),c=[],e=0;e<a.length;e++){var p=a[e];if(b.getModel().isEdge(p)){if(g){var r=b.getCellGeometry(p);null!=r&&(r=r.clone(),r.points=null,b.getModel().setGeometry(p,r))}for(var s=0;s<f.length;s++)b.setCellStyles(f[s],d[s],[p]);c.push(p)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
"keys",f,"values",d,"cells",c))}finally{b.getModel().endUpdate()}}),e,b)};Menus.prototype.styleChange=function(a,c,f,d,b,e,g){var k=this.createStyleChangeFunction(f,d);return a.addItem(c,null,mxUtils.bind(this,function(){var b=this.editorUi.editor.graph;null!=g&&b.cellEditor.isContentEditing()?g():k()}),e,b)};
Menus.prototype.createStyleChangeFunction=function(a,c){return mxUtils.bind(this,function(){var f=this.editorUi.editor.graph;f.stopEditing(!1);f.getModel().beginUpdate();try{for(var d=0;d<a.length;d++)f.setCellStyles(a[d],c[d]);this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",a,"values",c,"cells",f.getSelectionCells()))}finally{f.getModel().endUpdate()}})};
Menus.prototype.promptChange=function(a,c,f,d,b,e,g,k,l){return a.addItem(c,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,c=d,e=a.getView().getState(a.getSelectionCell());null!=e&&(c=e.style[b]||c);c=new FilenameDialog(this.editorUi,c,mxResources.get("apply"),mxUtils.bind(this,function(d){if(null!=d&&0<d.length){a.getModel().beginUpdate();try{a.stopEditing(!1),a.setCellStyles(b,d)}finally{a.getModel().endUpdate()}null!=k&&k(d)}}),mxResources.get("enterValue")+(0<f.length?" "+
@@ -2776,7 +2776,7 @@ Menus.prototype.addMenuItem=function(a,c,f,d,b){var e=this.editorUi.actions.get(
Menus.prototype.addShortcut=function(a,c){if(null!=c.shortcut){var f=a.firstChild.nextSibling.nextSibling,d=document.createElement("span");d.style.color="gray";mxUtils.write(d,c.shortcut);f.appendChild(d)}};Menus.prototype.addMenuItems=function(a,c,f,d,b){for(var e=0;e<c.length;e++)"-"==c[e]?a.addSeparator(f):this.addMenuItem(a,c[e],f,d,null!=b?b[e]:null)};
Menus.prototype.createPopupMenu=function(a,c,f){var d=this.editorUi.editor.graph;a.smartSeparators=!0;d.isSelectionEmpty()?this.addMenuItems(a,["undo","redo","-","pasteHere"],null,f):this.addMenuItems(a,"delete - cut copy - duplicate".split(" "),null,f);if(0<d.getSelectionCount()){1==d.getSelectionCount()&&this.addMenuItems(a,["setAsDefaultStyle"],null,f);a.addSeparator();c=d.getSelectionCell();var b=d.view.getState(c);if(null!=b){1==d.getSelectionCount()&&this.addMenuItems(a,["toFront","toBack",
"-"],null,f);if(d.getModel().isEdge(c)&&"entityRelationEdgeStyle"!=mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&"arrow"!=mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null)){var e=d.selectionCellsHandler.getHandler(c),g=!1;if(e instanceof mxEdgeHandler&&null!=e.bends&&2<e.bends.length){var g=e.getHandleForEvent(d.updateMouseEvent(new mxMouseEvent(f))),k=this.editorUi.actions.get("removeWaypoint");k.handler=e;k.index=g;g=0<g&&g<e.bends.length-1}this.addMenuItems(a,["-",g?"removeWaypoint":
-"addWaypoint"],null,f);e=d.getModel().getGeometry(c);null!=e&&null!=e.points&&0<e.points.length&&this.addMenuItems(a,["clearWaypoints"],null,f)}1<d.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,f)):1==d.getSelectionCount()&&!d.getModel().isEdge(c)&&(!d.isSwimlane(c)&&0<d.getModel().getChildCount(c))&&(a.addSeparator(),this.addMenuItems(a,["ungroup"],null,f));1==d.getSelectionCount()&&(a.addSeparator(),this.addMenuItems(a,["editData","editLink"],null,f),d.getModel().isVertex(c)&&
+"addWaypoint"],null,f);e=d.getModel().getGeometry(c);null!=e&&null!=e.points&&0<e.points.length&&this.addMenuItems(a,["clearWaypoints"],null,f)}1<d.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,f)):1==d.getSelectionCount()&&!d.getModel().isEdge(c)&&(!d.isSwimlane(c)&&0<d.getModel().getChildCount(c))&&(a.addSeparator(),this.addMenuItems(a,["ungroup"],null,f));1==d.getSelectionCount()&&(a.addSeparator(),this.addMenuItems(a,["edit","-","editData","editLink"],null,f),d.getModel().isVertex(c)&&
null!=mxUtils.getValue(b.style,mxConstants.STYLE_IMAGE,null)&&(a.addSeparator(),this.addMenuItem(a,"image",null,f).firstChild.nextSibling.innerHTML=mxResources.get("editImage")+"..."))}}else this.addMenuItems(a,["-","selectVertices","selectEdges","-","selectAll"],null,f)};
Menus.prototype.createMenubar=function(a){for(var c=new Menubar(this.editorUi,a),f=this.defaultMenuItems,d=0;d<f.length;d++)mxUtils.bind(this,function(b){var a=c.addMenu(mxResources.get(f[d]),mxUtils.bind(this,function(){b.funct.apply(this,arguments)}));null!=a&&b.addListener("stateChanged",function(){(a.enabled=b.enabled)?(a.className="geItem",8==document.documentMode&&(a.style.color="")):(a.className="geItem mxDisabled",8==document.documentMode&&(a.style.color="#c3c3c3"))})})(this.get(f[d]));return c};
function Menubar(a,c){this.editorUi=a;this.container=c}Menubar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};Menubar.prototype.addMenu=function(a,c){var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");f.className="geItem";mxUtils.write(f,a);this.addMenuHandler(f,c);this.container.appendChild(f);return f};
@@ -2802,9 +2802,9 @@ mxUtils.bind(this,function(f){e!=a&&(b?this.labelIndex=c:this.currentIndex=c,nul
n=l.cloneNode(!1);l.style.backgroundColor="#d7d7d7";n.style.backgroundColor="#d7d7d7";if(b)l.style.borderLeftWidth="0px";else{d.style.borderLeftWidth="0px";mxUtils.write(d,mxResources.get("style"));f.appendChild(d);var m=f.cloneNode(!1);m.style.display="none";this.panels.push(new StyleFormatPanel(this,a,m));this.container.appendChild(m);c(d,m,k++)}mxUtils.write(l,mxResources.get("text"));f.appendChild(l);d=f.cloneNode(!1);d.style.display="none";this.panels.push(new TextFormatPanel(this,a,d));this.container.appendChild(d);
mxUtils.write(n,mxResources.get("arrange"));f.appendChild(n);f=f.cloneNode(!1);f.style.display="none";this.panels.push(new ArrangePanel(this,a,f));this.container.appendChild(f);c(l,d,k++);c(n,f,k++)}}};BaseFormatPanel=function(a,c,f){this.format=a;this.editorUi=c;this.container=f;this.listeners=[]};
BaseFormatPanel.prototype.getSelectionState=function(){for(var a=this.editorUi.editor.graph,c=a.getSelectionCells(),f=null,d=0;d<c.length;d++){var b=a.view.getState(c[d]);if(null!=b&&(b=mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null),null!=b))if(null==f)f=b;else if(f!=b)return null}return f};
-BaseFormatPanel.prototype.installInputHandler=function(a,c,f,d,b,e,g,k){e=null!=e?e:"";k=null!=k?k:!1;var l=this.editorUi,n=l.editor.graph;d=null!=d?d:1;b=null!=b?b:999;var m=null,p=!1,q=mxUtils.bind(this,function(r){var s=k?parseFloat(a.value):parseInt(a.value);!isNaN(s)&&c==mxConstants.STYLE_ROTATION&&(s=mxUtils.mod(Math.round(100*s),36E3)/100);s=Math.min(b,Math.max(d,isNaN(s)?f:s));if(n.cellEditor.isContentEditing()&&g)p||(p=!0,null!=m&&(n.cellEditor.restoreSelection(m),m=null),g(s),a.value=s+
-e,p=!1);else if(s!=mxUtils.getValue(this.format.getSelectionState().style,c,f)){n.isEditing()&&n.stopEditing(!0);n.getModel().beginUpdate();try{if(n.setCellStyles(c,s,n.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE)for(var t=n.getSelectionCells(),u=0;u<t.length;u++){var v=t[u];if(n.isHtmlLabel(v)){var q=document.createElement("div");q.innerHTML=n.convertValueToString(v);for(var y=q.getElementsByTagName("font"),x=0;x<y.length;x++)y[x].removeAttribute("size"),y[x].style.fontSize=s+"px";n.cellLabelChanged(v,
-q.innerHTML)}}}finally{n.getModel().endUpdate()}l.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[s],"cells",n.getSelectionCells()))}a.value=s+e;mxEvent.consume(r)});g&&n.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){m=n.cellEditor.saveSelection()}),mxEvent.addListener(a,"touchstart",function(){m=n.cellEditor.saveSelection()}));mxEvent.addListener(a,"change",q);mxEvent.addListener(a,"blur",q);return q};
+BaseFormatPanel.prototype.installInputHandler=function(a,c,f,d,b,e,g,k){e=null!=e?e:"";k=null!=k?k:!1;var l=this.editorUi,n=l.editor.graph;d=null!=d?d:1;b=null!=b?b:999;var m=null,p=!1,r=mxUtils.bind(this,function(r){var q=k?parseFloat(a.value):parseInt(a.value);!isNaN(q)&&c==mxConstants.STYLE_ROTATION&&(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(b,Math.max(d,isNaN(q)?f:q));if(n.cellEditor.isContentEditing()&&g)p||(p=!0,null!=m&&(n.cellEditor.restoreSelection(m),m=null),g(q),a.value=q+
+e,p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,f)){n.isEditing()&&n.stopEditing(!0);n.getModel().beginUpdate();try{if(n.setCellStyles(c,q,n.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE)for(var t=n.getSelectionCells(),u=0;u<t.length;u++){var v=t[u];if(n.isHtmlLabel(v)){var z=document.createElement("div");z.innerHTML=n.convertValueToString(v);for(var y=z.getElementsByTagName("font"),x=0;x<y.length;x++)y[x].removeAttribute("size"),y[x].style.fontSize=q+"px";n.cellLabelChanged(v,
+z.innerHTML)}}}finally{n.getModel().endUpdate()}l.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",n.getSelectionCells()))}a.value=q+e;mxEvent.consume(r)});g&&n.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){m=n.cellEditor.saveSelection()}),mxEvent.addListener(a,"touchstart",function(){m=n.cellEditor.saveSelection()}));mxEvent.addListener(a,"change",r);mxEvent.addListener(a,"blur",r);return r};
BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.style.padding="12px 0px 12px 18px";a.style.borderBottom="1px solid #c0c0c0";return a};BaseFormatPanel.prototype.createTitle=function(a){var c=document.createElement("div");c.style.padding="0px 0px 6px 0px";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.width="200px";c.style.fontWeight="bold";mxUtils.write(c,a);return c};
BaseFormatPanel.prototype.createStepper=function(a,c,f,d,b,e){f=null!=f?f:1;d=null!=d?d:8;if(mxClient.IS_QUIRKS)d-=2;else if(mxClient.IS_MT||8<=document.documentMode)d+=1;var g=document.createElement("div");mxUtils.setPrefixedStyle(g.style,"borderRadius","3px");g.style.border="1px solid rgb(192, 192, 192)";g.style.position="absolute";var k=document.createElement("div");k.style.borderBottom="1px solid rgb(192, 192, 192)";k.style.position="relative";k.style.height=d+"px";k.style.width="10px";k.className=
"geBtnUp";g.appendChild(k);var l=k.cloneNode(!1);l.style.border="none";l.style.height=d+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addListener(l,"click",function(b){""==a.value&&(a.value=e||"2");var d=parseInt(a.value);isNaN(d)||(a.value=d-f,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"0");var d=parseInt(a.value);isNaN(d)||(a.value=d+f,null!=c&&c(b));mxEvent.consume(b)});if(b){var n=null;mxEvent.addGestureListeners(g,function(b){if(mxClient.IS_QUIRKS||
@@ -2813,10 +2813,10 @@ BaseFormatPanel.prototype.createOption=function(a,c,f,d){var b=document.createEl
"checked"),e.defaultChecked=!0,e.checked=!0):(e.removeAttribute("checked"),e.defaultChecked=!1,e.checked=!1),l!=b&&(l=b,c()!=l&&f(l)),k=!1)};mxEvent.addListener(b,"click",function(a){a=mxEvent.getSource(a);if(a==b||a==g)e.checked=!e.checked;n(e.checked)});n(l);null!=d&&(d.install(n),this.listeners.push(d));return b};
BaseFormatPanel.prototype.createCellOption=function(a,c,f,d,b,e,g,k){d=null!=d?"null"==d?null:d:"1";b=null!=b?"null"==b?null:b:"0";var l=this.editorUi,n=l.editor.graph;return this.createOption(a,function(){var a=n.view.getState(n.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,f)!=b:null},function(a){k&&n.stopEditing();if(null!=g)g.funct();else{n.getModel().beginUpdate();try{a=a?d:b,n.setCellStyles(c,a,n.getSelectionCells()),null!=e&&e(n.getSelectionCells(),a),l.fireEvent(new mxEventObject("styleChanged",
"keys",[c],"values",[a],"cells",n.getSelectionCells()))}finally{n.getModel().endUpdate()}}},{install:function(a){this.listener=function(){var d=n.view.getState(n.getSelectionCell());null!=d&&a(mxUtils.getValue(d.style,c,f)!=b)};n.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){n.getModel().removeListener(this.listener)}})};
-BaseFormatPanel.prototype.createColorOption=function(a,c,f,d,b,e,g){var k=document.createElement("div");k.style.padding="6px 0px 1px 0px";k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.width="200px";k.style.height=mxClient.IS_QUIRKS?"27px":"18px";var l=document.createElement("input");l.setAttribute("type","checkbox");l.style.margin="0px 6px 0px 0px";g||k.appendChild(l);var n=document.createElement("span");mxUtils.write(n,a);k.appendChild(n);var m=!1,p=c(),q=null,r=function(b,a){if(!m){m=
-!0;q.innerHTML='\x3cdiv style\x3d"width:'+(mxClient.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+(null!=b&&b!=mxConstants.NONE?b:d)+';"\x3e\x3c/div\x3e';if(mxClient.IS_MT||mxClient.IS_QUIRKS||8==document.documentMode)q.firstChild.style.margin="0px";null!=b&&b!=mxConstants.NONE?(l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0):(l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1);q.style.display=l.checked||g?"":"none";null!=
-e&&e(b);if(!a&&(g||p!=b))p=b,(g||c()!=p)&&f(p);m=!1}},q=mxUtils.button("",mxUtils.bind(this,function(b){this.editorUi.pickColor(p,r);mxEvent.consume(b)}));q.style.position="absolute";q.style.marginTop="-4px";q.style.right=mxClient.IS_QUIRKS?"0px":"20px";q.style.height="22px";q.className="geColorBtn";q.style.display=l.checked||g?"":"none";k.appendChild(q);mxEvent.addListener(k,"click",function(b){b=mxEvent.getSource(b);if(b==l||"INPUT"!=b.nodeName)b!=l&&(l.checked=!l.checked),!l.checked&&null!=p&&
-(p!=mxConstants.NONE&&d!=mxConstants.NONE)&&(d=p),r(l.checked?d:mxConstants.NONE)});r(p,!0);null!=b&&(b.install(r),this.listeners.push(b));return k};
+BaseFormatPanel.prototype.createColorOption=function(a,c,f,d,b,e,g){var k=document.createElement("div");k.style.padding="6px 0px 1px 0px";k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.width="200px";k.style.height=mxClient.IS_QUIRKS?"27px":"18px";var l=document.createElement("input");l.setAttribute("type","checkbox");l.style.margin="0px 6px 0px 0px";g||k.appendChild(l);var n=document.createElement("span");mxUtils.write(n,a);k.appendChild(n);var m=!1,p=c(),r=null,s=function(b,a){if(!m){m=
+!0;r.innerHTML='\x3cdiv style\x3d"width:'+(mxClient.IS_QUIRKS?"30":"36")+"px;height:12px;margin:3px;border:1px solid black;background-color:"+(null!=b&&b!=mxConstants.NONE?b:d)+';"\x3e\x3c/div\x3e';if(mxClient.IS_MT||mxClient.IS_QUIRKS||8==document.documentMode)r.firstChild.style.margin="0px";null!=b&&b!=mxConstants.NONE?(l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0):(l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1);r.style.display=l.checked||g?"":"none";null!=
+e&&e(b);if(!a&&(g||p!=b))p=b,(g||c()!=p)&&f(p);m=!1}},r=mxUtils.button("",mxUtils.bind(this,function(b){this.editorUi.pickColor(p,s);mxEvent.consume(b)}));r.style.position="absolute";r.style.marginTop="-4px";r.style.right=mxClient.IS_QUIRKS?"0px":"20px";r.style.height="22px";r.className="geColorBtn";r.style.display=l.checked||g?"":"none";k.appendChild(r);mxEvent.addListener(k,"click",function(b){b=mxEvent.getSource(b);if(b==l||"INPUT"!=b.nodeName)b!=l&&(l.checked=!l.checked),!l.checked&&null!=p&&
+(p!=mxConstants.NONE&&d!=mxConstants.NONE)&&(d=p),s(l.checked?d:mxConstants.NONE)});s(p,!0);null!=b&&(b.install(s),this.listeners.push(b));return k};
BaseFormatPanel.prototype.createCellColorOption=function(a,c,f,d,b){var e=this.editorUi,g=e.editor.graph;return this.createColorOption(a,function(){var b=g.view.getState(g.getSelectionCell());return null!=b?mxUtils.getValue(b.style,c,null):null},function(a){g.getModel().beginUpdate();try{null!=b&&b(a),g.setCellStyles(c,a,g.getSelectionCells()),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}},f||mxConstants.NONE,
{install:function(b){this.listener=function(){var a=g.view.getState(g.getSelectionCell());null!=a&&b(mxUtils.getValue(a.style,c,null))};g.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){g.getModel().removeListener(this.listener)}},d)};
BaseFormatPanel.prototype.addArrow=function(a,c){c=null!=c?c:10;var f=document.createElement("div");f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";f.style.padding="6px";f.style.paddingRight="4px";var d=10-c;2==d?f.style.paddingTop="6px":0<d?f.style.paddingTop=6-d+"px":f.style.marginTop="-2px";f.style.height=c+"px";f.style.borderLeft="1px solid #a0a0a0";f.innerHTML='\x3cimg border\x3d"0" src\x3d"'+(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUeNpidHB2ZyAGsACxDRBPIKCuA6TwCBB/h2rABu4A8SYmKCcXiP/iUFgAxL9gCi8A8SwsirZCMQMTkmANEH9E4v+CmsaArvAdyNFI/FlQ92EoBIE+qCRIUz168DBgsU4OqhinQpgHMABAgAEALY4XLIsJ20oAAAAASUVORK5CYII\x3d":
@@ -2848,12 +2848,12 @@ ArrangePanel.prototype.addAngle=function(a){var c=this.editorUi,f=c.editor.graph
b.setAttribute("title",mxResources.get("turn")+" ("+this.editorUi.actions.get("turn").shortcut+")"),b.style.position="absolute",b.style.marginTop="-2px",b.style.right="20px",b.style.width="61px",a.appendChild(b));var k=mxUtils.bind(this,function(b,a,c){if(c||document.activeElement!=g)d=this.format.getSelectionState(),b=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_ROTATION,0)),g.value=isNaN(b)?"":b+"\u00b0"}),e=this.installInputHandler(g,mxConstants.STYLE_ROTATION,0,0,360,"\u00b0",null,!0);
this.addKeyHandler(g,k);f.getModel().addListener(mxEvent.CHANGE,k);this.listeners.push({destroy:function(){f.getModel().removeListener(k)}});k();return a};
ArrangePanel.prototype.addGeometry=function(a){var c=this.editorUi,f=c.editor.graph,d=this.format.getSelectionState(),b=this.createPanel();b.style.paddingBottom="8px";var e=document.createElement("div");e.style.position="absolute";e.style.width="50px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("size"));b.appendChild(e);var g,k,l,n,m=this.addUnitInput(b,"pt",84,44,function(){g.apply(this,arguments)}),p=this.addUnitInput(b,"pt",20,44,function(){k.apply(this,arguments)}),
-q=document.createElement("div");q.className="geSprite geSprite-fit";q.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");q.style.position="relative";q.style.cursor="pointer";q.style.marginTop="-3px";q.style.border="0px";q.style.left="52px";mxUtils.setOpacity(q,50);mxEvent.addListener(q,"mouseenter",function(){mxUtils.setOpacity(q,100)});mxEvent.addListener(q,"mouseleave",function(){mxUtils.setOpacity(q,50)});mxEvent.addListener(q,"click",function(){c.actions.get("autosize").funct()});
-b.appendChild(q);this.addLabel(b,mxResources.get("width"),84);this.addLabel(b,mxResources.get("height"),20);mxUtils.br(b);e=document.createElement("div");e.style.paddingTop="8px";e.style.paddingRight="20px";e.style.whiteSpace="nowrap";e.style.textAlign="right";var r=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");r.style.width="100%";e.appendChild(r);b.appendChild(e);this.addKeyHandler(m,v);this.addKeyHandler(p,v);g=this.addGeometryHandler(m,
-function(b,a){0<b.width&&(b.width=Math.max(1,a))});k=this.addGeometryHandler(p,function(b,a){0<b.height&&(b.height=Math.max(1,a))});a.appendChild(b);var s=this.createPanel();s.style.paddingBottom="30px";e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("position"));s.appendChild(e);var t=this.addUnitInput(s,"pt",84,44,function(){l.apply(this,arguments)}),u=this.addUnitInput(s,"pt",20,44,
-function(){n.apply(this,arguments)});mxUtils.br(s);this.addLabel(s,mxResources.get("left"),84);this.addLabel(s,mxResources.get("top"),20);var v=mxUtils.bind(this,function(a,c,e){d=this.format.getSelectionState();if(!d.containsLabel&&d.vertices.length==f.getSelectionCount()&&null!=d.width&&null!=d.height){b.style.display="";if(e||document.activeElement!=m)m.value=d.width+(""==d.width?"":" pt");if(e||document.activeElement!=p)p.value=d.height+(""==d.height?"":" pt")}else b.style.display="none";if(d.vertices.length==
-f.getSelectionCount()&&null!=d.x&&null!=d.y){s.style.display="";if(e||document.activeElement!=t)t.value=d.x+(""==d.x?"":" pt");if(e||document.activeElement!=u)u.value=d.y+(""==d.y?"":" pt")}else s.style.display="none"});this.addKeyHandler(t,v);this.addKeyHandler(u,v);f.getModel().addListener(mxEvent.CHANGE,v);this.listeners.push({destroy:function(){f.getModel().removeListener(v)}});v();l=this.addGeometryHandler(t,function(b,a){b.relative?b.offset.x=a:b.x=a});n=this.addGeometryHandler(u,function(b,
-a){b.relative?b.offset.y=a:b.y=a});a.appendChild(s)};
+r=document.createElement("div");r.className="geSprite geSprite-fit";r.setAttribute("title",mxResources.get("autosize")+" ("+this.editorUi.actions.get("autosize").shortcut+")");r.style.position="relative";r.style.cursor="pointer";r.style.marginTop="-3px";r.style.border="0px";r.style.left="52px";mxUtils.setOpacity(r,50);mxEvent.addListener(r,"mouseenter",function(){mxUtils.setOpacity(r,100)});mxEvent.addListener(r,"mouseleave",function(){mxUtils.setOpacity(r,50)});mxEvent.addListener(r,"click",function(){c.actions.get("autosize").funct()});
+b.appendChild(r);this.addLabel(b,mxResources.get("width"),84);this.addLabel(b,mxResources.get("height"),20);mxUtils.br(b);e=document.createElement("div");e.style.paddingTop="8px";e.style.paddingRight="20px";e.style.whiteSpace="nowrap";e.style.textAlign="right";var s=this.createCellOption(mxResources.get("constrainProportions"),mxConstants.STYLE_ASPECT,null,"fixed","null");s.style.width="100%";e.appendChild(s);b.appendChild(e);this.addKeyHandler(m,v);this.addKeyHandler(p,v);g=this.addGeometryHandler(m,
+function(b,a){0<b.width&&(b.width=Math.max(1,a))});k=this.addGeometryHandler(p,function(b,a){0<b.height&&(b.height=Math.max(1,a))});a.appendChild(b);var q=this.createPanel();q.style.paddingBottom="30px";e=document.createElement("div");e.style.position="absolute";e.style.width="70px";e.style.marginTop="0px";e.style.fontWeight="bold";mxUtils.write(e,mxResources.get("position"));q.appendChild(e);var t=this.addUnitInput(q,"pt",84,44,function(){l.apply(this,arguments)}),u=this.addUnitInput(q,"pt",20,44,
+function(){n.apply(this,arguments)});mxUtils.br(q);this.addLabel(q,mxResources.get("left"),84);this.addLabel(q,mxResources.get("top"),20);var v=mxUtils.bind(this,function(a,c,e){d=this.format.getSelectionState();if(!d.containsLabel&&d.vertices.length==f.getSelectionCount()&&null!=d.width&&null!=d.height){b.style.display="";if(e||document.activeElement!=m)m.value=d.width+(""==d.width?"":" pt");if(e||document.activeElement!=p)p.value=d.height+(""==d.height?"":" pt")}else b.style.display="none";if(d.vertices.length==
+f.getSelectionCount()&&null!=d.x&&null!=d.y){q.style.display="";if(e||document.activeElement!=t)t.value=d.x+(""==d.x?"":" pt");if(e||document.activeElement!=u)u.value=d.y+(""==d.y?"":" pt")}else q.style.display="none"});this.addKeyHandler(t,v);this.addKeyHandler(u,v);f.getModel().addListener(mxEvent.CHANGE,v);this.listeners.push({destroy:function(){f.getModel().removeListener(v)}});v();l=this.addGeometryHandler(t,function(b,a){b.relative?b.offset.x=a:b.x=a});n=this.addGeometryHandler(u,function(b,
+a){b.relative?b.offset.y=a:b.y=a});a.appendChild(q)};
ArrangePanel.prototype.addGeometryHandler=function(a,c){function f(e){if(""!=a.value){var f=parseFloat(a.value);if(f!=b){d.getModel().beginUpdate();try{for(var k=d.getSelectionCells(),l=0;l<k.length;l++)if(d.getModel().isVertex(k[l])){var n=d.getCellGeometry(k[l]);null!=n&&(n=n.clone(),c(n,f),d.getModel().setGeometry(k[l],n))}}finally{d.getModel().endUpdate()}b=f;a.value=f+" pt"}else isNaN(f)&&(a.value=b+" pt")}mxEvent.consume(e)}var d=this.editorUi.editor.graph,b=null;mxEvent.addListener(a,"blur",
f);mxEvent.addListener(a,"change",f);mxEvent.addListener(a,"focus",function(){b=a.value});return f};
ArrangePanel.prototype.addEdgeGeometry=function(a){function c(a){var c=parseInt(k.value),c=Math.min(999,Math.max(1,isNaN(c)?1:c));c!=mxUtils.getValue(b.style,"width",mxCellRenderer.prototype.defaultShapes.flexArrow.prototype.defaultWidth)&&(d.setCellStyles("width",c,d.getSelectionCells()),f.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[c],"cells",d.getSelectionCells())));k.value=c+" pt";mxEvent.consume(a)}var f=this.editorUi,d=f.editor.graph,b=this.format.getSelectionState(),
@@ -2864,46 +2864,46 @@ TextFormatPanel.prototype.addFont=function(a){function c(b,a){mxClient.IS_IE&&(m
e.style.paddingBottom="6px";a.appendChild(e);e=this.createPanel();e.style.paddingTop="2px";e.style.paddingBottom="2px";e.style.position="relative";e.style.marginLeft="-2px";e.style.borderWidth="0px";e.className="geToolbarContainer";mxClient.IS_QUIRKS&&(e.style.display="block");if(d.cellEditor.isContentEditing()){var g=e.cloneNode(),k=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",g);k.style.color="rgb(112, 112, 112)";k.style.whiteSpace="nowrap";k.style.overflow=
"hidden";k.style.margin="0px";this.addArrow(k);k.style.width="192px";k.style.height="15px";k=k.getElementsByTagName("div")[0];k.style.cssFloat="right";a.appendChild(g)}a.appendChild(e);g=this.createPanel();g.style.marginTop="8px";g.style.borderTop="1px solid #c0c0c0";g.style.paddingTop="6px";g.style.paddingBottom="6px";var l=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",e);l.style.color="rgb(112, 112, 112)";l.style.whiteSpace="nowrap";l.style.overflow="hidden";
l.style.margin="0px";this.addArrow(l);l.style.width="192px";l.style.height="15px";k=e.cloneNode(!1);k.style.marginLeft="-3px";var n=this.editorUi.toolbar.addItems(["bold","italic","underline"],k,!0);n[0].setAttribute("title",mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");n[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");n[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+
-")");var m=this.editorUi.toolbar.addItems(["vertical"],k,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(k);this.styleButtons(n);this.styleButtons([m]);var p=e.cloneNode(!1);p.style.marginLeft="-3px";p.style.paddingBottom="0px";var q=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifyleft",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT]),p),
-r=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifycenter",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER]),p),s=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifyright",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],
-[mxConstants.ALIGN_RIGHT]),p);this.styleButtons([q,r,s]);if(d.cellEditor.isContentEditing()){var t=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},k);this.styleButtons([t])}var u=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP]),p),v=this.editorUi.toolbar.addButton("geSprite-middle",
-mxResources.get("middle"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE]),p),A=this.editorUi.toolbar.addButton("geSprite-bottom",mxResources.get("bottom"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM]),p);this.styleButtons([u,v,A]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(p);var y,x,D,z,B,F,G;d.cellEditor.isContentEditing()?(u.style.display="none",v.style.display="none",
-A.style.display="none",m.style.display="none",D=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},p),this.styleButtons([D,y=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" (Ctrl+,)",function(){document.execCommand("subscript",!1,null)},p),x=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" (Ctrl+.)",function(){document.execCommand("superscript",!1,null)},p)]),
+")");var m=this.editorUi.toolbar.addItems(["vertical"],k,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(k);this.styleButtons(n);this.styleButtons([m]);var p=e.cloneNode(!1);p.style.marginLeft="-3px";p.style.paddingBottom="0px";var r=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifyleft",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT]),p),
+s=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifycenter",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER]),p),q=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifyright",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],
+[mxConstants.ALIGN_RIGHT]),p);this.styleButtons([r,s,q]);if(d.cellEditor.isContentEditing()){var t=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},k);this.styleButtons([t])}var u=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP]),p),v=this.editorUi.toolbar.addButton("geSprite-middle",
+mxResources.get("middle"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE]),p),z=this.editorUi.toolbar.addButton("geSprite-bottom",mxResources.get("bottom"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM]),p);this.styleButtons([u,v,z]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(p);var y,x,D,A,B,E,G;d.cellEditor.isContentEditing()?(u.style.display="none",v.style.display="none",
+z.style.display="none",m.style.display="none",D=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},p),this.styleButtons([D,y=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" (Ctrl+,)",function(){document.execCommand("subscript",!1,null)},p),x=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" (Ctrl+.)",function(){document.execCommand("superscript",!1,null)},p)]),
D.style.marginRight="9px",t=p.cloneNode(!1),t.style.paddingTop="4px",p=[this.editorUi.toolbar.addButton("geSprite-orderedlist",mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",
-!1,null)},t),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){d.cellEditor.toggleViewMode()},t)],this.styleButtons(p),p[p.length-1].style.marginLeft="9px",mxClient.IS_QUIRKS&&(mxUtils.br(a),t.style.height="40"),a.appendChild(t)):(n[2].style.marginRight="9px",s.style.marginRight="9px");p=e.cloneNode(!1);p.style.marginLeft="0px";
-p.style.paddingTop="8px";p.style.paddingBottom="4px";p.style.fontWeight="normal";mxUtils.write(p,mxResources.get("position"));var E=document.createElement("select");E.style.position="absolute";E.style.right="20px";E.style.width="97px";E.style.marginTop="-2px";for(var H="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),I={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,
+!1,null)},t),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){d.cellEditor.toggleViewMode()},t)],this.styleButtons(p),p[p.length-1].style.marginLeft="9px",mxClient.IS_QUIRKS&&(mxUtils.br(a),t.style.height="40"),a.appendChild(t)):(n[2].style.marginRight="9px",q.style.marginRight="9px");p=e.cloneNode(!1);p.style.marginLeft="0px";
+p.style.paddingTop="8px";p.style.paddingBottom="4px";p.style.fontWeight="normal";mxUtils.write(p,mxResources.get("position"));var F=document.createElement("select");F.style.position="absolute";F.style.right="20px";F.style.width="97px";F.style.marginTop="-2px";for(var H="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),I={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,
mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],topRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM],left:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE],center:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE],bottomLeft:[mxConstants.ALIGN_LEFT,
-mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},t=0;t<H.length;t++){var J=document.createElement("option");J.setAttribute("value",H[t]);mxUtils.write(J,mxResources.get(H[t]));E.appendChild(J)}p.appendChild(E);H=e.cloneNode(!1);H.style.marginLeft="0px";H.style.paddingTop=
-"4px";H.style.paddingBottom="4px";H.style.fontWeight="normal";mxUtils.write(H,mxResources.get("writingDirection"));var N=document.createElement("select");N.style.position="absolute";N.style.right="20px";N.style.width="97px";N.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],T={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},t=0;t<J.length;t++){var Y=document.createElement("option");Y.setAttribute("value",J[t]);mxUtils.write(Y,
-mxResources.get(J[t]));N.appendChild(Y)}H.appendChild(N);d.isEditing()||(a.appendChild(p),mxEvent.addListener(E,"change",function(b){d.getModel().beginUpdate();try{var a=I[E.value];null!=a&&(d.setCellStyles(mxConstants.STYLE_LABEL_POSITION,a[0],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,a[1],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_ALIGN,a[2],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,a[3],d.getSelectionCells()))}finally{d.getModel().endUpdate()}mxEvent.consume(b)}),
-a.appendChild(H),mxEvent.addListener(N,"change",function(b){d.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,T[N.value],d.getSelectionCells());mxEvent.consume(b)}));var C=document.createElement("input");C.style.textAlign="right";C.style.marginTop="4px";mxClient.IS_QUIRKS||(C.style.position="absolute",C.style.right="32px");C.style.width="46px";C.style.height=mxClient.IS_QUIRKS?"21px":"17px";k.appendChild(C);var U=null,p=this.installInputHandler(C,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,
+mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},t=0;t<H.length;t++){var L=document.createElement("option");L.setAttribute("value",H[t]);mxUtils.write(L,mxResources.get(H[t]));F.appendChild(L)}p.appendChild(F);H=e.cloneNode(!1);H.style.marginLeft="0px";H.style.paddingTop=
+"4px";H.style.paddingBottom="4px";H.style.fontWeight="normal";mxUtils.write(H,mxResources.get("writingDirection"));var O=document.createElement("select");O.style.position="absolute";O.style.right="20px";O.style.width="97px";O.style.marginTop="-2px";for(var L=["automatic","leftToRight","rightToLeft"],T={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},t=0;t<L.length;t++){var Y=document.createElement("option");Y.setAttribute("value",L[t]);mxUtils.write(Y,
+mxResources.get(L[t]));O.appendChild(Y)}H.appendChild(O);d.isEditing()||(a.appendChild(p),mxEvent.addListener(F,"change",function(b){d.getModel().beginUpdate();try{var a=I[F.value];null!=a&&(d.setCellStyles(mxConstants.STYLE_LABEL_POSITION,a[0],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,a[1],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_ALIGN,a[2],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,a[3],d.getSelectionCells()))}finally{d.getModel().endUpdate()}mxEvent.consume(b)}),
+a.appendChild(H),mxEvent.addListener(O,"change",function(b){d.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,T[O.value],d.getSelectionCells());mxEvent.consume(b)}));var C=document.createElement("input");C.style.textAlign="right";C.style.marginTop="4px";mxClient.IS_QUIRKS||(C.style.position="absolute",C.style.right="32px");C.style.width="46px";C.style.height=mxClient.IS_QUIRKS?"21px":"17px";k.appendChild(C);var U=null,p=this.installInputHandler(C,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,
1,999," pt",function(b){U=b;document.execCommand("fontSize",!1,"4");b=d.cellEditor.textarea.getElementsByTagName("font");for(var a=0;a<b.length;a++)if("4"==b[a].getAttribute("size")){b[a].removeAttribute("size");b[a].style.fontSize=U+"px";window.setTimeout(function(){C.value=U+" pt";U=null},0);break}},!0),p=this.createStepper(C,p,1,10,!0,Menus.prototype.defaultFontSize);p.style.display=C.style.display;p.style.marginTop="4px";mxClient.IS_QUIRKS||(p.style.right="20px");k.appendChild(p);k=l.getElementsByTagName("div")[0];
-k.style.cssFloat="right";var P=null,O="#ffffff",M=null,V="#000000",K=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return O},function(b){document.execCommand("backcolor",!1,b!=mxConstants.NONE?b:"transparent")},"#ffffff",{install:function(b){P=b},destroy:function(){P=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff");K.style.fontWeight="bold";var L=this.createCellColorOption(mxResources.get("borderColor"),
-mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");L.style.fontWeight="bold";k=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return V},function(b){document.execCommand("forecolor",!1,b!=mxConstants.NONE?b:"transparent")},"#000000",{install:function(b){M=b},destroy:function(){M=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"#000000",function(b){K.style.display=null==b||b==mxConstants.NONE?"none":"";L.style.display=
-K.style.display},function(b){null==b||b==mxConstants.NONE?d.setCellStyles(mxConstants.STYLE_NOLABEL,"1",d.getSelectionCells()):d.setCellStyles(mxConstants.STYLE_NOLABEL,null,d.getSelectionCells())});k.style.fontWeight="bold";g.appendChild(k);g.appendChild(K);d.cellEditor.isContentEditing()||g.appendChild(L);a.appendChild(g);g=this.createPanel();g.style.paddingTop="2px";g.style.paddingBottom="4px";k=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",
+k.style.cssFloat="right";var P=null,N="#ffffff",M=null,V="#000000",J=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return N},function(b){document.execCommand("backcolor",!1,b!=mxConstants.NONE?b:"transparent")},"#ffffff",{install:function(b){P=b},destroy:function(){P=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff");J.style.fontWeight="bold";var K=this.createCellColorOption(mxResources.get("borderColor"),
+mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");K.style.fontWeight="bold";k=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return V},function(b){document.execCommand("forecolor",!1,b!=mxConstants.NONE?b:"transparent")},"#000000",{install:function(b){M=b},destroy:function(){M=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"#000000",function(b){J.style.display=null==b||b==mxConstants.NONE?"none":"";K.style.display=
+J.style.display},function(b){null==b||b==mxConstants.NONE?d.setCellStyles(mxConstants.STYLE_NOLABEL,"1",d.getSelectionCells()):d.setCellStyles(mxConstants.STYLE_NOLABEL,null,d.getSelectionCells())});k.style.fontWeight="bold";g.appendChild(k);g.appendChild(J);d.cellEditor.isContentEditing()||g.appendChild(K);a.appendChild(g);g=this.createPanel();g.style.paddingTop="2px";g.style.paddingBottom="4px";k=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",
null,null,!0);k.style.fontWeight="bold";!b.containsLabel&&!b.autoSize&&0==b.edges.length&&g.appendChild(k);k=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,f.actions.get("formattedText"));k.style.fontWeight="bold";g.appendChild(k);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="28px";k.style.fontWeight="normal";p=document.createElement("div");p.style.position="absolute";p.style.width="70px";p.style.marginTop="0px";p.style.fontWeight="bold";mxUtils.write(p,
mxResources.get("spacing"));k.appendChild(p);var R,Z,ea,da,S,X=this.addUnitInput(k,"pt",91,44,function(){R.apply(this,arguments)}),aa=this.addUnitInput(k,"pt",20,44,function(){Z.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("top"),91);this.addLabel(k,mxResources.get("global"),20);mxUtils.br(k);mxUtils.br(k);var W=this.addUnitInput(k,"pt",162,44,function(){ea.apply(this,arguments)}),Q=this.addUnitInput(k,"pt",91,44,function(){da.apply(this,arguments)}),ga=this.addUnitInput(k,
"pt",20,44,function(){S.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("left"),162);this.addLabel(k,mxResources.get("bottom"),91);this.addLabel(k,mxResources.get("right"),20);if(d.cellEditor.isContentEditing()){var ca=null,$=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(b){var a=""==b.value?120:parseInt(b.value),a=Math.max(120,isNaN(a)?120:a);null!=ca&&(d.cellEditor.restoreSelection(ca),ca=null);for(var c=d.getSelectedElement();null!=
c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;null!=c&&c==d.cellEditor.textarea&&null!=d.cellEditor.textarea.firstChild&&("FONT"!=d.cellEditor.textarea.firstChild.nodeName&&(d.cellEditor.textarea.innerHTML="\x3cfont\x3e"+d.cellEditor.textarea.innerHTML+"\x3c/font\x3e"),c=d.cellEditor.textarea.firstChild);null!=c&&c!=d.cellEditor.textarea&&(c.style.lineHeight=a+"%");b.value=a+" %"},function(b){$=b;mxEvent.addListener(b,"mousedown",function(){ca=d.cellEditor.saveSelection()});mxEvent.addListener(b,
"touchstart",function(){ca=d.cellEditor.saveSelection()});b.value="120 %"}));g=e.cloneNode(!1);g.style.paddingLeft="0px";k=this.editorUi.toolbar.addItems(["link","image"],g,!0);p=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),function(){document.execCommand("inserthorizontalrule",!1,null)},g),this.editorUi.toolbar.addMenuFunctionInContainer(g,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(b){this.editorUi.menus.addInsertTableItem(b)}))];
-this.styleButtons(k);this.styleButtons(p);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("insert")));k.appendChild(g);a.appendChild(k);mxClient.IS_QUIRKS&&(k.style.height="70");k=e.cloneNode(!1);k.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=B&&d.selectNode(d.insertColumn(B,null!=F?F.cellIndex:0))}catch(b){alert(b)}},k),
-this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=B&&d.selectNode(d.insertColumn(B,null!=F?F.cellIndex+1:-1))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),function(){try{null!=B&&null!=F&&d.deleteColumn(B,F.cellIndex)}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=B&&null!=G&&
+this.styleButtons(k);this.styleButtons(p);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("insert")));k.appendChild(g);a.appendChild(k);mxClient.IS_QUIRKS&&(k.style.height="70");k=e.cloneNode(!1);k.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=B&&d.selectNode(d.insertColumn(B,null!=E?E.cellIndex:0))}catch(b){alert(b)}},k),
+this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=B&&d.selectNode(d.insertColumn(B,null!=E?E.cellIndex+1:-1))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),function(){try{null!=B&&null!=E&&d.deleteColumn(B,E.cellIndex)}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=B&&null!=G&&
d.selectNode(d.insertRow(B,G.sectionRowIndex))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),function(){try{null!=B&&null!=G&&d.selectNode(d.insertRow(B,G.sectionRowIndex+1))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),function(){try{null!=B&&null!=G&&d.deleteRow(B,G.sectionRowIndex)}catch(b){alert(b)}},k)];this.styleButtons(p);p[2].style.marginRight="9px";g=this.createPanel();
g.style.paddingTop="10px";g.style.paddingBottom="10px";g.appendChild(this.createTitle(mxResources.get("table")));g.appendChild(k);mxClient.IS_QUIRKS&&(mxUtils.br(a),g.style.height="70");e=e.cloneNode(!1);e.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,function(){if(null!=B){var b=B.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(b,a,d,c){return"#"+("0"+Number(a).toString(16)).substr(-2)+
("0"+Number(d).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)});this.editorUi.pickColor(b,function(b){null==b||b==mxConstants.NONE?(B.removeAttribute("border"),B.style.border="",B.style.borderCollapse=""):(B.setAttribute("border","1"),B.style.border="1px solid "+b,B.style.borderCollapse="collapse")})}}),e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(){if(null!=B){var b=B.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,
function(b,a,d,c){return"#"+("0"+Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)});this.editorUi.pickColor(b,function(b){B.style.backgroundColor=null==b||b==mxConstants.NONE?"":b})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=B){var b=B.getAttribute("cellPadding")||0,b=new FilenameDialog(f,b,mxResources.get("apply"),mxUtils.bind(this,function(b){null!=b&&0<b.length?B.setAttribute("cellPadding",
b):B.removeAttribute("cellPadding")}),mxResources.get("spacing"));f.showDialog(b.container,300,80,!0,!0);b.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=B&&B.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=B&&B.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=B&&B.setAttribute("align","right")},
-e)];this.styleButtons(p);p[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(g),mxUtils.br(g));g.appendChild(e);a.appendChild(g);z=g}else a.appendChild(g),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var fa=mxUtils.bind(this,function(a,d,e){b=this.format.getSelectionState();a=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0);c(n[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(n[1],(a&mxConstants.FONT_ITALIC)==
+e)];this.styleButtons(p);p[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(g),mxUtils.br(g));g.appendChild(e);a.appendChild(g);A=g}else a.appendChild(g),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var fa=mxUtils.bind(this,function(a,d,e){b=this.format.getSelectionState();a=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0);c(n[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(n[1],(a&mxConstants.FONT_ITALIC)==
mxConstants.FONT_ITALIC);c(n[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);l.firstChild.nodeValue=mxUtils.htmlEntities(mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont));c(m,"0"==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,"1"));if(e||document.activeElement!=C)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),C.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);
-c(q,a==mxConstants.ALIGN_LEFT);c(r,a==mxConstants.ALIGN_CENTER);c(s,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(u,a==mxConstants.ALIGN_TOP);c(v,a==mxConstants.ALIGN_MIDDLE);c(A,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);d=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);E.value=a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_TOP?
+c(r,a==mxConstants.ALIGN_LEFT);c(s,a==mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(u,a==mxConstants.ALIGN_TOP);c(v,a==mxConstants.ALIGN_MIDDLE);c(z,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);d=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);F.value=a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_TOP?
"topLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(b.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);
-a==mxConstants.TEXT_DIRECTION_RTL?N.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?N.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(N.value="automatic");if(e||document.activeElement!=aa)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING,2)),aa.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=X)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_TOP,0)),X.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(b.style,
+a==mxConstants.TEXT_DIRECTION_RTL?O.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?O.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(O.value="automatic");if(e||document.activeElement!=aa)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING,2)),aa.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=X)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_TOP,0)),X.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ga)a=parseFloat(mxUtils.getValue(b.style,
mxConstants.STYLE_SPACING_RIGHT,0)),ga.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=Q)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_BOTTOM,0)),Q.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=W)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_LEFT,0)),W.value=isNaN(a)?"":a+" pt"});Z=this.installInputHandler(aa,mxConstants.STYLE_SPACING,2,-999,999," pt");R=this.installInputHandler(X,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");S=this.installInputHandler(ga,
mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");da=this.installInputHandler(Q,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");ea=this.installInputHandler(W,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(C,fa);this.addKeyHandler(aa,fa);this.addKeyHandler(X,fa);this.addKeyHandler(ga,fa);this.addKeyHandler(Q,fa);this.addKeyHandler(W,fa);d.getModel().addListener(mxEvent.CHANGE,fa);this.listeners.push({destroy:function(){d.getModel().removeListener(fa)}});fa();if(d.cellEditor.isContentEditing()){var ia=
-!1,e=function(){ia||(ia=!0,window.setTimeout(function(){for(var b=d.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;if(null!=b){var a=mxUtils.getCurrentStyle(b);if(null!=a){c(n[0],"bold"==a.fontWeight||null!=d.getParentByName(b,"B",d.cellEditor.textarea));c(n[1],"italic"==a.fontStyle||null!=d.getParentByName(b,"I",d.cellEditor.textarea));c(n[2],null!=d.getParentByName(b,"U",d.cellEditor.textarea));c(q,"left"==a.textAlign);c(r,"center"==a.textAlign);c(s,"right"==
-a.textAlign);c(D,"justify"==a.textAlign);c(x,null!=d.getParentByName(b,"SUP",d.cellEditor.textarea));c(y,null!=d.getParentByName(b,"SUB",d.cellEditor.textarea));B=d.getParentByName(b,"TABLE",d.cellEditor.textarea);G=null==B?null:d.getParentByName(b,"TR",B);F=null==B?null:d.getParentByName(b,"TD",B);z.style.display=null!=B?"":"none";if(document.activeElement!=C){"FONT"==b.nodeName&&"4"==b.getAttribute("size")&&null!=U?(b.removeAttribute("size"),b.style.fontSize=U+"px",U=null):C.value=parseFloat(a.fontSize)+
+!1,e=function(){ia||(ia=!0,window.setTimeout(function(){for(var b=d.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;if(null!=b){var a=mxUtils.getCurrentStyle(b);if(null!=a){c(n[0],"bold"==a.fontWeight||null!=d.getParentByName(b,"B",d.cellEditor.textarea));c(n[1],"italic"==a.fontStyle||null!=d.getParentByName(b,"I",d.cellEditor.textarea));c(n[2],null!=d.getParentByName(b,"U",d.cellEditor.textarea));c(r,"left"==a.textAlign);c(s,"center"==a.textAlign);c(q,"right"==
+a.textAlign);c(D,"justify"==a.textAlign);c(x,null!=d.getParentByName(b,"SUP",d.cellEditor.textarea));c(y,null!=d.getParentByName(b,"SUB",d.cellEditor.textarea));B=d.getParentByName(b,"TABLE",d.cellEditor.textarea);G=null==B?null:d.getParentByName(b,"TR",B);E=null==B?null:d.getParentByName(b,"TD",B);A.style.display=null!=B?"":"none";if(document.activeElement!=C){"FONT"==b.nodeName&&"4"==b.getAttribute("size")&&null!=U?(b.removeAttribute("size"),b.style.fontSize=U+"px",U=null):C.value=parseFloat(a.fontSize)+
" pt";var b=b.style.lineHeight||a.lineHeight,e=parseFloat(b);"px"==b.substring(b.length-2)&&(e/=parseFloat(a.fontSize));"%"!=b.substring(b.length-1)&&(e*=100);$.value=e+" %"}b=a.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(b,a,d,c){return"#"+("0"+Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)});e=a.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(b,a,d,c){return"#"+("0"+
-Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)});null!=M&&(V="#"==b.charAt(0)?b:"#000000",M(V,!0));null!=P&&(O="#"==e.charAt(0)?e:null,P(O,!0));null!=l.firstChild&&(a=a.fontFamily,"'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),l.firstChild.nodeValue=a)}}ia=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",e);mxEvent.addListener(d.cellEditor.textarea,"touchend",e);mxEvent.addListener(d.cellEditor.textarea,
+Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(c).toString(16)).substr(-2)});null!=M&&(V="#"==b.charAt(0)?b:"#000000",M(V,!0));null!=P&&(N="#"==e.charAt(0)?e:null,P(N,!0));null!=l.firstChild&&(a=a.fontFamily,"'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),l.firstChild.nodeValue=a)}}ia=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",e);mxEvent.addListener(d.cellEditor.textarea,"touchend",e);mxEvent.addListener(d.cellEditor.textarea,
"mouseup",e);mxEvent.addListener(d.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,c,f){BaseFormatPanel.call(this,a,c,f);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();(!a.containsImage||"image"==a.style.shape)&&this.container.appendChild(this.addFill(this.createPanel()));this.container.appendChild(this.addStroke(this.createPanel()));a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41);a.style.paddingTop="8px";a.style.paddingBottom="8px";this.container.appendChild(a);this.container.appendChild(this.addEffects(this.createPanel()));a=this.addEditOps(this.createPanel());
null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
@@ -2917,14 +2917,14 @@ StyleFormatPanel.prototype.addStroke=function(a){function c(a){var c=parseInt(u.
c));c!=mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)&&(b.setCellStyles(mxConstants.STYLE_STROKEWIDTH,c,b.getSelectionCells()),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[c],"cells",b.getSelectionCells())));v.value=c+" pt";mxEvent.consume(a)}var d=this.editorUi,b=d.editor.graph,e=this.format.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var g=document.createElement("div");g.style.fontWeight=
"bold";var k=document.createElement("select");k.style.position="absolute";k.style.marginTop="-2px";k.style.right="72px";k.style.width="80px";for(var l=["sharp","rounded","curved"],n=0;n<l.length;n++){var m=document.createElement("option");m.setAttribute("value",l[n]);mxUtils.write(m,mxResources.get(l[n]));k.appendChild(m)}mxEvent.addListener(k,"change",function(a){b.getModel().beginUpdate();try{var c=[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],e=["0",null];"rounded"==k.value?e=["1",null]:
"curved"==k.value&&(e=[null,"1"]);for(var f=0;f<c.length;f++)b.setCellStyles(c[f],e[f],b.getSelectionCells());d.fireEvent(new mxEventObject("styleChanged","keys",c,"values",e,"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(k,"click",function(b){mxEvent.consume(b)});var p="image"==e.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,l=this.createCellColorOption(mxResources.get("line"),p,"#000000");l.appendChild(k);g.appendChild(l);
-var q=g.cloneNode(!1);q.style.fontWeight="normal";q.style.whiteSpace="nowrap";q.style.position="relative";q.style.paddingLeft="16px";q.style.marginBottom="2px";q.style.marginTop="2px";q.className="geToolbarContainer";var r=mxUtils.bind(this,function(b,a,d,c,e){b=this.editorUi.menus.styleChange(b,"",c,e,"geIcon",null);c=document.createElement("div");c.style.width=a+"px";c.style.height="1px";c.style.borderBottom="1px "+d+" black";c.style.paddingTop="6px";b.firstChild.firstChild.style.padding="0px 4px 0px 4px";
-b.firstChild.firstChild.style.width=a+"px";b.firstChild.firstChild.appendChild(c);return b}),n=this.editorUi.toolbar.addMenuFunctionInContainer(q,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(b){r(b,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));r(b,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));r(b,75,
-"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");r(b,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");r(b,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),s=q.cloneNode(!1),t=this.editorUi.toolbar.addMenuFunctionInContainer(s,"geSprite-connection",
+var r=g.cloneNode(!1);r.style.fontWeight="normal";r.style.whiteSpace="nowrap";r.style.position="relative";r.style.paddingLeft="16px";r.style.marginBottom="2px";r.style.marginTop="2px";r.className="geToolbarContainer";var s=mxUtils.bind(this,function(b,a,d,c,e){b=this.editorUi.menus.styleChange(b,"",c,e,"geIcon",null);c=document.createElement("div");c.style.width=a+"px";c.style.height="1px";c.style.borderBottom="1px "+d+" black";c.style.paddingTop="6px";b.firstChild.firstChild.style.padding="0px 4px 0px 4px";
+b.firstChild.firstChild.style.width=a+"px";b.firstChild.firstChild.appendChild(c);return b}),n=this.editorUi.toolbar.addMenuFunctionInContainer(r,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(b){s(b,75,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));s(b,75,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));s(b,75,
+"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",mxResources.get("dotted")+" (1)");s(b,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");s(b,75,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),q=r.cloneNode(!1),t=this.editorUi.toolbar.addMenuFunctionInContainer(q,"geSprite-connection",
mxResources.get("connection"),!1,mxUtils.bind(this,function(b){this.editorUi.menus.styleChange(b,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],[null,null,null,null],"geIcon geSprite geSprite-connection",null,!0).setAttribute("title",mxResources.get("line"));this.editorUi.menus.styleChange(b,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["link",null,null,null],"geIcon geSprite geSprite-linkedge",null,!0).setAttribute("title",
mxResources.get("link"));this.editorUi.menus.styleChange(b,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(b,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),
-m=this.editorUi.toolbar.addMenuFunctionInContainer(s,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(b){r(b,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));r(b,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));r(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",
-mxResources.get("dotted")+" (1)");r(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");r(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),l=q.cloneNode(!1),u=document.createElement("input");u.style.textAlign="right";u.style.marginTop="2px";u.style.width="41px";u.setAttribute("title",mxResources.get("linewidth"));q.appendChild(u);
-var v=u.cloneNode(!0);s.appendChild(v);var A=this.createStepper(u,c,1,9);A.style.display=u.style.display;A.style.marginTop="2px";q.appendChild(A);var y=this.createStepper(v,f,1,9);y.style.display=v.style.display;y.style.marginTop="2px";s.appendChild(y);mxClient.IS_QUIRKS?(u.style.height="17px",v.style.height="17px"):(u.style.position="absolute",u.style.right="32px",u.style.height="15px",A.style.right="20px",v.style.position="absolute",v.style.right="32px",v.style.height="15px",y.style.right="20px");
+m=this.editorUi.toolbar.addMenuFunctionInContainer(q,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(b){s(b,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));s(b,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));s(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",
+mxResources.get("dotted")+" (1)");s(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");s(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),l=r.cloneNode(!1),u=document.createElement("input");u.style.textAlign="right";u.style.marginTop="2px";u.style.width="41px";u.setAttribute("title",mxResources.get("linewidth"));r.appendChild(u);
+var v=u.cloneNode(!0);q.appendChild(v);var z=this.createStepper(u,c,1,9);z.style.display=u.style.display;z.style.marginTop="2px";r.appendChild(z);var y=this.createStepper(v,f,1,9);y.style.display=v.style.display;y.style.marginTop="2px";q.appendChild(y);mxClient.IS_QUIRKS?(u.style.height="17px",v.style.height="17px"):(u.style.position="absolute",u.style.right="32px",u.style.height="15px",z.style.right="20px",v.style.position="absolute",v.style.right="32px",v.style.height="15px",y.style.right="20px");
mxEvent.addListener(u,"blur",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(v,"blur",f);mxEvent.addListener(v,"change",f);mxClient.IS_QUIRKS&&(mxUtils.br(l),mxUtils.br(l));var x=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(b){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",
null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",
null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",
@@ -2941,7 +2941,7 @@ null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.ed
null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["cross",0],"geIcon geSprite geSprite-startcross",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["circlePlus",0],"geIcon geSprite geSprite-startcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["circle",1],"geIcon geSprite geSprite-startcircle",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,
"startFill"],["ERone",0],"geIcon geSprite geSprite-starterone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmandOne",0],"geIcon geSprite geSprite-starteronetoone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmany",0],"geIcon geSprite geSprite-startermany",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERoneToMany",0],"geIcon geSprite geSprite-starteronetomany",
null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-starteroneopt",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-startermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))})),
-z=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(b){if("connector"==e.style.shape||"flexArrow"==e.style.shape)this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon geSprite geSprite-noarrow",null,!1).setAttribute("title",mxResources.get("none")),"connector"==e.style.shape?(this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC,
+A=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(b){if("connector"==e.style.shape||"flexArrow"==e.style.shape)this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon geSprite geSprite-noarrow",null,!1).setAttribute("title",mxResources.get("none")),"connector"==e.style.shape?(this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC,
1],"geIcon geSprite geSprite-endclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-endclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-endopen",null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(b,
"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-endopenthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["openAsync",0],"geIcon geSprite geSprite-endopenasync",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-endblock",null,!1).setAttribute("title",mxResources.get("block")),this.editorUi.menus.edgeStyleChange(b,
"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-endblockthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["async",1],"geIcon geSprite geSprite-endasync",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OVAL,1],"geIcon geSprite geSprite-endoval",null,!1).setAttribute("title",mxResources.get("oval")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,
@@ -2952,18 +2952,18 @@ null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.ed
this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],
["ERone",0],"geIcon geSprite geSprite-enderone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),this.editorUi.menus.edgeStyleChange(b,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}));this.addArrow(t,8);this.addArrow(x);this.addArrow(D);
-this.addArrow(z);A=this.addArrow(n,9);A.className="geIcon";A.style.width="84px";y=this.addArrow(m,9);y.className="geIcon";y.style.width="22px";var B=document.createElement("div");B.style.width="85px";B.style.height="1px";B.style.borderBottom="1px solid black";B.style.marginBottom="9px";A.appendChild(B);var F=document.createElement("div");F.style.width="23px";F.style.height="1px";F.style.borderBottom="1px solid black";F.style.marginBottom="9px";y.appendChild(F);n.style.height="15px";m.style.height=
-"15px";t.style.height="15px";x.style.height="17px";D.style.marginLeft="3px";D.style.height="17px";z.style.marginLeft="3px";z.style.height="17px";a.appendChild(g);a.appendChild(s);a.appendChild(q);n=q.cloneNode(!1);n.style.paddingBottom="6px";n.style.paddingTop="4px";n.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));
-n.appendChild(m);var G,E,H=this.addUnitInput(n,"pt",74,33,function(){G.apply(this,arguments)}),I=this.addUnitInput(n,"pt",20,33,function(){E.apply(this,arguments)});mxUtils.br(n);A=document.createElement("div");A.style.height="8px";n.appendChild(A);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));n.appendChild(m);var J,N,T=this.addUnitInput(n,"pt",74,33,function(){J.apply(this,arguments)}),Y=this.addUnitInput(n,"pt",20,33,function(){N.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,
+this.addArrow(A);z=this.addArrow(n,9);z.className="geIcon";z.style.width="84px";y=this.addArrow(m,9);y.className="geIcon";y.style.width="22px";var B=document.createElement("div");B.style.width="85px";B.style.height="1px";B.style.borderBottom="1px solid black";B.style.marginBottom="9px";z.appendChild(B);var E=document.createElement("div");E.style.width="23px";E.style.height="1px";E.style.borderBottom="1px solid black";E.style.marginBottom="9px";y.appendChild(E);n.style.height="15px";m.style.height=
+"15px";t.style.height="15px";x.style.height="17px";D.style.marginLeft="3px";D.style.height="17px";A.style.marginLeft="3px";A.style.height="17px";a.appendChild(g);a.appendChild(q);a.appendChild(r);n=r.cloneNode(!1);n.style.paddingBottom="6px";n.style.paddingTop="4px";n.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="2px";m.style.fontWeight="normal";m.style.width="76px";mxUtils.write(m,mxResources.get("lineend"));
+n.appendChild(m);var G,F,H=this.addUnitInput(n,"pt",74,33,function(){G.apply(this,arguments)}),I=this.addUnitInput(n,"pt",20,33,function(){F.apply(this,arguments)});mxUtils.br(n);z=document.createElement("div");z.style.height="8px";n.appendChild(z);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));n.appendChild(m);var L,O,T=this.addUnitInput(n,"pt",74,33,function(){L.apply(this,arguments)}),Y=this.addUnitInput(n,"pt",20,33,function(){O.apply(this,arguments)});mxUtils.br(n);this.addLabel(n,
mxResources.get("spacing"),74,50);this.addLabel(n,mxResources.get("size"),20,50);mxUtils.br(n);g=g.cloneNode(!1);g.style.fontWeight="normal";g.style.position="relative";g.style.paddingLeft="16px";g.style.marginBottom="2px";g.style.marginTop="6px";g.style.borderWidth="0px";g.style.paddingBottom="18px";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft="3px";m.style.marginBottom="12px";m.style.marginTop="1px";m.style.fontWeight="normal";m.style.width="120px";mxUtils.write(m,
mxResources.get("perimeter"));g.appendChild(m);var C,U=this.addUnitInput(g,"pt",20,41,function(){C.apply(this,arguments)});e.edges.length==b.getSelectionCount()?(a.appendChild(l),mxClient.IS_QUIRKS&&(mxUtils.br(a),mxUtils.br(a)),a.appendChild(n)):e.vertices.length==b.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(g));var P=mxUtils.bind(this,function(a,c,f){function g(b,a,c,f){c=c.getElementsByTagName("div")[0];c.className=d.getCssClassForMarker(f,e.style.shape,b,a);return c}
e=this.format.getSelectionState();mxUtils.getValue(e.style,p,null);if(f||document.activeElement!=u)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),u.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=v)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";k.style.visibility="connector"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?k.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,
-null)&&(k.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?B.style.borderBottom="1px dashed black":B.style.borderBottom="1px dotted black":B.style.borderBottom="1px solid black";F.style.borderBottom=B.style.borderBottom;a=x.getElementsByTagName("div")[0];c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==
+null)&&(k.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?B.style.borderBottom="1px dashed black":B.style.borderBottom="1px dotted black":B.style.borderBottom="1px solid black";E.style.borderBottom=B.style.borderBottom;a=x.getElementsByTagName("div")[0];c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==
c&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":
-"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";t.getElementsByTagName("div")[0].className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection";e.edges.length==b.getSelectionCount()?(s.style.display="",q.style.display="none"):(s.style.display="none",q.style.display="");a=g(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,
-"startFill","1"),D,"start");c=g(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),z,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape?(mxUtils.setOpacity(D,30),mxUtils.setOpacity(z,
-30)):(mxUtils.setOpacity(D,100),mxUtils.setOpacity(z,100));if(f||document.activeElement!=Y)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),Y.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=T)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),T.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=I)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),I.value=isNaN(a)?
-"":a+" pt";if(f||document.activeElement!=T)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),H.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=U)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),U.value=isNaN(a)?"":a+" pt"});N=this.installInputHandler(Y,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(T,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");E=this.installInputHandler(I,
+"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";t.getElementsByTagName("div")[0].className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection";e.edges.length==b.getSelectionCount()?(q.style.display="",r.style.display="none"):(q.style.display="none",r.style.display="");a=g(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,
+"startFill","1"),D,"start");c=g(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),A,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape?(mxUtils.setOpacity(D,30),mxUtils.setOpacity(A,
+30)):(mxUtils.setOpacity(D,100),mxUtils.setOpacity(A,100));if(f||document.activeElement!=Y)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),Y.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=T)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),T.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=I)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),I.value=isNaN(a)?
+"":a+" pt";if(f||document.activeElement!=T)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),H.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=U)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),U.value=isNaN(a)?"":a+" pt"});O=this.installInputHandler(Y,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");L=this.installInputHandler(T,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");F=this.installInputHandler(I,
mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");G=this.installInputHandler(H,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");C=this.installInputHandler(U,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(u,P);this.addKeyHandler(Y,P);this.addKeyHandler(T,P);this.addKeyHandler(I,P);this.addKeyHandler(H,P);this.addKeyHandler(U,P);b.getModel().addListener(mxEvent.CHANGE,P);this.listeners.push({destroy:function(){b.getModel().removeListener(P)}});
P();return a};
StyleFormatPanel.prototype.addEffects=function(a){var c=this.editorUi.editor.graph,f=this.format.getSelectionState();a.style.paddingTop="0px";a.style.paddingBottom="2px";var d=document.createElement("table");mxClient.IS_QUIRKS&&(d.style.fontSize="1em");d.style.width="100%";d.style.fontWeight="bold";d.style.paddingRight="20px";var b=document.createElement("tbody"),e=document.createElement("tr");e.style.padding="0px";var g=document.createElement("td");g.style.padding="0px";g.style.width="50%";g.setAttribute("valign",
@@ -3039,30 +3039,30 @@ Dialog.prototype.lockedImage=!mxClient.IS_SVG?IMAGE_PATH+"/locked.png":"data:ima
Dialog.prototype.unlockedImage=!mxClient.IS_SVG?IMAGE_PATH+"/unlocked.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg\x3d\x3d";
Dialog.prototype.bgOpacity=80;Dialog.prototype.close=function(a){null!=this.onDialogClose&&(this.onDialogClose(a),this.onDialogClose=null);null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);this.container.parentNode.removeChild(this.container)};
var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.frameBorder="0";var c=mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)?20:0;a.setAttribute("width",(Editor.useLocalStorage?640:320)+c+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+c+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=
-function(a,c,f,d){function b(){var b=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);b.style.marginBottom="8px";return b}function e(a,d,c,e){d=null!=d?d:12;var f=document.createElement("table");f.style.borderCollapse="collapse";f.setAttribute("cellspacing","0");f.style.marginBottom="20px";f.style.cellSpacing="0px";var l=document.createElement("tbody");f.appendChild(l);for(var m=a.length/d,q=0;q<m;q++){for(var p=document.createElement("tr"),z=0;z<d;z++)(function(b){var a=
-document.createElement("td");a.style.border="1px solid black";a.style.padding="0px";a.style.width="16px";a.style.height="16px";null==b&&(b=c);"none"==b?a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor="#"+b;p.appendChild(a);null!=b&&(a.style.cursor="pointer",mxEvent.addListener(a,"click",function(){"none"==b?(k.fromString("ffffff"),g.value="none"):k.fromString(b)}))})(a[q*d+z]);l.appendChild(p)}e&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
-a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",p.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();f.parentNode.replaceChild(b(),f)}));n.appendChild(f);return f}this.editorUi=a;var g=document.createElement("input");g.style.marginBottom="10px";
+function(a,c,f,d){function b(){var b=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);b.style.marginBottom="8px";return b}function e(a,d,c,e){d=null!=d?d:12;var f=document.createElement("table");f.style.borderCollapse="collapse";f.setAttribute("cellspacing","0");f.style.marginBottom="20px";f.style.cellSpacing="0px";var l=document.createElement("tbody");f.appendChild(l);for(var m=a.length/d,p=0;p<m;p++){for(var r=document.createElement("tr"),A=0;A<d;A++)(function(b){var a=
+document.createElement("td");a.style.border="1px solid black";a.style.padding="0px";a.style.width="16px";a.style.height="16px";null==b&&(b=c);"none"==b?a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor="#"+b;r.appendChild(a);null!=b&&(a.style.cursor="pointer",mxEvent.addListener(a,"click",function(){"none"==b?(k.fromString("ffffff"),g.value="none"):k.fromString(b)}))})(a[p*d+A]);l.appendChild(r)}e&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
+a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",r.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();f.parentNode.replaceChild(b(),f)}));n.appendChild(f);return f}this.editorUi=a;var g=document.createElement("input");g.style.marginBottom="10px";
g.style.width="216px";mxClient.IS_IE&&(g.style.marginTop="10px",document.body.appendChild(g));this.init=function(){mxClient.IS_TOUCH||g.focus()};var k=new jscolor.color(g);k.pickerOnfocus=!1;k.showPicker();var l=document.createElement("div");jscolor.picker.box.style.position="relative";jscolor.picker.box.style.width="230px";jscolor.picker.box.style.height="100px";jscolor.picker.box.style.paddingBottom="10px";l.appendChild(jscolor.picker.box);var n=document.createElement("center");l.appendChild(g);
mxUtils.br(l);b();var m=e("E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" "),12);m.style.marginBottom="8px";m=e("none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" "));
-m.style.marginBottom="16px";l.appendChild(n);m=document.createElement("div");m.style.textAlign="right";m.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);var q=null!=f?f:this.createApplyFunction();f=mxUtils.button(mxResources.get("apply"),function(){var b=g.value;ColorDialog.addRecentColor(b,12);"none"!=b&&"#"!=b.charAt(0)&&(b="#"+b);q(b);a.hideDialog()});f.className="geBtn gePrimaryBtn";
+m.style.marginBottom="16px";l.appendChild(n);m=document.createElement("div");m.style.textAlign="right";m.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);var r=null!=f?f:this.createApplyFunction();f=mxUtils.button(mxResources.get("apply"),function(){var b=g.value;ColorDialog.addRecentColor(b,12);"none"!=b&&"#"!=b.charAt(0)&&(b="#"+b);r(b);a.hideDialog()});f.className="geBtn gePrimaryBtn";
m.appendChild(f);a.editor.cancelFirst||m.appendChild(p);null!=c&&("none"==c?(k.fromString("ffffff"),g.value="none"):k.fromString(c));l.appendChild(m);this.picker=k;this.colorInput=g;mxEvent.addListener(l,"keydown",function(b){27==b.keyCode&&(a.hideDialog(),null!=d&&d(),mxEvent.consume(b))});this.container=l};
ColorDialog.prototype.createApplyFunction=function(){return mxUtils.bind(this,function(a){var c=this.editorUi.editor.graph;c.getModel().beginUpdate();try{c.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,c){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>c&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var c=document.createElement("div");c.setAttribute("align","center");var f=document.createElement("h3");mxUtils.write(f,mxResources.get("about")+" GraphEditor");c.appendChild(f);f=document.createElement("img");f.style.border="0px";f.setAttribute("width","176");f.setAttribute("width","151");f.setAttribute("src",IMAGE_PATH+"/logo.png");c.appendChild(f);mxUtils.br(c);mxUtils.write(c,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(c);f=document.createElement("a");f.setAttribute("href",
"http://www.jgraph.com/");f.setAttribute("target","_blank");mxUtils.write(f,"www.jgraph.com");c.appendChild(f);mxUtils.br(c);mxUtils.br(c);f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});f.className="geBtn gePrimaryBtn";c.appendChild(f);this.container=c},PageSetupDialog=function(a){function c(){null==m||m==mxConstants.NONE?(n.style.backgroundColor="",n.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(n.style.backgroundColor=m,n.style.backgroundImage="")}function f(){null==
-r?(q.removeAttribute("title"),q.style.fontSize="",q.innerHTML=mxResources.get("change")+"..."):(q.setAttribute("title",r.src),q.style.fontSize="11px",q.innerHTML=r.src.substring(0,42)+"...")}var d=a.editor.graph,b,e,g=document.createElement("table");g.style.width="100%";g.style.height="100%";var k=document.createElement("tbody");b=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");b.appendChild(e);
+s?(r.removeAttribute("title"),r.style.fontSize="",r.innerHTML=mxResources.get("change")+"..."):(r.setAttribute("title",s.src),r.style.fontSize="11px",r.innerHTML=s.src.substring(0,42)+"...")}var d=a.editor.graph,b,e,g=document.createElement("table");g.style.width="100%";g.style.height="100%";var k=document.createElement("tbody");b=document.createElement("tr");e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";mxUtils.write(e,mxResources.get("paperSize")+":");b.appendChild(e);
e=document.createElement("td");e.style.verticalAlign="top";e.style.fontSize="10pt";var l=PageSetupDialog.addPageFormatPanel(e,"pagesetupdialog",d.pageFormat);b.appendChild(e);k.appendChild(b);b=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,mxResources.get("background")+":");b.appendChild(e);e=document.createElement("td");e.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var n=document.createElement("button");n.style.width="18px";
n.style.height="18px";n.style.marginRight="20px";n.style.backgroundPosition="center center";n.style.backgroundRepeat="no-repeat";var m=d.background;c();mxEvent.addListener(n,"click",function(b){a.pickColor(m||"none",function(b){m=b;c()});mxEvent.consume(b)});e.appendChild(n);mxUtils.write(e,mxResources.get("gridSize")+":");var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=d.getGridSize();e.appendChild(p);
-mxEvent.addListener(p,"change",function(){var b=parseInt(p.value);p.value=Math.max(1,isNaN(b)?d.getGridSize():b)});b.appendChild(e);k.appendChild(b);b=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,mxResources.get("image")+":");b.appendChild(e);e=document.createElement("td");var q=document.createElement("a");q.style.textDecoration="underline";q.style.cursor="pointer";q.style.color="#a0a0a0";var r=d.backgroundImage;mxEvent.addListener(q,"click",function(b){a.showBackgroundImageDialog(function(b){r=
-b;f()});mxEvent.consume(b)});f();e.appendChild(q);b.appendChild(e);k.appendChild(b);b=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align","right");var s=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});s.className="geBtn";a.editor.cancelFirst&&e.appendChild(s);var t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();a.setPageFormat(l.get());d.background!=m&&a.setBackgroundColor(m);d.backgroundImage!==
-r&&a.setBackgroundImage(r);d.gridSize!==p.value&&d.setGridSize(parseInt(p.value))});t.className="geBtn gePrimaryBtn";e.appendChild(t);a.editor.cancelFirst||e.appendChild(s);b.appendChild(e);k.appendChild(b);g.appendChild(k);this.container=g};
-PageSetupDialog.addPageFormatPanel=function(a,c,f,d){function b(b,a,d){if(d||p!=document.activeElement&&q!=document.activeElement){b=!1;for(a=0;a<s.length;a++)d=s[a],A?"custom"==d.key&&(k.value=d.key,A=!1):null!=d.format&&(f.width==d.format.width&&f.height==d.format.height?(k.value=d.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,g.removeAttribute("checked"),g.defaultChecked=!1,g.checked=!1,b=!0):f.width==d.format.height&&f.height==d.format.width&&(k.value=d.key,e.removeAttribute("checked"),
-e.defaultChecked=!1,e.checked=!1,g.setAttribute("checked","checked"),g.defaultChecked=!0,b=g.checked=!0));b?(l.style.display="",m.style.display="none"):(p.value=f.width,q.value=f.height,v.setAttribute("selected","selected"),e.setAttribute("checked","checked"),e.defaultChecked=!0,l.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var g=document.createElement("input");
+mxEvent.addListener(p,"change",function(){var b=parseInt(p.value);p.value=Math.max(1,isNaN(b)?d.getGridSize():b)});b.appendChild(e);k.appendChild(b);b=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,mxResources.get("image")+":");b.appendChild(e);e=document.createElement("td");var r=document.createElement("a");r.style.textDecoration="underline";r.style.cursor="pointer";r.style.color="#a0a0a0";var s=d.backgroundImage;mxEvent.addListener(r,"click",function(b){a.showBackgroundImageDialog(function(b){s=
+b;f()});mxEvent.consume(b)});f();e.appendChild(r);b.appendChild(e);k.appendChild(b);b=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align","right");var q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});q.className="geBtn";a.editor.cancelFirst&&e.appendChild(q);var t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();a.setPageFormat(l.get());d.background!=m&&a.setBackgroundColor(m);d.backgroundImage!==
+s&&a.setBackgroundImage(s);d.gridSize!==p.value&&d.setGridSize(parseInt(p.value))});t.className="geBtn gePrimaryBtn";e.appendChild(t);a.editor.cancelFirst||e.appendChild(q);b.appendChild(e);k.appendChild(b);g.appendChild(k);this.container=g};
+PageSetupDialog.addPageFormatPanel=function(a,c,f,d){function b(b,a,d){if(d||p!=document.activeElement&&r!=document.activeElement){b=!1;for(a=0;a<q.length;a++)d=q[a],z?"custom"==d.key&&(k.value=d.key,z=!1):null!=d.format&&(f.width==d.format.width&&f.height==d.format.height?(k.value=d.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,g.removeAttribute("checked"),g.defaultChecked=!1,g.checked=!1,b=!0):f.width==d.format.height&&f.height==d.format.width&&(k.value=d.key,e.removeAttribute("checked"),
+e.defaultChecked=!1,e.checked=!1,g.setAttribute("checked","checked"),g.defaultChecked=!0,b=g.checked=!0));b?(l.style.display="",m.style.display="none"):(p.value=f.width,r.value=f.height,v.setAttribute("selected","selected"),e.setAttribute("checked","checked"),e.defaultChecked=!0,l.style.display="none",m.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var g=document.createElement("input");
g.setAttribute("name",c);g.setAttribute("type","radio");g.setAttribute("value","landscape");var k=document.createElement("select");k.style.marginBottom="8px";k.style.width="202px";var l=document.createElement("div");l.style.marginLeft="4px";l.style.width="210px";l.style.height="24px";e.style.marginRight="6px";l.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));l.appendChild(c);g.style.marginLeft="10px";g.style.marginRight="6px";l.appendChild(g);
-var n=document.createElement("span");n.style.width="100px";mxUtils.write(n,mxResources.get("landscape"));l.appendChild(n);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");p.setAttribute("size","6");p.setAttribute("value",f.width);m.appendChild(p);mxUtils.write(m," x ");var q=document.createElement("input");q.setAttribute("size","6");q.setAttribute("value",f.height);m.appendChild(q);mxUtils.write(m," pt");
-l.style.display="none";m.style.display="none";for(var r={},s=PageSetupDialog.getFormats(),t=0;t<s.length;t++){var u=s[t];r[u.key]=u;var v=document.createElement("option");v.setAttribute("value",u.key);mxUtils.write(v,u.title);k.appendChild(v)}var A=!1;b();a.appendChild(k);mxUtils.br(a);a.appendChild(l);a.appendChild(m);var y=f,x=function(){var b=r[k.value];null!=b.format?(p.value=b.format.width,q.value=b.format.height,m.style.display="none",l.style.display=""):(l.style.display="none",m.style.display=
-"");b=new mxRectangle(0,0,parseInt(p.value),parseInt(q.value));"custom"!=k.value&&g.checked&&(b=new mxRectangle(0,0,b.height,b.width));if(b.width!=y.width||b.height!=y.height)y=b,null!=d&&d(y)};mxEvent.addListener(c,"click",function(b){e.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(n,"click",function(b){g.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(q,"blur",x);mxEvent.addListener(q,"click",x);mxEvent.addListener(g,
-"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(k,"change",function(){A="custom"==k.value;x()});x();return{set:function(a){f=a;b(null,null,!0)},get:function(){return y},widthInput:p,heightInput:q}};
+var n=document.createElement("span");n.style.width="100px";mxUtils.write(n,mxResources.get("landscape"));l.appendChild(n);var m=document.createElement("div");m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";var p=document.createElement("input");p.setAttribute("size","6");p.setAttribute("value",f.width);m.appendChild(p);mxUtils.write(m," x ");var r=document.createElement("input");r.setAttribute("size","6");r.setAttribute("value",f.height);m.appendChild(r);mxUtils.write(m," pt");
+l.style.display="none";m.style.display="none";for(var s={},q=PageSetupDialog.getFormats(),t=0;t<q.length;t++){var u=q[t];s[u.key]=u;var v=document.createElement("option");v.setAttribute("value",u.key);mxUtils.write(v,u.title);k.appendChild(v)}var z=!1;b();a.appendChild(k);mxUtils.br(a);a.appendChild(l);a.appendChild(m);var y=f,x=function(){var b=s[k.value];null!=b.format?(p.value=b.format.width,r.value=b.format.height,m.style.display="none",l.style.display=""):(l.style.display="none",m.style.display=
+"");b=new mxRectangle(0,0,parseInt(p.value),parseInt(r.value));"custom"!=k.value&&g.checked&&(b=new mxRectangle(0,0,b.height,b.width));if(b.width!=y.width||b.height!=y.height)y=b,null!=d&&d(y)};mxEvent.addListener(c,"click",function(b){e.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(n,"click",function(b){g.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(r,"blur",x);mxEvent.addListener(r,"click",x);mxEvent.addListener(g,
+"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(k,"change",function(){z="custom"==k.value;x()});x();return{set:function(a){f=a;b(null,null,!0)},get:function(){return y},widthInput:p,heightInput:r}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:"US-Tabloid (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1652)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",
format:new mxRectangle(0,0,584,826)},{key:"custom",title:mxResources.get("custom"),format:null}]};var PrintDialog=function(a){this.create(a)};
PrintDialog.prototype.create=function(a){function c(b){var a=k.checked||n.checked,d=parseInt(p.value)/100;isNaN(d)&&(d=1,p.value="100%");var d=0.75*d,c=f.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,e=1/f.pageScale;if(a){var g=k.checked?1:parseInt(m.value);isNaN(g)||(e=mxUtils.getScaleForPageCount(g,f,c))}f.getGraphBounds();var l=g=0,c=mxRectangle.fromRectangle(c);c.width=Math.ceil(c.width*d);c.height=Math.ceil(c.height*d);e*=d;!a&&f.pageVisible?(d=f.getPageLayout(),g-=d.x*c.width,l-=d.y*c.height):
@@ -3070,44 +3070,44 @@ a=!0;a=PrintDialog.createPrintPreview(f,e,c,0,g,l,a);a.open();b&&PrintDialog.pri
b.appendChild(l);mxEvent.addListener(l,"click",function(b){k.checked=!k.checked;n.checked=!k.checked;mxEvent.consume(b)});mxEvent.addListener(k,"change",function(){n.checked=!k.checked});d.appendChild(b);g.appendChild(d);d=d.cloneNode(!1);var n=document.createElement("input");n.setAttribute("type","checkbox");b=document.createElement("td");b.style.fontSize="10pt";b.appendChild(n);l=document.createElement("span");mxUtils.write(l," "+mxResources.get("posterPrint")+":");b.appendChild(l);mxEvent.addListener(l,
"click",function(b){n.checked=!n.checked;k.checked=!n.checked;mxEvent.consume(b)});d.appendChild(b);var m=document.createElement("input");m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.setAttribute("size","4");m.setAttribute("disabled","disabled");m.style.width="50px";b=document.createElement("td");b.style.fontSize="10pt";b.appendChild(m);mxUtils.write(b," "+mxResources.get("pages")+" (max)");d.appendChild(b);g.appendChild(d);mxEvent.addListener(n,"change",
function(){n.checked?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled");k.checked=!n.checked});d=d.cloneNode(!1);b=document.createElement("td");mxUtils.write(b,mxResources.get("pageScale")+":");d.appendChild(b);b=document.createElement("td");var p=document.createElement("input");p.setAttribute("value","100 %");p.setAttribute("size","5");p.style.width="50px";b.appendChild(p);d.appendChild(b);g.appendChild(d);d=document.createElement("tr");b=document.createElement("td");b.colSpan=2;
-b.style.paddingTop="20px";b.setAttribute("align","right");l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&b.appendChild(l);if(!mxClient.IS_CHROMEAPP){var q=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)});q.className="geBtn";b.appendChild(q)}q=mxUtils.button(mxResources.get(mxClient.IS_CHROMEAPP?"ok":"print"),function(){a.hideDialog();c(!0)});q.className="geBtn gePrimaryBtn";b.appendChild(q);a.editor.cancelFirst||
+b.style.paddingTop="20px";b.setAttribute("align","right");l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&b.appendChild(l);if(!mxClient.IS_CHROMEAPP){var r=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)});r.className="geBtn";b.appendChild(r)}r=mxUtils.button(mxResources.get(mxClient.IS_CHROMEAPP?"ok":"print"),function(){a.hideDialog();c(!0)});r.className="geBtn gePrimaryBtn";b.appendChild(r);a.editor.cancelFirst||
b.appendChild(l);d.appendChild(b);g.appendChild(d);e.appendChild(g);this.container=e};PrintDialog.printPreview=function(a){if(null!=a.wnd){var c=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}};
PrintDialog.createPrintPreview=function(a,c,f,d,b,e,g){c=new mxPrintPreview(a,c,f,d,b,e);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=g;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";c.backgroundColor=a;var k=c.writeHead;c.writeHead=function(b){k.apply(this,arguments);b.writeln('\x3cstyle type\x3d"text/css"\x3e');b.writeln("@media screen {");b.writeln(" body \x3e div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("\x3c/style\x3e")};
return c};
-var FilenameDialog=function(a,c,f,d,b,e,g,k,l){l=null!=l?l:!0;var n,m,p=document.createElement("table"),q=document.createElement("tbody");p.style.marginTop="8px";n=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";m.style.width="120px";mxUtils.write(m,(b||mxResources.get("filename"))+":");n.appendChild(m);var r=document.createElement("input");r.setAttribute("value",c||"");r.style.width="180px";var s=mxUtils.button(f,function(){if(null==e||e(r.value))l&&a.hideDialog(),
-d(r.value)});s.className="geBtn gePrimaryBtn";this.init=function(){if(!(null==b&&null!=g)&&(r.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null),Graph.fileSupport)){var a=p.parentNode,d=null;mxEvent.addListener(a,"dragleave",function(b){null!=d&&(d.style.backgroundColor="",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(a,"dragover",mxUtils.bind(this,function(b){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=
-r,d.style.backgroundColor="#ebf2f9";b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(r.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),s.click());b.stopPropagation();b.preventDefault()}))}};m=document.createElement("td");m.appendChild(r);n.appendChild(m);(null!=b||null==g)&&q.appendChild(n);null!=g&&(n=document.createElement("tr"),
-m=document.createElement("td"),m.colSpan=2,m.appendChild(g),n.appendChild(m),q.appendChild(n));n=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="20px";m.style.whiteSpace="nowrap";m.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&m.appendChild(c);null!=k&&(f=mxUtils.button(mxResources.get("help"),function(){window.open(k)}),f.className="geBtn",m.appendChild(f));
-mxEvent.addListener(r,"keypress",function(b){13==b.keyCode&&s.click()});m.appendChild(s);a.editor.cancelFirst||m.appendChild(c);n.appendChild(m);q.appendChild(n);p.appendChild(q);this.container=p},TextareaDialog=function(a,c,f,d,b,e,g,k,l,n){g=null!=g?g:300;k=null!=k?k:120;n=null!=n?n:!1;var m,p,q=document.createElement("table"),r=document.createElement("tbody");m=document.createElement("tr");p=document.createElement("td");p.style.fontSize="10pt";p.style.width="100px";mxUtils.write(p,c);m.appendChild(p);
-r.appendChild(m);m=document.createElement("tr");p=document.createElement("td");var s=document.createElement("textarea");mxUtils.write(s,f||"");s.style.resize="none";s.style.width=g+"px";s.style.height=k+"px";this.textarea=s;this.init=function(){s.focus();s.scrollTop=0};p.appendChild(s);m.appendChild(p);r.appendChild(m);m=document.createElement("tr");p=document.createElement("td");p.style.paddingTop="14px";p.style.whiteSpace="nowrap";p.setAttribute("align","right");c=mxUtils.button(e||mxResources.get("cancel"),
-function(){a.hideDialog();null!=b&&b()});c.className="geBtn";a.editor.cancelFirst&&p.appendChild(c);null!=l&&l(p);null!=d&&(l=mxUtils.button(mxResources.get("apply"),function(){n||a.hideDialog();d(s.value)}),l.className="geBtn gePrimaryBtn",p.appendChild(l));a.editor.cancelFirst||p.appendChild(c);m.appendChild(p);r.appendChild(m);q.appendChild(r);this.container=q},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var f=document.createElement("textarea");f.setAttribute("wrap",
+var FilenameDialog=function(a,c,f,d,b,e,g,k,l){l=null!=l?l:!0;var n,m,p=document.createElement("table"),r=document.createElement("tbody");p.style.marginTop="8px";n=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";m.style.width="120px";mxUtils.write(m,(b||mxResources.get("filename"))+":");n.appendChild(m);var s=document.createElement("input");s.setAttribute("value",c||"");s.style.width="180px";var q=mxUtils.button(f,function(){if(null==e||e(s.value))l&&a.hideDialog(),
+d(s.value)});q.className="geBtn gePrimaryBtn";this.init=function(){if(!(null==b&&null!=g)&&(s.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?s.select():document.execCommand("selectAll",!1,null),Graph.fileSupport)){var a=p.parentNode,d=null;mxEvent.addListener(a,"dragleave",function(b){null!=d&&(d.style.backgroundColor="",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(a,"dragover",mxUtils.bind(this,function(b){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=
+s,d.style.backgroundColor="#ebf2f9";b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(s.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),q.click());b.stopPropagation();b.preventDefault()}))}};m=document.createElement("td");m.appendChild(s);n.appendChild(m);(null!=b||null==g)&&r.appendChild(n);null!=g&&(n=document.createElement("tr"),
+m=document.createElement("td"),m.colSpan=2,m.appendChild(g),n.appendChild(m),r.appendChild(n));n=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="20px";m.style.whiteSpace="nowrap";m.setAttribute("align","right");c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&m.appendChild(c);null!=k&&(f=mxUtils.button(mxResources.get("help"),function(){window.open(k)}),f.className="geBtn",m.appendChild(f));
+mxEvent.addListener(s,"keypress",function(b){13==b.keyCode&&q.click()});m.appendChild(q);a.editor.cancelFirst||m.appendChild(c);n.appendChild(m);r.appendChild(n);p.appendChild(r);this.container=p},TextareaDialog=function(a,c,f,d,b,e,g,k,l,n){g=null!=g?g:300;k=null!=k?k:120;n=null!=n?n:!1;var m,p,r=document.createElement("table"),s=document.createElement("tbody");m=document.createElement("tr");p=document.createElement("td");p.style.fontSize="10pt";p.style.width="100px";mxUtils.write(p,c);m.appendChild(p);
+s.appendChild(m);m=document.createElement("tr");p=document.createElement("td");var q=document.createElement("textarea");mxUtils.write(q,f||"");q.style.resize="none";q.style.width=g+"px";q.style.height=k+"px";this.textarea=q;this.init=function(){q.focus();q.scrollTop=0};p.appendChild(q);m.appendChild(p);s.appendChild(m);m=document.createElement("tr");p=document.createElement("td");p.style.paddingTop="14px";p.style.whiteSpace="nowrap";p.setAttribute("align","right");c=mxUtils.button(e||mxResources.get("cancel"),
+function(){a.hideDialog();null!=b&&b()});c.className="geBtn";a.editor.cancelFirst&&p.appendChild(c);null!=l&&l(p);null!=d&&(l=mxUtils.button(mxResources.get("apply"),function(){n||a.hideDialog();d(q.value)}),l.className="geBtn gePrimaryBtn",p.appendChild(l));a.editor.cancelFirst||p.appendChild(c);m.appendChild(p);s.appendChild(m);r.appendChild(s);this.container=r},EditDiagramDialog=function(a){var c=document.createElement("div");c.style.textAlign="right";var f=document.createElement("textarea");f.setAttribute("wrap",
"off");f.style.overflow="auto";f.style.resize="none";f.style.width="600px";f.style.height="370px";f.style.marginBottom="16px";f.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(f);this.init=function(){f.focus()};Graph.fileSupport&&(f.addEventListener("dragover",function(b){b.stopPropagation();b.preventDefault()},!1),f.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var d=new FileReader;d.onload=
function(b){f.value=b.target.result};d.readAsText(b)}else f.value=a.extractGraphModelFromEvent(b)},!1));var d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.className="geBtn";a.editor.cancelFirst&&c.appendChild(d);var b=document.createElement("select");b.style.width="180px";b.className="geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));b.appendChild(e)}e=
document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime||b.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")),b.appendChild(e));c.appendChild(b);e=mxUtils.button(mxResources.get("ok"),function(){var d=a.editor.graph.zapGremlins(mxUtils.trim(f.value)),c=null;if("new"==
b.value)window.openFile=new OpenFile(function(){a.hideDialog();window.openFile=null}),window.openFile.setData(d,null),window.open(a.getUrl());else if("replace"==b.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(d).documentElement),a.hideDialog()}catch(e){c=e}finally{a.editor.graph.model.endUpdate()}}else if("import"==b.value){a.editor.graph.model.beginUpdate();try{var n=mxUtils.parseXml(d),m=new mxGraphModel;(new mxCodec(n)).decode(n.documentElement,m);var p=m.getChildren(m.getChildAt(m.getRoot(),
-0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(p));a.hideDialog()}catch(q){c=q}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(d);this.container=c},ExportDialog=function(a){function c(){var b=p.value,a=b.lastIndexOf(".");p.value=0<a?b.substring(0,a+1)+q.value:b+"."+q.value;"xml"===q.value?(t.setAttribute("disabled","true"),u.setAttribute("disabled","true"),v.setAttribute("disabled",
-"true")):(t.removeAttribute("disabled"),u.removeAttribute("disabled"),v.removeAttribute("disabled"));"png"===q.value||"svg"===q.value?s.removeAttribute("disabled"):s.setAttribute("disabled","disabled")}function f(){t.style.backgroundColor=t.value*u.value>MAX_AREA||0>=t.value?"red":"";u.style.backgroundColor=t.value*u.value>MAX_AREA||0>=u.value?"red":""}function d(){var a=Math.max(0,parseInt(v.value))+1,d=parseInt(t.value)/k,c=null;""!=r.value&&r.value!=mxConstants.NONE&&!s.checked&&(c=r.value);return b.getSvg(c,
+0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(p));a.hideDialog()}catch(r){c=r}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(d);this.container=c},ExportDialog=function(a){function c(){var b=p.value,a=b.lastIndexOf(".");p.value=0<a?b.substring(0,a+1)+r.value:b+"."+r.value;"xml"===r.value?(t.setAttribute("disabled","true"),u.setAttribute("disabled","true"),v.setAttribute("disabled",
+"true")):(t.removeAttribute("disabled"),u.removeAttribute("disabled"),v.removeAttribute("disabled"));"png"===r.value||"svg"===r.value?q.removeAttribute("disabled"):q.setAttribute("disabled","disabled")}function f(){t.style.backgroundColor=t.value*u.value>MAX_AREA||0>=t.value?"red":"";u.style.backgroundColor=t.value*u.value>MAX_AREA||0>=u.value?"red":""}function d(){var a=Math.max(0,parseInt(v.value))+1,d=parseInt(t.value)/k,c=null;""!=s.value&&s.value!=mxConstants.NONE&&!q.checked&&(c=s.value);return b.getSvg(c,
d,a)}var b=a.editor.graph,e=b.getGraphBounds(),g=b.view.scale,k=Math.ceil(e.width/g),l=Math.ceil(e.height/g),n,g=document.createElement("table"),m=document.createElement("tbody"),e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";n.style.width="100px";mxUtils.write(n,mxResources.get("filename")+":");e.appendChild(n);var p=document.createElement("input");p.setAttribute("value",a.editor.getOrCreateFilename());p.style.width="180px";n=document.createElement("td");n.appendChild(p);
-e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("format")+":");e.appendChild(n);var q=document.createElement("select");q.style.width="180px";n=document.createElement("option");n.setAttribute("value","png");mxUtils.write(n,mxResources.get("formatPng"));q.appendChild(n);n=document.createElement("option");ExportDialog.showGifOption&&(n.setAttribute("value","gif"),mxUtils.write(n,mxResources.get("formatGif")),
-q.appendChild(n));n=document.createElement("option");n.setAttribute("value","jpg");mxUtils.write(n,mxResources.get("formatJpg"));q.appendChild(n);n=document.createElement("option");n.setAttribute("value","pdf");mxUtils.write(n,mxResources.get("formatPdf"));q.appendChild(n);n=document.createElement("option");n.setAttribute("value","svg");mxUtils.write(n,mxResources.get("formatSvg"));q.appendChild(n);ExportDialog.showXmlOption&&(n=document.createElement("option"),n.setAttribute("value","xml"),mxUtils.write(n,
-mxResources.get("formatXml")),q.appendChild(n));n=document.createElement("td");n.appendChild(q);e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("backgroundColor")+":");e.appendChild(n);var r=document.createElement("input");r.setAttribute("value",null==b.background||b.background==mxConstants.NONE?"#ffffff":b.background);r.style.width="80px";var s=document.createElement("input");s.setAttribute("type",
-"checkbox");s.checked=null==b.background||b.background==mxConstants.NONE;n=document.createElement("td");n.appendChild(r);n.appendChild(s);mxUtils.write(n,mxResources.get("transparent"));e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("width")+":");e.appendChild(n);var t=document.createElement("input");t.setAttribute("value",k);t.style.width="180px";n=document.createElement("td");n.appendChild(t);
+e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("format")+":");e.appendChild(n);var r=document.createElement("select");r.style.width="180px";n=document.createElement("option");n.setAttribute("value","png");mxUtils.write(n,mxResources.get("formatPng"));r.appendChild(n);n=document.createElement("option");ExportDialog.showGifOption&&(n.setAttribute("value","gif"),mxUtils.write(n,mxResources.get("formatGif")),
+r.appendChild(n));n=document.createElement("option");n.setAttribute("value","jpg");mxUtils.write(n,mxResources.get("formatJpg"));r.appendChild(n);n=document.createElement("option");n.setAttribute("value","pdf");mxUtils.write(n,mxResources.get("formatPdf"));r.appendChild(n);n=document.createElement("option");n.setAttribute("value","svg");mxUtils.write(n,mxResources.get("formatSvg"));r.appendChild(n);ExportDialog.showXmlOption&&(n=document.createElement("option"),n.setAttribute("value","xml"),mxUtils.write(n,
+mxResources.get("formatXml")),r.appendChild(n));n=document.createElement("td");n.appendChild(r);e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("backgroundColor")+":");e.appendChild(n);var s=document.createElement("input");s.setAttribute("value",null==b.background||b.background==mxConstants.NONE?"#ffffff":b.background);s.style.width="80px";var q=document.createElement("input");q.setAttribute("type",
+"checkbox");q.checked=null==b.background||b.background==mxConstants.NONE;n=document.createElement("td");n.appendChild(s);n.appendChild(q);mxUtils.write(n,mxResources.get("transparent"));e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("width")+":");e.appendChild(n);var t=document.createElement("input");t.setAttribute("value",k);t.style.width="180px";n=document.createElement("td");n.appendChild(t);
e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("height")+":");e.appendChild(n);var u=document.createElement("input");u.setAttribute("value",l);u.style.width="180px";n=document.createElement("td");n.appendChild(u);e.appendChild(n);m.appendChild(e);e=document.createElement("tr");n=document.createElement("td");n.style.fontSize="10pt";mxUtils.write(n,mxResources.get("borderWidth")+":");e.appendChild(n);
-var v=document.createElement("input");v.setAttribute("value",k);v.style.width="180px";v.value="0";n=document.createElement("td");n.appendChild(v);e.appendChild(n);m.appendChild(e);g.appendChild(m);mxEvent.addListener(q,"change",c);c();mxEvent.addListener(t,"change",function(){u.value=0<k?Math.ceil(parseInt(t.value)*l/k):"0";f()});mxEvent.addListener(u,"change",function(){t.value=0<l?Math.ceil(parseInt(u.value)*k/l):"0";f()});var A=new mxImageExport,e=document.createElement("tr");n=document.createElement("td");
-n.setAttribute("align","right");n.style.paddingTop="24px";n.colSpan=2;var y=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(t.value)&&0>=parseInt(u.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=q.value,e=p.value;if("xml"==c)a.hideDialog(),ExportDialog.saveLocalFile(mxUtils.getXml(a.editor.getGraphXml()),e,c);else if("svg"==c){var f=mxUtils.getXml(d());f.length<MAX_REQUEST_SIZE?(a.hideDialog(),ExportDialog.saveLocalFile(f,e,c)):(mxUtils.alert(mxResources.get("drawingTooLarge")),
-mxUtils.popup(f))}else{var g=null,l=parseInt(t.value)||0,n=parseInt(u.value)||0,m=Math.max(0,parseInt(v.value))+1,f=ExportDialog.getExportParameter(a,c);if("function"==typeof f)g=f();else{var f=parseInt(t.value)/k,y=b.getGraphBounds(),x=b.view.scale,N=mxUtils.createXmlDocument(),T=N.createElement("output");N.appendChild(T);N=new mxXmlCanvas2D(T);N.translate(Math.floor((m/f-y.x)/x),Math.floor((m/f-y.y)/x));N.scale(f/x);A.drawState(b.getView().getState(b.model.root),N);l=Math.ceil(y.width*f/x+2*m);
-n=Math.ceil(y.height*f/x+2*m);g="xml\x3d"+encodeURIComponent(mxUtils.getXml(T))}if(null!=g&&g.length<=MAX_REQUEST_SIZE&&l*n<MAX_AREA){var Y="\x26bg\x3dnone";if(""!=r.value&&r.value!=mxConstants.NONE&&("png"!=c||!s.checked))Y="\x26bg\x3d"+r.value;a.hideDialog();f=decodeURIComponent(g.substring(g.indexOf("\x3d")+1));ExportDialog.saveRequest(f,e,c,function(b,a){return new mxXmlRequest(EXPORT_URL,"format\x3d"+c+"\x26base64\x3d"+(a||"0")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+Y+"\x26w\x3d"+
+var v=document.createElement("input");v.setAttribute("value",k);v.style.width="180px";v.value="0";n=document.createElement("td");n.appendChild(v);e.appendChild(n);m.appendChild(e);g.appendChild(m);mxEvent.addListener(r,"change",c);c();mxEvent.addListener(t,"change",function(){u.value=0<k?Math.ceil(parseInt(t.value)*l/k):"0";f()});mxEvent.addListener(u,"change",function(){t.value=0<l?Math.ceil(parseInt(u.value)*k/l):"0";f()});var z=new mxImageExport,e=document.createElement("tr");n=document.createElement("td");
+n.setAttribute("align","right");n.style.paddingTop="24px";n.colSpan=2;var y=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(t.value)&&0>=parseInt(u.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var c=r.value,e=p.value;if("xml"==c)a.hideDialog(),ExportDialog.saveLocalFile(mxUtils.getXml(a.editor.getGraphXml()),e,c);else if("svg"==c){var f=mxUtils.getXml(d());f.length<MAX_REQUEST_SIZE?(a.hideDialog(),ExportDialog.saveLocalFile(f,e,c)):(mxUtils.alert(mxResources.get("drawingTooLarge")),
+mxUtils.popup(f))}else{var g=null,l=parseInt(t.value)||0,n=parseInt(u.value)||0,m=Math.max(0,parseInt(v.value))+1,f=ExportDialog.getExportParameter(a,c);if("function"==typeof f)g=f();else{var f=parseInt(t.value)/k,x=b.getGraphBounds(),y=b.view.scale,O=mxUtils.createXmlDocument(),T=O.createElement("output");O.appendChild(T);O=new mxXmlCanvas2D(T);O.translate(Math.floor((m/f-x.x)/y),Math.floor((m/f-x.y)/y));O.scale(f/y);z.drawState(b.getView().getState(b.model.root),O);l=Math.ceil(x.width*f/y+2*m);
+n=Math.ceil(x.height*f/y+2*m);g="xml\x3d"+encodeURIComponent(mxUtils.getXml(T))}if(null!=g&&g.length<=MAX_REQUEST_SIZE&&l*n<MAX_AREA){var Y="\x26bg\x3dnone";if(""!=s.value&&s.value!=mxConstants.NONE&&("png"!=c||!q.checked))Y="\x26bg\x3d"+s.value;a.hideDialog();f=decodeURIComponent(g.substring(g.indexOf("\x3d")+1));ExportDialog.saveRequest(f,e,c,function(b,a){return new mxXmlRequest(EXPORT_URL,"format\x3d"+c+"\x26base64\x3d"+(a||"0")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+Y+"\x26w\x3d"+
l+"\x26h\x3d"+n+"\x26border\x3d"+m+"\x26"+g)})}else mxUtils.alert(mxResources.get("drawingTooLarge"))}}}));y.className="geBtn gePrimaryBtn";var x=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});x.className="geBtn";a.editor.cancelFirst?(n.appendChild(x),n.appendChild(y)):(n.appendChild(y),n.appendChild(x));e.appendChild(n);m.appendChild(e);g.appendChild(m);this.container=g};ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
ExportDialog.saveLocalFile=function(a,c,f){(new mxXmlRequest(SAVE_URL,"xml\x3d"+encodeURIComponent(a)+"\x26filename\x3d"+encodeURIComponent(c)+"\x26format\x3d"+f)).simulate(document,"_blank")};ExportDialog.saveRequest=function(a,c,f,d){d(c).simulate(document,"_blank")};ExportDialog.getExportParameter=function(a,c){return null};
-var EditDataDialog=function(a,c){function f(){0<s.value.length?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}var d=document.createElement("div"),b=a.editor.graph;d.style.height="310px";d.style.overflow="auto";var e=b.getModel().getValue(c);if(!mxUtils.isNode(e)){var g=mxUtils.createXmlDocument().createElement("object");g.setAttribute("label",e||"");e=g}var k=new mxForm("properties");k.table.style.width="100%";k.table.style.paddingRight="20px";for(var g=e.attributes,l=[],n=[],
+var EditDataDialog=function(a,c){function f(){0<q.value.length?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}var d=document.createElement("div"),b=a.editor.graph;d.style.height="310px";d.style.overflow="auto";var e=b.getModel().getValue(c);if(!mxUtils.isNode(e)){var g=mxUtils.createXmlDocument().createElement("object");g.setAttribute("label",e||"");e=g}var k=new mxForm("properties");k.table.style.width="100%";k.table.style.paddingRight="20px";for(var g=e.attributes,l=[],n=[],
m=0,p=function(b,a){b.parentNode.style.marginRight="12px";var d=document.createElement("a"),c=mxUtils.createImage(Dialog.prototype.closeImage);c.style.height="9px";c.style.fontSize="9px";c.style.marginBottom="7px";d.className="geButton";d.setAttribute("title",mxResources.get("delete"));d.style.margin="0px";d.style.width="14px";d.style.height="14px";d.style.fontSize="14px";d.style.cursor="pointer";d.style.marginLeft="6px";d.appendChild(c);c=function(b){return function(){for(var a=0,d=0;d<l.length;d++){if(l[d]==
-b){n[d]=null;k.table.deleteRow(a);break}null!=n[d]&&a++}}}(a);mxEvent.addListener(d,"click",c);b.parentNode.style.whiteSpace="nowrap";b.parentNode.appendChild(d)},q=function(b,a,d){l[b]=a;n[b]=k.addTextarea(l[m]+":",d,2);n[b].style.width="100%";p(n[b],a)},r=0;r<g.length;r++)"label"!=g[r].nodeName&&"placeholders"!=g[r].nodeName&&(q(m,g[r].nodeName,g[r].nodeValue),m++);d.appendChild(k.table);g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.marginTop="6px";var s=document.createElement("input");
-s.setAttribute("placeholder",mxResources.get("enterPropertyName"));s.setAttribute("type","text");s.setAttribute("size",mxClient.IS_QUIRKS?"18":"22");s.style.marginLeft="2px";g.appendChild(s);d.appendChild(g);var t=mxUtils.button(mxResources.get("addProperty"),function(){if(0<s.value.length){var b=s.value;if(null!=b&&0<b.length&&"label"!=b&&"placeholders"!=b)try{var a=mxUtils.indexOf(l,b);if(0<=a&&null!=n[a])n[a].focus();else{e.cloneNode(!1).setAttribute(b,"");0<=a&&(l.splice(a,1),n.splice(a,1));l.push(b);
-var d=k.addTextarea(b+":","",2);d.style.width="100%";n.push(d);p(d,b);d.focus()}s.value=""}catch(c){mxUtils.alert(c)}}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<n.length?n[0].focus():s.focus()};t.setAttribute("disabled","disabled");t.style.marginLeft="10px";t.style.width="144px";g.appendChild(t);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});g.className="geBtn";q=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,
-arguments);e=e.cloneNode(!0);for(var d=0;d<l.length;d++)null==n[d]?e.removeAttribute(l[d]):e.setAttribute(l[d],n[d].value);b.getModel().setValue(c,e)}catch(f){mxUtils.alert(f)}});q.className="geBtn gePrimaryBtn";mxEvent.addListener(s,"keyup",f);mxEvent.addListener(s,"change",f);r=document.createElement("div");r.style.marginTop="18px";r.style.textAlign="right";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){var u=document.createElement("span");u.style.marginRight="10px";
-var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);mxEvent.addListener(v,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});u.appendChild(v);mxUtils.write(u,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){v=document.createElement("a");v.setAttribute("href",
-EditDataDialog.placeholderHelpLink);v.setAttribute("title",mxResources.get("help"));v.setAttribute("target","_blank");v.style.marginLeft="10px";v.style.cursor="help";var A=document.createElement("img");A.setAttribute("border","0");A.setAttribute("valign","middle");A.style.marginTop="-4px";A.setAttribute("src",Editor.helpImage);v.appendChild(A);u.appendChild(v)}r.appendChild(u)}a.editor.cancelFirst?(r.appendChild(g),r.appendChild(q)):(r.appendChild(q),r.appendChild(g));d.appendChild(r);this.container=
-d};EditDataDialog.placeholderHelpLink=null;
+b){n[d]=null;k.table.deleteRow(a);break}null!=n[d]&&a++}}}(a);mxEvent.addListener(d,"click",c);b.parentNode.style.whiteSpace="nowrap";b.parentNode.appendChild(d)},r=function(b,a,d){l[b]=a;n[b]=k.addTextarea(l[m]+":",d,2);n[b].style.width="100%";p(n[b],a)},s=0;s<g.length;s++)"label"!=g[s].nodeName&&"placeholders"!=g[s].nodeName&&(r(m,g[s].nodeName,g[s].nodeValue),m++);d.appendChild(k.table);g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.marginTop="6px";var q=document.createElement("input");
+q.setAttribute("placeholder",mxResources.get("enterPropertyName"));q.setAttribute("type","text");q.setAttribute("size",mxClient.IS_QUIRKS?"18":"22");q.style.marginLeft="2px";g.appendChild(q);d.appendChild(g);var t=mxUtils.button(mxResources.get("addProperty"),function(){var b=q.value;if(0<b.length&&"label"!=b&&"placeholders"!=b)try{var a=mxUtils.indexOf(l,b);if(0<=a&&null!=n[a])n[a].focus();else{e.cloneNode(!1).setAttribute(b,"");0<=a&&(l.splice(a,1),n.splice(a,1));l.push(b);var d=k.addTextarea(b+
+":","",2);d.style.width="100%";n.push(d);p(d,b);d.focus()}q.value=""}catch(c){mxUtils.alert(c)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<n.length?n[0].focus():q.focus()};t.setAttribute("disabled","disabled");t.style.marginLeft="10px";t.style.width="144px";g.appendChild(t);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});g.className="geBtn";r=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);
+e=e.cloneNode(!0);for(var d=!1,f=0;f<l.length;f++)null==n[f]?e.removeAttribute(l[f]):(e.setAttribute(l[f],n[f].value),d=d||"placeholder"==l[f]&&"1"==e.getAttribute("placeholders"));d&&e.removeAttribute("label");b.getModel().setValue(c,e)}catch(g){mxUtils.alert(g)}});r.className="geBtn gePrimaryBtn";mxEvent.addListener(q,"keyup",f);mxEvent.addListener(q,"change",f);s=document.createElement("div");s.style.marginTop="18px";s.style.textAlign="right";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){var u=
+document.createElement("span");u.style.marginRight="10px";var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);mxEvent.addListener(v,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});u.appendChild(v);mxUtils.write(u,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){v=
+document.createElement("a");v.setAttribute("href",EditDataDialog.placeholderHelpLink);v.setAttribute("title",mxResources.get("help"));v.setAttribute("target","_blank");v.style.marginLeft="10px";v.style.cursor="help";var z=document.createElement("img");z.setAttribute("border","0");z.setAttribute("valign","middle");z.style.marginTop="-4px";z.setAttribute("src",Editor.helpImage);v.appendChild(z);u.appendChild(v)}s.appendChild(u)}a.editor.cancelFirst?(s.appendChild(g),s.appendChild(r)):(s.appendChild(r),
+s.appendChild(g));d.appendChild(s);this.container=d};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,c,f,d){var b=document.createElement("div");mxUtils.write(b,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var g=document.createElement("input");g.setAttribute("value",c);g.setAttribute("placeholder","http://www.example.com/");g.setAttribute("type",
"text");g.style.marginTop="6px";g.style.width="400px";g.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";g.style.backgroundRepeat="no-repeat";g.style.backgroundPosition="100% 50%";g.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
0:3)+"px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";mxEvent.addListener(c,"click",function(){g.value="";g.focus()});e.appendChild(g);e.appendChild(c);b.appendChild(e);this.init=function(){g.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?g.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(g,"keypress",function(b){13==b.keyCode&&(a.hideDialog(),d(g.value))});
@@ -3119,50 +3119,50 @@ d=this.window.getX(),c=this.window.getY();d+this.window.table.clientWidth>b&&(d=
var d=mxUtils.getCurrentStyle(g.container);k.style.backgroundColor=d.backgroundColor;return a};l.init(k);a.editor.addListener("resetGraphView",e);a.addListener("pageFormatChanged",e);a.addListener("backgroundColorChanged",e);a.addListener("backgroundImageChanged",e);a.addListener("pageViewChanged",function(){e();l.update(!0)});if(l.outline.dialect==mxConstants.DIALECT_SVG){var m=a.actions.get("zoomIn"),p=a.actions.get("zoomOut");mxEvent.addMouseWheelListener(function(b,a){for(var d=!1,c=mxEvent.getSource(b);null!=
c;){if(c==l.outline.view.canvas.ownerSVGElement){d=!0;break}c=c.parentNode}d&&(a?m.funct():p.funct(),mxEvent.consume(b))})}},LayersWindow=function(a,c,f,d,b){function e(b){if(k.isEnabled()&&null!=b){var d=new FilenameDialog(a,b.value||mxResources.get("background"),mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&k.getModel().setValue(b,a)}),mxResources.get("enterName"));a.showDialog(d.container,300,100,!0,!0);d.init()}}function g(){function b(a,d,c,f){var l=document.createElement("div");
l.className="geToolbarContainer";l.style.overflow="hidden";l.style.position="relative";l.style.padding="4px";l.style.height="22px";l.style.display="block";l.style.backgroundColor="whiteSmoke";l.style.borderWidth="0px 0px 1px 0px";l.style.borderColor="#c3c3c3";l.style.borderStyle="solid";l.style.whiteSpace="nowrap";var n=document.createElement("div");n.style.display="inline-block";n.style.width="100%";n.style.textOverflow="ellipsis";n.style.overflow="hidden";mxEvent.addListener(l,"dragover",function(b){b.dataTransfer.dropEffect=
-"move";q=a;b.stopPropagation();b.preventDefault()});mxEvent.addListener(l,"dragstart",function(b){p=l;mxClient.IS_FF&&b.dataTransfer.setData("Text","\x3clayer/\x3e")});mxEvent.addListener(l,"dragend",function(b){null!=p&&(k.addCell(c,k.model.root,q),q=p=null);b.stopPropagation();b.preventDefault()});var u=document.createElement("img");u.setAttribute("draggable","false");u.setAttribute("align","top");u.setAttribute("border","0");u.style.cursor="pointer";u.style.padding="4px";u.setAttribute("title",
-mxResources.get("lockUnlock"));var t=k.view.getState(c),v=null!=t?t.style:k.getCellStyle(c);"1"==mxUtils.getValue(v,"locked","0")?u.setAttribute("src",Dialog.prototype.lockedImage):u.setAttribute("src",Dialog.prototype.unlockedImage);mxEvent.addListener(u,"click",function(b){if(k.isEnabled()){var a=null;k.getModel().beginUpdate();try{a="1"==mxUtils.getValue(v,"locked","0")?null:"1",k.setCellStyles("locked",a,[c])}finally{k.getModel().endUpdate()}"1"==a&&k.removeSelectionCells(k.getModel().getDescendants(c));
-mxEvent.consume(b)}});n.appendChild(u);u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("title",mxResources.get("hideIt",[c.value||mxResources.get("background")]));u.style.marginLeft="4px";u.style.marginRight="6px";u.style.marginTop="4px";n.appendChild(u);k.isEnabled()||u.setAttribute("disabled","disabled");k.model.isVisible(c)&&(u.setAttribute("checked","checked"),u.defaultChecked=!0);mxEvent.addListener(u,"click",function(b){k.isEnabled()&&(k.model.setVisible(c,
+"move";r=a;b.stopPropagation();b.preventDefault()});mxEvent.addListener(l,"dragstart",function(b){p=l;mxClient.IS_FF&&b.dataTransfer.setData("Text","\x3clayer/\x3e")});mxEvent.addListener(l,"dragend",function(b){null!=p&&(k.addCell(c,k.model.root,r),r=p=null);b.stopPropagation();b.preventDefault()});var t=document.createElement("img");t.setAttribute("draggable","false");t.setAttribute("align","top");t.setAttribute("border","0");t.style.cursor="pointer";t.style.padding="4px";t.setAttribute("title",
+mxResources.get("lockUnlock"));var u=k.view.getState(c),v=null!=u?u.style:k.getCellStyle(c);"1"==mxUtils.getValue(v,"locked","0")?t.setAttribute("src",Dialog.prototype.lockedImage):t.setAttribute("src",Dialog.prototype.unlockedImage);mxEvent.addListener(t,"click",function(b){if(k.isEnabled()){var a=null;k.getModel().beginUpdate();try{a="1"==mxUtils.getValue(v,"locked","0")?null:"1",k.setCellStyles("locked",a,[c])}finally{k.getModel().endUpdate()}"1"==a&&k.removeSelectionCells(k.getModel().getDescendants(c));
+mxEvent.consume(b)}});n.appendChild(t);t=document.createElement("input");t.setAttribute("type","checkbox");t.setAttribute("title",mxResources.get("hideIt",[c.value||mxResources.get("background")]));t.style.marginLeft="4px";t.style.marginRight="6px";t.style.marginTop="4px";n.appendChild(t);k.isEnabled()||t.setAttribute("disabled","disabled");k.model.isVisible(c)&&(t.setAttribute("checked","checked"),t.defaultChecked=!0);mxEvent.addListener(t,"click",function(b){k.isEnabled()&&(k.model.setVisible(c,
!k.model.isVisible(c)),mxEvent.consume(b))});mxUtils.write(n,d);l.appendChild(n);if(k.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_VML||mxClient.IS_IE&&10>document.documentMode)d=document.createElement("div"),d.style.display="block",d.style.textAlign="right",d.style.whiteSpace="nowrap",d.style.position="absolute",d.style.right="6px",d.style.top="6px",0<a&&(n=document.createElement("a"),n.setAttribute("title",mxResources.get("toBack")),n.className="geButton",n.style.cssFloat=
-"none",n.innerHTML="\x26#9650;",n.style.width="14px",n.style.height="14px",n.style.fontSize="14px",n.style.margin="0px",n.style.marginTop="-1px",d.appendChild(n),mxEvent.addListener(n,"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<r-1&&(n=document.createElement("a"),n.setAttribute("title",mxResources.get("toFront")),n.className="geButton",n.style.cssFloat="none",n.innerHTML="\x26#9660;",n.style.width="14px",n.style.height="14px",n.style.fontSize="14px",
-n.style.margin="0px",n.style.marginTop="-1px",d.appendChild(n),mxEvent.addListener(n,"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a+1);mxEvent.consume(b)})),l.appendChild(d);if(mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode))l.setAttribute("draggable","true"),l.style.cursor="move"}mxEvent.addListener(l,"dblclick",function(b){var a=mxEvent.getSource(b).nodeName;"INPUT"!=a&&"IMG"!=a&&(e(c),mxEvent.consume(b))});k.getDefaultParent()==c?(l.style.background="#e6eff8",s=c):
-mxEvent.addListener(l,"click",function(b){k.isEnabled()&&(k.setDefaultParent(f),k.view.setCurrentRoot(null),g())});m.appendChild(l)}r=k.model.getChildCount(k.model.root);m.innerHTML="";for(var a=0;a<r;a++)mxUtils.bind(this,function(d){b(a,d.value||mxResources.get("background"),d,d)})(k.model.getChildAt(k.model.root,a));u.setAttribute("title",mxResources.get("removeIt",[s.value||mxResources.get("background")]));v.setAttribute("title",mxResources.get("moveSelectionTo",[s.value||mxResources.get("background")]));
-y.setAttribute("title",mxResources.get("duplicateIt",[s.value||mxResources.get("background")]));A.setAttribute("title",mxResources.get("renameIt",[s.value||mxResources.get("background")]));k.isSelectionEmpty()&&(v.className="geButton mxDisabled")}var k=a.editor.graph,l=document.createElement("div");l.style.userSelect="none";l.style.background="whiteSmoke";l.style.border="1px solid whiteSmoke";l.style.height="100%";l.style.marginBottom="10px";l.style.overflow="auto";var n=!EditorUi.compactUi?"30px":
-"26px",m=document.createElement("div");m.style.backgroundColor="#e5e5e5";m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=n;l.appendChild(m);var p=null,q=null;mxEvent.addListener(l,"dragover",function(b){b.dataTransfer.dropEffect="move";q=null;b.stopPropagation();b.preventDefault()});var r=null,s=null,t=document.createElement("div");t.className="geToolbarContainer";t.style.position="absolute";t.style.bottom="0px";t.style.left=
-"0px";t.style.right="0px";t.style.height=n;t.style.overflow="hidden";t.style.padding=!EditorUi.compactUi?"1px":"4px 0px 3px 0px";t.style.backgroundColor="whiteSmoke";t.style.borderWidth="1px 0px 0px 0px";t.style.borderColor="#c3c3c3";t.style.borderStyle="solid";t.style.display="block";t.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(t.style.filter="none");n=document.createElement("a");n.className="geButton";mxClient.IS_QUIRKS&&(n.style.filter="none");var u=n.cloneNode();u.innerHTML='\x3cdiv class\x3d"geSprite geSprite-delete" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';
-mxEvent.addListener(u,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.model.root.getIndex(s);k.removeCells([s],!1);0==k.model.getChildCount(k.model.root)?(k.model.add(k.model.root,new mxCell),k.setDefaultParent(null)):0<a&&a<=k.model.getChildCount(k.model.root)?k.setDefaultParent(k.model.getChildAt(k.model.root,a-1)):k.setDefaultParent(null)}finally{k.model.endUpdate()}}mxEvent.consume(b)});k.isEnabled()||(u.className="geButton mxDisabled");t.appendChild(u);var v=n.cloneNode();
-v.innerHTML='\x3cdiv class\x3d"geSprite geSprite-insert" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(v,"click",function(b){k.isEnabled()&&!k.isSelectionEmpty()&&k.moveCells(k.getSelectionCells(),0,0,!1,s)});t.appendChild(v);var A=n.cloneNode();A.innerHTML='\x3cdiv class\x3d"geSprite geSprite-dots" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';A.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(A,"click",function(b){k.isEnabled()&&e(s);mxEvent.consume(b)});
-k.isEnabled()||(A.className="geButton mxDisabled");t.appendChild(A);var y=n.cloneNode();y.innerHTML='\x3cdiv class\x3d"geSprite geSprite-duplicate" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(y,"click",function(b){if(k.isEnabled()){b=null;k.model.beginUpdate();try{b=k.cloneCells([s])[0],b.value=mxResources.get("untitledLayer"),b.setVisible(!0),b=k.addCell(b,k.model.root),k.setDefaultParent(b)}finally{k.model.endUpdate()}null!=b&&!k.isCellLocked(b)&&k.selectAll(b)}});k.isEnabled()||
-(y.className="geButton mxDisabled");t.appendChild(y);n=n.cloneNode();n.innerHTML='\x3cdiv class\x3d"geSprite geSprite-plus" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';n.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(n,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.addCell(new mxCell(mxResources.get("untitledLayer")),k.model.root);k.setDefaultParent(a)}finally{k.model.endUpdate()}}mxEvent.consume(b)});k.isEnabled()||(n.className="geButton mxDisabled");
-t.appendChild(n);l.appendChild(t);g();k.model.addListener(mxEvent.CHANGE,function(){g()});k.selectionModel.addListener(mxEvent.CHANGE,function(){k.isSelectionEmpty()?v.className="geButton mxDisabled":v.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),l,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=g;this.window.setLocation=function(b,a){b=Math.max(0,
-b);a=Math.max(0,a);mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var b=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,d=this.window.getX(),c=this.window.getY();d+this.window.table.clientWidth>b&&(d=Math.max(0,b-this.window.table.clientWidth));c+this.window.table.clientHeight>a&&(c=Math.max(0,a-this.window.table.clientHeight));
-(this.window.getX()!=d||this.window.getY()!=c)&&this.window.setLocation(d,c)}))};(function(){Sidebar.prototype.tagIndex="vX3ZcttI0vXTTPz/XIihlrvb31xqt2YsWy3K9tw5QBISMSIBNhbL6qefczKrsJBYCosmgkGCJPJUoZasrNxq+/M69nbrmRfH0Uvyt+N/yAU+D16n1VtnZ36Y/u3k+KP/yI9TQ+aFTxt/hYs0i0NXjPvgaT0a5MuuhJDt2mH2Mc69zSbKCHMRZYuNX4JKXyJ8e/FeXRqlwPkj81YllMcoi3vArP0fcRSW6MMoXa7lYZLgKfQ2+CvobprzIF5mG48lW6AlftoE4ZNLNf6ZbXdHKMZSnxz/gvtif7fhUyy85TObOlxF8qt8uEOdDIUyI84L2b6VXo/idB09RWwex7HzyTTryfFcmrVcRbSV6QaHphrV3fONH658EuzNpuQ5CENChHZaJptg6wr2ICP3G+pQg7jScd4M3Yz7LVhxgjx4AafXuNo+xEGl4dJ17BPcseUOH/Hk+EMUB39FYSqjYF3+Mgjuqx+nwVLofxSXLVB/ZbE/O10u/SQB+TkKjyOSJP4yi4OUz/Xs8/3ghyasLI22XhrISPTwBR9PPmb18T825JyhTudlxPfHjZesW4DmqD+7Xe82MO2Pwnc2yAaPzxqAobBXwZKCRzSHqZgTxrmHObVXb1vjlZd6Cy/h36tFN9StFz/76W7jLUmxlW/CSoiZrCOuAN0o84t/8fboMX3x5IeV/8PfRLutLirPATGTZey/rOIA/e/6oPNsAapgZxpniVWBzHvnh8vgcPw0gHzzF0mQ8vEWWFfYXZtowa+t1Gdgplj/UAc//hFI69ji8SmMNkmj3YsH1scZF2zLkPtgQXqWLdm0HMoy7+fgbYK60D+6J8NZ8NeDt3kuqkRBw9api/ick07GmTwJFgd0TSCTcOXLirgKdhtMELZP5sVemIKDcIgt/VBG086Pt9KPh9hSh0pLOU+LPVoz1x+DpyzWKXFyfAUGKax2mcl4Ijzv6AmNqzv0qffEK4O5iH66tJ322GE9ugm3uyyV4b6NwiCNeLUKEky3Q758QIsekNlz4W84Z8hNP/mQo2KOPdvvdtqXWUEz6EUDc2i8P452Z2ijmlErLbczDdoBc4lHiXdxIAUvsmCz0oousiQIyeA76Pu3vFCodNSD6jpIP2QL+7RoZI9U0TKN9OrJjP8m+g8XNyEES0jhzXy4ntD3NumaY2KNOSNDfO0Lj8F3/ONATF6uY0zb1gIZQberAq+Y3lymuY/wl5EZb7deiO7lqHXlMx+9HbiizNF87HfR3GII6CjaQhjCh28/Q1lF9sbXPnW00OGxW0chP9MoE5bsQlXhpUnOv1qg9nGyTRqQOXgYJbJDyNI1WWu+opfkE7Nu7LyVuWrBfZ3/8ZGTvxhGyZ/CrZvH1R4EpPJCsoBAh5HNIa1bq+5e2SN/iHbBUuSWqvxSC7gH9RmDCzgYl2jv1yT1t7i42WqfR2z6tReTVYM3yqBf7Q21Pby76MWP52sfq/kQtnx/cSfDfIsnlDr1h5hzv5OhKYql30oFHXSUZoYVidEp5cW6zXO5X5e9s4zL6h+Zn8kw/5MXAwDu/bply4lUBg8vdLtZFutYI3AMGVtJVdxrL2J/ejgtaHtUqIr8oKKiwahndY1A89eQdd+fl4n+HPvL16V0dSvQvb/Dtls59z5SaYw86qhpgkrB8kVmffBkHrmLYXMwL52OKLtSRhvFPNjudBvkuDo8EJwPsrVM24lZfwmxVwZPfQxkp2xkkc+L//hLgmWP3Mt5m8DvHDVfwOPJYLKtx3t3fqQPoF+9H2j6clvtUX/9cGF5VQ2Tqr9fBwk/DG9Tanc2/jVAp4qq6hbbPshL3EKT83aIlJ0wYEK+B/0OAR/zqzpUKa4TtxBOw/yqq4W+nV6cX11L63hPYZRg3SSb6M8d7Sbv5PjaD/1Y2Ind5zVV5xCCMzGSouv3iG1EZGTOVKiOyFu2NJ2iOl/dKaXIVtInIcVAC5azX7kDigLZU5BVWAVbfXXLlL8fUiZB086pTPh/h4S+kY+7SM+8EP2oO5wmNWv5fuyXtCWjrZ+i/xv1SxWiOJLdx26DZQrzv35KlykuDpgxFDgiMnqUoNtIr9q3arU0kO1F2sq3ARuI5oLxfCgVlwlvI1lCQ8fW/kSN3fx1uxAd22MUL4IVWK4D5edCW4x1B3pImgtEaXkguNfSz7doRjIZEcewsxceudvVbpArhGYIY2/M5pdR1kWSEX0lPA3v0hFdNA+BSFt2PyafVJN10X3zpF5m9C7saG6l+bdRKolYHS599kXIta2uQwraKEqTFJez7krW0902bru2+dasHSHrva4ahN2WN5QUAbs4Ep0vV6KVtEAT3eyUwsCHiKzetZlJBpFUCwMThQhfiEttok+J/mOkPWStQk3Wvhoqo28tsbW8xqK/X8vDNGJgO65LranwmuJ0Z33zPYehMgwLgphuz1s5lwDk0ryTXFmiFHGrqG7f0bH0FuipVPScesnR+WcWqGK5sWxLNzs/o7Ut7y2ob06OF7HvaRfoirHTJdgJ5+T45y/H06CdNNWKltJ+OG216on2rrFWYlHqh4R6/TYV3K9NFTMiTB+glnr1QLs91/b/DW+/vzvlI99xTAdhYGXpHk/ugv+rC379EzTC//5Oyjh+s/qXC5j2ASLqOv9Ss/NLQDOMfYT8Hyyn+k+fetfhas3H43L3KrxEuvXXYzRLfSs4MLcqIB/+ZCq0dydaxwnw7mIsN0ujRAT4YMB7PwlWuvydZ3FsbSNmZTphB8XL9uXQEUs62xlrnsViUqo86C+EaFoR3GHkqZpYuDuMzIpmlusOJC3TyCNrcR5oNtTdwa/H2y0Hlq5Wi1p9aSfGBBDkSuNhfpvgabixPvltPM77nhh+wOUUw74wy2H75ONPo3rdeRQOD929lPxxE0UxdEP8HxqiZnvC3u1wMiNXNc5hqKgYcR/hYhSYBcERYY7dsyA00zaQR9HzUtVufUnP114g61NfOii3hcfBJ0KtS25UqheFTwVN8r3a6Pz+gUL314oOr6TXq6lHDcqFD6GdytZYNyh2d9SrKlUQNcgOA4qxY7OWyEQ2AnA1WcWqb2uAqsG53PjYbkg7+AmURObapQrQ38guamS7XvGKTmrelpOwXglRT1pnXN1xx7j1zDtmcaRuQLYy1HwmaeFeVAP7+RF2PvErMkN82TnUa1DuoPoRnyr4jnDpDEKoBurVt3XUeFNFV0x1OP6Aic+JEPZubYle8+seeio+Ml0xoW3aoPK9aTmYe9P6j3EAk7oZd33J58oOloY79OogMb5IO8lu3J1EW8mQDSjS+GGMoH83kv7XkfTcLg6ij6Dc5LAG68A4FbUL1R0RvCtoG8QMiaJD3859mG/w2hLZPILMxWEDrzM/XtpvLjWh3aBgA5sBjKRkiuDsBI8QzTSvlWWouwnUM4VnGYw6sVdrPMohZqchFFLWy4ADDXUyXANN3m0ObkDikBuMdB5t0GN86jWE3Sco7g99lOop9w3SUOcaw2o3aaOdt41KHFCOSrRb/uBkOStA7kQFSEWdaH07tan79POi1429k8t8o/7/gJyGa9P7cOoIdtJ+4mPv1HKWnn0+jD6CQ2RR9aZOa6DOtpDDxY8kC3WnRFcGDvsGg9I+wgOWzORR1cBGlYxFot42obQb3wu/b7F6qBnph7eBS8fJMfiJX5lv7ZRwkwuDRD33r6NoRZU4/KK5KUYTbIdWaHYt1iTxQMf2cZXZ7aPxmtE6y6wSE6Yj6ucsxa698EIUtXBR0STjWto2XitocEiHO3BJK21MGC60p4EwVVblPZtIhaXYmjb1v3qODNkojgKOii02aRJg08y+zc3qC/rTmNlPbWueidJ81WXm6QahLBquIA3LhJ0YEP7Xa+N9XT+E+kKPhZtjlEh0yBTtWAs2RXt2Ar9RQwyCvaO7pEjDpdFtHHxad0UW4I8MVlas0Fh2NVBALxbqaiBf9doVRNeCgUAwmOl94hRaItrDa8UAo9AtL/x+KEWSx15hVU7U2d51ULTiYDyYPurRWQXineypB1bHEg+qA+Rqowmw+oCWTWJOhJELD7CNxCLiWuQk/dpFSQ9NVBnjQ3h8n5pWSCkhSEt1N9hLIhNi6yFuihI7/IRyD2PxNZE40Vq6GZaZ7/ZWDWOYw9YqOz7raZfYH1rKb8ZhxM4V3uEq49ETbRTwpXEbMB99SOeXc/ElMm6E1gGhcMR2hPlUgdkLqRqCdnKsTwWvtj2wSQv58PBAV+Q3LcM6bk+G+kelsa038RAYuEPk/iUTAYqX8yRw367KMFSjma3uECRal5YQXtV1bipM4ww4GNLs/r+D2X03TpIUby/PdSPl0R2zzSHaDQoSxu1NEyBUDcanNTDxAH3Bha9BQyJM67AMG6A3rOYXtIaKcITIntQo6g4LUT/tYutP3WdZq9ejxEsDjhJpbDssS0w3w56m9RlGo3I9q6nuXlP0gb+9r0Bi+4VtelajLHWG43DBllEmzcTAHy6uyIC68NfeSv3HYEKATnABPInjU2k50egY56K/3p1z+298sOk9F0C92OCS74xYUgBAMQA8jSOfvpgbqu7p1vW2xdzDQildMj3017tPGrIaGiP52xUysoXaAxIbb59dvIbeNgIjBJ1cDqHFGpCa0T4VDtlNDgRzdY7eF/FGZ9yYShGiUh9soQ/VcN04uYmmb13MqmETA5TYsPmlPwrFUomC7QM2e4qjbCdxCbzo8QT3FxQrYxTGaSSDu1aCaUcwK3ZpoRuPmIMxTEvcdBGthbh47pomRYcaO1wt1DI0FvaWbxpbNmlj5HGpkzfzZ8Q1irFtSmiNUBPmlcvIvWnpsYLdYGVr1gWCERK90gIjHB0aZgi3/Krb8KsozlOR5JH8pd8mgZYBpfEAb1fEg48Gqa5AE5ViRfoWQX4YJHOwmNjlSaBvTm/J8SVCUcK8Pc1aI/7t5qbhyKjtanUkjfl2RcwfyHyH44dReGRm5vdkh50u9AszDJNMVkUMCLGGdbRwsnoWhetKcqvYXDKiQc5zySDHTyUHwyHCDGGIEjqYarhAV6Fq6pNmQfARU258R9iJJNwwox25qyQjgx3e5vsUqOQsL+EmklUFCl4VYvb4wqTlXa7EdeUjM1q8ZTlzsUSqWfStHuzyjKO2EE+s3yOJWvebnaiof+jtkP5IAk7epICv0QYW+jeAn9NZJl+nClO2gz6oC5fh/CZZ0RsXgNRlgeQ00SBv4QttJUY2FnxouaPLWQbJMprZ5DYEKiW6afHmrZLNzuAKIGuUccoTZ4x2PrYPYQOg2Zh5DXqj3F58yZ1JXuhUITAZfJ9q0Rpx5lsm3ZJEEDbEDz41sg3tqox1Tkqk3+ChEuzgHuhtktnNGVcthC2Gj/Av0oxTuSNTalwH6bClXk7i2jS0ELhIcBGeI1ijxmFq1AM8mJpOBNroHjoQD4kCcjewEqT6iBWtW/UwLQp0LyeAXdWm3Cn+GDVCRC9WqnRTdQdiUypDa6tXnmZ0mK7iVmG1nBY4d5SdCBA5EI1/2FSAOxsONBUg4r3VSlJ0+ERzY57hWwlrItg8QUqlBdROPhTSholMVskv+5NrDNhX7DrE5Qx8PKZKZaK+18QcZ0xIOuWQahxMDatNHbakMoXrrqIjzB1R6Mnsl+PrS/p2nEeXGvzO2HSXqtbDvfvlPQOd/j8jMFCvv5dME3k6VXUfLhDGFPdvLU6iG966sCI3Yh6geWvba3TDXQVIU6oySxH4buD5gC/z279PUc4B+BSYNrna9G1e5PnJ27xUCBrm6/z83fHxMdumV4ErtDdz54n+3Fz3IUNmBcTxlCixi3Ka5GtkG5NHfFLDCqcgfOASn9FTmi0PtwwCOufvo1HGUVvBexzKvunJ/NFghDrMtLRXwBbvs3/5r+zsarbmVor7uzle1AWLbcGJpjaxoxNlbtND6ltkN9FR5fa4NYgwomzNOkIRF4ND8xaK02TZU7KzbgdIH5B/JZebzWd/lDwVZp5tG54HRf2QhsZlNtXh4heTx6Vd/deEgGin3s+XJxexft1dBLBTcaXn4LJm4i6SUkrP0mU3FRM42vHoWJCQMJHwFltv1dmxh/JkkAxxyf/pgcgMa3k1WsJNmmjLdSB570eSTR+8InPCLX/IPSXbMWQF0qlt8zB00bxggUA1SfMC9XRr2AFuXGoOsZm3YIKjJaJzTin0rgLkABYuAL34RtLgYLFjRvuaFDotYP42Y/40DHgqWDBgf3Zkyq1DQT9osQjUWe26YpTqEG6zn0e2LtWatNesC/QArh+CyRdrkoqdIk7WBGpCM8ckkNMgqn/uYMQHZjRhrZApK8fGXo2xPBgTjHoxBsyGQhzgWcU3hKem+E3gGRJlLYSa/89GRDk1MgIcoHoyMmH+pT81DpKxtNpVkuVvDAg7ZDQIm13vijavqvqvwewByPDWrD3dZjcIY1xH10qiEbn+0pGxhMX9fVEUlzNJGKr8c4sYepGmIFxqNr+3K/NO0k3nZe4iZA11LXMVQELRbYp6xjhRmTY92voI9uNKvZmdHOnhKGYnZVO8DIX7CHsarK5Gd1ZcDcW7y6DyLe3zPnHlC2nV38g5Q5KBoSWwsSf65yo6GFJLjG47tqao1p0p+NDkda/BH1r7wF/++sv72en5EQQLQcyliFy06Al00QhUiC3ueExdPBmYpLrovdiWqKHKC3SPb5eqoWhILGuFJQiuXScU1NObJJ2D6C+48pYbtkamdAerGT4j8Q5GUYHXIOp2QAaPCG3Oo8PHDYXLcBm/IpklkxctezBhQ/4hGNPzH6Oh1N/RDcFStCriG6nqAzdqkcVUFLLXvWlnN5bSCNKa5uXAzaAPDqWYKXAodwzG0ch5sF/RQfLRAj1qbjQWJb3+WDbljfZWYwKcbnoyPRhufMN7t3B/yi8d5191zMm3prHXQQ69MpwS0Bgw3NM6Sf+Vj8Znzpxz4ARJ7Rq0SYiOB9Dsil4AptP8cRjSWb6ktxsOIruhRYKkKu6zsxaI4vjw2txs4BgEg505m+Qs21AfEthf83Pf7OdCb+hVhuSe0qa3WHkBdR4rzojsiKkQzXGm+w2gaIftMaQdPvmyRTWpuDqLGANvBukERURIFZIm7Du9lOMbWlJz1NDOLtSUQ70+DVCf51eXtHp8qm7DKPeG+zm4B0IzmK202xoEnYPdUEaZorJVxEnrSBuCpNXHANZDMSaqqkYMF8Bja/zpyJKVuovDq3FDPgiRw39aRDLsaRHJuadFpHQzLeLvYxDvmvq6UREyCJF9PS0i+3paRPb1tIjs62kR2dcDEdkFQ9eHk8l5QgPiCJ7QgDiCJzQgjuAJDYgjeEID4giecDI5T2hAHMETGhBH8IQGxBE8oQFxBE9oQBzCEyI4Bn83+kxoMpPZe7HfPpnzmRGgYbLZJoi1aT+pvT9q7suPYxeLElaIEoLStP7oHqfS/tHwDDhaaXjD1INWH8EUMP4JPl5SyVrehfk4YtkeA3hoZOgBWt6ITQFKqCOovMX1RVJwnzM5AzJiScgEwmGNqsR4flHFLtraPSWfU2mf8cMRctzCqCMnq+Br8W1YvwqkWDcRjCQaNN5S+WEYMNxk0sg2K5xU5Fz5egNRPd537A4lIZTsQavm2B62190GWkbkm/RjntzKAJIshW+qtVF3HPnqBCTW6EFAE9RlcC0YY4HEOXAvUbO2qlIrP4zBml0/fC6mQ/dEMPo3ZBDmbdHjoxzN8Ios/FIR52Jvrs/tOm1T90tZBl/8guCnLL+V8Ps/nylItBdvWtAncbu7uT4rnivBAVuV0hYBjp2Q5Hu1U3dYWfpo/5uyKLP8r8oSPeTblXX3iZqI/01/Vcp64/6qlPXG/VUp6437iyxKO6rHet2/AEm8+UYF3FgvPAlBq+M2zYjIVyk3i6enuXZl/HqI/vckzzusV8PIYarPcxjLucXMgWSYqTmMaAComG0NqEnYL+byKVEljf/kqJLcfwLUr5Js+0e0Sbtyd7dgiH13NAYbqidIigCjLeQ+2Nw0Za44GrUdaeEAodKp8eC2wmmtQ3ctXs5u5JD23rJyib6itvhnrTrpP65Kqg7YPZ3SINjyxrtU277b7g7IIRqRFxwrSxu1+DGb61baIErez8hExSStTNnlbpyuyum0RBqHDnNomUYSq0hORslkkDJ7LtktjFya/LIb40xz1sRIWdLkVV9Lw+OAJDoDQ592akK8oFhHAO6OkfCBe7BFdHi2dS2RTiQcIiR90O8pcRCVFBW1HdRbQ8aqFZkJmKu31X2xTBsH/qM5/CrF2SF1j9lAeu5t/BA5jzXLpfNwwHlCkosFRtEsSZoDFA4Jq+PHtrADIQIy4eBHpceqkiimg0qEFN0XiqrEnESMzXga1JxRUAsi6c7+g+NdXIs1p020J+arJQRDkF7AkNPzwN3IikNBllHNAdsdZLIgFRDwhWrzJKkAvIjGz6a6EUHQdx22l/Y0asQYXm536atEX+Z5g8Gf3KZ4GcekHSZSFtYiNIG8FqnxTTaLwqTfdrZMCUPOga+4cLiWfhVtlL9E8RM8Uv9y7nklNK5rHWduVMhiw1VDk28dfe5Eee1l0jucwO3yQploo6e5PeGzMYLzgOrgiHw3KmQ37UhFckAjSlDjZnLo5CK9XxkZnXChHqZdyh3qVg+bvCk/5agz+KdK/Sy7sZ23Mmy29rzIetqIaUnp3mHORGpIF99Abw6aL2Zv6ah5m/y9CyKnhTylrMwe8uRMLInN9nEcqMt5Sn5EKpmzeD3wDkwtekJ+HJvEPS4HmdXiFUcH5sYLt4pEGjBhxuAqCv+ffqJjkN3dJBfO5CS9dhxMZ6SiCvwXGRFbdXRsWgOh+5bwwy5QMHZzjlDOsODg2ecBoXiWikSZtOwWuYO44SfEBk/WDfAZsg5c9M0s4ZBXY4UvticcaWsnbG3L1yFKGJMGWEAUcn0QnJIhzs+6nSsa0EHMqIeD/WUphjr1QHeqBKIW7LKLQ4oknQ+ka8j1cpHKWXSdEPn9BUSO6gihtw2vxLzcaPXtut+emJFcUMCkmlFxBBcHG+xL+jxObTrHVkEO35L8P3L8SeY8vOdYhM1ZbTLOoSrQXHAUkRzIsWPI46Jbw8cPSXFSGhu83imzkSja2RSZiJ/pkMwbEA42LKvYazji85AceXwoJ7OBHWWvOhhzup1w7pbDSg7psFnam7RudDEEPSRJ0rXhVbPb4vBmV/ovnOH9huUXTXbDMyalo6l+ZaCSC22ekbCb/1ennwOoMUgjUE3qV5MZuo74G4KqRHujc8tszx3ogiuuvaWQ7w4ySftwbs8LLI4QdCLLD5AvJdVUtY6LSCcYvTd0SqXcwp7Q50Jy+XOnwool6uwJIfvoP7Ib+pT0EaPW8Efbrok5PMoN4N42BRI1dnnkl6iMTNSnqnreF/eFH6I4wHlNiHbi1rDhvDAHHBwuiAjUgSii7RO51G88xv2AqB9fFxphL23tpOkT9JzCmbdi6FeAJI4tR4PW0KEVRHWkody5GsmBDuk4En8DJ/qf6RHkqB9V5Z47wBBaHsupqUjkdDJIXghRMUfc2s9ulEKtZC5dqKjRpYeJVbmYSxdS3JdprZFsNxXVC/i3yTIspy2Fmay80c5IGqTohjVsLpF4rVMzYsTpyW0MVAE+KAfqS3+tQpxKdFiihHOZpaprcaoFNJtRKwoUG8L2ymBAiDnEgyag8/T4nRyGuAvMOa1FgFe+UMQwz8gS5YdP8CtDqrnKBC4jib1gGqiZx5hOY9mx17KtCLCatRy8XqGdnVpK8LzzOEqSozNkfZYUYPxGRlF3Hq0DGg/b94/O4Pwjx+/BB2gj6rqWPLbK3wRyt/PACjEXnOdRQSxJn4JH6K9k4ubfugmhh+GhiCZtRf6tD6HahnG+rGYsKBB6WYn3Qc/tQ0hkTgn35PiIaWihKaBLI/gE9pfqncmLPhX/fvQ9SMS62OO5Y6QCYJ65J4xUk6dYfqucCyZ/2k/NeaR0bpizc/4ikgib9toWxfTBtog9wMYKo1VUiyoX8vnatoUhjc7FYlbKlq3VZ6FEhRNZ1PInWQLN1Dg950ToPSDaIC8E0t0IX8aTdNN22o6sWwVrSKUefd8quuWqs0s1lNsxqLtEAO3tnxmYO3RcSocKnwWRBM2q3LcI2nN6KFi+0zKX3SQ43Q9+MaFhM3rVSQXlePrd/0kT9JM+bv5FVef66LxwR0ECqp/qCwxDt4nWfMgWGOxY5ImEhCylUlL81bei1O5XcbjSRHIypxTFlp4MGMehh/JA5inIMK68cNIy9ttqMPgXNvwaKo1ShQc3+6DIdRJuMQRkPMmF4+0I/z+C9UNOVIIqFro/5llX+iBEqvnuCh8AYQekSX96AqlAVQIaSy/KvWUviEw9wPnpdjNWWyxiBYl+aaFKfJGILM8wXzoLSzC+8HQ4MEaWSj0Qxq6a7aQ/eDy07H30ypUAWo2Mh6BpAk5ohnn54FlTWYqc/yoEwA6ARcYNU+hlOn+1lRmHNbouWC2QvNMmyx0FVGonZq+dCpPrGCEj7CRVpJ8O9D6KHt8AEh/cW05caeg9/NWUWDoSJ+t/BCmtZRGYrFUriFrbNxkQV8ioLsN2Qkhoy03mjMmaYw9zRPchOeKzyUdqU0SfQ1O/QdpuQprdbp4a7d3xyTE+oBHi0s7Qs7X/AmWout8sn9U3Y6KyfhlbVl8ius3qgTtPcrqZnAVbOunvdbsQjZn5v54eB/UzCE/UGHIlzm1IyStWYr2iAiL/sx0GlmdRl6lIHmFfjOCjdi2+0j9GkQTA1BTdSQf3OknqW/Au9dFR09FCvjvhXNE9h1Z3qcsWDjGONYeyHYcaZHBXtUFa5nlqMToBqKjqAaCeO9DXikeOdePZwoMP58+olw5MBwcp5xpR0J4SrPlRjs2ATWbN3EnBX205khuQbiS7slKKZFz63g9pHi01AZpzXvIGoIeLCw4vWgn2cj/n3uIr35OwMtyznzZ7DxfzLQPmJTTabHO4QuipeQlmb+eYM8T/zNA5esaGJX+SvsdohM47ehLb3R5gPdStp3k8P+oDYAJ4q3Z3yj1ykW/HVwNHu2TikTAeSl11EmywYVXsMGNVKD/5uzTT1OdjK3G3ycTzfzTQnB+y7xiNFEYv0OU+8054aXdpXqq0cqyPBDKp2asXncQnDaCTY/UG0DGqqx/dF7BRsVONbuWvNAiNAnJKp39IMLuCWUXoXnB0bg+6W6XqSWPHgymzF50kSulF900eyayT9jl70soS6UqbeAhiYWetvb/qRKomCkoz/cSYgg4L1VadPSnXPqntjZ+Q7jpXhmQJ97ulj6xwCzj+QNPAym9qTrGqId1FML3KwMRF6dOBimklcfyQirVbOX2UdsZGu2sNwr+8V0/CTyJwJbF0Q/bXpShqSpxQAbiXc28WEK+VPj8HRy/4R3fzWagXU/p+bZyov6rfEQN4VD744a8D9cRwoZ/TLEpxVEpM8K1LPb1HDudWVe0xi0aUqPCTWyuLQ7SgEBWTz8thQEEDNIxyouqj46rNvfEDYreLqGAxnrEiozVj001J/r0HBtYwIVG3UPutfN2a+rAKZkesDTXrM2pLxBpU5kScwqWh8TSaOuGxBWXvMDg9IxLv+QGS1WMXcas9lK4R090+f0B6P+dhQTQBcQ4EmqhUpS8cQwD3ybKrZh3AQ/70pjtaTp9pJZbuGEosCY6GEksuo6HEkrbIlZhRjhyHpQkNr3694Cm2/QBmsH6LvGKbXq77VqOMIn0wGkU6YzSK9MpoFOme0SiSSWo0yvvhKDgT2HYydP4yUPI7BkFJT08DJd09DZT0+VgoeJnb5N3YzDl4fbegyMk3o1EkAfhoFDbOGBQe1whjpXhKPuJamli/9oG5hrOgqN8kC/geN2vosE7QuVpjEScsIhS+LfSyJ44xOcHVXn2B+Cn6eUeJbh8OFmi7fxk9Li3YJFPPgk0y+QDGWPSpnpJYEz0kh6dWbMTgsjCs0wQwbPIJYDidJ4DhAjcBDFe4CWC4xPWEMQJQgxGgiWSmzrXI78wzgHGsTLo+8jXmVr6Y615I33KkF+jo7Rdz3QdpzjohJK+ok3wZUKc566RIph7ypUedkK/hSTcDm8xeOZPGC3HFYQiX6FQQn9CRT64KwNQNcNKU5QJZbOAxKf6aBo8pHfJEEriE9sOFQRNZQ0kQ31d48GiOODcjgUGBgx/Cf/Qo3EDiNhwJJTJYvYBtuJYjpeiL7pDHQve7fTROBuHOhHqql5+EONacaFZPy4YXjZG2ep8W/7LDnjRQrxh7sff6Lw\x3d\x3d";
+"none",n.innerHTML="\x26#9650;",n.style.width="14px",n.style.height="14px",n.style.fontSize="14px",n.style.margin="0px",n.style.marginTop="-1px",d.appendChild(n),mxEvent.addListener(n,"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<s-1&&(n=document.createElement("a"),n.setAttribute("title",mxResources.get("toFront")),n.className="geButton",n.style.cssFloat="none",n.innerHTML="\x26#9660;",n.style.width="14px",n.style.height="14px",n.style.fontSize="14px",
+n.style.margin="0px",n.style.marginTop="-1px",d.appendChild(n),mxEvent.addListener(n,"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a+1);mxEvent.consume(b)})),l.appendChild(d);if(mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode))l.setAttribute("draggable","true"),l.style.cursor="move"}mxEvent.addListener(l,"dblclick",function(b){var a=mxEvent.getSource(b).nodeName;"INPUT"!=a&&"IMG"!=a&&(e(c),mxEvent.consume(b))});k.getDefaultParent()==c?(l.style.background="#e6eff8",q=c):
+mxEvent.addListener(l,"click",function(b){k.isEnabled()&&(k.setDefaultParent(f),k.view.setCurrentRoot(null),g())});m.appendChild(l)}s=k.model.getChildCount(k.model.root);m.innerHTML="";for(var a=0;a<s;a++)mxUtils.bind(this,function(d){b(a,d.value||mxResources.get("background"),d,d)})(k.model.getChildAt(k.model.root,a));u.setAttribute("title",mxResources.get("removeIt",[q.value||mxResources.get("background")]));v.setAttribute("title",mxResources.get("moveSelectionTo",[q.value||mxResources.get("background")]));
+y.setAttribute("title",mxResources.get("duplicateIt",[q.value||mxResources.get("background")]));z.setAttribute("title",mxResources.get("renameIt",[q.value||mxResources.get("background")]));k.isSelectionEmpty()&&(v.className="geButton mxDisabled")}var k=a.editor.graph,l=document.createElement("div");l.style.userSelect="none";l.style.background="whiteSmoke";l.style.border="1px solid whiteSmoke";l.style.height="100%";l.style.marginBottom="10px";l.style.overflow="auto";var n=!EditorUi.compactUi?"30px":
+"26px",m=document.createElement("div");m.style.backgroundColor="#e5e5e5";m.style.position="absolute";m.style.overflow="auto";m.style.left="0px";m.style.right="0px";m.style.top="0px";m.style.bottom=n;l.appendChild(m);var p=null,r=null;mxEvent.addListener(l,"dragover",function(b){b.dataTransfer.dropEffect="move";r=null;b.stopPropagation();b.preventDefault()});mxEvent.addListener(l,"drop",function(b){b.stopPropagation();b.preventDefault()});var s=null,q=null,t=document.createElement("div");t.className=
+"geToolbarContainer";t.style.position="absolute";t.style.bottom="0px";t.style.left="0px";t.style.right="0px";t.style.height=n;t.style.overflow="hidden";t.style.padding=!EditorUi.compactUi?"1px":"4px 0px 3px 0px";t.style.backgroundColor="whiteSmoke";t.style.borderWidth="1px 0px 0px 0px";t.style.borderColor="#c3c3c3";t.style.borderStyle="solid";t.style.display="block";t.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(t.style.filter="none");n=document.createElement("a");n.className="geButton";mxClient.IS_QUIRKS&&
+(n.style.filter="none");var u=n.cloneNode();u.innerHTML='\x3cdiv class\x3d"geSprite geSprite-delete" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(u,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.model.root.getIndex(q);k.removeCells([q],!1);0==k.model.getChildCount(k.model.root)?(k.model.add(k.model.root,new mxCell),k.setDefaultParent(null)):0<a&&a<=k.model.getChildCount(k.model.root)?k.setDefaultParent(k.model.getChildAt(k.model.root,a-1)):k.setDefaultParent(null)}finally{k.model.endUpdate()}}mxEvent.consume(b)});
+k.isEnabled()||(u.className="geButton mxDisabled");t.appendChild(u);var v=n.cloneNode();v.innerHTML='\x3cdiv class\x3d"geSprite geSprite-insert" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(v,"click",function(b){k.isEnabled()&&!k.isSelectionEmpty()&&k.moveCells(k.getSelectionCells(),0,0,!1,q)});t.appendChild(v);var z=n.cloneNode();z.innerHTML='\x3cdiv class\x3d"geSprite geSprite-dots" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';z.setAttribute("title",mxResources.get("rename"));
+mxEvent.addListener(z,"click",function(b){k.isEnabled()&&e(q);mxEvent.consume(b)});k.isEnabled()||(z.className="geButton mxDisabled");t.appendChild(z);var y=n.cloneNode();y.innerHTML='\x3cdiv class\x3d"geSprite geSprite-duplicate" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(y,"click",function(b){if(k.isEnabled()){b=null;k.model.beginUpdate();try{b=k.cloneCells([q])[0],b.value=mxResources.get("untitledLayer"),b.setVisible(!0),b=k.addCell(b,k.model.root),k.setDefaultParent(b)}finally{k.model.endUpdate()}null!=
+b&&!k.isCellLocked(b)&&k.selectAll(b)}});k.isEnabled()||(y.className="geButton mxDisabled");t.appendChild(y);n=n.cloneNode();n.innerHTML='\x3cdiv class\x3d"geSprite geSprite-plus" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';n.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(n,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.addCell(new mxCell(mxResources.get("untitledLayer")),k.model.root);k.setDefaultParent(a)}finally{k.model.endUpdate()}}mxEvent.consume(b)});
+k.isEnabled()||(n.className="geButton mxDisabled");t.appendChild(n);l.appendChild(t);g();k.model.addListener(mxEvent.CHANGE,function(){g()});k.selectionModel.addListener(mxEvent.CHANGE,function(){k.isSelectionEmpty()?v.className="geButton mxDisabled":v.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),l,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=
+g;this.window.setLocation=function(b,a){b=Math.max(0,b);a=Math.max(0,a);mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var b=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,d=this.window.getX(),c=this.window.getY();d+this.window.table.clientWidth>b&&(d=Math.max(0,b-this.window.table.clientWidth));c+this.window.table.clientHeight>
+a&&(c=Math.max(0,a-this.window.table.clientHeight));(this.window.getX()!=d||this.window.getY()!=c)&&this.window.setLocation(d,c)}))};(function(){Sidebar.prototype.tagIndex="vX3ZcttI0vXTTPz/XIihlrvb31xqt2YsWy3K9tw5QBISMSIBNhbL6qefczKrsJBYCosmgkGCJPJUoZasrNxq+/M69nbrmRfH0Uvyt+N/yAU+D16n1VtnZ36Y/u3k+KP/yI9TQ+aFTxt/hYs0i0NXjPvgaT0a5MuuhJDt2mH2Mc69zSbKCHMRZYuNX4JKXyJ8e/FeXRqlwPkj81YllMcoi3vArP0fcRSW6MMoXa7lYZLgKfQ2+CvobprzIF5mG48lW6AlftoE4ZNLNf6ZbXdHKMZSnxz/gvtif7fhUyy85TObOlxF8qt8uEOdDIUyI84L2b6VXo/idB09RWwex7HzyTTryfFcmrVcRbSV6QaHphrV3fONH658EuzNpuQ5CENChHZaJptg6wr2ICP3G+pQg7jScd4M3Yz7LVhxgjx4AafXuNo+xEGl4dJ17BPcseUOH/Hk+EMUB39FYSqjYF3+Mgjuqx+nwVLofxSXLVB/ZbE/O10u/SQB+TkKjyOSJP4yi4OUz/Xs8/3ghyasLI22XhrISPTwBR9PPmb18T825JyhTudlxPfHjZesW4DmqD+7Xe82MO2Pwnc2yAaPzxqAobBXwZKCRzSHqZgTxrmHObVXb1vjlZd6Cy/h36tFN9StFz/76W7jLUmxlW/CSoiZrCOuAN0o84t/8fboMX3x5IeV/8PfRLutLirPATGTZey/rOIA/e/6oPNsAapgZxpniVWBzHvnh8vgcPw0gHzzF0mQ8vEWWFfYXZtowa+t1Gdgplj/UAc//hFI69ji8SmMNkmj3YsH1scZF2zLkPtgQXqWLdm0HMoy7+fgbYK60D+6J8NZ8NeDt3kuqkRBw9api/ick07GmTwJFgd0TSCTcOXLirgKdhtMELZP5sVemIKDcIgt/VBG086Pt9KPh9hSh0pLOU+LPVoz1x+DpyzWKXFyfAUGKax2mcl4Ijzv6AmNqzv0qffEK4O5iH66tJ322GE9ugm3uyyV4b6NwiCNeLUKEky3Q758QIsekNlz4W84Z8hNP/mQo2KOPdvvdtqXWUEz6EUDc2i8P452Z2ijmlErLbczDdoBc4lHiXdxIAUvsmCz0oousiQIyeA76Pu3vFCodNSD6jpIP2QL+7RoZI9U0TKN9OrJjP8m+g8XNyEES0jhzXy4ntD3NumaY2KNOSNDfO0Lj8F3/ONATF6uY0zb1gIZQberAq+Y3lymuY/wl5EZb7deiO7lqHXlMx+9HbiizNF87HfR3GII6CjaQhjCh28/Q1lF9sbXPnW00OGxW0chP9MoE5bsQlXhpUnOv1qg9nGyTRqQOXgYJbJDyNI1WWu+opfkE7Nu7LyVuWrBfZ3/8ZGTvxhGyZ/CrZvH1R4EpPJCsoBAh5HNIa1bq+5e2SN/iHbBUuSWqvxSC7gH9RmDCzgYl2jv1yT1t7i42WqfR2z6tReTVYM3yqBf7Q21Pby76MWP52sfq/kQtnx/cSfDfIsnlDr1h5hzv5OhKYql30oFHXSUZoYVidEp5cW6zXO5X5e9s4zL6h+Zn8kw/5MXAwDu/bply4lUBg8vdLtZFutYI3AMGVtJVdxrL2J/ejgtaHtUqIr8oKKiwahndY1A89eQdd+fl4n+HPvL16V0dSvQvb/Dtls59z5SaYw86qhpgkrB8kVmffBkHrmLYXMwL52OKLtSRhvFPNjudBvkuDo8EJwPsrVM24lZfwmxVwZPfQxkp2xkkc+L//hLgmWP3Mt5m8DvHDVfwOPJYLKtx3t3fqQPoF+9H2j6clvtUX/9cGF5VQ2Tqr9fBwk/DG9Tanc2/jVAp4qq6hbbPshL3EKT83aIlJ0wYEK+B/0OAR/zqzpUKa4TtxBOw/yqq4W+nV6cX11L63hPYZRg3SSb6M8d7Sbv5PjaD/1Y2Ind5zVV5xCCMzGSouv3iG1EZGTOVKiOyFu2NJ2iOl/dKaXIVtInIcVAC5azX7kDigLZU5BVWAVbfXXLlL8fUiZB086pTPh/h4S+kY+7SM+8EP2oO5wmNWv5fuyXtCWjrZ+i/xv1SxWiOJLdx26DZQrzv35KlykuDpgxFDgiMnqUoNtIr9q3arU0kO1F2sq3ARuI5oLxfCgVlwlvI1lCQ8fW/kSN3fx1uxAd22MUL4IVWK4D5edCW4x1B3pImgtEaXkguNfSz7doRjIZEcewsxceudvVbpArhGYIY2/M5pdR1kWSEX0lPA3v0hFdNA+BSFt2PyafVJN10X3zpF5m9C7saG6l+bdRKolYHS599kXIta2uQwraKEqTFJez7krW0902bru2+dasHSHrva4ahN2WN5QUAbs4Ep0vV6KVtEAT3eyUwsCHiKzetZlJBpFUCwMThQhfiEttok+J/mOkPWStQk3Wvhoqo28tsbW8xqK/X8vDNGJgO65LranwmuJ0Z33zPYehMgwLgphuz1s5lwDk0ryTXFmiFHGrqG7f0bH0FuipVPScesnR+WcWqGK5sWxLNzs/o7Ut7y2ob06OF7HvaRfoirHTJdgJ5+T45y/H06CdNNWKltJ+OG216on2rrFWYlHqh4R6/TYV3K9NFTMiTB+glnr1QLs91/b/DW+/vzvlI99xTAdhYGXpHk/ugv+rC379EzTC//5Oyjh+s/qXC5j2ASLqOv9Ss/NLQDOMfYT8Hyyn+k+fetfhas3H43L3KrxEuvXXYzRLfSs4MLcqIB/+ZCq0dydaxwnw7mIsN0ujRAT4YMB7PwlWuvydZ3FsbSNmZTphB8XL9uXQEUs62xlrnsViUqo86C+EaFoR3GHkqZpYuDuMzIpmlusOJC3TyCNrcR5oNtTdwa/H2y0Hlq5Wi1p9aSfGBBDkSuNhfpvgabixPvltPM77nhh+wOUUw74wy2H75ONPo3rdeRQOD929lPxxE0UxdEP8HxqiZnvC3u1wMiNXNc5hqKgYcR/hYhSYBcERYY7dsyA00zaQR9HzUtVufUnP114g61NfOii3hcfBJ0KtS25UqheFTwVN8r3a6Pz+gUL314oOr6TXq6lHDcqFD6GdytZYNyh2d9SrKlUQNcgOA4qxY7OWyEQ2AnA1WcWqb2uAqsG53PjYbkg7+AmURObapQrQ38guamS7XvGKTmrelpOwXglRT1pnXN1xx7j1zDtmcaRuQLYy1HwmaeFeVAP7+RF2PvErMkN82TnUa1DuoPoRnyr4jnDpDEKoBurVt3XUeFNFV0x1OP6Aic+JEPZubYle8+seeio+Ml0xoW3aoPK9aTmYe9P6j3EAk7oZd33J58oOloY79OogMb5IO8lu3J1EW8mQDSjS+GGMoH83kv7XkfTcLg6ij6Dc5LAG68A4FbUL1R0RvCtoG8QMiaJD3859mG/w2hLZPILMxWEDrzM/XtpvLjWh3aBgA5sBjKRkiuDsBI8QzTSvlWWouwnUM4VnGYw6sVdrPMohZqchFFLWy4ADDXUyXANN3m0ObkDikBuMdB5t0GN86jWE3Sco7g99lOop9w3SUOcaw2o3aaOdt41KHFCOSrRb/uBkOStA7kQFSEWdaH07tan79POi1429k8t8o/7/gJyGa9P7cOoIdtJ+4mPv1HKWnn0+jD6CQ2RR9aZOa6DOtpDDxY8kC3WnRFcGDvsGg9I+wgOWzORR1cBGlYxFot42obQb3wu/b7F6qBnph7eBS8fJMfiJX5lv7ZRwkwuDRD33r6NoRZU4/KK5KUYTbIdWaHYt1iTxQMf2cZXZ7aPxmtE6y6wSE6Yj6ucsxa698EIUtXBR0STjWto2XitocEiHO3BJK21MGC60p4EwVVblPZtIhaXYmjb1v3qODNkojgKOii02aRJg08y+zc3qC/rTmNlPbWueidJ81WXm6QahLBquIA3LhJ0YEP7Xa+N9XT+E+kKPhZtjlEh0yBTtWAs2RXt2Ar9RQwyCvaO7pEjDpdFtHHxad0UW4I8MVlas0Fh2NVBALxbqaiBf9doVRNeCgUAwmOl94hRaItrDa8UAo9AtL/x+KEWSx15hVU7U2d51ULTiYDyYPurRWQXineypB1bHEg+qA+Rqowmw+oCWTWJOhJELD7CNxCLiWuQk/dpFSQ9NVBnjQ3h8n5pWSCkhSEt1N9hLIhNi6yFuihI7/IRyD2PxNZE40Vq6GZaZ7/ZWDWOYw9YqOz7raZfYH1rKb8ZhxM4V3uEq49ETbRTwpXEbMB99SOeXc/ElMm6E1gGhcMR2hPlUgdkLqRqCdnKsTwWvtj2wSQv58PBAV+Q3LcM6bk+G+kelsa038RAYuEPk/iUTAYqX8yRw367KMFSjma3uECRal5YQXtV1bipM4ww4GNLs/r+D2X03TpIUby/PdSPl0R2zzSHaDQoSxu1NEyBUDcanNTDxAH3Bha9BQyJM67AMG6A3rOYXtIaKcITIntQo6g4LUT/tYutP3WdZq9ejxEsDjhJpbDssS0w3w56m9RlGo3I9q6nuXlP0gb+9r0Bi+4VtelajLHWG43DBllEmzcTAHy6uyIC68NfeSv3HYEKATnABPInjU2k50egY56K/3p1z+298sOk9F0C92OCS74xYUgBAMQA8jSOfvpgbqu7p1vW2xdzDQildMj3017tPGrIaGiP52xUysoXaAxIbb59dvIbeNgIjBJ1cDqHFGpCa0T4VDtlNDgRzdY7eF/FGZ9yYShGiUh9soQ/VcN04uYmmb13MqmETA5TYsPmlPwrFUomC7QM2e4qjbCdxCbzo8QT3FxQrYxTGaSSDu1aCaUcwK3ZpoRuPmIMxTEvcdBGthbh47pomRYcaO1wt1DI0FvaWbxpbNmlj5HGpkzfzZ8Q1irFtSmiNUBPmlcvIvWnpsYLdYGVr1gWCERK90gIjHB0aZgi3/Krb8KsozlOR5JH8pd8mgZYBpfEAb1fEg48Gqa5AE5ViRfoWQX4YJHOwmNjlSaBvTm/J8SVCUcK8Pc1aI/7t5qbhyKjtanUkjfl2RcwfyHyH44dReGRm5vdkh50u9AszDJNMVkUMCLGGdbRwsnoWhetKcqvYXDKiQc5zySDHTyUHwyHCDGGIEjqYarhAV6Fq6pNmQfARU258R9iJJNwwox25qyQjgx3e5vsUqOQsL+EmklUFCl4VYvb4wqTlXa7EdeUjM1q8ZTlzsUSqWfStHuzyjKO2EE+s3yOJWvebnaiof+jtkP5IAk7epICv0QYW+jeAn9NZJl+nClO2gz6oC5fh/CZZ0RsXgNRlgeQ00SBv4QttJUY2FnxouaPLWQbJMprZ5DYEKiW6afHmrZLNzuAKIGuUccoTZ4x2PrYPYQOg2Zh5DXqj3F58yZ1JXuhUITAZfJ9q0Rpx5lsm3ZJEEDbEDz41sg3tqox1Tkqk3+ChEuzgHuhtktnNGVcthC2Gj/Av0oxTuSNTalwH6bClXk7i2jS0ELhIcBGeI1ijxmFq1AM8mJpOBNroHjoQD4kCcjewEqT6iBWtW/UwLQp0LyeAXdWm3Cn+GDVCRC9WqnRTdQdiUypDa6tXnmZ0mK7iVmG1nBY4d5SdCBA5EI1/2FSAOxsONBUg4r3VSlJ0+ERzY57hWwlrItg8QUqlBdROPhTSholMVskv+5NrDNhX7DrE5Qx8PKZKZaK+18QcZ0xIOuWQahxMDatNHbakMoXrrqIjzB1R6Mnsl+PrS/p2nEeXGvzO2HSXqtbDvfvlPQOd/j8jMFCvv5dME3k6VXUfLhDGFPdvLU6iG966sCI3Yh6geWvba3TDXQVIU6oySxH4buD5gC/z279PUc4B+BSYNrna9G1e5PnJ27xUCBrm6/z83fHxMdumV4ErtDdz54n+3Fz3IUNmBcTxlCixi3Ka5GtkG5NHfFLDCqcgfOASn9FTmi0PtwwCOufvo1HGUVvBexzKvunJ/NFghDrMtLRXwBbvs3/5r+zsarbmVor7uzle1AWLbcGJpjaxoxNlbtND6ltkN9FR5fa4NYgwomzNOkIRF4ND8xaK02TZU7KzbgdIH5B/JZebzWd/lDwVZp5tG54HRf2QhsZlNtXh4heTx6Vd/deEgGin3s+XJxexft1dBLBTcaXn4LJm4i6SUkrP0mU3FRM42vHoWJCQMJHwFltv1dmxh/JkkAxxyf/pgcgMa3k1WsJNmmjLdSB570eSTR+8InPCLX/IPSXbMWQF0qlt8zB00bxggUA1SfMC9XRr2AFuXGoOsZm3YIKjJaJzTin0rgLkABYuAL34RtLgYLFjRvuaFDotYP42Y/40DHgqWDBgf3Zkyq1DQT9osQjUWe26YpTqEG6zn0e2LtWatNesC/QArh+CyRdrkoqdIk7WBGpCM8ckkNMgqn/uYMQHZjRhrZApK8fGXo2xPBgTjHoxBsyGQhzgWcU3hKem+E3gGRJlLYSa/89GRDk1MgIcoHoyMmH+pT81DpKxtNpVkuVvDAg7ZDQIm13vijavqvqvwewByPDWrD3dZjcIY1xH10qiEbn+0pGxhMX9fVEUlzNJGKr8c4sYepGmIFxqNr+3K/NO0k3nZe4iZA11LXMVQELRbYp6xjhRmTY92voI9uNKvZmdHOnhKGYnZVO8DIX7CHsarK5Gd1ZcDcW7y6DyLe3zPnHlC2nV38g5Q5KBoSWwsSf65yo6GFJLjG47tqao1p0p+NDkda/BH1r7wF/++sv72en5EQQLQcyliFy06Al00QhUiC3ueExdPBmYpLrovdiWqKHKC3SPb5eqoWhILGuFJQiuXScU1NObJJ2D6C+48pYbtkamdAerGT4j8Q5GUYHXIOp2QAaPCG3Oo8PHDYXLcBm/IpklkxctezBhQ/4hGNPzH6Oh1N/RDcFStCriG6nqAzdqkcVUFLLXvWlnN5bSCNKa5uXAzaAPDqWYKXAodwzG0ch5sF/RQfLRAj1qbjQWJb3+WDbljfZWYwKcbnoyPRhufMN7t3B/yi8d5191zMm3prHXQQ69MpwS0Bgw3NM6Sf+Vj8Znzpxz4ARJ7Rq0SYiOB9Dsil4AptP8cRjSWb6ktxsOIruhRYKkKu6zsxaI4vjw2txs4BgEg505m+Qs21AfEthf83Pf7OdCb+hVhuSe0qa3WHkBdR4rzojsiKkQzXGm+w2gaIftMaQdPvmyRTWpuDqLGANvBukERURIFZIm7Du9lOMbWlJz1NDOLtSUQ70+DVCf51eXtHp8qm7DKPeG+zm4B0IzmK202xoEnYPdUEaZorJVxEnrSBuCpNXHANZDMSaqqkYMF8Bja/zpyJKVuovDq3FDPgiRw39aRDLsaRHJuadFpHQzLeLvYxDvmvq6UREyCJF9PS0i+3paRPb1tIjs62kR2dcDEdkFQ9eHk8l5QgPiCJ7QgDiCJzQgjuAJDYgjeEID4giecDI5T2hAHMETGhBH8IQGxBE8oQFxBE9oQBzCEyI4Bn83+kxoMpPZe7HfPpnzmRGgYbLZJoi1aT+pvT9q7suPYxeLElaIEoLStP7oHqfS/tHwDDhaaXjD1INWH8EUMP4JPl5SyVrehfk4YtkeA3hoZOgBWt6ITQFKqCOovMX1RVJwnzM5AzJiScgEwmGNqsR4flHFLtraPSWfU2mf8cMRctzCqCMnq+Br8W1YvwqkWDcRjCQaNN5S+WEYMNxk0sg2K5xU5Fz5egNRPd537A4lIZTsQavm2B62190GWkbkm/RjntzKAJIshW+qtVF3HPnqBCTW6EFAE9RlcC0YY4HEOXAvUbO2qlIrP4zBml0/fC6mQ/dEMPo3ZBDmbdHjoxzN8Ios/FIR52Jvrs/tOm1T90tZBl/8guCnLL+V8Ps/nylItBdvWtAncbu7uT4rnivBAVuV0hYBjp2Q5Hu1U3dYWfpo/5uyKLP8r8oSPeTblXX3iZqI/01/Vcp64/6qlPXG/VUp6437iyxKO6rHet2/AEm8+UYF3FgvPAlBq+M2zYjIVyk3i6enuXZl/HqI/vckzzusV8PIYarPcxjLucXMgWSYqTmMaAComG0NqEnYL+byKVEljf/kqJLcfwLUr5Js+0e0Sbtyd7dgiH13NAYbqidIigCjLeQ+2Nw0Za44GrUdaeEAodKp8eC2wmmtQ3ctXs5u5JD23rJyib6itvhnrTrpP65Kqg7YPZ3SINjyxrtU277b7g7IIRqRFxwrSxu1+DGb61baIErez8hExSStTNnlbpyuyum0RBqHDnNomUYSq0hORslkkDJ7LtktjFya/LIb40xz1sRIWdLkVV9Lw+OAJDoDQ592akK8oFhHAO6OkfCBe7BFdHi2dS2RTiQcIiR90O8pcRCVFBW1HdRbQ8aqFZkJmKu31X2xTBsH/qM5/CrF2SF1j9lAeu5t/BA5jzXLpfNwwHlCkosFRtEsSZoDFA4Jq+PHtrADIQIy4eBHpceqkiimg0qEFN0XiqrEnESMzXga1JxRUAsi6c7+g+NdXIs1p020J+arJQRDkF7AkNPzwN3IikNBllHNAdsdZLIgFRDwhWrzJKkAvIjGz6a6EUHQdx22l/Y0asQYXm536atEX+Z5g8Gf3KZ4GcekHSZSFtYiNIG8FqnxTTaLwqTfdrZMCUPOga+4cLiWfhVtlL9E8RM8Uv9y7nklNK5rHWduVMhiw1VDk28dfe5Eee1l0jucwO3yQploo6e5PeGzMYLzgOrgiHw3KmQ37UhFckAjSlDjZnLo5CK9XxkZnXChHqZdyh3qVg+bvCk/5agz+KdK/Sy7sZ23Mmy29rzIetqIaUnp3mHORGpIF99Abw6aL2Zv6ah5m/y9CyKnhTylrMwe8uRMLInN9nEcqMt5Sn5EKpmzeD3wDkwtekJ+HJvEPS4HmdXiFUcH5sYLt4pEGjBhxuAqCv+ffqJjkN3dJBfO5CS9dhxMZ6SiCvwXGRFbdXRsWgOh+5bwwy5QMHZzjlDOsODg2ecBoXiWikSZtOwWuYO44SfEBk/WDfAZsg5c9M0s4ZBXY4UvticcaWsnbG3L1yFKGJMGWEAUcn0QnJIhzs+6nSsa0EHMqIeD/WUphjr1QHeqBKIW7LKLQ4oknQ+ka8j1cpHKWXSdEPn9BUSO6gihtw2vxLzcaPXtut+emJFcUMCkmlFxBBcHG+xL+jxObTrHVkEO35L8P3L8SeY8vOdYhM1ZbTLOoSrQXHAUkRzIsWPI46Jbw8cPSXFSGhu83imzkSja2RSZiJ/pkMwbEA42LKvYazji85AceXwoJ7OBHWWvOhhzup1w7pbDSg7psFnam7RudDEEPSRJ0rXhVbPb4vBmV/ovnOH9huUXTXbDMyalo6l+ZaCSC22ekbCb/1ennwOoMUgjUE3qV5MZuo74G4KqRHujc8tszx3ogiuuvaWQ7w4ySftwbs8LLI4QdCLLD5AvJdVUtY6LSCcYvTd0SqXcwp7Q50Jy+XOnwool6uwJIfvoP7Ib+pT0EaPW8Efbrok5PMoN4N42BRI1dnnkl6iMTNSnqnreF/eFH6I4wHlNiHbi1rDhvDAHHBwuiAjUgSii7RO51G88xv2AqB9fFxphL23tpOkT9JzCmbdi6FeAJI4tR4PW0KEVRHWkody5GsmBDuk4En8DJ/qf6RHkqB9V5Z47wBBaHsupqUjkdDJIXghRMUfc2s9ulEKtZC5dqKjRpYeJVbmYSxdS3JdprZFsNxXVC/i3yTIspy2Fmay80c5IGqTohjVsLpF4rVMzYsTpyW0MVAE+KAfqS3+tQpxKdFiihHOZpaprcaoFNJtRKwoUG8L2ymBAiDnEgyag8/T4nRyGuAvMOa1FgFe+UMQwz8gS5YdP8CtDqrnKBC4jib1gGqiZx5hOY9mx17KtCLCatRy8XqGdnVpK8LzzOEqSozNkfZYUYPxGRlF3Hq0DGg/b94/O4Pwjx+/BB2gj6rqWPLbK3wRyt/PACjEXnOdRQSxJn4JH6K9k4ubfugmhh+GhiCZtRf6tD6HahnG+rGYsKBB6WYn3Qc/tQ0hkTgn35PiIaWihKaBLI/gE9pfqncmLPhX/fvQ9SMS62OO5Y6QCYJ65J4xUk6dYfqucCyZ/2k/NeaR0bpizc/4ikgib9toWxfTBtog9wMYKo1VUiyoX8vnatoUhjc7FYlbKlq3VZ6FEhRNZ1PInWQLN1Dg950ToPSDaIC8E0t0IX8aTdNN22o6sWwVrSKUefd8quuWqs0s1lNsxqLtEAO3tnxmYO3RcSocKnwWRBM2q3LcI2nN6KFi+0zKX3SQ43Q9+MaFhM3rVSQXlePrd/0kT9JM+bv5FVef66LxwR0ECqp/qCwxDt4nWfMgWGOxY5ImEhCylUlL81bei1O5XcbjSRHIypxTFlp4MGMehh/JA5inIMK68cNIy9ttqMPgXNvwaKo1ShQc3+6DIdRJuMQRkPMmF4+0I/z+C9UNOVIIqFro/5llX+iBEqvnuCh8AYQekSX96AqlAVQIaSy/KvWUviEw9wPnpdjNWWyxiBYl+aaFKfJGILM8wXzoLSzC+8HQ4MEaWSj0Qxq6a7aQ/eDy07H30ypUAWo2Mh6BpAk5ohnn54FlTWYqc/yoEwA6ARcYNU+hlOn+1lRmHNbouWC2QvNMmyx0FVGonZq+dCpPrGCEj7CRVpJ8O9D6KHt8AEh/cW05caeg9/NWUWDoSJ+t/BCmtZRGYrFUriFrbNxkQV8ioLsN2Qkhoy03mjMmaYw9zRPchOeKzyUdqU0SfQ1O/QdpuQprdbp4a7d3xyTE+oBHi0s7Qs7X/AmWout8sn9U3Y6KyfhlbVl8ius3qgTtPcrqZnAVbOunvdbsQjZn5v54eB/UzCE/UGHIlzm1IyStWYr2iAiL/sx0GlmdRl6lIHmFfjOCjdi2+0j9GkQTA1BTdSQf3OknqW/Au9dFR09FCvjvhXNE9h1Z3qcsWDjGONYeyHYcaZHBXtUFa5nlqMToBqKjqAaCeO9DXikeOdePZwoMP58+olw5MBwcp5xpR0J4SrPlRjs2ATWbN3EnBX205khuQbiS7slKKZFz63g9pHi01AZpzXvIGoIeLCw4vWgn2cj/n3uIr35OwMtyznzZ7DxfzLQPmJTTabHO4QuipeQlmb+eYM8T/zNA5esaGJX+SvsdohM47ehLb3R5gPdStp3k8P+oDYAJ4q3Z3yj1ykW/HVwNHu2TikTAeSl11EmywYVXsMGNVKD/5uzTT1OdjK3G3ycTzfzTQnB+y7xiNFEYv0OU+8054aXdpXqq0cqyPBDKp2asXncQnDaCTY/UG0DGqqx/dF7BRsVONbuWvNAiNAnJKp39IMLuCWUXoXnB0bg+6W6XqSWPHgymzF50kSulF900eyayT9jl70soS6UqbeAhiYWetvb/qRKomCkoz/cSYgg4L1VadPSnXPqntjZ+Q7jpXhmQJ97ulj6xwCzj+QNPAym9qTrGqId1FML3KwMRF6dOBimklcfyQirVbOX2UdsZGu2sNwr+8V0/CTyJwJbF0Q/bXpShqSpxQAbiXc28WEK+VPj8HRy/4R3fzWagXU/p+bZyov6rfEQN4VD744a8D9cRwoZ/TLEpxVEpM8K1LPb1HDudWVe0xi0aUqPCTWyuLQ7SgEBWTz8thQEEDNIxyouqj46rNvfEDYreLqGAxnrEiozVj001J/r0HBtYwIVG3UPutfN2a+rAKZkesDTXrM2pLxBpU5kScwqWh8TSaOuGxBWXvMDg9IxLv+QGS1WMXcas9lK4R090+f0B6P+dhQTQBcQ4EmqhUpS8cQwD3ybKrZh3AQ/70pjtaTp9pJZbuGEosCY6GEksuo6HEkrbIlZhRjhyHpQkNr3694Cm2/QBmsH6LvGKbXq77VqOMIn0wGkU6YzSK9MpoFOme0SiSSWo0yvvhKDgT2HYydP4yUPI7BkFJT08DJd09DZT0+VgoeJnb5N3YzDl4fbegyMk3o1EkAfhoFDbOGBQe1whjpXhKPuJamli/9oG5hrOgqN8kC/geN2vosE7QuVpjEScsIhS+LfSyJ44xOcHVXn2B+Cn6eUeJbh8OFmi7fxk9Li3YJFPPgk0y+QDGWPSpnpJYEz0kh6dWbMTgsjCs0wQwbPIJYDidJ4DhAjcBDFe4CWC4xPWEMQJQgxGgiWSmzrXI78wzgHGsTLo+8jXmVr6Y615I33KkF+jo7Rdz3QdpzjohJK+ok3wZUKc566RIph7ypUedkK/hSTcDm8xeOZPGC3HFYQiX6FQQn9CRT64KwNQNcNKU5QJZbOAxKf6aBo8pHfJEEriE9sOFQRNZQ0kQ31d48GiOODcjgUGBgx/Cf/Qo3EDiNhwJJTJYvYBtuJYjpeiL7pDHQve7fTROBuHOhHqql5+EONacaFZPy4YXjZG2ep8W/7LDnjRQrxh7sff6Lw\x3d\x3d";
Sidebar.prototype.searchFileUrl="search.xml";Sidebar.prototype.gearImage=GRAPH_IMAGE_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.defaultEntries="general;images;uml;er;bpmn;flowchart;basic;arrows2";Sidebar.prototype.signs="Animals Food Healthcare Nature People Safety Science Sports Tech Transportation Travel".split(" ");Sidebar.prototype.rack="General APC Cisco Dell F5 HP IBM Oracle".split(" ");Sidebar.prototype.pids="Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";");
Sidebar.prototype.cisco="Buildings;Computers and Peripherals;Controllers and Modules;Directors;Hubs and Gateways;Misc;Modems and Phones;People;Routers;Security;Servers;Storage;Switches;Wireless".split(";");Sidebar.prototype.sysml="Model Elements;Blocks;Ports and Flows;Constraint Blocks;Activities;Interactions;State Machines;Use Cases;Allocations;Requirements;Profiles;Stereotypes".split(";");Sidebar.prototype.eip="Message Construction;Message Routing;Message Transformation;Messaging Channels;Messaging Endpoints;Messaging Systems;System Management".split(";");
Sidebar.prototype.gmdl="Bottom Navigation;Bottom Sheets;Buttons;Cards;Chips;Dialogs;Dividers;Grid Lists;Icons;Lists;Menus;Misc;Pickers;Selection Controls;Sliders;Steppers;Tabs;Text Fields".split(";");Sidebar.prototype.aws2="Analytics;Application Services;Compute;Database;Developer Tools;Enterprise Applications;Game Development;General;Internet of Things;Management Tools;Mobile Services;Networking;On-Demand Workforce;SDKs;Security and Identity;Storage and Content Delivery;Groups".split(";");Sidebar.prototype.office=
-"Clouds Communications Concepts Databases Devices Security Servers Services Sites Users".split(" ");Sidebar.prototype.veeam=["2D","3D"];Sidebar.prototype.archimate3="Application;Business;Composite;Implementation and Migration;Motivation;Physical;Relationships;Strategy;Technology".split(";");Sidebar.prototype.configuration=[{id:"general",libs:["general","misc","advanced"]},{id:"uml"},{id:"search"},{id:"er"},{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},
-{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;Intune;Other;System Center;Deprecated".split(";")},{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},
-{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"ee",libs:"LogicGates Resistors Capacitors Inductors SwitchesRelays Diodes Sources Transistors Misc Audio PlcLadder Abstract Optical VacuumTubes Waveforms Instruments".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,q){if(null!=q&&1==f){var r=null;if(0<=mxUtils.indexOf(q,"text"))r="Double click anywhere in the diagram to insert text.";else for(var s="line lines arrow arrows connect connection connections connector connectors curve curves link links".split(" "),t=0;t<s.length;t++)if(0<=mxUtils.indexOf(q,s[t])){r="Need help with connections?";
-break}null!=r&&(s=document.createElement("a"),s.setAttribute("href","https://www.youtube.com/watch?v\x3d8OaMWa4R1SE\x26t\x3d1"),s.setAttribute("target","_blank"),s.className="geTitle",s.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;",mxUtils.write(s,r),b.appendChild(s))}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,
-a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,d){for(var c=0;c<a.length;c++)this.showPalette(b+a[c],d)};Sidebar.prototype.showPalette=function(b,a){var d=this.palettes[b];if(null!=d)for(var c=null!=a?a?"block":"none":"none"==d[0].style.display?"block":"none",f=0;f<d.length;f++)d[f].style.display=c};Sidebar.prototype.isEntryVisible=function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var d=this.palettes[null!=
-this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=d)return"none"!=d[0].style.display}return!1};Sidebar.prototype.showEntries=function(b,a,d){this.libs=null!=b&&(d||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();d=this.libs.split(";");for(var c=0;c<this.configuration.length;c++)"search"!=this.configuration[c].id&&this.showPalettes(this.configuration[c].prefix||"",this.configuration[c].libs||
-[this.configuration[c].id],0<=mxUtils.indexOf(d,this.configuration[c].id));a&&(mxSettings.setLibraries(b),mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),
-id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.jpg"},{title:mxResources.get("flowchart"),id:"flowchart",image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+
-"/sidebar-ios.png"},{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws2",image:IMAGE_PATH+"/sidebar-aws.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+"/sidebar-azure.png"},{title:"Cloud \x26 Enterprise",
-id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),
-entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),
-id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:mxResources.get("signs"),
-id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=this.editorUi.isOffline();this.shapetags={};if(null!=this.tagIndex)for(var b=this.editorUi.editor.graph.decompress(this.tagIndex).split("\n"),a=0;a<b.length;a++)if(null!=b[a]){var d=b[a].split("\t");if(1<d.length){var c=d[0].toLowerCase().replace(" ","_"),d=mxUtils.trim(d.slice(1,d.length).join(" ").toLowerCase());0<d.length&&(this.shapetags[c]=d)}}this.initPalettes();this.editorUi.isOffline()||mxUtils.get(this.searchFileUrl,
-mxUtils.bind(this,function(b){b=b.getDocumentElement();if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var d=b[a].getAttribute("style"),c=this.extractShapeStyle(d);if(null!=d&&null!=c){var e=c.lastIndexOf(".");if(0<e){var f=c.substring(0,e),c=c.substring(e+1,c.length),e=this.getTagsForStencil(f,c,b[a].getAttribute("tags"));if(null!=e){var g=d.indexOf(";"),d="shape\x3d"+f+"."+c.toLowerCase()+";"+(0>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 q=m.clientHeight+18;m.parentNode.removeChild(m);(new mxXmlRequest(EXPORT_URL,"w\x3d456\x26h\x3d"+q+"\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 r=b.innerHTML;b.innerHTML=mxResources.get("loading")+"...";window.setTimeout(function(){d(a);b.style.cursor="";b.innerHTML=r;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,q=this.eip,r=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(" "),
+"Clouds Communications Concepts Databases Devices Security Servers Services Sites Users".split(" ");Sidebar.prototype.veeam=["2D","3D"];Sidebar.prototype.archimate3="Application;Business;Composite;Implementation and Migration;Motivation;Physical;Relationships;Strategy;Technology".split(";");Sidebar.prototype.electrical="LogicGates Resistors Capacitors Inductors SwitchesRelays Diodes Sources Transistors Misc Audio PlcLadder Abstract Optical VacuumTubes Waveforms Instruments RotMech Transmission".split(" ");
+Sidebar.prototype.configuration=[{id:"general",libs:["general","misc","advanced"]},{id:"uml"},{id:"search"},{id:"er"},{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;Intune;Other;System Center;Deprecated".split(";")},{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},
+{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},
+{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{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;t<q.length;t++)if(0<=mxUtils.indexOf(r,q[t])){s="Need help with connections?";break}null!=s&&(q=document.createElement("a"),q.setAttribute("href","https://www.youtube.com/watch?v\x3d8OaMWa4R1SE\x26t\x3d1"),q.setAttribute("target","_blank"),q.className="geTitle",q.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;",
+mxUtils.write(q,s),b.appendChild(q))}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,d){for(var c=0;c<a.length;c++)this.showPalette(b+a[c],d)};Sidebar.prototype.showPalette=function(b,a){var d=this.palettes[b];if(null!=d)for(var c=null!=a?a?"block":"none":"none"==d[0].style.display?"block":"none",f=0;f<d.length;f++)d[f].style.display=c};Sidebar.prototype.isEntryVisible=
+function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var d=this.palettes[null!=this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=d)return"none"!=d[0].style.display}return!1};Sidebar.prototype.showEntries=function(b,a,d){this.libs=null!=b&&(d||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();d=this.libs.split(";");for(var c=0;c<this.configuration.length;c++)"search"!=
+this.configuration[c].id&&this.showPalettes(this.configuration[c].prefix||"",this.configuration[c].libs||[this.configuration[c].id],0<=mxUtils.indexOf(d,this.configuration[c].id));a&&(mxSettings.setLibraries(b),mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),
+id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.jpg"},{title:mxResources.get("flowchart"),id:"flowchart",image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),
+id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws2",image:IMAGE_PATH+"/sidebar-aws.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),
+id:"azure",image:IMAGE_PATH+"/sidebar-azure.png"},{title:"Cloud \x26 Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",
+id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+
+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},
+{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=this.editorUi.isOffline();this.shapetags={};if(null!=this.tagIndex)for(var b=this.editorUi.editor.graph.decompress(this.tagIndex).split("\n"),a=0;a<b.length;a++)if(null!=b[a]){var d=b[a].split("\t");if(1<d.length){var c=d[0].toLowerCase().replace(" ","_"),d=mxUtils.trim(d.slice(1,d.length).join(" ").toLowerCase());
+0<d.length&&(this.shapetags[c]=d)}}this.initPalettes();this.editorUi.isOffline()||mxUtils.get(this.searchFileUrl,mxUtils.bind(this,function(b){b=b.getDocumentElement();if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var d=b[a].getAttribute("style"),c=this.extractShapeStyle(d);if(null!=d&&null!=c){var e=c.lastIndexOf(".");if(0<e){var f=c.substring(0,e),c=c.substring(e+1,c.length),e=this.getTagsForStencil(f,c,b[a].getAttribute("tags"));if(null!=e){var g=d.indexOf(";"),d="shape\x3d"+
+f+"."+c.toLowerCase()+";"+(0>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.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(" "),
@@ -3172,15 +3172,15 @@ this.addImagePalette("telco","Clipart / Telecommunication",b+"/lib/clip_art/tele
for(b=0;b<c.length;b++)"general"===c[b].toLowerCase()?this.addRackGeneralPalette():"f5"===c[b].toLowerCase()?this.addRackF5Palette():this.addStencilPalette("rack"+c[b],"Rack / "+c[b],a+"/rack/"+c[b].toLowerCase()+".xml",";html\x3d1;labelPosition\x3dright;align\x3dleft;spacingLeft\x3d15;dashed\x3d0;shadow\x3d0;fillColor\x3d#ffffff;");for(b=0;b<f.length;b++)"Instruments"==f[b]?this.addPidInstrumentsPalette():"Misc"==f[b]?this.addPidMiscPalette():"Valves"==f[b]?this.addPidValvesPalette():"Compressors"==
f[b]?this.addPidCompressorsPalette():"Engines"==f[b]?this.addPidEnginesPalette():"Filters"==f[b]?this.addPidFiltersPalette():"Flow Sensors"==f[b]?this.addPidFlowSensorsPalette():"Piping"==f[b]?this.addPidPipingPalette():this.addStencilPalette("pid"+f[b],"Proc. Eng. / "+f[b],a+"/pid/"+f[b].toLowerCase().replace(" ","_")+".xml",";html\x3d1;align\x3dcenter;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;dashed\x3d0;");for(b=0;b<p.length;b++)"Model Elements"==
p[b]?this.addSysMLModelElementsPalette():"Blocks"==p[b]?this.addSysMLBlocksPalette():"Ports and Flows"==p[b]?this.addSysMLPortsAndFlowsPalette():"Constraint Blocks"==p[b]?this.addSysMLConstraintBlocksPalette():"Activities"==p[b]?this.addSysMLActivitiesPalette():"Interactions"==p[b]?this.addSysMLInteractionsPalette():"State Machines"==p[b]?this.addSysMLStateMachinesPalette():"Use Cases"==p[b]?this.addSysMLUseCasesPalette():"Allocations"==p[b]?this.addSysMLAllocationsPalette():"Requirements"==p[b]?
-this.addSysMLRequirementsPalette():"Profiles"==p[b]?this.addSysMLProfilesPalette():"Stereotypes"==p[b]&&this.addSysMLStereotypesPalette();for(b=0;b<q.length;b++)"Message Construction"==q[b]?this.addEipMessageConstructionPalette():"Message Routing"==q[b]?this.addEipMessageRoutingPalette():"Message Transformation"==q[b]?this.addEipMessageTransformationPalette():"Messaging Channels"==q[b]?this.addEipMessagingChannelsPalette():"Messaging Endpoints"==q[b]?this.addEipMessagingEndpointsPalette():"Messaging Systems"==
-q[b]?this.addEipMessagingSystemsPalette():"System Management"==q[b]&&this.addEipSystemManagementPalette();for(b=0;b<m.length;b++)this.addStencilPalette("cisco"+m[b],"Cisco / "+m[b],a+"/cisco/"+m[b].toLowerCase().replace(/ /g,"_")+".xml",";html\x3d1;dashed\x3d0;fillColor\x3d#036897;strokeColor\x3d#ffffff;strokeWidth\x3d2;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop",null,null,1.6);this.addFloorplanPalette();this.addBootstrapPalette();for(b=0;b<r.length;b++)"Bottom Navigation"==r[b]?this.addGMDLBottomNavigationPalette():
-"Bottom Sheets"==r[b]?this.addGMDLBottomSheetsPalette():"Buttons"==r[b]?this.addGMDLButtonsPalette():"Cards"==r[b]?this.addGMDLCardsPalette():"Chips"==r[b]?this.addGMDLChipsPalette():"Dialogs"==r[b]?this.addGMDLDialogsPalette():"Dividers"==r[b]?this.addGMDLDividersPalette():"Grid Lists"==r[b]?this.addGMDLGridListsPalette():"Icons"==r[b]?this.addGMDLIconsPalette():"Lists"==r[b]?this.addGMDLListsPalette():"Menus"==r[b]?this.addGMDLMenusPalette():"Misc"==r[b]?this.addGMDLMiscPalette():"Pickers"==r[b]?
-this.addGMDLPickersPalette():"Selection Controls"==r[b]?this.addGMDLSelectionControlsPalette():"Sliders"==r[b]?this.addGMDLSlidersPalette():"Steppers"==r[b]?this.addGMDLSteppersPalette():"Tabs"==r[b]?this.addGMDLTabsPalette():"Text Fields"==r[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.showEntries()};if("1"==urlParams.createindex){var f=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,
-d,c,n,m,p,q){f.apply(this,arguments);p=null!=p?p:1;mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(b,a,d,e,f){if(null==n||0>mxUtils.indexOf(n,a))d=null!=q?q[a]:null,mxLog.debug('\x3cshape style\x3d"shape\x3d'+b+a+c+'" w\x3d"'+Math.round(e*p)+'" h\x3d"'+Math.round(f*p)+'"'+(null!=d?' tags\x3d"'+d+'"':"")+"/\x3e")}),!0)}}var d=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(b,a,c,f,n){var m=f;this.editorUi.enableLogging&&!this.editorUi.isOffline()&&0==c&&((new Image).src=
+this.addSysMLRequirementsPalette():"Profiles"==p[b]?this.addSysMLProfilesPalette():"Stereotypes"==p[b]&&this.addSysMLStereotypesPalette();for(b=0;b<r.length;b++)"Message Construction"==r[b]?this.addEipMessageConstructionPalette():"Message Routing"==r[b]?this.addEipMessageRoutingPalette():"Message Transformation"==r[b]?this.addEipMessageTransformationPalette():"Messaging Channels"==r[b]?this.addEipMessagingChannelsPalette():"Messaging Endpoints"==r[b]?this.addEipMessagingEndpointsPalette():"Messaging Systems"==
+r[b]?this.addEipMessagingSystemsPalette():"System Management"==r[b]&&this.addEipSystemManagementPalette();for(b=0;b<m.length;b++)this.addStencilPalette("cisco"+m[b],"Cisco / "+m[b],a+"/cisco/"+m[b].toLowerCase().replace(/ /g,"_")+".xml",";html\x3d1;dashed\x3d0;fillColor\x3d#036897;strokeColor\x3d#ffffff;strokeWidth\x3d2;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop",null,null,1.6);this.addFloorplanPalette();this.addBootstrapPalette();for(b=0;b<s.length;b++)"Bottom Navigation"==s[b]?this.addGMDLBottomNavigationPalette():
+"Bottom Sheets"==s[b]?this.addGMDLBottomSheetsPalette():"Buttons"==s[b]?this.addGMDLButtonsPalette():"Cards"==s[b]?this.addGMDLCardsPalette():"Chips"==s[b]?this.addGMDLChipsPalette():"Dialogs"==s[b]?this.addGMDLDialogsPalette():"Dividers"==s[b]?this.addGMDLDividersPalette():"Grid Lists"==s[b]?this.addGMDLGridListsPalette():"Icons"==s[b]?this.addGMDLIconsPalette():"Lists"==s[b]?this.addGMDLListsPalette():"Menus"==s[b]?this.addGMDLMenusPalette():"Misc"==s[b]?this.addGMDLMiscPalette():"Pickers"==s[b]?
+this.addGMDLPickersPalette():"Selection Controls"==s[b]?this.addGMDLSelectionControlsPalette():"Sliders"==s[b]?this.addGMDLSlidersPalette():"Steppers"==s[b]?this.addGMDLSteppersPalette():"Tabs"==s[b]?this.addGMDLTabsPalette():"Text Fields"==s[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.showEntries()};if("1"==urlParams.createindex){var f=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,
+d,c,n,m,p,r){f.apply(this,arguments);p=null!=p?p:1;mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(b,a,d,e,f){if(null==n||0>mxUtils.indexOf(n,a))d=null!=r?r[a]:null,mxLog.debug('\x3cshape style\x3d"shape\x3d'+b+a+c+'" w\x3d"'+Math.round(e*p)+'" h\x3d"'+Math.round(f*p)+'"'+(null!=d?' tags\x3d"'+d+'"':"")+"/\x3e")}),!0)}}var d=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(b,a,c,f,n){var m=f;this.editorUi.enableLogging&&!this.editorUi.isOffline()&&0==c&&((new Image).src=
(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dshapesearch:"+encodeURIComponent(b)+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION));f=mxUtils.bind(this,function(d,f,l,n){!this.editorUi.isOffline()&&d.length<=a/4?(l=c-Math.ceil((f-a/4)/a),mxUtils.get(ICONSEARCH_PATH+"?v\x3d2\x26q\x3d"+encodeURIComponent(b)+"\x26p\x3d"+l+"\x26c\x3d"+a,mxUtils.bind(this,function(b){try{if(200<=b.getStatus()&&299>=b.getStatus()){var e=JSON.parse(b.getText());for(b=0;b<e.icons.length;b++){for(var l=
-e.icons[b].raster_sizes,r=l.length-1;0<r&&128<l[r].size;)r--;var y=l[r].size,x=l[r].formats[0].preview_url;null!=y&&null!=x&&mxUtils.bind(this,function(b,a){d.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape\x3dimage;html\x3d1;verticalAlign\x3dtop;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;imageAspect\x3d0;aspect\x3dfixed;image\x3d"+a,b,b,"")}))})(y,x)}m(d,(c-1)*a+d.length,e.icons.length==a,n)}else m(d,f,!1,n),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(D){m(d,
+e.icons[b].raster_sizes,s=l.length-1;0<s&&128<l[s].size;)s--;var y=l[s].size,x=l[s].formats[0].preview_url;null!=y&&null!=x&&mxUtils.bind(this,function(b,a){d.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape\x3dimage;html\x3d1;verticalAlign\x3dtop;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;imageAspect\x3d0;aspect\x3dfixed;image\x3d"+a,b,b,"")}))})(y,x)}m(d,(c-1)*a+d.length,e.icons.length==a,n)}else m(d,f,!1,n),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(D){m(d,
f,!1,n),this.editorUi.handleError(D)}},function(){m(d,f,!1,n)}))):m(d,f,l||!this.editorUi.isOffline(),n)});d.apply(this,arguments)};var b=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(a,d,c){var f=this.editorUi.editor.graph,n=!1;if(null!=a&&1==f.getSelectionCount()&&f.getModel().isVertex(a[0])){var m=f.cloneCells(a)[0];if(f.getModel().isEdge(f.getSelectionCell())&&null==f.getModel().getTerminal(f.getSelectionCell(),!1)&&f.getModel().isVertex(m)){f.getModel().beginUpdate();try{var p=
-f.view.getState(f.getSelectionCell());if(null!=p){var q=f.view.translate,r=f.view.scale,s=p.absolutePoints[p.absolutePoints.length-1];m.geometry.x=s.x/r-q.x-m.geometry.width/2;m.geometry.y=s.y/r-q.y-m.geometry.height/2}f.addCell(m);f.getModel().setTerminal(f.getSelectionCell(),m,!1)}finally{f.getModel().endUpdate()}f.scrollCellToVisible(m);f.setSelectionCell(m);n=!0}}n||b.apply(this,arguments)}})();
+f.view.getState(f.getSelectionCell());if(null!=p){var r=f.view.translate,s=f.view.scale,q=p.absolutePoints[p.absolutePoints.length-1];m.geometry.x=q.x/s-r.x-m.geometry.width/2;m.geometry.y=q.y/s-r.y-m.geometry.height/2}f.addCell(m);f.getModel().setTerminal(f.getSelectionCell(),m,!1)}finally{f.getModel().endUpdate()}f.scrollCellToVisible(m);f.setSelectionCell(m);n=!0}}n||b.apply(this,arguments)}})();
(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var c=a.apply(this,arguments),f=this,d=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html\x3d1;startSize\x3d20;horizontal\x3d1;childLayout\x3dflowLayout;flowOrientation\x3dnorth;resizable\x3d0;interRankCellSpacing\x3d50;");d.vertex=!0;var b=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");b.vertex=!0;d.insert(b);var e=new mxCell("Task",
new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");e.vertex=!0;d.insert(e);var g=new mxCell("",new mxGeometry(0,0,0,0),"html\x3d1;curved\x3d1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);d.insert(g);var k=new mxCell("Task",new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");k.vertex=!0;d.insert(k);g=g.clone();b.insertEdge(g,!0);k.insertEdge(g,!1);d.insert(g);b=new mxCell("End",new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");b.vertex=
!0;d.insert(b);g=g.clone();e.insertEdge(g,!0);b.insertEdge(g,!1);d.insert(g);g=g.clone();k.insertEdge(g,!0);b.insertEdge(g,!1);d.insert(g);return c.concat([this.addEntry("container swimlane pool horizontal",function(){var b=new mxCell("Pool",new mxGeometry(0,0,480,380),"swimlane;html\x3d1;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d20;horizontalStack\x3d0;");b.vertex=!0;var a=new mxCell("Lane 1",new mxGeometry(0,20,480,120),"swimlane;html\x3d1;startSize\x3d20;horizontal\x3d0;");a.vertex=
@@ -3792,10 +3792,10 @@ m.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,n,m],700,290,"
d.vertex=!0;var b=new mxCell("Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.",new mxGeometry(70,30,630,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");b.vertex=!0;var e=new mxCell("64x64",new mxGeometry(70,90,64,64),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#f6f6f6;fontColor\x3d#999999;whiteSpace\x3dwrap;");
e.vertex=!0;var g=new mxCell("Nested Media heading",new mxGeometry(140,90,300,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;fontSize\x3d24;align\x3dleft;whiteSpace\x3dwrap;");g.vertex=!0;var k=new mxCell("Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.",new mxGeometry(140,120,560,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");
k.vertex=!0;var l=new mxCell("64x64",new mxGeometry(140,180,64,64),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#f6f6f6;fontColor\x3d#999999;whiteSpace\x3dwrap;");l.vertex=!0;var n=new mxCell("Nested media heading",new mxGeometry(210,180,300,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;fontSize\x3d24;align\x3dleft;whiteSpace\x3dwrap;");n.vertex=!0;var m=new mxCell("Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.",
-new mxGeometry(210,210,490,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");m.vertex=!0;var p=new mxCell("64x64",new mxGeometry(70,280,64,64),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#f6f6f6;fontColor\x3d#999999;whiteSpace\x3dwrap;");p.vertex=!0;var q=new mxCell("Nested Media heading",new mxGeometry(140,280,300,
-30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;fontSize\x3d24;align\x3dleft;whiteSpace\x3dwrap;");q.vertex=!0;var r=new mxCell("Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.",new mxGeometry(140,310,560,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");
-r.vertex=!0;var s=new mxCell("64x64",new mxGeometry(636,370,64,64),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#f6f6f6;fontColor\x3d#999999;whiteSpace\x3dwrap;");s.vertex=!0;var t=new mxCell("Media heading",new mxGeometry(0,370,200,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;fontSize\x3d24;align\x3dleft;whiteSpace\x3dwrap;");t.vertex=!0;var u=new mxCell("Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.",
-new mxGeometry(0,400,630,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");u.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,n,m,p,q,r,s,t,u],700,460,"Media List")}),this.addEntry("bootstrap linked item custom content",function(){var c=new mxCell("",new mxGeometry(0,0,400,240),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;fillColor\x3d#ffffff;strokeColor\x3d#dddddd;whiteSpace\x3dwrap;");
+new mxGeometry(210,210,490,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");m.vertex=!0;var p=new mxCell("64x64",new mxGeometry(70,280,64,64),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#f6f6f6;fontColor\x3d#999999;whiteSpace\x3dwrap;");p.vertex=!0;var r=new mxCell("Nested Media heading",new mxGeometry(140,280,300,
+30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;fontSize\x3d24;align\x3dleft;whiteSpace\x3dwrap;");r.vertex=!0;var s=new mxCell("Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.",new mxGeometry(140,310,560,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");
+s.vertex=!0;var q=new mxCell("64x64",new mxGeometry(636,370,64,64),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#f6f6f6;fontColor\x3d#999999;whiteSpace\x3dwrap;");q.vertex=!0;var t=new mxCell("Media heading",new mxGeometry(0,370,200,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;fontSize\x3d24;align\x3dleft;whiteSpace\x3dwrap;");t.vertex=!0;var u=new mxCell("Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.",
+new mxGeometry(0,400,630,60),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;align\x3dleft;verticalAlign\x3dtop;whiteSpace\x3dwrap;fontSize\x3d14;whiteSpace\x3dwrap;");u.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,n,m,p,r,s,q,t,u],700,460,"Media List")}),this.addEntry("bootstrap linked item custom content",function(){var c=new mxCell("",new mxGeometry(0,0,400,240),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;fillColor\x3d#ffffff;strokeColor\x3d#dddddd;whiteSpace\x3dwrap;");
c.vertex=!0;var d=new mxCell("Donec id elit non mi porta gravida at eget metus.\nMaecenas sed diam eget risus varius blandit.",new mxGeometry(0,0,400,80),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;fillColor\x3dnone;strokeColor\x3d#dddddd;perimeter\x3dnone;spacingLeft\x3d10;align\x3dleft;fontSize\x3d14;whiteSpace\x3dwrap;verticalAlign\x3dbottom;spacingBottom\x3d10;resizeWidth\x3d1;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(0,80);d.vertex=!0;c.insert(d);var b=new mxCell("List group item heading",
new mxGeometry(0,0,400,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;spacingLeft\x3d10;align\x3dleft;fontSize\x3d18;whiteSpace\x3dwrap;resizeWidth\x3d1;");b.geometry.relative=!0;b.vertex=!0;d.insert(b);d=new mxCell("Donec id elit non mi porta gravida at eget metus.\nMaecenas sed diam eget risus varius blandit.",new mxGeometry(0,1,400,80),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.bottomButton;rSize\x3d5;fillColor\x3dnone;strokeColor\x3d#dddddd;spacingLeft\x3d10;align\x3dleft;fontSize\x3d14;perimeter\x3dnone;whiteSpace\x3dwrap;verticalAlign\x3dbottom;spacingBottom\x3d13;resizeWidth\x3d1;");
d.geometry.relative=!0;d.geometry.offset=new mxPoint(0,-80);d.vertex=!0;c.insert(d);b=new mxCell("List group item heading",new mxGeometry(0,0,400,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.anchor;spacingLeft\x3d10;align\x3dleft;fontSize\x3d18;whiteSpace\x3dwrap;resizeWidth\x3d1;");b.geometry.relative=!0;b.vertex=!0;d.insert(b);d=new mxCell("Donec id elit non mi porta gravida at eget metus.\nMaecenas sed diam eget risus varius blandit.",new mxGeometry(0,0,400,80),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.topButton;rSize\x3d5;fillColor\x3d#3D8BCD;strokeColor\x3d#3D8BCD;fontColor\x3d#ffffff;spacingLeft\x3d10;align\x3dleft;fontSize\x3d14;perimeter\x3dnone;whiteSpace\x3dwrap;verticalAlign\x3dbottom;spacingBottom\x3d13;resizeWidth\x3d1;");
@@ -3926,47 +3926,47 @@ c.vertex=!0;var d=new mxCell("Uncompleted Profile",new mxGeometry(0,20,800,40),"
b.vertex=!0;var e=new mxCell("Hello, %USER_FULL_NAME%",new mxGeometry(0,100,800,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacingLeft\x3d10;fontSize\x3d16;whiteSpace\x3dwrap;");e.vertex=!0;var g=new mxCell("Insert System Variable",new mxGeometry(650,80,120,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;align\x3dright;fontSize\x3d10;whiteSpace\x3dwrap;");
g.vertex=!0;var k=new mxCell("",new mxGeometry(772,87,8,4),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");k.vertex=!0;var l=new mxCell("Message",new mxGeometry(0,160,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");l.vertex=!0;var n=new mxCell("Hello %USER_FULL_NAME%!\n\nAt vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quosdolores et quas molestias excepturi sint, obcaecati cupiditate non provident, similique sunt in culpa, qui officia deserunt mollitiaanimi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum solutanobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat, facere possimus, omnis voluptas assumendaest, omnis dolor repellendus.",
new mxGeometry(0,180,800,240),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;fontSize\x3d12;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacing\x3d10;verticalAlign\x3dtop;whiteSpace\x3dwrap;");n.vertex=!0;var m=new mxCell("Insert System Variable",new mxGeometry(650,160,120,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;align\x3dright;fontSize\x3d10;whiteSpace\x3dwrap;");m.vertex=!0;var p=new mxCell("",
-new mxGeometry(772,167,8,4),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");p.vertex=!0;var q=new mxCell("%USER_FULL_NAME%\n%USER_EMAIL%\n%USER_PROFILE_COMPLETENESS%\n%USER_NUM_SUCCESS_TRADES%\n%USER_FULL_NAME%\n%USER_EMAIL%\n%USER_PROFILE_COMPLETENESS%\n%USER_NUM_SUCCESS_SELLS%",new mxGeometry(550,175,240,140),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d2;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;verticalAlign\x3dtop;spacing\x3d10;shadow\x3d1;whiteSpace\x3dwrap;");
-q.vertex=!0;var r=new mxCell("Message Type",new mxGeometry(0,440,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");r.vertex=!0;var s=new mxCell("Email + Push",new mxGeometry(0,460,390,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacingLeft\x3d10;fontSize\x3d16;whiteSpace\x3dwrap;");
-s.vertex=!0;var t=new mxCell("",new mxGeometry(370,477,10,5),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");t.vertex=!0;var u=new mxCell("Tap target",new mxGeometry(410,440,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");u.vertex=!0;var v=new mxCell("Profile Screen",new mxGeometry(410,460,390,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacingLeft\x3d10;fontSize\x3d16;whiteSpace\x3dwrap;");
-v.vertex=!0;var A=new mxCell("",new mxGeometry(780,477,10,5),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");A.vertex=!0;var y=new mxCell("Send to Group",new mxGeometry(0,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");y.vertex=!0;var x=new mxCell("Top Management",new mxGeometry(10,543,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
-x.vertex=!0;var D=new mxCell("Marketing Department",new mxGeometry(10,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");D.vertex=!0;var z=new mxCell("Design Department",new mxGeometry(10,583,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
-z.vertex=!0;var B=new mxCell("Financial Department",new mxGeometry(10,603,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");B.vertex=!0;var F=new mxCell("Supply Department",new mxGeometry(10,623,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
-F.vertex=!0;var G=new mxCell("Set Type",new mxGeometry(410,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");G.vertex=!0;var E=new mxCell("",new mxGeometry(420,543,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");E.vertex=!0;var H=new mxCell("News",new mxGeometry(440,543,40,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");
-H.vertex=!0;var I=new mxCell("",new mxGeometry(420,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.radioButton;strokeColor\x3d#999999;fillColor\x3d#ffffff;");I.vertex=!0;var J=new mxCell("Reports",new mxGeometry(440,563,50,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#55BFE0;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");J.vertex=!0;var N=new mxCell("",new mxGeometry(420,
-583,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");N.vertex=!0;var T=new mxCell("Documents",new mxGeometry(440,583,70,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#EFAC43;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");T.vertex=!0;var Y=new mxCell("",new mxGeometry(420,603,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");
+new mxGeometry(772,167,8,4),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");p.vertex=!0;var r=new mxCell("%USER_FULL_NAME%\n%USER_EMAIL%\n%USER_PROFILE_COMPLETENESS%\n%USER_NUM_SUCCESS_TRADES%\n%USER_FULL_NAME%\n%USER_EMAIL%\n%USER_PROFILE_COMPLETENESS%\n%USER_NUM_SUCCESS_SELLS%",new mxGeometry(550,175,240,140),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d2;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;verticalAlign\x3dtop;spacing\x3d10;shadow\x3d1;whiteSpace\x3dwrap;");
+r.vertex=!0;var s=new mxCell("Message Type",new mxGeometry(0,440,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");s.vertex=!0;var q=new mxCell("Email + Push",new mxGeometry(0,460,390,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacingLeft\x3d10;fontSize\x3d16;whiteSpace\x3dwrap;");
+q.vertex=!0;var t=new mxCell("",new mxGeometry(370,477,10,5),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");t.vertex=!0;var u=new mxCell("Tap target",new mxGeometry(410,440,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");u.vertex=!0;var v=new mxCell("Profile Screen",new mxGeometry(410,460,390,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacingLeft\x3d10;fontSize\x3d16;whiteSpace\x3dwrap;");
+v.vertex=!0;var z=new mxCell("",new mxGeometry(780,477,10,5),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");z.vertex=!0;var y=new mxCell("Send to Group",new mxGeometry(0,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");y.vertex=!0;var x=new mxCell("Top Management",new mxGeometry(10,543,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
+x.vertex=!0;var D=new mxCell("Marketing Department",new mxGeometry(10,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");D.vertex=!0;var A=new mxCell("Design Department",new mxGeometry(10,583,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
+A.vertex=!0;var B=new mxCell("Financial Department",new mxGeometry(10,603,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");B.vertex=!0;var E=new mxCell("Supply Department",new mxGeometry(10,623,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
+E.vertex=!0;var G=new mxCell("Set Type",new mxGeometry(410,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");G.vertex=!0;var F=new mxCell("",new mxGeometry(420,543,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");F.vertex=!0;var H=new mxCell("News",new mxGeometry(440,543,40,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");
+H.vertex=!0;var I=new mxCell("",new mxGeometry(420,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.radioButton;strokeColor\x3d#999999;fillColor\x3d#ffffff;");I.vertex=!0;var L=new mxCell("Reports",new mxGeometry(440,563,50,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#55BFE0;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");L.vertex=!0;var O=new mxCell("",new mxGeometry(420,
+583,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");O.vertex=!0;var T=new mxCell("Documents",new mxGeometry(440,583,70,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#EFAC43;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");T.vertex=!0;var Y=new mxCell("",new mxGeometry(420,603,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");
Y.vertex=!0;var C=new mxCell("Media",new mxGeometry(440,603,40,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#3D8BCD;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");C.vertex=!0;var U=new mxCell("",new mxGeometry(420,623,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");U.vertex=!0;var P=new mxCell("Text",new mxGeometry(440,623,30,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#999999;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");
-P.vertex=!0;var O=new mxCell("Save Template",new mxGeometry(0,680,150,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#3D8BCD;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");O.vertex=!0;var M=new mxCell("Cancel",new mxGeometry(170,680,100,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fillColor\x3d#ffffff;align\x3dcenter;rSize\x3d5;strokeColor\x3d#dddddd;fontSize\x3d16;whiteSpace\x3dwrap;");
-M.vertex=!0;var V=new mxCell("Delete Template",new mxGeometry(630,680,170,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#DB524C;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");V.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,n,m,p,q,r,s,t,u,v,A,y,x,D,z,B,F,G,E,H,I,J,N,T,Y,C,U,P,O,M,V],800,720,"Edit Template")}),this.addEntry("bootstrap business contact",function(){var c=new mxCell("",new mxGeometry(0,
+P.vertex=!0;var N=new mxCell("Save Template",new mxGeometry(0,680,150,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#3D8BCD;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");N.vertex=!0;var M=new mxCell("Cancel",new mxGeometry(170,680,100,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fillColor\x3d#ffffff;align\x3dcenter;rSize\x3d5;strokeColor\x3d#dddddd;fontSize\x3d16;whiteSpace\x3dwrap;");
+M.vertex=!0;var V=new mxCell("Delete Template",new mxGeometry(630,680,170,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#DB524C;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");V.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,n,m,p,r,s,q,t,u,v,z,y,x,D,A,B,E,G,F,H,I,L,O,T,Y,C,U,P,N,M,V],800,720,"Edit Template")}),this.addEntry("bootstrap business contact",function(){var c=new mxCell("",new mxGeometry(0,
0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("2 fields selected",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;strokeColor\x3d#dddddd;fillColor\x3dnone;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(13,-7);d.vertex=!0;c.insert(d);d=new mxCell("Mark as OK",new mxGeometry(0,
0.5,90,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(150,-15);d.vertex=!0;c.insert(d);d=new mxCell("Mark as Violation",new mxGeometry(0,0.5,120,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(250,
-15);d.vertex=!0;c.insert(d);d=new mxCell("Mark all as OK",new mxGeometry(1,0.5,100,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(-110,-15);d.vertex=!0;c.insert(d);d=new mxCell("Phone",new mxGeometry(40,70,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");
d.vertex=!0;var b=new mxCell("",new mxGeometry(13,103,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;strokeColor\x3d#999999;fillColor\x3d#ffffff;");b.vertex=!0;var e=new mxCell("+38 (066) 875 67 97",new mxGeometry(40,90,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");e.vertex=!0;var g=new mxCell("ok",new mxGeometry(700,
100,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");g.vertex=!0;var k=new mxCell("Business email",new mxGeometry(40,140,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");k.vertex=!0;var l=new mxCell("",
new mxGeometry(13,173,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;strokeColor\x3d#999999;fillColor\x3d#ffffff;");l.vertex=!0;var n=new mxCell("seo@apple.com",new mxGeometry(40,160,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#FDF8E4;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");n.vertex=!0;var m=new mxCell("To Moderate",new mxGeometry(700,170,90,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#EFAC43;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");
-m.vertex=!0;var p=new mxCell("Skype",new mxGeometry(40,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");p.vertex=!0;var q=new mxCell("",new mxGeometry(13,243,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");q.vertex=!0;var r=new mxCell("alex.robby",new mxGeometry(40,230,640,
-40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");r.vertex=!0;var s=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");s.vertex=!0;return a.createVertexTemplateFromCells([c,
-d,b,e,g,k,l,n,m,p,q,r,s],800,270,"Business Contacts")}),this.addEntry("bootstrap experience",function(){var c=new mxCell("",new mxGeometry(0,0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("Select fields to update status",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");
+m.vertex=!0;var p=new mxCell("Skype",new mxGeometry(40,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");p.vertex=!0;var r=new mxCell("",new mxGeometry(13,243,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");r.vertex=!0;var s=new mxCell("alex.robby",new mxGeometry(40,230,640,
+40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");s.vertex=!0;var q=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");q.vertex=!0;return a.createVertexTemplateFromCells([c,
+d,b,e,g,k,l,n,m,p,r,s,q],800,270,"Business Contacts")}),this.addEntry("bootstrap experience",function(){var c=new mxCell("",new mxGeometry(0,0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("Select fields to update status",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");
d.geometry.relative=!0;d.geometry.offset=new mxPoint(13,-7);d.vertex=!0;c.insert(d);d=new mxCell("Position",new mxGeometry(40,70,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");d.vertex=!0;var b=new mxCell("",new mxGeometry(13,103,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");
b.vertex=!0;var e=new mxCell("Senior Engineer",new mxGeometry(40,90,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");e.vertex=!0;var g=new mxCell("ok",new mxGeometry(700,100,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");
g.vertex=!0;var k=new mxCell("Company",new mxGeometry(40,140,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");k.vertex=!0;var l=new mxCell("",new mxGeometry(13,173,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");l.vertex=!0;var n=new mxCell("Tesla Motors",new mxGeometry(40,
160,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");n.vertex=!0;var m=new mxCell("ok",new mxGeometry(700,170,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");m.vertex=!0;var p=new mxCell("Working from",
-new mxGeometry(40,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");p.vertex=!0;var q=new mxCell("",new mxGeometry(13,243,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");q.vertex=!0;var r=new mxCell("October",new mxGeometry(40,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
-r.vertex=!0;var s=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;whiteSpace\x3dwrap;");s.geometry.relative=!0;s.geometry.offset=new mxPoint(-30,-3);s.vertex=!0;r.insert(s);s=new mxCell("2011",new mxGeometry(190,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
-s.vertex=!0;var t=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;whiteSpace\x3dwrap;");t.geometry.relative=!0;t.geometry.offset=new mxPoint(-30,-3);t.vertex=!0;s.insert(t);t=new mxCell("Working to",new mxGeometry(400,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");t.vertex=
-!0;var u=new mxCell("Current time",new mxGeometry(580,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;align\x3dright;spacingRight\x3d5;fontColor\x3d#55C0E0;whiteSpace\x3dwrap;");u.vertex=!0;var v=new mxCell("",new mxGeometry(340,240,40,20),"shape\x3dline;strokeWidth\x3d2;shadow\x3d0;dashed\x3d0;");v.vertex=!0;var A=new mxCell("December",new mxGeometry(400,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
-A.vertex=!0;var y=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;");y.geometry.relative=!0;y.geometry.offset=new mxPoint(-30,-3);y.vertex=!0;A.insert(y);y=new mxCell("2012",new mxGeometry(550,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");y.vertex=!0;var x=
+new mxGeometry(40,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");p.vertex=!0;var r=new mxCell("",new mxGeometry(13,243,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");r.vertex=!0;var s=new mxCell("October",new mxGeometry(40,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
+s.vertex=!0;var q=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;whiteSpace\x3dwrap;");q.geometry.relative=!0;q.geometry.offset=new mxPoint(-30,-3);q.vertex=!0;s.insert(q);q=new mxCell("2011",new mxGeometry(190,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
+q.vertex=!0;var t=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;whiteSpace\x3dwrap;");t.geometry.relative=!0;t.geometry.offset=new mxPoint(-30,-3);t.vertex=!0;q.insert(t);t=new mxCell("Working to",new mxGeometry(400,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");t.vertex=
+!0;var u=new mxCell("Current time",new mxGeometry(580,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;align\x3dright;spacingRight\x3d5;fontColor\x3d#55C0E0;whiteSpace\x3dwrap;");u.vertex=!0;var v=new mxCell("",new mxGeometry(340,240,40,20),"shape\x3dline;strokeWidth\x3d2;shadow\x3d0;dashed\x3d0;");v.vertex=!0;var z=new mxCell("December",new mxGeometry(400,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
+z.vertex=!0;var y=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;");y.geometry.relative=!0;y.geometry.offset=new mxPoint(-30,-3);y.vertex=!0;z.insert(y);y=new mxCell("2012",new mxGeometry(550,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");y.vertex=!0;var x=
new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;");x.geometry.relative=!0;x.geometry.offset=new mxPoint(-30,-3);x.vertex=!0;y.insert(x);x=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");x.vertex=!0;return a.createVertexTemplateFromCells([c,
-d,b,e,g,k,l,n,m,p,q,r,s,t,u,v,A,y,x],800,270,"Experience")}),this.addEntry("bootstrap skills",function(){var c=new mxCell("",new mxGeometry(0,0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("Select fields to update status",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");
+d,b,e,g,k,l,n,m,p,r,s,q,t,u,v,z,y,x],800,270,"Experience")}),this.addEntry("bootstrap skills",function(){var c=new mxCell("",new mxGeometry(0,0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("Select fields to update status",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");
d.geometry.relative=!0;d.geometry.offset=new mxPoint(13,-7);d.vertex=!0;c.insert(d);d=new mxCell("Mark all as OK",new mxGeometry(1,0.5,100,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(-120,-15);d.vertex=!0;c.insert(d);d=new mxCell("",new mxGeometry(13,103,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");
d.vertex=!0;var b=new mxCell("Engineering",new mxGeometry(40,90,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");b.vertex=!0;var e=new mxCell("ok",new mxGeometry(700,100,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");
e.vertex=!0;var g=new mxCell("",new mxGeometry(13,173,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");g.vertex=!0;var k=new mxCell("Thinking",new mxGeometry(40,160,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#FDF8E4;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");k.vertex=!0;var l=new mxCell("To Moderate",new mxGeometry(700,
170,90,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#EFAC43;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");l.vertex=!0;var n=new mxCell("",new mxGeometry(13,243,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");n.vertex=!0;var m=new mxCell("Working",new mxGeometry(40,230,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
-m.vertex=!0;var p=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");p.vertex=!0;var q=new mxCell("",new mxGeometry(13,313,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");q.vertex=!0;var r=new mxCell("Sleeping",new mxGeometry(40,
-300,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");r.vertex=!0;var s=new mxCell("ok",new mxGeometry(700,310,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");s.vertex=!0;var t=new mxCell("",
+m.vertex=!0;var p=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");p.vertex=!0;var r=new mxCell("",new mxGeometry(13,313,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");r.vertex=!0;var s=new mxCell("Sleeping",new mxGeometry(40,
+300,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");s.vertex=!0;var q=new mxCell("ok",new mxGeometry(700,310,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");q.vertex=!0;var t=new mxCell("",
new mxGeometry(13,383,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");t.vertex=!0;var u=new mxCell("Eating",new mxGeometry(40,370,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");u.vertex=!0;var v=new mxCell("ok",new mxGeometry(700,380,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");
-v.vertex=!0;var A=new mxCell("",new mxGeometry(13,453,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");A.vertex=!0;var y=new mxCell("Walking",new mxGeometry(40,440,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");y.vertex=!0;var x=new mxCell("ok",new mxGeometry(700,
-450,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");x.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,n,m,p,q,r,s,t,u,v,A,y,x],800,480,"Skills")}),this.addEntry("bootstrap chat",function(){var c=new mxCell("",new mxGeometry(0,0,400,660),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3d#333333;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");
+v.vertex=!0;var z=new mxCell("",new mxGeometry(13,453,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");z.vertex=!0;var y=new mxCell("Walking",new mxGeometry(40,440,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");y.vertex=!0;var x=new mxCell("ok",new mxGeometry(700,
+450,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");x.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,n,m,p,r,s,q,t,u,v,z,y,x],800,480,"Skills")}),this.addEntry("bootstrap chat",function(){var c=new mxCell("",new mxGeometry(0,0,400,660),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3d#333333;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,400,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3d#333333;fillColor\x3d#333333;whiteSpace\x3dwrap;resizeWidth\x3d1;");d.geometry.relative=!0;d.vertex=!0;c.insert(d);var b=new mxCell("John Boo",new mxGeometry(0,0.5,30,30),"shape\x3dellipse;strokeColor\x3dnone;fillColor\x3d#f0f0f0;labelPosition\x3dright;align\x3dleft;spacingLeft\x3d10;fontColor\x3d#f0f0f0;html\x3d1;");b.geometry.relative=!0;b.geometry.offset=
new mxPoint(15,-15);b.vertex=!0;d.insert(b);var e=new mxCell("",new mxGeometry(0.5,0.5,20,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.user;strokeColor\x3dnone;fillColor\x3d#999999;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(-10,-10);e.vertex=!0;b.insert(e);b=new mxCell("Michael Robinson",new mxGeometry(1,0.5,30,30),"shape\x3dellipse;strokeColor\x3dnone;fillColor\x3d#f0f0f0;labelPosition\x3dleft;align\x3dright;spacingRight\x3d10;fontColor\x3d#f0f0f0;html\x3d1;");b.geometry.relative=
!0;b.geometry.offset=new mxPoint(-45,-15);b.vertex=!0;d.insert(b);d=new mxCell("",new mxGeometry(0.5,0.5,20,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.user;strokeColor\x3dnone;fillColor\x3d#999999;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(-10,-10);d.vertex=!0;b.insert(d);d=new mxCell("15 September 2013",new mxGeometry(0,0,400,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#fdfdfd;fontColor\x3d#999999;whiteSpace\x3dwrap;resizeWidth\x3d1;");
@@ -4039,10 +4039,10 @@ f=this,d=[this.createVertexTemplateEntry(a+"cabinet;hasStand\x3d1",250,500,"","C
12.5,"25x40","Panel Wiring System 25x40mm (Vertical)",null,null,this.getTagsForStencil("mxgraph.cabinets","","cabinet panel wiring system").join(" ")),this.createVertexTemplateEntry("shape\x3drect;dashed\x3d0;shadow\x3d0;html\x3d1;whiteSpace\x3dwrap;rotation\x3d270",350,20,"40x40","Panel Wiring System 40x40mm (Vertical)",null,null,this.getTagsForStencil("mxgraph.cabinets","","cabinet panel wiring system").join(" ")),this.createVertexTemplateEntry("shape\x3drect;dashed\x3d0;shadow\x3d0;html\x3d1;whiteSpace\x3dwrap;rotation\x3d270",
350,30,"60x40","Panel Wiring System 60x40mm (Vertical)",null,null,this.getTagsForStencil("mxgraph.cabinets","","cabinet panel wiring system").join(" ")),this.createVertexTemplateEntry("shape\x3drect;dashed\x3d0;shadow\x3d0;html\x3d1;whiteSpace\x3dwrap;rotation\x3d270",350,40,"80x40","Panel Wiring System 80x40mm (Vertical)",null,null,this.getTagsForStencil("mxgraph.cabinets","","cabinet panel wiring system").join(" ")),this.createVertexTemplateEntry("shape\x3drect;dashed\x3d0;shadow\x3d0;html\x3d1;whiteSpace\x3dwrap;rotation\x3d270",
350,50,"100x40","Panel Wiring System 100x40mm (Vertical)",null,null,this.getTagsForStencil("mxgraph.cabinets","","cabinet panel wiring system").join(" ")),this.createVertexTemplateEntry(a+"cb_1p;",9,50,"","Circuit Breaker (1P)",null,null,this.getTagsForStencil("mxgraph.cabinets","cb_1p","cabinet ").join(" ")),this.addEntry("cabinet circuit breaker row",function(){var b=new mxCell("",new mxGeometry(0,0,9,50),a+"cb_1p;");b.vertex=!0;var d=new mxCell("",new mxGeometry(9,0,9,50),a+"cb_1p;");d.vertex=
-!0;var c=new mxCell("",new mxGeometry(18,0,9,50),a+"cb_1p;");c.vertex=!0;var k=new mxCell("",new mxGeometry(27,0,9,50),a+"cb_1p;");k.vertex=!0;var l=new mxCell("",new mxGeometry(36,0,9,50),a+"cb_1p;");l.vertex=!0;var n=new mxCell("",new mxGeometry(45,0,9,50),a+"cb_1p;");n.vertex=!0;var m=new mxCell("",new mxGeometry(54,0,9,50),a+"cb_1p;");m.vertex=!0;var p=new mxCell("",new mxGeometry(63,0,9,50),a+"cb_1p;");p.vertex=!0;var q=new mxCell("",new mxGeometry(72,0,9,50),a+"cb_1p;");q.vertex=!0;var r=new mxCell("",
-new mxGeometry(81,0,9,50),a+"cb_1p;");r.vertex=!0;return f.createVertexTemplateFromCells([b,d,c,k,l,n,m,p,q,r],90,50,"Circuit Breaker (1P x 10)")}),this.createVertexTemplateEntry(a+"cb_2p;",18,50,"","Circuit Breaker (2P)",null,null,this.getTagsForStencil("mxgraph.cabinets","cb_2p","cabinet ").join(" ")),this.addEntry("cabinet circuit breaker row",function(){var b=new mxCell("",new mxGeometry(0,0,18,50),a+"cb_2p;");b.vertex=!0;var d=new mxCell("",new mxGeometry(18,0,18,50),a+"cb_2p;");d.vertex=!0;
-var c=new mxCell("",new mxGeometry(36,0,18,50),a+"cb_2p;");c.vertex=!0;var k=new mxCell("",new mxGeometry(54,0,18,50),a+"cb_2p;");k.vertex=!0;var l=new mxCell("",new mxGeometry(72,0,18,50),a+"cb_2p;");l.vertex=!0;var n=new mxCell("",new mxGeometry(90,0,18,50),a+"cb_2p;");n.vertex=!0;var m=new mxCell("",new mxGeometry(108,0,18,50),a+"cb_2p;");m.vertex=!0;var p=new mxCell("",new mxGeometry(126,0,18,50),a+"cb_2p;");p.vertex=!0;var q=new mxCell("",new mxGeometry(144,0,18,50),a+"cb_2p;");q.vertex=!0;var r=
-new mxCell("",new mxGeometry(162,0,18,50),a+"cb_2p;");r.vertex=!0;return f.createVertexTemplateFromCells([b,d,c,k,l,n,m,p,q,r],180,50,"Circuit Breaker (2P x 10)")}),this.createVertexTemplateEntry(a+"cb_3p;",27,50,"","Circuit Breaker (3P)",null,null,this.getTagsForStencil("mxgraph.cabinets","cb_3p","cabinet ").join(" ")),this.addEntry("cabinet circuit breaker row",function(){var b=new mxCell("",new mxGeometry(0,0,27,50),a+"cb_3p;");b.vertex=!0;var d=new mxCell("",new mxGeometry(27,0,27,50),a+"cb_3p;");
+!0;var c=new mxCell("",new mxGeometry(18,0,9,50),a+"cb_1p;");c.vertex=!0;var k=new mxCell("",new mxGeometry(27,0,9,50),a+"cb_1p;");k.vertex=!0;var l=new mxCell("",new mxGeometry(36,0,9,50),a+"cb_1p;");l.vertex=!0;var n=new mxCell("",new mxGeometry(45,0,9,50),a+"cb_1p;");n.vertex=!0;var m=new mxCell("",new mxGeometry(54,0,9,50),a+"cb_1p;");m.vertex=!0;var p=new mxCell("",new mxGeometry(63,0,9,50),a+"cb_1p;");p.vertex=!0;var r=new mxCell("",new mxGeometry(72,0,9,50),a+"cb_1p;");r.vertex=!0;var s=new mxCell("",
+new mxGeometry(81,0,9,50),a+"cb_1p;");s.vertex=!0;return f.createVertexTemplateFromCells([b,d,c,k,l,n,m,p,r,s],90,50,"Circuit Breaker (1P x 10)")}),this.createVertexTemplateEntry(a+"cb_2p;",18,50,"","Circuit Breaker (2P)",null,null,this.getTagsForStencil("mxgraph.cabinets","cb_2p","cabinet ").join(" ")),this.addEntry("cabinet circuit breaker row",function(){var b=new mxCell("",new mxGeometry(0,0,18,50),a+"cb_2p;");b.vertex=!0;var d=new mxCell("",new mxGeometry(18,0,18,50),a+"cb_2p;");d.vertex=!0;
+var c=new mxCell("",new mxGeometry(36,0,18,50),a+"cb_2p;");c.vertex=!0;var k=new mxCell("",new mxGeometry(54,0,18,50),a+"cb_2p;");k.vertex=!0;var l=new mxCell("",new mxGeometry(72,0,18,50),a+"cb_2p;");l.vertex=!0;var n=new mxCell("",new mxGeometry(90,0,18,50),a+"cb_2p;");n.vertex=!0;var m=new mxCell("",new mxGeometry(108,0,18,50),a+"cb_2p;");m.vertex=!0;var p=new mxCell("",new mxGeometry(126,0,18,50),a+"cb_2p;");p.vertex=!0;var r=new mxCell("",new mxGeometry(144,0,18,50),a+"cb_2p;");r.vertex=!0;var s=
+new mxCell("",new mxGeometry(162,0,18,50),a+"cb_2p;");s.vertex=!0;return f.createVertexTemplateFromCells([b,d,c,k,l,n,m,p,r,s],180,50,"Circuit Breaker (2P x 10)")}),this.createVertexTemplateEntry(a+"cb_3p;",27,50,"","Circuit Breaker (3P)",null,null,this.getTagsForStencil("mxgraph.cabinets","cb_3p","cabinet ").join(" ")),this.addEntry("cabinet circuit breaker row",function(){var b=new mxCell("",new mxGeometry(0,0,27,50),a+"cb_3p;");b.vertex=!0;var d=new mxCell("",new mxGeometry(27,0,27,50),a+"cb_3p;");
d.vertex=!0;var c=new mxCell("",new mxGeometry(54,0,27,50),a+"cb_3p;");c.vertex=!0;var k=new mxCell("",new mxGeometry(81,0,27,50),a+"cb_3p;");k.vertex=!0;var l=new mxCell("",new mxGeometry(108,0,27,50),a+"cb_3p;");l.vertex=!0;return f.createVertexTemplateFromCells([b,d,c,k,l],135,50,"Circuit Breaker (3P x 5)")}),this.createVertexTemplateEntry(a+"cb_4p;",36,50,"","Circuit Breaker (4P)",null,null,this.getTagsForStencil("mxgraph.cabinets","cb_4p","cabinet ").join(" ")),this.addEntry("cabinet circuit breaker row",
function(){var b=new mxCell("",new mxGeometry(0,0,36,50),a+"cb_4p;");b.vertex=!0;var d=new mxCell("",new mxGeometry(36,0,36,50),a+"cb_4p;");d.vertex=!0;var c=new mxCell("",new mxGeometry(72,0,36,50),a+"cb_4p;");c.vertex=!0;var k=new mxCell("",new mxGeometry(108,0,36,50),a+"cb_4p;");k.vertex=!0;var l=new mxCell("",new mxGeometry(144,0,36,50),a+"cb_4p;");l.vertex=!0;return f.createVertexTemplateFromCells([b,d,c,k,l],180,50,"Circuit Breaker (4P x 5)")}),this.createVertexTemplateEntry(a+"cb_auxiliary_contact;",
4.5,50,"","Auxiliary Contact (Circuit Breaker)",null,null,this.getTagsForStencil("mxgraph.cabinets","cb_auxiliary_contact","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"contactor_1_32a;",27,43,"","Contactor (1-32A)",null,null,this.getTagsForStencil("mxgraph.cabinets","contactor_1_32a","cabinet ").join(" ")),this.createVertexTemplateEntry(a+"auxiliary_contact_contactor_1_32a;",4.5,43,"","Auxiliary Contact (Contactor 1-32A)",null,null,this.getTagsForStencil("mxgraph.cabinets","auxiliary_contact_contactor_1_32a",
@@ -4114,9 +4114,9 @@ this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fon
this.addEntry("eip enterprise integration pattern message routing message broker",function(){var a=new mxCell("",new mxGeometry(47,0,26,18),"strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;shape\x3drect;fillColor\x3d#fffbc0;strokeColor\x3d#000000;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,18,26,18),"strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;shape\x3drect;fillColor\x3d#fffbc0;strokeColor\x3d#000000;");b.vertex=!0;var e=new mxCell("",new mxGeometry(94,18,26,18),
"strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;shape\x3drect;fillColor\x3d#fffbc0;strokeColor\x3d#000000;");e.vertex=!0;var f=new mxCell("",new mxGeometry(0,54,26,18),"strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;shape\x3drect;fillColor\x3d#fffbc0;strokeColor\x3d#000000;");f.vertex=!0;var k=new mxCell("",new mxGeometry(94,54,26,18),"strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;shape\x3drect;fillColor\x3d#fffbc0;strokeColor\x3d#000000;");k.vertex=!0;var l=new mxCell("",
new mxGeometry(47,72,26,18),"strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;shape\x3drect;fillColor\x3d#fffbc0;strokeColor\x3d#000000;");l.vertex=!0;var n=new mxCell("",new mxGeometry(47,36,26,18),"strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;shape\x3drect;fillColor\x3d#c0f5a9;strokeColor\x3d#000000;");n.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");m.geometry.relative=!0;m.edge=!0;a.insertEdge(m,
-!1);n.insertEdge(m,!0);var p=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");p.geometry.relative=!0;p.edge=!0;b.insertEdge(p,!1);n.insertEdge(p,!0);var q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");q.geometry.relative=!0;q.edge=!0;e.insertEdge(q,!1);n.insertEdge(q,!0);var r=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");
-r.geometry.relative=!0;r.edge=!0;f.insertEdge(r,!1);n.insertEdge(r,!0);var s=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");s.geometry.relative=!0;s.edge=!0;k.insertEdge(s,!1);n.insertEdge(s,!0);var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");t.geometry.relative=!0;t.edge=!0;l.insertEdge(t,!1);n.insertEdge(t,!0);return c.createVertexTemplateFromCells([a,b,
-e,f,k,l,n,m,p,q,r,s,t],120,90,"Message Broker")}),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.message_filter;",150,90,"","Message Filter",null,null,this.getTagsForStencil("mxgraph.eip","message_filter","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.process_manager;",
+!1);n.insertEdge(m,!0);var p=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");p.geometry.relative=!0;p.edge=!0;b.insertEdge(p,!1);n.insertEdge(p,!0);var r=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");r.geometry.relative=!0;r.edge=!0;e.insertEdge(r,!1);n.insertEdge(r,!0);var s=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");
+s.geometry.relative=!0;s.edge=!0;f.insertEdge(s,!1);n.insertEdge(s,!0);var q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");q.geometry.relative=!0;q.edge=!0;k.insertEdge(q,!1);n.insertEdge(q,!0);var t=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dnone;dashed\x3d0;html\x3d1;strokeWidth\x3d2;");t.geometry.relative=!0;t.edge=!0;l.insertEdge(t,!1);n.insertEdge(t,!0);return c.createVertexTemplateFromCells([a,b,
+e,f,k,l,n,m,p,r,s,q,t],120,90,"Message Broker")}),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.message_filter;",150,90,"","Message Filter",null,null,this.getTagsForStencil("mxgraph.eip","message_filter","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.process_manager;",
150,90,"","Process Manager",null,null,this.getTagsForStencil("mxgraph.eip","process_manager","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.recipient_list;",150,90,"","Recipient List",null,null,this.getTagsForStencil("mxgraph.eip","recipient_list","eip enterprise integration pattern message routing ").join(" ")),
this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.resequencer;",150,90,"","Resequencer",null,null,this.getTagsForStencil("mxgraph.eip","resequencer","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.routing_slip;",
150,90,"","Routing Slip",null,null,this.getTagsForStencil("mxgraph.eip","routing_slip","eip enterprise integration pattern message routing ").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;fillColor\x3d#c0f5a9;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;strokeColor\x3d#000000;shape\x3dmxgraph.eip.splitter;",150,90,"","Splitter",null,null,this.getTagsForStencil("mxgraph.eip","splitter","eip enterprise integration pattern message routing ").join(" "))];
@@ -4166,90 +4166,164 @@ this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fon
this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;shape\x3dmxgraph.eip.test_message;fillColor\x3d#c0f5a9;strokeColor\x3d#000000;",150,90,"","Test Message",null,null,this.getTagsForStencil("mxgraph.eip","test_message","eip enterprise integration pattern system management ").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fontSize\x3d8;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;shape\x3dmxgraph.eip.wire_tap;fillColor\x3d#c0f5a9;strokeColor\x3d#000000;",
150,90,"","Wire Tap",null,null,this.getTagsForStencil("mxgraph.eip","wire_tap","eip enterprise integration pattern system management ").join(" "))])}})();
(function(){Sidebar.prototype.addElectricalPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;strokeWidth\x3d1;"+mxConstants.STYLE_SHAPE,c=a+"\x3dmxgraph.electrical.abstract.",f=a+"\x3dmxgraph.electrical.capacitors.",d="fillColor\x3d#000000;"+a+"\x3dmxgraph.electrical.diodes.",b=a+"\x3dmxgraph.electrical.inductors.",e=a+"\x3dmxgraph.electrical.miscellaneous.",
-g=a+"\x3dmxgraph.electrical.electro-mechanical.",k=a+"\x3dmxgraph.electrical.logic_gates.",l=a+"\x3dmxgraph.electrical.mosfets1.",n=a+"\x3dmxgraph.electrical.transistors.",m=a+"\x3dmxgraph.electrical.opto_electronics.",p=a+"\x3dmxgraph.electrical.plc_ladder.",q=a+"\x3dmxgraph.electrical.radio.",r=a+"\x3dmxgraph.electrical.resistors.",s=a+"\x3dmxgraph.electrical.signal_sources.",t=a+"\x3dmxgraph.electrical.thermionic_devices.",u=a+"\x3dmxgraph.electrical.waveforms.",v="perimeter\x3dellipsePerimeter;"+
-a+"\x3dmxgraph.electrical.instruments.",A=a+"\x3dmxgraph.electrical.iec_logic_gates.";this.addPaletteFunctions("eeLogicGates","Electrical / Logic Gates",!1,[this.createVertexTemplateEntry(k+"and;",100,60,"","AND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","and","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"buffer;",100,60,"","Buffer",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","buffer","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+
-"d_type_flip-flop;",100,80,"","D Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_flip-flop_with_clear;",100,90,"","D Type Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_rs_flip-flop;",100,100,"","D Type RS Flip-Flop",null,
-null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_rs_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverter;",100,60,"","Inverter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverter","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverting_contact;",5,5,"","Inverting Contact",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverting_contact","electrical logic gate ").join(" ")),
-this.createVertexTemplateEntry(k+"jk_flip-flop;",100,80,"","JK Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop_with_clear;",100,90,"","JK Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop_with_sr;",100,100,"","JK Flip-Flop With SR",
-null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_sr","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nand;",100,60,"","NAND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nand","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nor;",100,60,"","NOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"or;",100,
-60,"","OR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","or","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"rs_latch;",100,80,"","RS Latch",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","rs_latch","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"synchronous_rs_latch;",100,80,"","RS Latch (Synchronous)",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","synchronous_rs_latch","electrical logic gate ").join(" ")),
-this.createVertexTemplateEntry(k+"schmitt_trigger;",100,60,"","Schmitt Trigger",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","schmitt_trigger","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"t_type_flip-flop;",100,80,"","T Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","t_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xnor;",100,60,"","XNOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
-"xnor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xor;",100,60,"","XOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","xor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(A+"and;",60,80,"","AND (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","and","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(A+"nand;",66,80,"","NAND (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates",
-"nand","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(A+"or;",60,80,"","OR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","or","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(A+"nor;",66,80,"","NOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","nor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(A+"not;",66,80,"","NOT (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates",
-"xor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(A+"xor;",60,80,"","XOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","xor","electrical iec logic gate ").join(" "))]);this.addPaletteFunctions("eeResistors","Electrical / Resistors",!1,[this.createVertexTemplateEntry(r+"resistor_1;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+
-"resistor_2;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"potentiometer_1;",100,40,"","Potentiometer",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"potentiometer_2;",100,40,"","Potentiometer",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_2",
-"electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"trimmer_pot_1;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"trimmer_pot_2;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"trimmer_resistor_1;",100,65.5,
-"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"trimmer_resistor_2;",100,65.5,"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"variable_resistor_1;",100,60,"","Resistor (Variable)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
-"variable_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"variable_resistor_2;",100,60,"","Resistor (Variable)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","variable_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"resistor_with_instrument_or_relay_shunt;",100,20,"","Resistor (Instrument/Relay Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_with_instrument_or_relay_shunt","electrical resistor ").join(" ")),
-this.createVertexTemplateEntry(r+"resistor,_adjustable_contact;",100,40,"","Resistor (Adjustable Contact)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_adjustable_contact","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"resistor,_shunt;",100,45,"","Resistor (Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_shunt","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"symmetrical_varistor;",100,60,"",
-"Varistor (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","symmetrical_varistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"tapped_resistor;",100,40,"","Resistor (Tapped)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","tapped_resistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"nonlinear_resistor;",100,60,"","Resistor (Nonlinear)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","nonlinear_resistor",
-"electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"memristor_1;",100,20,"","Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"memristor_2;",100,24,"","Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"magnetoresistor;",100,60,"","Magnetoresistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
-"magnetoresistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(r+"symmetrical_photoconductive_transducer;",100,40,"","Photoconductive Transducer (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","symmetrical_photoconductive_transducer","electrical resistor ").join(" "))]);this.addPaletteFunctions("eeCapacitors","Electrical / Capacitors",!1,[this.createVertexTemplateEntry(f+"capacitor_1;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors",
-"capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_2;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_3;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_3","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_4;",100,60,"",
-"Capacitor (UK)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_4","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_5;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_5","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_6;",100,60,"","Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_6","electrical capacitor ").join(" ")),
-this.createVertexTemplateEntry(f+"differential_capacitor;",100,80,"","Differential Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","differential_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_1;",100,65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_2;",100,
-65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_1;",100,60,"","Trimmer Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","variable_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_2;",100,60,"","Trimmer Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors",
-"variable_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"feed_through_capacitor;",100,90,"","Feed Through Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","feed_through_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"ganged_capacitor;",100,130,"","Ganged Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","ganged_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+
-"multiple_capacitor;",100,130,"","Multiple Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_neg;",100,130,"","Multiple Electrolytic Capacitor (Common Negative)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_neg","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_pos;",
-100,130,"","Multiple Electrolytic Capacitor (Common Positive)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_pos","electrical capacitor ").join(" "))]);this.addPaletteFunctions("eeInductors","Electrical / Inductors",!1,[this.createVertexTemplateEntry(b+"inductor_3;",100,8,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_3","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_5;",
-100,14,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_5","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_1;",100,15,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_1","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"variable_inductor;",100,60,"","Variable",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","variable_inductor","electrical inductor ").join(" ")),
-this.createVertexTemplateEntry(b+"ferrite_core;",64,4,"","Ferrite Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","ferrite_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"iron_core;",64,4,"","Iron Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","iron_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer_1;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
-"transformer_1","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer_2;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transformer_2","electrical inductor ").join(" "))]);this.addPaletteFunctions("eeSwitchesRelays","Electrical / Switches and Relays",!1,[this.createVertexTemplateEntry(g+"2-way_switch;",75,26,"","SPDT",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","2-way_switch","electrical switch relay ").join(" ")),
-this.createVertexTemplateEntry(g+"push_switch_nc;",75,10,"","Pushbutton NC",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push_switch_nc","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"push_switch_no;",75,19,"","Pushbutton NO",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push_switch_no","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"reed_switch;",75,20,"","Reed Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
-"reed_switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay_coil;",70,35,"","Relay Coil",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay_coil","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"resonator;",100,50,"","Resonator",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","resonator","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"simple_switch;",75,32,"","SPST",
-null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","simple_switch","electrical switch relay ").join(" "))]);this.addPaletteFunctions("eeDiodes","Electrical / Diodes",!1,[this.createVertexTemplateEntry(d+"diode;",100,60,"","PN Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"gunn_diode;",100,60,"","Gunn Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","gunn_diode","electrical diode ").join(" ")),
-this.createVertexTemplateEntry(d+"schottky_diode;",100,60,"","Schottky Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","schottky_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_2;",100,60,"","Breakdown",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_2","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"tunnel_diode;",100,60,"","Tunnel Diode 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes",
+g=a+"\x3dmxgraph.electrical.electro-mechanical.",k=a+"\x3dmxgraph.electrical.logic_gates.",l=a+"\x3dmxgraph.electrical.mosfets1.",n=a+"\x3dmxgraph.electrical.transistors.",m=a+"\x3dmxgraph.electrical.opto_electronics.",p=a+"\x3dmxgraph.electrical.plc_ladder.",r=a+"\x3dmxgraph.electrical.radio.",s=a+"\x3dmxgraph.electrical.resistors.",q=a+"\x3dmxgraph.electrical.signal_sources.",t=a+"\x3dmxgraph.electrical.thermionic_devices.",u=a+"\x3dmxgraph.electrical.waveforms.",v="perimeter\x3dellipsePerimeter;"+
+a+"\x3dmxgraph.electrical.instruments.",z=a+"\x3dmxgraph.electrical.iec_logic_gates.",y=a+"\x3dmxgraph.electrical.rot_mech.",x=a+"\x3dmxgraph.electrical.transmission.";this.addPaletteFunctions("electricalLogicGates","Electrical / Logic Gates",!1,[this.createVertexTemplateEntry(k+"and;",100,60,"","AND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","and","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"buffer;",100,60,"","Buffer",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
+"buffer","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_flip-flop;",100,80,"","D Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_flip-flop_with_clear;",100,90,"","D Type Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+
+"d_type_rs_flip-flop;",100,100,"","D Type RS Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_rs_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverter;",100,60,"","Inverter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverter","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverting_contact;",5,5,"","Inverting Contact",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
+"inverting_contact","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop;",100,80,"","JK Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop_with_clear;",100,90,"","JK Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+
+"jk_flip-flop_with_sr;",100,100,"","JK Flip-Flop With SR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_sr","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nand;",100,60,"","NAND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nand","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nor;",100,60,"","NOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nor","electrical logic gate ").join(" ")),
+this.createVertexTemplateEntry(k+"or;",100,60,"","OR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","or","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"rs_latch;",100,80,"","RS Latch",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","rs_latch","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"synchronous_rs_latch;",100,80,"","RS Latch (Synchronous)",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","synchronous_rs_latch",
+"electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"schmitt_trigger;",100,60,"","Schmitt Trigger",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","schmitt_trigger","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"t_type_flip-flop;",100,80,"","T Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","t_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xnor;",100,60,"","XNOR",null,
+null,this.getTagsForStencil("mxgraph.electrical.logic_gates","xnor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xor;",100,60,"","XOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","xor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(z+"and;",60,80,"","AND (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","and","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"nand;",66,80,"","NAND (IEC)",
+null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","nand","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"or;",60,80,"","OR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","or","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"nor;",66,80,"","NOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","nor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+
+"not;",66,80,"","NOT (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","xor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"xor;",60,80,"","XOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","xor","electrical iec logic gate ").join(" "))]);this.addPaletteFunctions("electricalResistors","Electrical / Resistors",!1,[this.createVertexTemplateEntry(s+"resistor_1;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor_2;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"potentiometer_1;",100,40,"","Potentiometer",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"potentiometer_2;",100,40,"","Potentiometer",
+null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_pot_1;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_pot_2;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_2","electrical resistor ").join(" ")),
+this.createVertexTemplateEntry(s+"trimmer_resistor_1;",100,65.5,"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_resistor_2;",100,65.5,"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"variable_resistor_1;",100,60,"","Resistor (Variable)",
+null,null,this.getTagsForStencil("mxgraph.electrical.resistors","variable_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"variable_resistor_2;",100,60,"","Resistor (Variable)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","variable_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor_with_instrument_or_relay_shunt;",100,20,"","Resistor (Instrument/Relay Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"resistor_with_instrument_or_relay_shunt","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"attenuator;",100,60,"","Attenuator",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","attenuator","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor,_adjustable_contact;",100,40,"","Resistor (Adjustable Contact)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_adjustable_contact","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+
+"resistor,_shunt;",100,45,"","Resistor (Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_shunt","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"symmetrical_varistor;",100,60,"","Varistor (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","symmetrical_varistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"tapped_resistor;",100,40,"","Resistor (Tapped)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"tapped_resistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"nonlinear_resistor;",100,60,"","Resistor (Nonlinear)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","nonlinear_resistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"memristor_1;",100,20,"","Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"memristor_2;",100,24,"",
+"Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"magnetoresistor;",100,60,"","Magnetoresistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","magnetoresistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"symmetrical_photoconductive_transducer;",100,40,"","Photoconductive Transducer (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"symmetrical_photoconductive_transducer","electrical resistor ").join(" "))]);this.addPaletteFunctions("electricalCapacitors","Electrical / Capacitors",!1,[this.createVertexTemplateEntry(f+"capacitor_1;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_2;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_2","electrical capacitor ").join(" ")),
+this.createVertexTemplateEntry(f+"capacitor_3;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_3","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_4;",100,60,"","Capacitor (UK)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_4","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_5;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors",
+"capacitor_5","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_6;",100,60,"","Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_6","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"differential_capacitor;",100,80,"","Differential Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","differential_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_1;",
+100,65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_2;",100,65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_1;",100,60,"","Trimmer Variable Capacitor (US)",null,null,
+this.getTagsForStencil("mxgraph.electrical.capacitors","variable_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_2;",100,60,"","Trimmer Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","variable_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"feed_through_capacitor;",100,90,"","Feed Through Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","feed_through_capacitor",
+"electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"ganged_capacitor;",100,130,"","Ganged Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","ganged_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_capacitor;",100,130,"","Multiple Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_neg;",
+100,130,"","Multiple Electrolytic Capacitor (Common Negative)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_neg","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_pos;",100,130,"","Multiple Electrolytic Capacitor (Common Positive)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_pos","electrical capacitor ").join(" "))]);this.addPaletteFunctions("electricalInductors",
+"Electrical / Inductors",!1,[this.createVertexTemplateEntry(b+"inductor_3;",100,8,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_3","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_5;",100,14,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_5","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_1;",100,15,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"inductor_1","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"variable_inductor;",100,60,"","Variable",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","variable_inductor","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"ferrite_core;",64,4,"","Ferrite Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","ferrite_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"iron_core;",64,4,"","Iron Core",null,null,
+this.getTagsForStencil("mxgraph.electrical.inductors","iron_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"magnetic_core;direction\x3dnorth;",64,3,"","Magnetic Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","magnetic core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer_1;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transformer_1","electrical inductor ").join(" ")),
+this.createVertexTemplateEntry(b+"transformer_2;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transformer_2","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"half_inductor;",32,23,"","Half Inductor",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","half inductor","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer;direction\x3dnorth;",64,64,"","Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor;",100,42,"","Inductor",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"choke;",100,200,"","Choke",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","choke","electrical inductor ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dtop;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dbottom;strokeWidth\x3d1;shape\x3dmxgraph.electrical.inductors.variometer;",
+150,88,"","Variometer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","variometer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"coaxial_choke;",300,50,"","Coaxial Choke",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","coaxial choke","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transductor;",200,100,"","Transductor",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transductor","electrical inductor ").join(" ")),
+this.createVertexTemplateEntry(b+"saturating_transformer;",200,150,"","Saturating Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","saturating_transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"potential_transformer_2;",92,40,"","Potential Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","potential transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"pot_trans_3_windings;",67,96,"",
+"Pot. Trans. 3 Windings",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","potential transformer 3 three windings","electrical inductor ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.signal_sources.current_source;",40,60,"","Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"adjustable_transformer;",46,60,"","Adjustable Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","adjustable_transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"1_phase_induction_volt_reg;",100,100,"","1-Phase Induction Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","1 phase induction voltage regulator monophase","electrical inductor ").join(" ")),
+this.createVertexTemplateEntry(b+"triplex_induction_volt_reg;",100,100,"","Triplex Induction Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","triplex induction voltage regulator","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"induction_voltage_regulator;",160,210,"","Induction Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","induction voltage regulator","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+
+"current_transformer_1;",12,75,"","Current Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","current transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"current_transformer_2;",125,175,"","Current Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","current transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"current_transformer_3;",75,10,"","Current Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"current transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"potential_transformer;",100,50,"","Potential Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","potential transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"outdoor_metering_device;",100,100,"","Outdoor Metering Device",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","outdoor metering device","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+
+"linear_coupler;",80,20,"","Linear Coupler",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","linear coupler","electrical inductor ").join(" "))]);this.addPaletteFunctions("electricalSwitchesRelays","Electrical / Switches and Relays",!1,[this.createVertexTemplateEntry(g+"2-way_switch;",75,26,"","SPDT",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","2-way switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"push_switch_nc;",75,10,
+"","Pushbutton NC",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push switch nc","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"push_switch_no;",75,19,"","Pushbutton NO",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push switch no","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"simple_switch;",75,19,"","SPST",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","simple switch",
+"electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"switch_disconnector;",75,19,"","Switch Disconnector",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","switch disconnector","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"fuse;",75,16,"","Fuse",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","fuse","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"liquid_level_actuated;",75,28,"",
+"Liquid Level Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","liquid level actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"liquid_level_actuated_2;",75,32,"","Liquid Level Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","liquid level actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"gas_flow_actuated;",75,32,"","Gas Flow Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"gas flow actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"flow_actuated;",75,31,"","Flow Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","flow actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pressure_actuated;",75,31,"","Pressure Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","pressure actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+
+"temperature_actuated;",75,31,"","Temperature Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","temperature actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"safety_interlock;",75,37,"","Safety Interlock",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","safety interlock","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"temperature_switch;",75,18,"","Temperature Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"temperature switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dtop;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dbottom;strokeWidth\x3d1;shape\x3dmxgraph.electrical.electro-mechanical.thermostat;fontColor\x3d#000000;fontSize\x3d10;",75,7,"t\u00ba","Thermostat",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","thermostat","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"limit_switch;",75,16,"","Limit Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","limit switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"circuit_breaker;",75,20,"","Circuit Breaker",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","circuit breaker","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"selector_switch;",75,66,"","Selector Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"selector_switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"shorting_selector;",60,66,"","Shorting Selector",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","shorting selector","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"proximity_limit_switch;",75,55,"","Proximity Limit Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","proximity limit switch","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"inertia_switch;",75,19,"","Inertia Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","inertia switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pushbutton_break;",75,54,"","Pushbutton Break",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","pushbutton break","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"manual_switch;",75,18,"","Manual Switch",null,null,
+this.getTagsForStencil("mxgraph.electrical.electro-mechanical","manual switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"make_contact;",75,16,"","Make Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","make contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"break_contact;",75,10,"","Break Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","break contact","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"two_way_contact;",75,30,"","Two Way Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","two way contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"passing_make_contact;",75,23,"","Passing Make-Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","passing make contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"stay_put;",75,7,"","Stay Put",null,
+null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","stay put","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"dpst;",75,26,"","DPST",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","dpst","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"spring_return;",75,10,"","Spring Return",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","spring return","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+
+"spring_return_2;",75,19,"","Spring Return",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","spring return","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"limit_switch_no;",75,24,"","Limit Switch NO",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","limit switch no normally open","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"limit_switch_nc;",75,13,"","Limit Switch NC",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"limit switch nc normally closed","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"dpdt;",75,32,"","DPDT",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","dpdt","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"2_position_switch;",75,70,"","2-Position Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","2 position switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"3_position_switch;",
+60,60,"","3-Position Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","3 position switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"4_position_switch;",75,70,"","4-Position Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","4 position switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pushbutton_make;",75,53,"","Pushbutton Make",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"pushbutton make","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pushbutton_2_circuit;",75,73,"","Pushbutton 2-Circuit",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","pushbutton 2 circuit","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"time_delay_make;",75,31,"","Time Delay Make",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","time delay make","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+
+"time_delay_break;",75,32,"","Time Delay Break",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","time delay break","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"time_delay_make_2;",75,36,"","Time Delay Make",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","time delay make","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"time_delay_break_2;",75,30,"","Time Delay Break",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"time delay break","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"isolator;",75,20,"","Isolator",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","isolator","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"changeover_contact;",75,20,"","Changeover Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","changeover contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"reed_switch;",
+75,20,"","Reed Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","reed switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay_coil;",70,35,"","Relay Coil",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay coil","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay;",100,50,"","Relay",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"relay_contacts;",30,24,"","Relay Contacts",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay contacts","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"resonator;",100,50,"","Resonator",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","resonator","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pilot_light;",100,100,"","Pilot Light",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"pilot light","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay_coil_2;",100,70,"","Relay Coil",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay coil","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"mercury_switch;",80,80,"","Mercury Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","mercury switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"mercury_switch_2;",
+50,90,"","Mercury Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","mercury switch","electrical switch relay ").join(" "))]);this.addPaletteFunctions("electricalDiodes","Electrical / Diodes",!1,[this.createVertexTemplateEntry(d+"diode;",100,60,"","PN Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"gunn_diode;",100,60,"","Gunn Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes",
+"gunn_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"schottky_diode;",100,60,"","Schottky Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","schottky_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_2;",100,60,"","Breakdown",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_2","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"tunnel_diode;",100,60,"","Tunnel Diode 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes",
"tunnel_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"tunnel_diode_2;",100,80,"","Tunnel Diode 2",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","tunnel_diode_2","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"field_effect_diode;",100,60,"","Field Effect Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","field_effect_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"varactor_-_varicap;",100,60,"","Varactor - Varicap",
null,null,this.getTagsForStencil("mxgraph.electrical.diodes","varactor_-_varicap","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_1;",100,60,"","Zener Diode 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_1","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_3;",100,60,"","Zener Diode 2",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_3","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+
"four_layer_diode;",100,80,"","Four Layer Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","four_layer_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"transorb_1;",100,60,"","Transorb 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","transorb_1","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"transorb_2;",100,60,"","Transorb 2",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","transorb_2","electrical diode ").join(" "))]);
-this.addPaletteFunctions("eeSources","Electrical / Sources",!1,[this.createVertexTemplateEntry(s+"ac_source;",60,60,"","AC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ac_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"current_source;",40,60,"","Current",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"dc_source_1;",70,75,"","DC",
-null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"dc_source_2;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"dc_source_3;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_3","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+
-"dependent_source_1;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"dependent_source_2;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"dependent_source_3;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
-"dependent_source_3","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"noise_source;",60,60,"","Noise",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","noise_source","electrical signal source ").join(" "))]);this.addPaletteFunctions("eeTransistors","Electrical / Transistors",!1,[this.createVertexTemplateEntry(n+"npn_transistor_1;",95,100,"","BJT (NPN)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","npn_transistor_1","electrical transistor ").join(" ")),
-this.createVertexTemplateEntry(n+"pnp_transistor_1;",95,100,"","BJT (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","pnp_transistor_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(n+"n-channel_jfet_1;",95,100,"","JFET (NPN)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(n+"p-channel_jfet_1;",95,100,"","JFET (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors",
-"p-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"n-channel_mosfet_1;",95,100,"","MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_n;",
-95,100,"","MOSFET Inductive Channel (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_p;",95,100,"","MOSFET Inductive Channel (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_p","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_n_no_bulk;",95,100,"","MOSFET No Bulk (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors",
-"mosfet_n_no_bulk","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_p_no_bulk;",95,100,"","MOSFET No Bulk (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_p_no_bulk","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_n;",
-95,100,"","Dual Gate MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_p;",95,100,"","Dual Gate MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_p","electrical transistor ").join(" "))]);this.addPaletteFunctions("eeInstruments","Electrical / Instruments",!1,[this.createVertexTemplateEntry(v+"ampermeter;",90,90,"","Ampermeter",
-null,null,this.getTagsForStencil("mxgraph.electrical.instruments","ampermeter","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+"galvanometer;",90,90,"","Galvanometer",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","galvanometer","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+"oscilloscope;",90,90,"","Oscilloscope",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","oscilloscope","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+
-"signal_generator;",90,90,"","Signal Generator",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","signal_generator","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+"voltmeter;",90,90,"","Voltmeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","voltmeter","electrical instrument ").join(" "))]);this.addPaletteFunctions("eeMisc","Electrical / Misc",!1,[this.createVertexTemplateEntry(q+"aerial_-_antenna_1;",80,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
-"aerial_-_antenna_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(q+"aerial_-_antenna_2;",79,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","aerial_-_antenna_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(q+"loop_antenna;",64.8,69.78,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","loop_antenna","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.electro-mechanical.motor_1;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;fontSize\x3d30;strokeColor\x3d#000000;strokeWidth\x3d1;",
+this.addPaletteFunctions("electricalSources","Electrical / Sources",!1,[this.createVertexTemplateEntry(q+"ac_source;",60,60,"","AC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ac_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"current_source;",40,60,"","Current",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_1;",70,75,
+"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_2;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_3;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_3","electrical signal source ").join(" ")),
+this.createVertexTemplateEntry(q+"dependent_source_1;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dependent_source_2;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dependent_source_3;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"dependent_source_3","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"noise_source;",60,60,"","Noise",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","noise_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"ideal_source;",60,60,"","Ideal Source",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ideal source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"explosive_squib",60,
+60,"","Explosive Squib",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","explosive squib","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.monocell_battery;",100,60,"","Accumulator / Monocell Battery",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"accumulator monocell battery single cell","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.multicell_battery;",100,60,"","Multicell Battery",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","accumulator multicell battery multi multiple cell","electrical ").join(" ")),
+this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.multicell_battery_tapped;",100,70,"","Multicell Battery Tapped",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","accumulator multicell battery tapped multi multiple cell","electrical ").join(" "))]);this.addPaletteFunctions("electricalTransistors",
+"Electrical / Transistors",!1,[this.createVertexTemplateEntry(n+"npn_transistor_1;",95,100,"","BJT (NPN)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","npn_transistor_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(n+"pnp_transistor_1;",95,100,"","BJT (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","pnp_transistor_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(n+"n-channel_jfet_1;",95,100,"","JFET (NPN)",
+null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(n+"p-channel_jfet_1;",95,100,"","JFET (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"n-channel_mosfet_1;",95,100,"","MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_mosfet_1","electrical transistor ").join(" ")),
+this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_n;",95,100,"","MOSFET Inductive Channel (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_p;",95,100,"","MOSFET Inductive Channel (P)",null,
+null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_p","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_n_no_bulk;",95,100,"","MOSFET No Bulk (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_n_no_bulk","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_p_no_bulk;",95,100,"","MOSFET No Bulk (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_p_no_bulk","electrical transistor ").join(" ")),
+this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_n;",95,100,"","Dual Gate MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_p;",95,100,"","Dual Gate MOSFET (P)",
+null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_p","electrical transistor ").join(" "))]);this.addPaletteFunctions("electricalInstruments","Electrical / Instruments",!1,[this.createVertexTemplateEntry(v+"ampermeter;",90,90,"","Ampermeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","ampermeter","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+"galvanometer;",90,90,"","Galvanometer",null,null,this.getTagsForStencil("mxgraph.electrical.instruments",
+"galvanometer","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+"oscilloscope;",90,90,"","Oscilloscope",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","oscilloscope","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+"signal_generator;",90,90,"","Signal Generator",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","signal_generator","electrical instrument ").join(" ")),this.createVertexTemplateEntry(v+"voltmeter;",90,90,"",
+"Voltmeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","voltmeter","electrical instrument ").join(" "))]);this.addPaletteFunctions("electricalMisc","Electrical / Misc",!1,[this.createVertexTemplateEntry(r+"aerial_-_antenna_1;",80,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","aerial_-_antenna_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"aerial_-_antenna_2;",79,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
+"aerial_-_antenna_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"loop_antenna;",64.8,69.78,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","loop_antenna","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"loop_antenna",100,100,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","loop antenna","electrical ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.electro-mechanical.motor_1;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;fontSize\x3d30;strokeColor\x3d#000000;strokeWidth\x3d1;",
100,60,"M","Electrical Motor",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","motor_1","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.electro-mechanical.motor_2;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;fontSize\x3d30;strokeColor\x3d#000000;strokeWidth\x3d1;",100,60,"","Motor Armature",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","motor_2","electrical switch relay ").join(" ")),
this.createVertexTemplateEntry(e+"co-ax;",40,60,"","Co-Ax",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","co-ax","electrical ").join(" ")),this.createVertexTemplateEntry(e+"crystal_1;",100,40,"","Crystal",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","crystal_1","electrical ").join(" ")),this.createVertexTemplateEntry(e+"fuse_1;",100,20,"","Fuse (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_1","electrical ").join(" ")),
this.createVertexTemplateEntry(e+"fuse_2;",100,20,"","Fuse (IEEE)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_2","electrical ").join(" ")),this.createVertexTemplateEntry(e+"fuse_3;",100,12,"","Fuse (obsolete)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_3","electrical ").join(" ")),this.createVertexTemplateEntry(e+"fuse_4;",100,32,"","Fuse (IEEE)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_4","electrical ").join(" ")),
this.createVertexTemplateEntry(e+"light_bulb;",60,50,"","Light Bulb",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","light_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"illuminating_bulb;",60,50,"","Illuminating Bulb",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","illuminating_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"light_bulb;",60,50,"","Pilot Light",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous",
-"light_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"neon_lamp_2;",60,50,"","Neon Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","neon_lamp_2","electrical ").join(" ")),this.createVertexTemplateEntry(e+"thermocouple;",80,81,"","Thermocouple",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","thermocouple","electrical ").join(" ")),this.createVertexTemplateEntry(c+"amplifier;",90,100,"","Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
-"amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"controlled_amplifier;",100,90,"","Controlled Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","controlled_amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"dac;",70,46,"","DAC",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","dac","electrical ").join(" ")),this.createVertexTemplateEntry(c+"mux;",60,90,"","Mux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
-"mux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"demux;",60,90,"","Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","demux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"mux-demux;",60,90,"","Mux-Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","mux-demux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_1;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","operational_amp_1",
-"electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_2;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","operational_amp_2","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_1;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_1","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_2;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_2","electrical ").join(" ")),
-this.createVertexTemplateEntry(c+"ota_3;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_3","electrical ").join(" ")),this.createVertexTemplateEntry(c+"quantizer;",52,46,"","Quantizer",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","quantizer","electrical ").join(" ")),this.createVertexTemplateEntry(c+"delta;",50,50,"","Delta",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","delta","electrical ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+
-"\x3dmxgraph.electrical.abstract.function;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24",50,50,"fn","Function",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","function","electrical ").join(" ")),this.createVertexTemplateEntry(c+"integrator;",50,50,"","Integrator",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","integrator","electrical ").join(" ")),this.createVertexTemplateEntry(c+"multiplier;",
-50,50,"","Multiplier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","multiplier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"sum;",50,50,"","Sum",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","sum","electrical ").join(" ")),this.createVertexTemplateEntry(c+"summation_point;",50,50,"","Summation Point",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","summation_point","electrical ").join(" ")),this.createVertexTemplateEntry(c+"filter;",
-52,46,"","Filter",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","filter","electrical ").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.bandpass_filter;",52,46,"","Bandpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","bandpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.highpass_filter;",52,46,"","Highpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
-"highpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.lowpass_filter;",52,46,"","Lowpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","lowpass_filter","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;align\x3dcenter;overflow\x3dfill;",
-100,94.25,'\x3ctable cellpadding\x3d"0" cellspacing\x3d"0" style\x3d"width:100%;height:100%;"\x3e\x3ctr height\x3d"45%"\x3e\x3ctd align\x3d"center"\x3e\\temp\\\x3c/td\x3e\x3c/tr\x3e\x3ctr height\x3d"55%"\x3e\x3ctd\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e',"Thermistor With Independent Integral Heater",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","thermistor_with_independent_integral_heater","electrical ").join(" ")),this.createVertexTemplateEntry(c+"voltage_regulator;",70,58,"","Voltage Regulator",
-null,null,this.getTagsForStencil("mxgraph.electrical.abstract","voltage_regulator","electrical ").join(" ")),this.createVertexTemplateEntry(s+"vdd;fontSize\x3d24;",60,40,"V\x3csub\x3edd\x3c/sub\x3e","Vdd",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","vdd","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.vss2;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24;html\x3d1;",
-60,40,"V\x3csub\x3ess\x3c/sub\x3e","Vss",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","vss2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.current_flow;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",70,10,"5 mA",
-"Current Flow",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_flow","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION+"\x3dright;"+mxConstants.STYLE_ALIGN+"\x3dleft;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.voltage;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",10,70,"1.2 V","Voltage",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
-"voltage","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"equipotential;",90,90,"","Equipotential",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","equipotential","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"protective_earth;",50,40,"","Protective Earth",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","protective_earth","electrical signal source ").join(" ")),this.createVertexTemplateEntry(s+"signal_ground;",
-90,60,"","Signal Ground",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","signal_ground","electrical signal source ").join(" "))]);this.addPaletteFunctions("eeAudio","Electrical / Audio",!1,[this.createVertexTemplateEntry(q+"dipole;",100,40,"","Dipole",null,null,this.getTagsForStencil("mxgraph.electrical.radio","dipole","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(q+"electret_microphone;",70,70,"","Electret Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
-"electret_microphone","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(q+"microphone_1;",70,70,"","Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(q+"microphone_2;",42,70,"","Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(g+"piezo_sounder;",100,40,"","Piezo Sounder",
-null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","piezo_sounder","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"buzzer;",45,60,"","Buzzer",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","buzzer","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"loudspeaker;",25,50,"","Loudspeaker",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","loudspeaker","electrical switch relay ").join(" ")),
-this.createVertexTemplateEntry(q+"headphones;",66,56,"","Headphones",null,null,this.getTagsForStencil("mxgraph.electrical.radio","headphones","electrical radio audio ").join(" "))]);this.addPaletteFunctions("eePlcLadder","Electrical / PLC Ladder",!1,[this.createVertexTemplateEntry(p+"contact;",50,25,"","Contact",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","contact","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_contact;",
-50,25,"","Contact (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_contact","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_1;",50,25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_output_1;","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_2;",50,25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder",
-"not_output_2","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_1;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","output_1","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_2;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","output_2","electrical plc ladder programmable logic logical controller").join(" "))]);
-this.addPaletteFunctions("eeOptical","Electrical / Optical",!1,[this.createVertexTemplateEntry(m+"7_segment_display;",74.7,96.1,"","7 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","7_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"7_segment_display_with_dp;",79.8,96.9,"","7 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","7_segment_display_with_dp","electrical optical ").join(" ")),
-this.createVertexTemplateEntry(m+"9_segment_display;",74.7,96.1,"","9 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"9_segment_display_with_dp;",79.8,96.9,"","9 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display_with_dp","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"led_1;",100,65,"","LED",
-null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"led_2;",100,70,"","LED",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_2","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"light-activated_scr;",100,70,"","Light Activated SCR",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","light-activated_scr","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+
-"opto-coupler;",99,60,"","Opto-coupler",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-coupler","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"opto-transistor;",100,110,"","Opto-transistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-transistor","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photodiode;",100,70,"","Photodiode",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics",
-"photodiode","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photo_resistor_1;",100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photo_resistor_2;",100,50,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_2","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photo_resistor_3;",
-100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_3","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"solar_cell;",100,70,"","Solar Cell",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","solar_cell","electrical optical ").join(" "))]);this.addPaletteFunctions("eeVacuumTubes","Electrical / Vacuum Tubes",!1,[this.createVertexTemplateEntry(t+"diode;",70,77,"","Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices",
-"diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"double_diode;",70,77,"","Double Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"triode;",70,77,"","Triode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","triode","electrical thermionic thermo device vacuum tube ").join(" ")),
-this.createVertexTemplateEntry(t+"double_triode;",70,77,"","Double Triode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_triode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"tetrode;",70,77,"","Tetrode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","tetrode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"pentode;",70,77,"","Pentode",null,
-null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","pentode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"photocell;",70,87,"","Photocell",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","photocell","electrical thermionic thermo device vacuum tube ").join(" "))]);this.addPaletteFunctions("eeWaveforms","Electrical / Waveforms",!1,[this.createVertexTemplateEntry(u+"pulse_1;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms",
-"pulse_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"pulse_2;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","pulse_2","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"sawtooth;",90,40,"","Sawtooth",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","sawtooth","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"sine_wave;",90,66.18,"","Sine Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms",
-"sine_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"slow_square_wave;",90,80,"","Chopped Square Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","slow_square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"square_wave;",90,80,"","square_wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"step_1;",90,90,
-"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"step_2;",90,90,"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_2","electrical waveform signal ").join(" "))])}})();
+"light_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"neon_lamp_2;",60,50,"","Neon Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","neon_lamp_2","electrical ").join(" ")),this.createVertexTemplateEntry(e+"flourescent_lamp",80,30,"","Flourescent Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","flourescent lamp","electrical ").join(" ")),this.createVertexTemplateEntry(m+"lamp",50,100,"","Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"lamp","electrical optical ").join(" ")),this.createVertexTemplateEntry(e+"thermocouple;",80,81,"","Thermocouple",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","thermocouple","electrical ").join(" ")),this.createVertexTemplateEntry(c+"amplifier;",90,100,"","Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"controlled_amplifier;",100,90,"","Controlled Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
+"controlled_amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"dac;",70,46,"","DAC",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","dac","electrical ").join(" ")),this.createVertexTemplateEntry(c+"mux;",60,90,"","Mux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","mux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"demux;",60,90,"","Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","demux","electrical ").join(" ")),
+this.createVertexTemplateEntry(c+"mux-demux;",60,90,"","Mux-Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","mux-demux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_1;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","operational_amp_1","electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_2;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
+"operational_amp_2","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_1;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_1","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_2;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_2","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_3;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_3","electrical ").join(" ")),
+this.createVertexTemplateEntry(c+"quantizer;",52,46,"","Quantizer",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","quantizer","electrical ").join(" ")),this.createVertexTemplateEntry(c+"delta;",50,50,"","Delta",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","delta","electrical ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.abstract.function;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24",
+50,50,"fn","Function",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","function","electrical ").join(" ")),this.createVertexTemplateEntry(c+"integrator;",50,50,"","Integrator",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","integrator","electrical ").join(" ")),this.createVertexTemplateEntry(c+"multiplier;",50,50,"","Multiplier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","multiplier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"sum;",
+50,50,"","Sum",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","sum","electrical ").join(" ")),this.createVertexTemplateEntry(c+"summation_point;",50,50,"","Summation Point",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","summation_point","electrical ").join(" ")),this.createVertexTemplateEntry(c+"filter;",52,46,"","Filter",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","filter","electrical ").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.bandpass_filter;",
+52,46,"","Bandpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","bandpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.highpass_filter;",52,46,"","Highpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","highpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.lowpass_filter;",52,46,"","Lowpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
+"lowpass_filter","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;align\x3dcenter;overflow\x3dfill;fontSize\x3d12;",100,94.25,'\x3ctable cellpadding\x3d"0" cellspacing\x3d"0" style\x3d"width:100%;height:100%;"\x3e\x3ctr height\x3d"45%"\x3e\x3ctd align\x3d"center"\x3e\\temp\\\x3c/td\x3e\x3c/tr\x3e\x3ctr height\x3d"55%"\x3e\x3ctd\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e',
+"Thermistor With Independent Integral Heater",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","thermistor_with_independent_integral_heater","electrical ").join(" ")),this.createVertexTemplateEntry(c+"voltage_regulator;",70,58,"","Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","voltage_regulator","electrical ").join(" ")),this.createVertexTemplateEntry(q+"vdd;fontSize\x3d24;",60,40,"V\x3csub\x3edd\x3c/sub\x3e","Vdd",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"vdd","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.vss2;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24;html\x3d1;",60,40,"V\x3csub\x3ess\x3c/sub\x3e","Vss",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","vss2","electrical signal source ").join(" ")),
+this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.current_flow;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",70,10,"5 mA","Current Flow",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_flow","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION+
+"\x3dright;"+mxConstants.STYLE_ALIGN+"\x3dleft;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.voltage;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",10,70,"1.2 V","Voltage",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","voltage","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"equipotential;",90,90,"","Equipotential",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"equipotential","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"protective_earth;",25,20,"","Equipotential",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","protective_earth","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"signal_ground;",45,30,"","Ground",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","signal_ground","electrical signal source ").join(" ")),this.createVertexTemplateEntry(e+"chassis;",65,
+32,"","Chassis",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","chassis","electrical ").join(" ")),this.createVertexTemplateEntry(e+"circuit_breaker;",100,13,"","Circuit Breaker",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","circuit breaker","electrical ").join(" ")),this.createVertexTemplateEntry(e+"generic_component",60,60,"","Generic Component",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","generic component","electrical ").join(" ")),
+this.createVertexTemplateEntry(e+"permanent_magnet",20,70,"","Permanent Magnet",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","permanent magnet","electrical ").join(" ")),this.createVertexTemplateEntry(e+"thermal_element",100,32,"","Thermal Element",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","thermal element","electrical ").join(" ")),this.createVertexTemplateEntry(e+"igniter_plug",72,39,"","Igniter Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"igniter plug","electrical ").join(" ")),this.createVertexTemplateEntry("shape\x3dmxgraph.arrows2.arrow;verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;dy\x3d0;dx\x3d10;notch\x3d0;",100,30,"","Pickup Head",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","pickup head","electrical ").join(" ")),this.createVertexTemplateEntry(e+"squib_ignitor",100,100,"","Squib Ignitor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"squib ignitor","electrical ").join(" ")),this.createVertexTemplateEntry(e+"transducer",70,60,"","Transducer",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","transducer","electrical ").join(" ")),this.createVertexTemplateEntry(e+"transducer_2",80,100,"","Transducer",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","transducer","electrical ").join(" ")),this.createVertexTemplateEntry(e+"thermopile",80,82,"","Thermopile",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"thermopile","electrical ").join(" ")),this.createVertexTemplateEntry(e+"indicator",60,60,"","Indicator",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","indicator","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.surge_protector;",70,20,"","Surge Protector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"surge protector","electrical ").join(" ")),this.createVertexTemplateEntry(e+"surge_protector_2;",70,24,"","Surge Protector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","surge protector","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3drect;",130,50,"","Material",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"material","electrical ").join(" ")),this.createVertexTemplateEntry(e+"sensing_link_squib",130,40,"","Sensing Link Squib",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","sensing link squib","electrical ").join(" ")),this.createVertexTemplateEntry(e+"delay_element",100,100,"","Delay Element",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","delay_element","electrical ").join(" ")),this.createVertexTemplateEntry(r+"buzzer",80,50,"","Buzzer",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"buzzer","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"adapter",100,40,"","Adapter",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","adapter","electrical radio audio ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dellipse;perimeter\x3dellipsePerimeter;",15,15,"","Circuit Terminal",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"circuit terminal","electrical radio audio ").join(" ")),this.createEdgeTemplateEntry("endArrow\x3dopen;html\x3d1;strokeColor\x3d#000000;strokeWidth\x3d1;endFill\x3d0;endSize\x3d20;",100,0,"","M/F Contact",null,this.getTagsForStencil("mxgraph.electrical.signal_sources","","mf contact").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.mf_contact_2",
+100,10,"","MF Contact 2",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","mf contact","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"terminal_board",75,150,"","Terminal Board",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","terminal board","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"cable_termination",100,50,"","Cable Termination",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","cable termination",
+"electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"2_conductor_jack",100,50,"","2-Conductor Jack",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","2 conductor jack two","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"3_conductor_jack",100,50,"","3-Conductor Jack",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","3 conductor jack three","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"2_conductor_plug",
+53,24,"","2-Conductor Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","2 conductor plug two","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"3_conductor_plug",53,24,"","3 Conductor Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","3 conductor plug","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"normalled_jacks",230,65,"","Normalled Jacks",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"normalled jacks","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"normalled_jack",110,65,"","Normalled Jack",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","normalled jack","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"coaxial_outside_conductor",300,150,"","Coaxial Outside Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","coaxial outside conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+
+"coaxial_center_conductor",300,150,"","Coaxial Center Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","coaxial center conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"large_d_connector",375,75,"","Large D Connector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","large d connector","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"small_d_connector",150,75,"","Small D Connector",null,null,
+this.getTagsForStencil("mxgraph.electrical.signal_sources","small d connector","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"c_header_connector",200,75,"","C Header Connector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","c header connector","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"ac_out",200,100,"","AC Out",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ac out alternate current","electrical radio audio ").join(" ")),
+this.createVertexTemplateEntry(e+"shielded_jack_plug",50,100,"","Shielded Jack/Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","shielded jack plug","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"coaxial_jack_plug",50,100,"","Coaxial Jack/Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","coaxial jack/plug","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_2_conductor_1",100,100,"","F/M 2 Conductor",
+null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_2_conductor_2",100,100,"","F/M 2 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_2_conductor_3",100,50,"","F/M 2 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),
+this.createVertexTemplateEntry(e+"f_m_3_conductor_1",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_2",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_3",100,100,"","F/M 3 Conductor",null,null,
+this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_4",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_5",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" "))]);
+this.addPaletteFunctions("electricalAudio","Electrical / Audio",!1,[this.createVertexTemplateEntry(r+"dipole;",100,40,"","Dipole",null,null,this.getTagsForStencil("mxgraph.electrical.radio","dipole","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"electret_microphone;",70,70,"","Electret Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","electret_microphone","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"microphone_1;",70,70,"",
+"Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"microphone_2;",42,70,"","Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(g+"piezo_sounder;",100,40,"","Piezo Sounder",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","piezo_sounder","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"buzzer;",45,60,"","Buzzer",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","buzzer","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"loudspeaker;",25,50,"","Loudspeaker",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","loudspeaker","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(r+"headphones;",66,56,"","Headphones",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
+"headphones","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(g+"bell;",47,60,"","Bell",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","bell","electrical switch relay ").join(" "))]);this.addPaletteFunctions("electricalPlcLadder","Electrical / PLC Ladder",!1,[this.createVertexTemplateEntry(p+"contact;",50,25,"","Contact",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","contact","electrical plc ladder programmable logic logical controller").join(" ")),
+this.createVertexTemplateEntry(p+"not_contact;",50,25,"","Contact (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_contact","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_1;",50,25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_output_1;","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_2;",50,
+25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_output_2","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_1;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","output_1","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_2;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder",
+"output_2","electrical plc ladder programmable logic logical controller").join(" "))]);this.addPaletteFunctions("electricalOptical","Electrical / Optical",!1,[this.createVertexTemplateEntry(m+"7_segment_display;",74.7,96.1,"","7 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","7_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"7_segment_display_with_dp;",79.8,96.9,"","7 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics",
+"7_segment_display_with_dp","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"9_segment_display;",74.7,96.1,"","9 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"9_segment_display_with_dp;",79.8,96.9,"","9 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display_with_dp","electrical optical ").join(" ")),
+this.createVertexTemplateEntry(m+"led_1;",100,65,"","LED",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"led_2;",100,70,"","LED",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_2","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"light-activated_scr;",100,70,"","Light Activated SCR",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics",
+"light-activated_scr","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"opto-coupler;",99,60,"","Opto-coupler",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-coupler","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"opto-transistor;",100,110,"","Opto-transistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-transistor","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photodiode;",100,
+70,"","Photodiode",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photodiode","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photo_resistor_1;",100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photo_resistor_2;",100,50,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_2",
+"electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"photo_resistor_3;",100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_3","electrical optical ").join(" ")),this.createVertexTemplateEntry(m+"solar_cell;",100,70,"","Solar Cell",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","solar_cell","electrical optical ").join(" "))]);this.addPaletteFunctions("electricalVacuumTubes","Electrical / Vacuum Tubes",
+!1,[this.createVertexTemplateEntry(t+"diode;",70,77,"","Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"double_diode;",70,77,"","Double Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"triode;",70,77,"","Triode",null,null,
+this.getTagsForStencil("mxgraph.electrical.thermionic_devices","triode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"double_triode;",70,77,"","Double Triode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_triode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"tetrode;",70,77,"","Tetrode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","tetrode",
+"electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"pentode;",70,77,"","Pentode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","pentode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"photocell;",70,87,"","Photocell",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","photocell","electrical thermionic thermo device vacuum tube ").join(" "))]);this.addPaletteFunctions("electricalWaveforms",
+"Electrical / Waveforms",!1,[this.createVertexTemplateEntry(u+"pulse_1;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","pulse_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"pulse_2;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","pulse_2","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"sawtooth;",90,40,"","Sawtooth",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms",
+"sawtooth","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"sine_wave;",90,66.18,"","Sine Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","sine_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"slow_square_wave;",90,80,"","Chopped Square Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","slow_square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"square_wave;",90,
+80,"","square_wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"step_1;",90,90,"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(u+"step_2;",90,90,"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_2","electrical waveform signal ").join(" "))]);this.addPaletteFunctions("electricalRotMech",
+"Electrical / Rotating Equipment \x26 Mechanical Functions",!1,[this.createVertexTemplateEntry("verticalLabelPosition\x3dmiddle;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dmiddle;strokeWidth\x3d1;shape\x3dellipse;fontSize\x3d32;fontColor\x3d#000000;perimeter\x3dellipsePerimeter;",100,100,"M","Rotating Machine",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","rotating machine","electrical rotating equipment mechanical function functions").join(" ")),
+this.createVertexTemplateEntry(y+"armature;",100,100,"","Armature",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","armature","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"field;",90,15,"","Field",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","field","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(e+"permanent_magnet;",20,70,"","Permanent Magnet",null,
+null,this.getTagsForStencil("mxgraph.electrical.rot_mech","permanent magnet","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"winding_connection;",100,100,"","Winding Connection",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","winding connection","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"synchro;",80,100,"","Synchro",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech",
+"synchro","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dtrapezoid;perimeter\x3dnone;",75,25,"","Brake",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","brake","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"gearing;",
+100,64,"","Gearing",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","gearing","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.rot_mech.rotation;",69,54,"","Rotation",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","rotation","electrical rotating equipment mechanical function functions").join(" ")),
+this.createVertexTemplateEntry(y+"clutch;",100,20,"","Clutch",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","clutch","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"clutch_2;",90,60,"","Clutch",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","clutch","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"delayed_action;",72,50,"","Delayed Action",null,null,
+this.getTagsForStencil("mxgraph.electrical.rot_mech","delayed action","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"manual_control;",50,50,"","Manual Control",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","manual control","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"blocking_device;",100,15,"","Blocking Device",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech",
+"blocking device","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"latching_device;",100,22,"","Latching Device",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","latching device","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"mechanical_interlock;",100,30,"","Mechanical Interlock",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","mechanical interlock",
+"electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"automatic_return;",100,12,"","Automatic Return",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","automatic_return","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(y+"detent;",100,8,"","Detent",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","detent","electrical rotating equipment mechanical function functions").join(" "))]);
+var D=[this.createVertexTemplateEntry(x+"bus_width;",130,156,"","Bus Width",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","bus width","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"line_concentrator;",130,130,"","Line Concentrator",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","line concentrator","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"cable_group;",130,130,"","Cable Group",
+null,null,this.getTagsForStencil("mxgraph.electrical.transmission","cable group","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"overground_enclosure;",130,136,"","Overground Enclosure",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","overground enclosure","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"optical_fiber;",130,80,"","Optical Fiber",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"optical fiber","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dellipse;",10,10,"","Terminal",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","terminal","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"terminal_3_phase;",43,10,"","Terminal 3 Phase",
+null,null,this.getTagsForStencil("mxgraph.electrical.transmission","Terminal 3 Phase","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dmiddle;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dmiddle;strokeWidth\x3d1;shape\x3dellipse;fontColor\x3d#000000;fontSize\x3d50;fontStyle\x3d1;perimeter\x3dellipsePerimeter;",130,130,"T","Terminal",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"terminal","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"line_cable;",130,60,"","Line/Cable",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","line cable","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"anticreepage_device;",130,88,"","Anticreepage Device",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","anticreepage device","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+
+"testPoint;",60,130,"","Test Point",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","test point","electrical transmission paths bus buses").join(" ")),this.createEdgeTemplateEntry("endArrow\x3dnone;html\x3d1;strokeColor\x3d#000000;strokeWidth\x3d1;",100,0,"","Transmission Path",null,this.getTagsForStencil("mxgraph.electrical.signal_sources","","transmission path").join(" ")),this.createEdgeTemplateEntry("endArrow\x3dclassicThin;html\x3d1;strokeColor\x3d#000000;strokeWidth\x3d1;endSize\x3d20;",
+100,0,"","Direction of Flow",null,this.getTagsForStencil("mxgraph.electrical.signal_sources","","direction flow").join(" ")),this.createVertexTemplateEntry(x+"straightBus;",90,130,"","Straight Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","straight bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("html\x3d1;shadow\x3d0;dashed\x3d0;align\x3dcenter;verticalAlign\x3dmiddle;shape\x3dmxgraph.arrows2.bendArrow;dy\x3d15;dx\x3d38;notch\x3d0;arrowHead\x3d55;rounded\x3d0;strokeColor\x3d#000000;strokeWidth\x3d1;fillColor\x3d#FFFFFF;",
+130,130,"","Elbow Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","elbow bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("html\x3d1;shadow\x3d0;dashed\x3d0;align\x3dcenter;verticalAlign\x3dmiddle;shape\x3dmxgraph.arrows2.bendArrow;dy\x3d15;dx\x3d38;notch\x3d0;arrowHead\x3d55;rounded\x3d0;strokeColor\x3d#000000;strokeWidth\x3d1;fillColor\x3d#FFFFFF;flipH\x3d1;",130,130,"","Elbow Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"elbow bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"2_line_bus;",130,25,"","2-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"3_line_bus;",130,30,"","3-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+
+"4_line_bus;",130,75,"","4-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"8_line_bus;",130,180,"","8-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"twoLineBusElbow;notch\x3d25;",120,120,"","2-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"2 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"threeLineBusElbow;notch\x3d30;",120,120,"","3-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"fourLineBusElbow;notch\x3d75;",120,120,"","4-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","4 two line bus elbow",
+"electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"eightLineBusElbow;notch\x3d180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(b){for(var a=0;a<D.length;a++)b.appendChild(D[a](b))}))}})();
(function(){Sidebar.prototype.addErPalette=function(){var a=this,c=new mxCell("Row",new mxGeometry(0,0,40,26),"text;html\x3d1;strokeColor\x3dnone;fillColor\x3dnone;spacingLeft\x3d4;spacingRight\x3d4;whiteSpace\x3dwrap;overflow\x3dhidden;rotatable\x3d0;points\x3d[[0,0.5],[1,0.5]];portConstraint\x3deastwest;");c.vertex=!0;var f=[this.addEntry("er entity relation table",function(){var d=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;html\x3d1;fontStyle\x3d0;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3d#e0e0e0;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;align\x3dcenter;");
d.vertex=!0;d.insert(a.cloneCell(c,"Row 1"));d.insert(a.cloneCell(c,"Row 2"));d.insert(a.cloneCell(c,"Row 3"));return a.createVertexTemplateFromCells([d],d.geometry.width,d.geometry.height,"Table")}),this.addEntry("er entity relation table section subsection",function(){var d=new mxCell("Section",new mxGeometry(0,0,140,110),"swimlane;html\x3d1;fontStyle\x3d0;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d22;fillColor\x3dnone;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;align\x3dcenter;");
d.vertex=!0;d.insert(a.cloneCell(c,"Row 1"));d.insert(a.cloneCell(c,"Row 2"));d.insert(a.cloneCell(c,"Row 3"));return a.createVertexTemplateFromCells([d],d.geometry.width,d.geometry.height,"Section")}),this.addEntry("er entity relation table section subsection",function(){var d=new mxCell("Table",new mxGeometry(0,0,160,144),"swimlane;html\x3d1;fontStyle\x3d0;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3d#e0e0e0;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;align\x3dcenter;");
@@ -4316,13 +4390,13 @@ d.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;fillC
a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dsouth");k.vertex=!0;var l=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");l.vertex=!0;var n=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");n.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,n,d],200,140,"Large office table")}),this.addEntry("floorplan office table large",
function(){var d=new mxCell("",new mxGeometry(20,20,280,100),"shape\x3dellipse;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");d.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");c.vertex=!0;var f=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dnorth;");
f.vertex=!0;var k=new mxCell("",new mxGeometry(277,50,43,40),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dsouth");k.vertex=!0;var l=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");l.vertex=!0;var n=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");n.vertex=!0;var m=new mxCell("",new mxGeometry(170,0,40,43),
-a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");m.vertex=!0;var p=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");p.vertex=!0;var q=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");q.vertex=!0;var r=new mxCell("",new mxGeometry(230,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
-r.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,n,m,p,q,r,d],320,140,"Large office table")}),this.addEntry("floorplan office table conference large huge",function(){var d=new mxCell("",new mxGeometry(20,20,520,100),"shape\x3dellipse;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");d.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,97,40,43),
+a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");m.vertex=!0;var p=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");p.vertex=!0;var r=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");r.vertex=!0;var s=new mxCell("",new mxGeometry(230,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
+s.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,n,m,p,r,s,d],320,140,"Large office table")}),this.addEntry("floorplan office table conference large huge",function(){var d=new mxCell("",new mxGeometry(20,20,520,100),"shape\x3dellipse;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");d.vertex=!0;var b=new mxCell("",new mxGeometry(50,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");b.vertex=!0;var c=new mxCell("",new mxGeometry(50,97,40,43),
a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");c.vertex=!0;var f=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dnorth;");f.vertex=!0;var k=new mxCell("",new mxGeometry(517,50,43,40),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dsouth");k.vertex=!0;var l=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");
-l.vertex=!0;var n=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");n.vertex=!0;var m=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");m.vertex=!0;var p=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");p.vertex=!0;var q=new mxCell("",new mxGeometry(230,0,40,43),
-a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");q.vertex=!0;var r=new mxCell("",new mxGeometry(230,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");r.vertex=!0;var s=new mxCell("",new mxGeometry(290,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");s.vertex=!0;var t=new mxCell("",new mxGeometry(290,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
-t.vertex=!0;var u=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");u.vertex=!0;var v=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");v.vertex=!0;var A=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");A.vertex=!0;var y=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
-y.vertex=!0;var x=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");x.vertex=!0;var D=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");D.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,n,m,p,q,r,s,t,u,v,A,y,x,D,d],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(a){for(var b=
+l.vertex=!0;var n=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");n.vertex=!0;var m=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");m.vertex=!0;var p=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");p.vertex=!0;var r=new mxCell("",new mxGeometry(230,0,40,43),
+a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");r.vertex=!0;var s=new mxCell("",new mxGeometry(230,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");s.vertex=!0;var q=new mxCell("",new mxGeometry(290,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");q.vertex=!0;var t=new mxCell("",new mxGeometry(290,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
+t.vertex=!0;var u=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");u.vertex=!0;var v=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");v.vertex=!0;var z=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");z.vertex=!0;var y=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
+y.vertex=!0;var x=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");x.vertex=!0;var D=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");D.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,n,m,p,r,s,q,t,u,v,z,y,x,D,d],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(a){for(var b=
0;b<f.length;b++)a.appendChild(f[b](a))}))}})();
(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;html\x3d1;strokeWidth\x3d2;shape\x3dmxgraph.flowchart.";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth\x3d2;html\x3d1;shape\x3dmxgraph.flowchart.annotation_1;align\x3dleft;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),
this.createVertexTemplateEntry("strokeWidth\x3d2;html\x3d1;shape\x3dmxgraph.flowchart.annotation_2;align\x3dleft;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;html\x3d1;shape\x3dmxgraph.flowchart.card;whiteSpace\x3dwrap;",100,60,"","Card",null,null,this.getTagsForStencil("mxgraph.flowchart","card","").join(" ")),this.createVertexTemplateEntry(a+"collate;",100,100,"","Collate",null,null,this.getTagsForStencil("mxgraph.flowchart",
@@ -5572,23 +5646,23 @@ a.vertex=!0;b.insert(a);a=new mxCell("Option 4",new mxGeometry(2.5,41,5,5),"shap
b.vertex=!0;var a=new mxCell("Setting 1",new mxGeometry(2.5,3.5,5,5),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d0;fillColor\x3d#dddddd;align\x3dleft;spacingLeft\x3d2;fontSize\x3d8;fontColor\x3d#666666;labelPosition\x3dright;verticalLabelPosition\x3dmiddle;verticalAlign\x3dmiddle;spacingTop\x3d3;");a.vertex=!0;b.insert(a);a=new mxCell("Setting 2",new mxGeometry(2.5,16,5,5),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d0;fillColor\x3d#dddddd;align\x3dleft;spacingLeft\x3d2;fontSize\x3d8;fontColor\x3d#666666;labelPosition\x3dright;verticalLabelPosition\x3dmiddle;verticalAlign\x3dmiddle;spacingTop\x3d3;");
a.vertex=!0;b.insert(a);a=new mxCell("Setting 3",new mxGeometry(2.5,28.5,5,5),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.checkbox;fillColor\x3d#999999;align\x3dleft;spacingLeft\x3d2;fontSize\x3d8;fontColor\x3d#666666;labelPosition\x3dright;verticalLabelPosition\x3dmiddle;verticalAlign\x3dmiddle;spacingTop\x3d3;");a.vertex=!0;b.insert(a);a=new mxCell("Setting 4",new mxGeometry(2.5,41,5,5),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d0;fillColor\x3d#dddddd;align\x3dleft;spacingLeft\x3d2;fontSize\x3d8;fontColor\x3d#666666;labelPosition\x3dright;verticalLabelPosition\x3dmiddle;verticalAlign\x3dmiddle;spacingTop\x3d3;");
a.vertex=!0;b.insert(a);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Checkboxes")}),this.createVertexTemplateEntry(c+"iComboBox;spacingTop\x3d2;spacingLeft\x3d2;align\x3dleft;strokeColor\x3d#444444;fontColor\x3d#666666;buttonText\x3d;fontSize\x3d8;fillColor\x3d#dddddd;fillColor2\x3d#3D5565;",200*0.29,15,"Option 1","Combobox",null,null,null),this.createVertexTemplateEntry(c+"iOnOffButton;mainText\x3d;strokeColor\x3d#444444;fontSize\x3d9;fontColor\x3d#ffffff;spacingRight\x3d14;buttonState\x3don",
-43.5,15,"ON","On-off button",null,null,null),this.createVertexTemplateEntry(c+"iTextInput;strokeColor\x3d#444444;fontColor\x3d#000000;align\x3dleft;buttonText\x3d;fontSize\x3d8;fillColor\x3d#ffffff;",43.5,15,"********","Password field",null,null,null),this.addEntry(null,function(){var a=new mxCell("Alert description text\ndescription text second line",new mxGeometry(0,0,150,100),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.fancyRRect;rSize\x3d8;strokeColor\x3d#dddddd;fillColor\x3d#497198;gradientColor\x3d#193168;opacity\x3d80;fontColor\x3d#ffffff;fontSize\x3d9;whiteSpace\x3dwrap;align\x3dcenter;");
-a.vertex=!0;var c=new mxCell("Something happened",new mxGeometry(0,0,150,25),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d13;fontColor\x3d#ffffff;whiteSpace\x3dwrap;resizeWidth\x3d1;");c.geometry.relative=!0;c.vertex=!0;a.insert(c);c=new mxCell("Button",new mxGeometry(0.5,1,80,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d3;fontSize\x3d9;fontColor\x3d#ffffff;strokeColor\x3d#ffffff;fillColor\x3d#497198;gradientColor\x3d#c5cee1;opacity\x3d80;whiteSpace\x3dwrap;");
-c.geometry.relative=!0;c.geometry.offset=new mxPoint(-40,-25);c.vertex=!0;a.insert(c);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Alert Box")}),this.addEntry(null,function(){var a=new mxCell("Dialog question text\nquestion text second line",new mxGeometry(0,0,150,100),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.fancyRRect;rSize\x3d8;strokeColor\x3d#dddddd;fillColor\x3d#497198;gradientColor\x3d#193168;opacity\x3d80;fontColor\x3d#ffffff;fontSize\x3d9;whiteSpace\x3dwrap;align\x3dcenter;");
-a.vertex=!0;var c=new mxCell("Something happened",new mxGeometry(0,0,150,25),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d13;fontColor\x3d#ffffff;whiteSpace\x3dwrap;resizeWidth\x3d1;");c.geometry.relative=!0;c.vertex=!0;a.insert(c);c=new mxCell("Cancel",new mxGeometry(0.25,1,65,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d3;fontSize\x3d9;fontColor\x3d#ffffff;strokeColor\x3d#ffffff;fillColor\x3d#497198;gradientColor\x3d#c5cee1;opacity\x3d80;whiteSpace\x3dwrap;");
-c.geometry.relative=!0;c.geometry.offset=new mxPoint(-32.5,-25);c.vertex=!0;a.insert(c);c=new mxCell("OK",new mxGeometry(0.75,1,65,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d3;fontSize\x3d9;fontColor\x3d#ffffff;strokeColor\x3d#ffffff;fillColor\x3d#497198;gradientColor\x3d#c5cee1;opacity\x3d80;whiteSpace\x3dwrap;");c.geometry.relative=!0;c.geometry.offset=new mxPoint(-32.5,-25);c.vertex=!0;a.insert(c);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,
+43.5,15,"ON","On-off button",null,null,null),this.createVertexTemplateEntry(c+"iTextInput;strokeColor\x3d#444444;fontColor\x3d#000000;align\x3dleft;buttonText\x3d;fontSize\x3d8;fillColor\x3d#ffffff;",43.5,15,"********","Password field",null,null,null),this.addEntry(null,function(){var b=new mxCell("Alert description text\ndescription text second line",new mxGeometry(0,0,150,100),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.fancyRRect;rSize\x3d8;strokeColor\x3d#dddddd;fillColor\x3d#497198;gradientColor\x3d#193168;opacity\x3d80;fontColor\x3d#ffffff;fontSize\x3d9;whiteSpace\x3dwrap;align\x3dcenter;");
+b.vertex=!0;var a=new mxCell("Something happened",new mxGeometry(0,0,150,25),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d13;fontColor\x3d#ffffff;whiteSpace\x3dwrap;resizeWidth\x3d1;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);a=new mxCell("Button",new mxGeometry(0.5,1,80,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d3;fontSize\x3d9;fontColor\x3d#ffffff;strokeColor\x3d#ffffff;fillColor\x3d#497198;gradientColor\x3d#c5cee1;opacity\x3d80;whiteSpace\x3dwrap;");
+a.geometry.relative=!0;a.geometry.offset=new mxPoint(-40,-25);a.vertex=!0;b.insert(a);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Alert Box")}),this.addEntry(null,function(){var b=new mxCell("Dialog question text\nquestion text second line",new mxGeometry(0,0,150,100),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.fancyRRect;rSize\x3d8;strokeColor\x3d#dddddd;fillColor\x3d#497198;gradientColor\x3d#193168;opacity\x3d80;fontColor\x3d#ffffff;fontSize\x3d9;whiteSpace\x3dwrap;align\x3dcenter;");
+b.vertex=!0;var a=new mxCell("Something happened",new mxGeometry(0,0,150,25),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d13;fontColor\x3d#ffffff;whiteSpace\x3dwrap;resizeWidth\x3d1;");a.geometry.relative=!0;a.vertex=!0;b.insert(a);a=new mxCell("Cancel",new mxGeometry(0.25,1,65,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d3;fontSize\x3d9;fontColor\x3d#ffffff;strokeColor\x3d#ffffff;fillColor\x3d#497198;gradientColor\x3d#c5cee1;opacity\x3d80;whiteSpace\x3dwrap;");
+a.geometry.relative=!0;a.geometry.offset=new mxPoint(-32.5,-25);a.vertex=!0;b.insert(a);a=new mxCell("OK",new mxGeometry(0.75,1,65,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rrect;rSize\x3d3;fontSize\x3d9;fontColor\x3d#ffffff;strokeColor\x3d#ffffff;fillColor\x3d#497198;gradientColor\x3d#c5cee1;opacity\x3d80;whiteSpace\x3dwrap;");a.geometry.relative=!0;a.geometry.offset=new mxPoint(-32.5,-25);a.vertex=!0;b.insert(a);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,
"Dialog Box")}),this.createVertexTemplateEntry(c+"iLockButton;fontColor\x3d#cccccc;fontSize\x3d13;mainText\x3d;spacingLeft\x3d50;spacingRight\x3d10;align\x3dcenter;",174,50,"slide to unlock","Lock button",null,null,null),this.createVertexTemplateEntry(a+"iArrowIcon;fillColor\x3d#8BbEff;fillColor2\x3d#135Ec8;strokeColor\x3d#ffffff;",15,15,"","Arrow",null,null,null),this.createVertexTemplateEntry(a+"iDeleteIcon;fillColor\x3d#e8878E;fillColor2\x3d#BD1421;strokeColor\x3d#ffffff;",15,15,"","Delete",null,
null,null),this.createVertexTemplateEntry(a+"iAddIcon;fillColor\x3d#7AdF78;fillColor2\x3d#1A9917;strokeColor\x3d#ffffff;",15,15,"","Add",null,null,null),this.createVertexTemplateEntry(a+"iInfoIcon;fillColor\x3d#8BbEff;fillColor2\x3d#135Ec8;strokeColor\x3d#ffffff;",15,15,"","Info",null,null,null),this.createVertexTemplateEntry(a+"iSortFindIcon;fillColor\x3d#8BbEff;fillColor2\x3d#135Ec8;strokeColor\x3d#ffffff;",15,15,"","Sort/find",null,null,null),this.createVertexTemplateEntry(a+"iCheckIcon;fillColor\x3d#e8878E;fillColor2\x3d#BD1421;strokeColor\x3d#ffffff;",
15,15,"","Check",null,null,null),this.createVertexTemplateEntry(a+"iKeybLett;",174,100,"","Keyboard (letters)",null,null,null),this.createVertexTemplateEntry(a+"iKeybNumb;",174,100,"","Keyboard (numbers)",null,null,null),this.createVertexTemplateEntry(a+"iKeybSymb;",174,100,"","Keyboard (symbols)",null,null,null),this.createVertexTemplateEntry(a+"iDeleteApp;fillColor\x3d#cccccc;fillColor2\x3d#000000;strokeColor\x3d#ffffff;",15,15,"","Delete app",null,null,null),this.createVertexTemplateEntry(a+"iDir;",
100,100,"","Direction",null,null,null),this.createVertexTemplateEntry(c+"iLocBar;align\x3dleft;spacingLeft\x3d4;spacingBottom\x3d4;fontColor\x3d#ffffff;fontSize\x3d10;barPos\x3d80;pointerPos\x3dbottom;buttonText\x3d",155,32.5,"5th Street Music Store","Location bar",null,null,null),this.createVertexTemplateEntry(a+"iCallDialog;",150,125,"","Call Dialog",null,null,null),this.createVertexTemplateEntry(a+"iCallButtons;",174,400*0.575,"","Call buttons",null,null,null),this.createVertexTemplateEntry(c+
"iOption;barPos\x3d80;pointerPos\x3dbottom;buttonText\x3d;fontSize\x3d10;fontColor\x3d#ffffff;spacingBottom\x3d6;",75,400*0.06875,"Option","Option",null,null,null),this.createVertexTemplateEntry(a+"iAlphaList;fontSize\x3d7.5;",15,225,"","Alphabet list",null,null,null),this.createVertexTemplateEntry(c+"iHorButtonBar;strokeColor\x3d#444444;strokeColor2\x3d#c4c4c4;fillColor2\x3d#ffffff;buttonText\x3d,+,,;overflow\x3dwidth;html\x3d1;fontSize\x3d8;fillColor\x3d#ffffff;fillColor2\x3d#008cff",165,12.5,'\x3ctable cellpadding\x3d"0" cellspacing\x3d"0" style\x3d"font-size:1em;color:#666666;width:100%;"\x3e\x3ctr\x3e\x3ctd align\x3d"center" width\x3d"25%"\x3eItem 1\x3c/td\x3e\x3ctd align\x3d"center" style\x3d"color:white;" width\x3d"25%"\x3eItem 2\x3c/td\x3e\x3ctd align\x3d"center" width\x3d"25%"\x3eItem 3\x3c/td\x3e\x3ctd align\x3d"center" width\x3d"25%"\x3eItem 4\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e',
"Horizontal button bar",null,null,null),this.createVertexTemplateEntry(f+"iPin;fillColor2\x3d#00dd00;fillColor3\x3d#004400;strokeColor\x3d#006600;",10,25,"","Pin",null,null,null),this.createVertexTemplateEntry(f+"iPin;fillColor2\x3d#dd0000;fillColor3\x3d#440000;strokeColor\x3d#660000;",10,25,"","Pin",null,null,null),this.createVertexTemplateEntry(f+"iPin;fillColor2\x3d#ccccff;fillColor3\x3d#0000ff;strokeColor\x3d#000066;",10,25,"","Pin",null,null,null),this.createVertexTemplateEntry(f+"iPin;fillColor2\x3d#ffff00;fillColor3\x3d#888800;strokeColor\x3d#999900;",
-10,25,"","Pin",null,null,null),this.createVertexTemplateEntry(f+"iPin;fillColor2\x3d#ffa500;fillColor3\x3d#885000;strokeColor\x3d#997000;",10,25,"","Pin",null,null,null),this.createVertexTemplateEntry(a+"iVideoControls;barPos\x3d20;",174,50,"","Video controls",null,null,null),this.addEntry(null,function(){var a=new mxCell("Page title",new mxGeometry(0,0,175,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.iURLBar;verticalAlign\x3dtop;fontSize\x3d8;spacingTop\x3d-5;align\x3dcenter;");a.vertex=
-!0;var c=new mxCell("https://www.draw.io/",new mxGeometry(5,12,115,13),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d8;spacingLeft\x3d3;align\x3dleft;spacingTop\x3d2;");c.vertex=!0;a.insert(c);c=new mxCell("Cancel",new mxGeometry(137,12,32,13),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d8;fontColor\x3d#ffffff;spacingTop\x3d2;");c.vertex=!0;a.insert(c);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"URL bar")}),
+10,25,"","Pin",null,null,null),this.createVertexTemplateEntry(f+"iPin;fillColor2\x3d#ffa500;fillColor3\x3d#885000;strokeColor\x3d#997000;",10,25,"","Pin",null,null,null),this.createVertexTemplateEntry(a+"iVideoControls;barPos\x3d20;",174,50,"","Video controls",null,null,null),this.addEntry(null,function(){var b=new mxCell("Page title",new mxGeometry(0,0,175,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.iURLBar;verticalAlign\x3dtop;fontSize\x3d8;spacingTop\x3d-5;align\x3dcenter;");b.vertex=
+!0;var a=new mxCell("https://www.draw.io/",new mxGeometry(5,12,115,13),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d8;spacingLeft\x3d3;align\x3dleft;spacingTop\x3d2;");a.vertex=!0;b.insert(a);a=new mxCell("Cancel",new mxGeometry(137,12,32,13),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.anchor;fontSize\x3d8;fontColor\x3d#ffffff;spacingTop\x3d2;");a.vertex=!0;b.insert(a);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"URL bar")}),
this.createVertexTemplateEntry(a+"iSlider;barPos\x3d20;",150,10,"","Slider",null,null,null),this.createVertexTemplateEntry(a+"iProgressBar;barPos\x3d40;",150,10,"","Progress bar",null,null,null),this.createVertexTemplateEntry(a+"iCloudProgressBar;barPos\x3d20;",150,10,"","Cloud progress bar",null,null,null),this.createVertexTemplateEntry(c+"iDownloadBar;verticalAlign\x3dtop;spacingTop\x3d-4;fontSize\x3d8;fontColor\x3d#ffffff;buttonText\x3d;barPos\x3d30;align\x3dcenter;",174,30,"Downloading 2 of 6",
"Download bar",null,null,null),this.createVertexTemplateEntry(c+"iScreenNameBar;fillColor2\x3d#000000;fillColor3\x3d#ffffff;buttonText\x3d;fontColor\x3d#ffffff;fontSize\x3d10;whiteSpace\x3dwrap;align\x3dcenter;",174,25,"Screen Name","Screen name bar",null,null,null),this.createVertexTemplateEntry(a+"iIconGrid;fillColor\x3d#ffffff;strokeColor\x3d#000000;gridSize\x3d3,3;",150,150,"","Icon grid",null,null,null),this.createVertexTemplateEntry(c+"iCopy;fillColor\x3d#000000;strokeColor\x3d#000000;buttonText\x3d;fontColor\x3d#ffffff;spacingBottom\x3d6;fontSize\x3d9;fillColor2\x3d#000000;fillColor3\x3d#ffffff;align\x3dcenter;",
-40,400*0.06875,"Copy","Copy",null,null,null),this.addEntry(null,function(){var a=new mxCell("Copy",new mxGeometry(10,0,40,400*0.06875),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.iCopy;fillColor\x3d#000000;strokeColor\x3d#000000;buttonText\x3d;fontColor\x3d#ffffff;spacingBottom\x3d6;fontSize\x3d9;fillColor2\x3d#000000;fillColor3\x3d#ffffff;align\x3dcenter;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,400*0.06875,60,52.5),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rect;fillColor\x3d#2266ff;strokeColor\x3dnone;opacity\x3d30;");
-c.vertex=!0;return sb.createVertexTemplateFromCells([a,c],60,80,"Copy Area")}),this.createVertexTemplateEntry(a+"iHomePageControl;fillColor\x3d#666666;strokeColor\x3d#cccccc;",50,5,"","Home page control",null,null,null),this.createVertexTemplateEntry(a+"iPageControl;fillColor\x3d#666666;strokeColor\x3d#cccccc;",50,5,"","Page control",null,null,null)];this.addPalette("ios","iOS6",!1,mxUtils.bind(this,function(a){for(var c=0;c<d.length;c++)a.appendChild(d[c](a))}))}})();
+40,400*0.06875,"Copy","Copy",null,null,null),this.addEntry(null,function(){var b=new mxCell("Copy",new mxGeometry(10,0,40,400*0.06875),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.iCopy;fillColor\x3d#000000;strokeColor\x3d#000000;buttonText\x3d;fontColor\x3d#ffffff;spacingBottom\x3d6;fontSize\x3d9;fillColor2\x3d#000000;fillColor3\x3d#ffffff;align\x3dcenter;");b.vertex=!0;var a=new mxCell("",new mxGeometry(0,400*0.06875,60,52.5),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios.rect;fillColor\x3d#2266ff;strokeColor\x3dnone;opacity\x3d30;");
+a.vertex=!0;return sb.createVertexTemplateFromCells([b,a],60,80,"Copy Area")}),this.createVertexTemplateEntry(a+"iHomePageControl;fillColor\x3d#666666;strokeColor\x3d#cccccc;",50,5,"","Home page control",null,null,null),this.createVertexTemplateEntry(a+"iPageControl;fillColor\x3d#666666;strokeColor\x3d#cccccc;",50,5,"","Page control",null,null,null)];this.addPalette("ios","iOS6",!1,mxUtils.bind(this,function(b){for(var a=0;a<d.length;a++)b.appendChild(d[a](b))}))}})();
(function(){Sidebar.prototype.addIos7Palette=function(){var a=this,c="ios icon ",f="html\x3d1;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;strokeWidth\x3d2;strokeColor\x3d#0080F0;fillColor\x3d#ffffff;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.ios7.icons.",d="mxgraph.ios7.icons";this.addPaletteFunctions("ios7icons","iOS Icons",!1,[this.createVertexTemplateEntry(f+"add;",30,30,"","Add",null,null,this.getTagsForStencil(d,"add",c).join(" ")),this.createVertexTemplateEntry(f+
"alarm_clock;",27,30,"","Alarm Clock",null,null,this.getTagsForStencil(d,"alarm_clock",c).join(" ")),this.createVertexTemplateEntry(f+"back;",30,25.5,"","Back",null,null,this.getTagsForStencil(d,"back",c).join(" ")),this.createVertexTemplateEntry(f+"backward;",30,16.8,"","Backward",null,null,this.getTagsForStencil(d,"backward",c).join(" ")),this.createVertexTemplateEntry(f+"bag;",21,21,"","Bag",null,null,this.getTagsForStencil(d,"bag",c).join(" ")),this.createVertexTemplateEntry(f+"basket_cancel;",
30,12,"","Basket Cancel",null,null,this.getTagsForStencil(d,"basket_cancel",c).join(" ")),this.createVertexTemplateEntry(f+"basketball;",30,30,"","Basketball",null,null,this.getTagsForStencil(d,"basketball",c).join(" ")),this.createVertexTemplateEntry(f+"battery;",30,12,"","Battery",null,null,this.getTagsForStencil(d,"battery",c).join(" ")),this.createVertexTemplateEntry(f+"bell;",24,77*0.3,"","Bell",null,null,this.getTagsForStencil(d,"bell",c).join(" ")),this.createVertexTemplateEntry(f+"bluetooth;",
@@ -5797,15 +5871,15 @@ d.vertex=!0;a.insert(d);d=new mxCell("2",new mxGeometry(90,128,20,20),c+"forms.r
d=new mxCell("8",new mxGeometry(70,148,20,20),c+"forms.rrect;rSize\x3d0;strokeColor\x3d#999999;fontColor\x3d#999999;fillColor\x3d#ddeeff;");d.vertex=!0;a.insert(d);d=new mxCell("9",new mxGeometry(90,148,20,20),c+"forms.rrect;rSize\x3d0;strokeColor\x3d#999999;fontColor\x3d#999999;fillColor\x3d#ddeeff;");d.vertex=!0;a.insert(d);d=new mxCell("10",new mxGeometry(110,148,20,20),c+"forms.rrect;rSize\x3d0;strokeColor\x3d#999999;fontColor\x3d#999999;fillColor\x3d#ddeeff;");d.vertex=!0;a.insert(d);d=new mxCell("11",
new mxGeometry(130,148,20,20),c+"forms.rrect;rSize\x3d0;strokeColor\x3d#999999;fontColor\x3d#999999;fillColor\x3d#ddeeff;");d.vertex=!0;a.insert(d);d=new mxCell("24",new mxGeometry(50,108,20,20),c+"forms.rrect;rSize\x3d0;strokeColor\x3d#ff0000;fontColor\x3d#ffffff;strokeWidth\x3d2;fillColor\x3d#008cff;");d.vertex=!0;a.insert(d);return b.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Calendar")}),this.addEntry("mockup form email",function(){var a=new mxCell("From",new mxGeometry(0,
0,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");a.vertex=!0;var d=new mxCell("john@jgraph.com",new mxGeometry(50,0,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");d.vertex=!0;var e=new mxCell("Subject",new mxGeometry(0,35,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");e.vertex=!0;var f=new mxCell("Greeting",new mxGeometry(50,35,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");
-f.vertex=!0;var m=new mxCell("To",new mxGeometry(0,70,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");m.vertex=!0;var p=new mxCell("fred@jgraph.com",new mxGeometry(50,70,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");p.vertex=!0;var q=new mxCell("CC",new mxGeometry(0,105,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");q.vertex=!0;var r=new mxCell("",
-new mxGeometry(50,105,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");r.vertex=!0;var s=new mxCell("BCC",new mxGeometry(0,140,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");s.vertex=!0;var t=new mxCell("",new mxGeometry(50,140,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");t.vertex=!0;var u=new mxCell("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
-new mxGeometry(0,175,400,125),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;verticalAlign\x3dtop;whiteSpace\x3dwrap;");u.vertex=!0;return b.createVertexTemplateFromCells([a,d,e,f,m,p,q,r,s,t,u],400,300,"Email")})];this.addPalette("mockupForms","Mockup Forms",!1,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};Sidebar.prototype.addMockupGraphicsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
+f.vertex=!0;var m=new mxCell("To",new mxGeometry(0,70,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");m.vertex=!0;var p=new mxCell("fred@jgraph.com",new mxGeometry(50,70,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");p.vertex=!0;var r=new mxCell("CC",new mxGeometry(0,105,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");r.vertex=!0;var s=new mxCell("",
+new mxGeometry(50,105,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");s.vertex=!0;var q=new mxCell("BCC",new mxGeometry(0,140,50,18),c+"forms.anchor;align\x3dright;spacingRight\x3d2;fontColor\x3d#666666;");q.vertex=!0;var t=new mxCell("",new mxGeometry(50,140,350,18),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;");t.vertex=!0;var u=new mxCell("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+new mxGeometry(0,175,400,125),c+"forms.rrect;fillColor\x3d#ffffff;rSize\x3d0;fontColor\x3d#666666;align\x3dleft;spacingLeft\x3d3;strokeColor\x3d#999999;verticalAlign\x3dtop;whiteSpace\x3dwrap;");u.vertex=!0;return b.createVertexTemplateFromCells([a,d,e,f,m,p,r,s,q,t,u],400,300,"Email")})];this.addPalette("mockupForms","Mockup Forms",!1,mxUtils.bind(this,function(b){for(var a=0;a<e.length;a++)b.appendChild(e[a](b))}))};Sidebar.prototype.addMockupGraphicsPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
"\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;html\x3d1;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;strokeWidth\x3d1;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.mockup.",c=mxConstants.STYLE_STROKEWIDTH+"\x3d1;shadow\x3d0;dashed\x3d0;align\x3dcenter;html\x3d1;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.mockup.",f=mxConstants.STYLE_FILLCOLOR+"\x3d#ffffff;",d=mxConstants.STYLE_STROKECOLOR+"\x3dnone;",b=this,e=[this.createVertexTemplateEntry(a+"graphics.barChart;"+f+d+"strokeColor2\x3dnone;strokeColor3\x3d#666666;fillColor2\x3d#008cff;fillColor3\x3d#dddddd;",
400,200,"","Bar Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","barChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.columnChart;"+f+d+"strokeColor2\x3dnone;strokeColor3\x3d#666666;fillColor2\x3d#008cff;fillColor3\x3d#dddddd;",400,200,"","Column Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","columnChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.lineChart;"+f+d+"strokeColor2\x3d#666666;strokeColor3\x3d#008cff;strokeColor4\x3d#dddddd;",
400,200,"","Line Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","lineChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.pieChart;"+mxConstants.STYLE_STROKECOLOR+"\x3d#008cff;parts\x3d10,20,35;partColors\x3d#e0e0e0,#d0d0d0,#c0c0c0,#b0b0b0,#a0a0a0;strokeWidth\x3d2;",200,200,"","Pie Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","pieChart","mockup graphics ").join(" ")),this.createVertexTemplateEntry(a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;",
50,50,"","Icon Placeholder",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","simpleIcon","mockup graphics icon placeholder").join(" ")),this.addEntry("mockup graphics icon grid placeholder",function(){var c=new mxCell("",new mxGeometry(0,0,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");c.vertex=!0;var d=new mxCell("",new mxGeometry(75,0,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");d.vertex=!0;var e=new mxCell("",new mxGeometry(150,
-0,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");e.vertex=!0;var f=new mxCell("",new mxGeometry(0,75,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");f.vertex=!0;var m=new mxCell("",new mxGeometry(75,75,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");m.vertex=!0;var p=new mxCell("",new mxGeometry(150,75,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");p.vertex=!0;var q=new mxCell("",
-new mxGeometry(0,150,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");q.vertex=!0;var r=new mxCell("",new mxGeometry(75,150,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");r.vertex=!0;var s=new mxCell("",new mxGeometry(150,150,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");s.vertex=!0;return b.createVertexTemplateFromCells([c,d,e,f,m,p,q,r,s],200,200,"Icon Grid")}),this.createVertexTemplateEntry(a+"graphics.bubbleChart;"+
+0,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");e.vertex=!0;var f=new mxCell("",new mxGeometry(0,75,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");f.vertex=!0;var m=new mxCell("",new mxGeometry(75,75,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");m.vertex=!0;var p=new mxCell("",new mxGeometry(150,75,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");p.vertex=!0;var r=new mxCell("",
+new mxGeometry(0,150,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");r.vertex=!0;var s=new mxCell("",new mxGeometry(75,150,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");s.vertex=!0;var q=new mxCell("",new mxGeometry(150,150,50,50),a+"graphics.simpleIcon;strokeColor\x3d#999999;fillColor\x3d#ffffff;");q.vertex=!0;return b.createVertexTemplateFromCells([c,d,e,f,m,p,r,s,q],200,200,"Icon Grid")}),this.createVertexTemplateEntry(a+"graphics.bubbleChart;"+
f+d+"strokeColor2\x3dnone;strokeColor3\x3d#666666;fillColor2\x3d#008cff;fillColor3\x3d#dddddd;",400,200,"","Bubble Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","bubbleChart","mockup graphics bubble chart").join(" ")),this.addEntry("mockup graphics gauge",function(){var d=new mxCell("",new mxGeometry(0,0,100,100),a+"graphics.gauge;fillColor\x3d#ffffff;strokeColor\x3d#999999;gaugePos\x3d25;scaleColors\x3d#bbddff,#ddeeff,#99ccff;gaugeLabels\x3d,,;needleColor\x3d#008cff;");d.vertex=
!0;var e=new mxCell("CPU[%]",new mxGeometry(25,20,50,20),c+"graphics.anchor;fontColor\x3d#666666;");e.vertex=!0;d.insert(e);e=new mxCell("0",new mxGeometry(20,75,50,20),c+"graphics.anchor;align\x3dleft;fontColor\x3d#666666;");e.vertex=!0;d.insert(e);e=new mxCell("100",new mxGeometry(30,75,50,20),c+"graphics.anchor;align\x3dright;fontColor\x3d#666666;");e.vertex=!0;d.insert(e);return b.createVertexTemplateFromCells([d],d.geometry.width,d.geometry.height,"Gauge")}),this.createVertexTemplateEntry(a+
"graphics.plotChart;"+f+mxConstants.STYLE_STROKECOLOR+"\x3dnone;strokeColor2\x3d#aaaaaa;strokeColor3\x3d#666666;fillColor2\x3d#99aaff,#0022ff,#008cff;",400,200,"","Plot Chart",null,null,this.getTagsForStencil("mxgraph.mockup.graphics","plotChart","mockup graphics plot chart").join(" ")),this.addEntry("mockup graphics gantt chart",function(){var a=new mxCell("",new mxGeometry(0,0,600,300),c+"graphics.rrect;rSize\x3d0;strokeColor\x3d#999999;");a.vertex=!0;var d=new mxCell("#",new mxGeometry(0,0,20,
@@ -5842,10 +5916,10 @@ new mxCell("",new mxGeometry(0,0,500,30),c+"misc.rrect;rSize\x3d0;strokeColor\x3
b.vertex=!0;a.insert(b);b=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;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(495,15,0,0),c+"misc.anchor;");b.vertex=!0;a.insert(b);var d=new mxCell("",new mxGeometry(-20,-10,20,20),"shape\x3dellipse;fillColor\x3dnone;strokeColor\x3d#008cff;resizable\x3d0;html\x3d1;");d.vertex=!0;b.insert(d);b=new mxCell("",new mxGeometry(465,
15,0,0),c+"misc.anchor;");b.vertex=!0;a.insert(b);d=new mxCell("",new mxGeometry(-20,5,20,10),"shape\x3dline;strokeColor\x3d#008cff;resizable\x3d0;");d.vertex=!0;b.insert(d);return e.createVertexTemplateFromCells([a],a.geometry.width,a.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(a){for(var b=0;b<k.length;b++)a.appendChild(k[b](a))}))};Sidebar.prototype.addMockupNavigationPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
-"\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;html\x3d1;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;strokeWidth\x3d1;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.mockup.",c=mxConstants.STYLE_STROKEWIDTH+"\x3d1;shadow\x3d0;dashed\x3d0;align\x3dcenter;html\x3d1;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.mockup.",f=mxConstants.STYLE_STROKECOLOR+"\x3d#999999;",d=this,b=[this.addEntry("mockup navigation status bar",function(){var a=new mxCell("Layer 1",new mxGeometry(0,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#666666;fontStyle\x3d1;");
-a.vertex=!0;var b=new mxCell("\x3e",new mxGeometry(60,0,20,30),c+"navigation.anchor;fontSize\x3d24;fontColor\x3d#aaaaaa;fontStyle\x3d1;");b.vertex=!0;var f=new mxCell("Layer 2",new mxGeometry(80,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#666666;fontStyle\x3d1;");f.vertex=!0;var l=new mxCell("\x3e",new mxGeometry(140,0,20,30),c+"navigation.anchor;fontSize\x3d24;fontColor\x3d#aaaaaa;fontStyle\x3d1;");l.vertex=!0;var n=new mxCell("Layer 3",new mxGeometry(160,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#666666;fontStyle\x3d1;");
-n.vertex=!0;var m=new mxCell("\x3e",new mxGeometry(220,0,20,30),c+"navigation.anchor;fontSize\x3d24;fontColor\x3d#aaaaaa;fontStyle\x3d1;");m.vertex=!0;var p=new mxCell("Layer 4",new mxGeometry(240,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#008cff;fontStyle\x3d1;");p.vertex=!0;return d.createVertexTemplateFromCells([a,b,f,l,n,m,p],300,30,"Status Bar")}),this.createVertexTemplateEntry(c+"navigation.stepBar;strokeColor\x3d#c4c4c4;textColor\x3d#666666;textColor2\x3d#008cff;mainText\x3d,,+,;textSize\x3d17;fillColor\x3d#666666;overflow\x3dfill;fontSize\x3d17;fontColor\x3d#666666;",
+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;a<k.length;a++)b.appendChild(k[a](b))}))};Sidebar.prototype.addMockupNavigationPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+
+"\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;html\x3d1;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;strokeWidth\x3d1;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.mockup.",c=mxConstants.STYLE_STROKEWIDTH+"\x3d1;shadow\x3d0;dashed\x3d0;align\x3dcenter;html\x3d1;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.mockup.",f=mxConstants.STYLE_STROKECOLOR+"\x3d#999999;",d=this,b=[this.addEntry("mockup navigation status bar",function(){var b=new mxCell("Layer 1",new mxGeometry(0,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#666666;fontStyle\x3d1;");
+b.vertex=!0;var a=new mxCell("\x3e",new mxGeometry(60,0,20,30),c+"navigation.anchor;fontSize\x3d24;fontColor\x3d#aaaaaa;fontStyle\x3d1;");a.vertex=!0;var f=new mxCell("Layer 2",new mxGeometry(80,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#666666;fontStyle\x3d1;");f.vertex=!0;var l=new mxCell("\x3e",new mxGeometry(140,0,20,30),c+"navigation.anchor;fontSize\x3d24;fontColor\x3d#aaaaaa;fontStyle\x3d1;");l.vertex=!0;var n=new mxCell("Layer 3",new mxGeometry(160,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#666666;fontStyle\x3d1;");
+n.vertex=!0;var m=new mxCell("\x3e",new mxGeometry(220,0,20,30),c+"navigation.anchor;fontSize\x3d24;fontColor\x3d#aaaaaa;fontStyle\x3d1;");m.vertex=!0;var p=new mxCell("Layer 4",new mxGeometry(240,0,60,30),c+"navigation.anchor;fontSize\x3d17;fontColor\x3d#008cff;fontStyle\x3d1;");p.vertex=!0;return d.createVertexTemplateFromCells([b,a,f,l,n,m,p],300,30,"Status Bar")}),this.createVertexTemplateEntry(c+"navigation.stepBar;strokeColor\x3d#c4c4c4;textColor\x3d#666666;textColor2\x3d#008cff;mainText\x3d,,+,;textSize\x3d17;fillColor\x3d#666666;overflow\x3dfill;fontSize\x3d17;fontColor\x3d#666666;",
300,50,'\x3ctable border\x3d"0" cellpadding\x3d"0" cellspacing\x3d"0" width\x3d"100%" height\x3d"100%" style\x3d"font-size:1em;"\x3e\x3ctr height\x3d"0%"\x3e\x3ctd width\x3d"25%"\x3eLayer 1\x3c/td\x3e\x3ctd width\x3d"25%"\x3eLayer 2\x3c/td\x3e\x3ctd width\x3d"25%" style\x3d"color:#008cff;"\x3eLayer 3\x3c/td\x3e\x3ctd width\x3d"25%"\x3eLayer 4\x3c/td\x3e\x3c/tr\x3e\x3ctr height\x3d"100%"\x3e\x3ctd/\x3e\x3c/tr\x3e\x3c/table\x3e',"Step Bar",null,null,this.getTagsForStencil("mxgraph.mockup.navigation",
"stepBar","mockup navigation ").join(" ")),this.createVertexTemplateEntry(a+"navigation.coverFlow;strokeColor\x3d#999999;fillColor\x3d#ffffff;",400,200,"","Cover Flow",null,null,this.getTagsForStencil("mxgraph.mockup.navigation","coverFlow","mockup navigation ").join(" ")),this.createVertexTemplateEntry(a+"navigation.scrollBar;fillColor\x3d#ffffff;"+f+"barPos\x3d20;fillColor2\x3d#99ddff;strokeColor2\x3dnone;",200,20,"","Horizontal Scroll Bar",null,null,this.getTagsForStencil("mxgraph.mockup.navigation",
"scrollBar","mockup navigation ").join(" ")),this.createVertexTemplateEntry(a+"navigation.scrollBar;fillColor\x3d#ffffff;"+f+"barPos\x3d20;fillColor2\x3d#99ddff;strokeColor2\x3dnone;direction\x3dnorth;",20,200,"","Vertical Scroll Bar",null,null,this.getTagsForStencil("mxgraph.mockup.navigation","scrollBar","mockup navigation ").join(" ")),this.createVertexTemplateEntry(c+"navigation.pagination;linkText\x3d;fontSize\x3d17;fontColor\x3d#0000ff;fontStyle\x3d4;",350,30,"\x3c\x3c Prev 1 2 3 4 5 6 7 8 9 10 Next \x3e\x3e",
@@ -5860,8 +5934,8 @@ c,200,100,"Callout","Callout",null,null,this.getTagsForStencil("mxgraph.mockup.t
f+mxConstants.STYLE_FILLCOLOR+"\x3dnone;align\x3dleft;verticalAlign\x3dtop;fontSize\x3d17;fontColor\x3d#666666;",150,135,"-Line 1\n-Line 2\n-Line 3\n-Line 4","Bulleted List",null,null,this.getTagsForStencil("mxgraph.mockup.text","bulletedList","mockup text ").join(" ")),this.createVertexTemplateEntry(a+"text.textBox;fillColor\x3d#ffffff;fontColor\x3d#666666;align\x3dleft;fontSize\x3d17;spacingLeft\x3d4;spacingTop\x3d-3;"+c+"mainText\x3d",150,30,"Line 1","Text Box",null,null,this.getTagsForStencil("mxgraph.mockup.text",
"textBox","mockup text ").join(" ")),this.createVertexTemplateEntry(a+"text.captcha;fillColor\x3d#ffffff;fontColor\x3d#666666;fontSize\x3d25;"+c+"mainText\x3d",150,50,"fG2yQ23","Captcha",null,null,this.getTagsForStencil("mxgraph.mockup.text","captcha","mockup text ").join(" ")),this.createVertexTemplateEntry(a+"text.alphanumeric;linkText\x3d;html\x3d1;fontStyle\x3d4;fontSize\x3d17;fontColor\x3d#0000ff;",450,50,"0-9 A B C D E F G H I J K L M N O P Q R S T U V X Y Z","Alphanumeric",null,null,this.getTagsForStencil("mxgraph.mockup.text",
"alphanumeric","mockup text ").join(" ")),this.createVertexTemplateEntry("text;spacingTop\x3d-5;fillColor\x3d#ffffff;whiteSpace\x3dwrap;html\x3d1;align\x3dleft;fontSize\x3d12;fontFamily\x3dHelvetica;fillColor\x3dnone;strokeColor\x3dnone;",250,470,"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\nSed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?",
-"Paragraph of Text",null,null,this.getTagsForStencil("mxgraph.mockup.text","peragraph of text","mockup text ").join(" ")),this.addEntry("mockup text table",function(){var a=new mxCell('\x3ctable cellpadding\x3d"4" cellspacing\x3d"0" border\x3d"1" style\x3d"font-size:1em;width:100%;height:100%;"\x3e\x3ctr\x3e\x3cth\x3eHeader 1\x3c/th\x3e\x3cth\x3eHeader 2\x3c/th\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd\x3erow 1, cell 1\x3c/td\x3e\x3ctd\x3erow 1, cell 2\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd\x3erow 2, cell 1\x3c/td\x3e\x3ctd\x3erow 2, cell 2\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e ',
-new mxGeometry(0,0,180,80),"verticalAlign\x3dtop;align\x3dleft;overflow\x3dfill;fillColor\x3d#ffffff;fontSize\x3d12;fontFamily\x3dHelvetica;html\x3d1");a.vertex=!0;return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Table")})];this.addPalette("mockupText","Mockup Text",!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))}})();
+"Paragraph of Text",null,null,this.getTagsForStencil("mxgraph.mockup.text","peragraph of text","mockup text ").join(" ")),this.addEntry("mockup text table",function(){var b=new mxCell('\x3ctable cellpadding\x3d"4" cellspacing\x3d"0" border\x3d"1" style\x3d"font-size:1em;width:100%;height:100%;"\x3e\x3ctr\x3e\x3cth\x3eHeader 1\x3c/th\x3e\x3cth\x3eHeader 2\x3c/th\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd\x3erow 1, cell 1\x3c/td\x3e\x3ctd\x3erow 1, cell 2\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd\x3erow 2, cell 1\x3c/td\x3e\x3ctd\x3erow 2, cell 2\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e ',
+new mxGeometry(0,0,180,80),"verticalAlign\x3dtop;align\x3dleft;overflow\x3dfill;fillColor\x3d#ffffff;fontSize\x3d12;fontFamily\x3dHelvetica;html\x3d1");b.vertex=!0;return d.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,"Table")})];this.addPalette("mockupText","Mockup Text",!1,mxUtils.bind(this,function(a){for(var c=0;c<b.length;c++)a.appendChild(b[c](a))}))}})();
(function(){Sidebar.prototype.addMSCAEPalette=function(){this.addMSCAEGeneralPalette();this.addMSCAECloudPalette();this.addMSCAEEnterprisePalette();this.addMSCAEIntunePalette();this.addMSCAEOtherPalette();this.addMSCAESystemCenterPalette();this.addMSCAEDeprecatedPalette()};Sidebar.prototype.addMSCAECloudPalette=function(){var a=[this.createVertexTemplateEntry("shadow\x3d0;dashed\x3d0;html\x3d1;strokeColor\x3dnone;fillColor\x3d#0079D6;labelPosition\x3dcenter;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;shape\x3dmxgraph.azure.access_control;",
50,50,"","Access Control",null,null,this.getTagsForStencil("mxgraph.mscae.cloud","access control","ms microsoft cloud enterprise ").join(" ")),this.createVertexTemplateEntry("shadow\x3d0;dashed\x3d0;html\x3d1;strokeColor\x3dnone;labelPosition\x3dcenter;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;shape\x3dmxgraph.mscae.cloud.api_app;fillColor\x3d#0079D6;",45,50,"","API App",null,null,this.getTagsForStencil("mxgraph.mscae.cloud","api app","ms microsoft cloud enterprise ").join(" ")),this.createVertexTemplateEntry("shadow\x3d0;dashed\x3d0;html\x3d1;strokeColor\x3dnone;labelPosition\x3dcenter;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;shape\x3dmxgraph.mscae.cloud.api_management;fillColor\x3d#0079D6;",
50,45,"","API Management",null,null,this.getTagsForStencil("mxgraph.mscae.cloud","api management","ms microsoft cloud enterprise ").join(" ")),this.createVertexTemplateEntry("shadow\x3d0;dashed\x3d0;html\x3d1;strokeColor\x3dnone;labelPosition\x3dcenter;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;shape\x3dmxgraph.mscae.cloud.app_service;fillColor\x3d#0079D6;",50,50,"","App Service",null,null,this.getTagsForStencil("mxgraph.mscae.cloud","app application service","ms microsoft cloud enterprise ").join(" ")),
@@ -6791,8 +6865,8 @@ new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;html\x3d1;dashed\x3d1;endArrow\x3dnon
m.geometry.setTerminalPoint(new mxPoint(250,120),!1);m.geometry.relative=!0;m.edge=!0;e.insertEdge(m,!0);var p=new mxCell("m2",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;html\x3d1;dashed\x3d1;endArrow\x3dnone;startArrow\x3dopen;verticalAlign\x3dbottom;startSize\x3d12;");p.geometry.setTerminalPoint(new mxPoint(250,150),!1);p.geometry.relative=!0;p.edge=!0;f.insertEdge(p,!0);return c.createVertexTemplateFromCells([a,b,e,f,k,l,n,m,p],250,220,"Coregion")}),this.addEntry("sysml interaction creation destruction event",
function(){var a=new mxCell("b1:Block1",new mxGeometry(0,0,100,30),"shape\x3drect;html\x3d1;whiteSpace\x3dwrap;align\x3dcenter;");a.vertex=!0;var b=new mxCell("b2:Block2",new mxGeometry(150,40,100,30),"shape\x3drect;html\x3d1;whiteSpace\x3dwrap;align\x3dcenter;");b.vertex=!0;var e=new mxCell("",new mxGeometry(190,70,20,100),"shape\x3drect;fillColor\x3d#eeeeee;html\x3d1;");e.vertex=!0;var f=new mxCell("",new mxGeometry(48,53,4,4),"shape\x3dellipse;fillColor\x3d#000000;html\x3d1;");f.vertex=!0;var k=
new mxCell("",new mxGeometry(48,148,4,4),"shape\x3dellipse;fillColor\x3d#000000;html\x3d1;");k.vertex=!0;var l=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;dashed\x3d1;endArrow\x3dnone;html\x3d1;");l.geometry.relative=!0;l.edge=!0;a.insertEdge(l,!0);f.insertEdge(l,!1);var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;dashed\x3d1;endArrow\x3dnone;html\x3d1;");n.geometry.relative=!0;n.edge=!0;f.insertEdge(n,!0);k.insertEdge(n,!1);var m=new mxCell("",new mxGeometry(0,0,0,0),
-"edgeStyle\x3dnone;dashed\x3d1;endArrow\x3dnone;html\x3d1;");m.geometry.setTerminalPoint(new mxPoint(50,220),!1);m.geometry.relative=!0;m.edge=!0;k.insertEdge(m,!0);var p=new mxCell("create",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dopen;verticalAlign\x3dbottom;endSize\x3d12;html\x3d1;");p.geometry.setTerminalPoint(new mxPoint(250,120),!1);p.geometry.relative=!0;p.edge=!0;f.insertEdge(p,!0);b.insertEdge(p,!1);var q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3delbowEdgeStyle;endArrow\x3dopen;elbow\x3dvertical;endSize\x3d12;html\x3d1;");
-q.geometry.setTerminalPoint(new mxPoint(250,150),!1);q.geometry.relative=!0;q.edge=!0;k.insertEdge(q,!0);e.insertEdge(q,!1);var r=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dsysMLx;endSize\x3d22;dashed\x3d1;html\x3d1;");r.geometry.setTerminalPoint(new mxPoint(200,200),!1);r.geometry.relative=!0;r.edge=!0;e.insertEdge(r,!0);return c.createVertexTemplateFromCells([a,b,e,f,k,l,n,m,p,q,r],250,220,"Creation/Destruction Event")}),this.addEntry("sysml interaction duration constraint",
+"edgeStyle\x3dnone;dashed\x3d1;endArrow\x3dnone;html\x3d1;");m.geometry.setTerminalPoint(new mxPoint(50,220),!1);m.geometry.relative=!0;m.edge=!0;k.insertEdge(m,!0);var p=new mxCell("create",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dopen;verticalAlign\x3dbottom;endSize\x3d12;html\x3d1;");p.geometry.setTerminalPoint(new mxPoint(250,120),!1);p.geometry.relative=!0;p.edge=!0;f.insertEdge(p,!0);b.insertEdge(p,!1);var r=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3delbowEdgeStyle;endArrow\x3dopen;elbow\x3dvertical;endSize\x3d12;html\x3d1;");
+r.geometry.setTerminalPoint(new mxPoint(250,150),!1);r.geometry.relative=!0;r.edge=!0;k.insertEdge(r,!0);e.insertEdge(r,!1);var s=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;endArrow\x3dsysMLx;endSize\x3d22;dashed\x3d1;html\x3d1;");s.geometry.setTerminalPoint(new mxPoint(200,200),!1);s.geometry.relative=!0;s.edge=!0;e.insertEdge(s,!0);return c.createVertexTemplateFromCells([a,b,e,f,k,l,n,m,p,r,s],250,220,"Creation/Destruction Event")}),this.addEntry("sysml interaction duration constraint",
function(){var a=new mxCell(":User",new mxGeometry(0,0,100,50),"shape\x3drect;html\x3d1;whiteSpace\x3dwrap;align\x3dcenter;");a.vertex=!0;var b=new mxCell("{d..3*d}",new mxGeometry(-20,100,100,40),"html\x3d1;shape\x3dmxgraph.sysml.dimension;rotation\x3d-90;verticalAlign\x3dtop;spacingTop\x3d-5");b.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;dashed\x3d1;endArrow\x3dnone;html\x3d1;");e.geometry.setTerminalPoint(new mxPoint(50,250),!1);e.geometry.relative=!0;e.edge=!0;a.insertEdge(e,
!0);var f=new mxCell("Code d\x3dduration",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;html\x3d1;endArrow\x3dopen;verticalAlign\x3dbottom;endSize\x3d12;");f.geometry.setTerminalPoint(new mxPoint(50,70),!0);f.geometry.setTerminalPoint(new mxPoint(250,70),!1);f.geometry.relative=!0;f.edge=!0;var k=new mxCell("CardOut {0..13}",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;html\x3d1;endArrow\x3dopen;verticalAlign\x3dbottom;spacingBottom\x3d5;endSize\x3d12;");k.geometry.setTerminalPoint(new mxPoint(50,170),
!1);k.geometry.setTerminalPoint(new mxPoint(250,170),!0);k.geometry.relative=!0;k.edge=!0;var l=new mxCell("OK",new mxGeometry(0,0,0,0),"edgeStyle\x3dnone;html\x3d1;endArrow\x3dopen;verticalAlign\x3dtop;spacingTop\x3d5;endSize\x3d12;");l.geometry.setTerminalPoint(new mxPoint(50,200),!1);l.geometry.setTerminalPoint(new mxPoint(250,140),!0);l.geometry.relative=!0;l.edge=!0;return c.createVertexTemplateFromCells([a,b,e,f,k,l],250,250,"Duration Constraint")}),this.addEntry("sysml interaction duration constraint",
@@ -7031,9 +7105,9 @@ StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.sav
StorageFile.prototype.saveFile=function(a,c,f,d){if(this.isEditable()){var b=mxUtils.bind(this,function(){this.isRenamable()&&(this.title=a);try{this.ui.setLocalData(this.title,this.getData(),mxUtils.bind(this,function(){this.setModified(!1);this.contentChanged();null!=f&&f()}))}catch(b){null!=d&&d(b)}});this.isRenamable()&&"."==a.charAt(0)&&null!=d?d({message:mxResources.get("invalidName")}):this.ui.getLocalData(a,mxUtils.bind(this,function(c){!this.isRenamable()||this.getTitle()==a||null==c?b():
this.ui.confirm(mxResources.get("replaceIt",[a]),b,d)}))}else null!=f&&f()};StorageFile.prototype.rename=function(a,c,f){var d=this.getTitle();this.title=a;this.hasSameExtension(d,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){d!=a&&this.ui.removeLocalData(d,c)}),f)};StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,arguments);this.saveFile(this.getTitle())};
StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this,arguments);null!=this.storageListener&&(mxEvent.removeListener(window,"storage",this.storageListener),this.storageListener=null)};StorageLibrary=function(a,c,f){StorageFile.call(this,a,c,f)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!1};StorageLibrary.prototype.saveAs=function(a,c,f){this.saveFile(a,!1,c,f)};StorageLibrary.prototype.getHash=function(){return"L"+encodeURIComponent(this.title)};StorageLibrary.prototype.getTitle=function(){return".scratchpad"==this.title?mxResources.get("scratchpad"):this.title};
-StorageLibrary.prototype.isRenamable=function(a,c,f){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};var StorageDialog=function(a,c){function f(b,d,e,f){function l(){mxEvent.addListener(s,"click",function(){e==App.MODE_GOOGLE&&!a.isDriveDomain()?window.location.hostname=DriveClient.prototype.newAppHostname:e==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(e,k.checked);c()})):(a.setMode(e,k.checked),c())})}var s=document.createElement("a");s.style.overflow="hidden";var t=document.createElement("img");
-t.setAttribute("src",b);t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";s.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";s.className="geBaseButton";s.style.position="relative";s.style.margin="4px";s.style.padding="8px 10px 12px 10px";s.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(s.style.cssFloat="left",s.style.zoom="1");s.appendChild(t);var u=document.createElement("div");s.appendChild(u);mxUtils.write(u,
-d);if(null!=f&&null==a[f]){t.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(s);var A=window.setTimeout(function(){null==a[f]&&(v.stop(),s.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[f]&&(window.clearTimeout(A),mxUtils.setOpacity(u,100),t.style.visibility="",v.stop(),l())}))}else l();g.appendChild(s)}
+StorageLibrary.prototype.isRenamable=function(a,c,f){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};var StorageDialog=function(a,c){function f(b,d,e,f){function l(){mxEvent.addListener(q,"click",function(){e==App.MODE_GOOGLE&&!a.isDriveDomain()?window.location.hostname=DriveClient.prototype.newAppHostname:e==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(e,k.checked);c()})):(a.setMode(e,k.checked),c())})}var q=document.createElement("a");q.style.overflow="hidden";var t=document.createElement("img");
+t.setAttribute("src",b);t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.className="geBaseButton";q.style.position="relative";q.style.margin="4px";q.style.padding="8px 10px 12px 10px";q.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(q.style.cssFloat="left",q.style.zoom="1");q.appendChild(t);var u=document.createElement("div");q.appendChild(u);mxUtils.write(u,
+d);if(null!=f&&null==a[f]){t.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(q);var z=window.setTimeout(function(){null==a[f]&&(v.stop(),q.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[f]&&(window.clearTimeout(z),mxUtils.setOpacity(u,100),t.style.visibility="",v.stop(),l())}))}else l();g.appendChild(q)}
var d=document.createElement("div");d.style.textAlign="center";d.style.whiteSpace="nowrap";var b=a.addLanguageMenu(d);null!=b&&(b.style.bottom="28px");a.isOffline()||(b=document.createElement("a"),b.setAttribute("href","https://support.draw.io/display/DO/Selecting+Storage"),b.setAttribute("title",mxResources.get("help")),b.setAttribute("target","_blank"),b.style.position="absolute",b.style.textDecoration="none",b.style.cursor="pointer",b.style.fontSize="12px",b.style.bottom="28px",b.style.left="26px",
b.style.color="gray",mxUtils.write(b,mxResources.get("help")),d.appendChild(b));var e=document.createElement("div");e.style.position="absolute";e.style.cursor="pointer";e.style.fontSize="12px";e.style.bottom="28px";e.style.color="gray";mxUtils.write(e,mxResources.get("decideLater"));a.isOfflineApp()?e.style.right="20px":(mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,0)"),e.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)e.style.marginLeft=-Math.round(e.clientWidth/
2)+"px"};d.appendChild(e);mxEvent.addListener(e,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,App.MODE_DEVICE);a.setMode(null);Editor.useLocalStorage=b});var g=document.createElement("div");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");g.style.border="1px solid #d3d3d3";g.style.borderWidth="1px 0px 1px 0px";g.style.padding="26px 0px 12px 0px";var k=document.createElement("input");k.setAttribute("type","checkbox");
@@ -7054,63 +7128,63 @@ g.style.paddingBottom="18px";mxEvent.addListener(d,"click",function(){a.oneDrive
c.style.marginTop="16px";c.style.textAlign="center";e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});e.className="geBtn";a.editor.cancelFirst&&c.appendChild(e);var g=mxUtils.button(mxResources.get("ok"),function(){a.hideDialog();null!=f&&f()});c.appendChild(g);g.className="geBtn gePrimaryBtn";a.editor.cancelFirst||c.appendChild(e);b.appendChild(c);this.container=b},ErrorDialog=function(a,c,f,d,b,e,g,k,l){l=null!=l?l:!0;var n=document.createElement("div");n.style.textAlign=
"center";if(null!=c){var m=document.createElement("div");m.style.padding="0px";m.style.margin="0px";m.style.fontSize="18px";m.style.paddingBottom="16px";m.style.marginBottom="16px";m.style.borderBottom="1px solid #c0c0c0";m.style.color="gray";mxUtils.write(m,c);n.appendChild(m)}c=document.createElement("div");c.style.padding="6px";c.innerHTML=f;n.appendChild(c);f=document.createElement("div");f.style.marginTop="16px";f.style.textAlign="right";null!=e&&(c=mxUtils.button(mxResources.get("tryAgain"),
function(){a.hideDialog();e()}),c.className="geBtn",f.appendChild(c),f.style.textAlign="center");var p=mxUtils.button(d,function(){l&&a.hideDialog();null!=b&&b()});p.className="geBtn";f.appendChild(p);null!=g&&(d=mxUtils.button(g,function(){l&&a.hideDialog();null!=k&&k()}),d.className="geBtn gePrimaryBtn",f.appendChild(d));this.init=function(){p.focus()};n.appendChild(f);this.container=n},EmbedHtmlDialog=function(a){function c(c){c=a.getBasenames();var f={};""!=p.value&&p.value!=mxConstants.NONE&&
-(f.highlight=p.value);q.checked||(f.lightbox=!1);f.nav=d.foldingEnabled;var k=parseInt(m.value);!isNaN(k)&&100!=k&&(f.zoom=k/100);k=[];u.checked&&(k.push("pages"),f.resize=!0,null!=a.pages&&null!=a.currentPage&&(f.page=mxUtils.indexOf(a.pages,a.currentPage)));t.checked&&(k.push("zoom"),f.resize=!0);s.checked&&k.push("layers");0<k.length&&(q&&k.push("lightbox"),f.toolbar=k.join(" "));r.checked&&(f.edit=""!=g.value?g.value:"_blank");""!=g.value?f.url=g.value:f.xml=a.getFileData(!0,null,null,null,null,
+(f.highlight=p.value);r.checked||(f.lightbox=!1);f.nav=d.foldingEnabled;var k=parseInt(m.value);!isNaN(k)&&100!=k&&(f.zoom=k/100);k=[];u.checked&&(k.push("pages"),f.resize=!0,null!=a.pages&&null!=a.currentPage&&(f.page=mxUtils.indexOf(a.pages,a.currentPage)));t.checked&&(k.push("zoom"),f.resize=!0);q.checked&&k.push("layers");0<k.length&&(r&&k.push("lightbox"),f.toolbar=k.join(" "));s.checked&&(f.edit=""!=g.value?g.value:"_blank");""!=g.value?f.url=g.value:f.xml=a.getFileData(!0,null,null,null,null,
!u.checked);b.value='\x3cdiv class\x3d"mxgraph" style\x3d"'+(l.checked?"max-width:100%;":"")+(""!=k?"border:1px solid transparent;":"")+'" data-mxgraph\x3d"'+mxUtils.htmlEntities(JSON.stringify(f))+'"\x3e\x3c/div\x3e';c=0<c.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev\x3d1\x26s\x3d":"https://www.draw.io/embed2.js?s\x3d")+c.join(";"):"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js";e.value='\x3cscript type\x3d"text/javascript" src\x3d"'+
c+'"\x3e\x3c/script\x3e';b.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?b.select():document.execCommand("selectAll",!1,null)}a.getCurrentFile();var f=document.createElement("div"),d=a.editor.graph;d.getGraphBounds();mxUtils.write(f,mxResources.get("mainEmbedNotice")+": ");mxUtils.br(f);var b=document.createElement("textarea");b.style.marginTop="6px";b.style.width="550px";b.style.height="160px";b.style.marginBottom="10px";b.style.resize="none";f.appendChild(b);mxUtils.br(f);
mxUtils.write(f,mxResources.get("embedNotice")+": ");mxUtils.br(f);var e=document.createElement("textarea");e.style.marginTop="6px";e.style.width="550px";e.style.height="20px";e.style.resize="none";e.style.marginBottom="10px";f.appendChild(e);mxUtils.br(f);mxUtils.write(f,mxResources.get("publicDiagramUrl")+": ");var g=document.createElement("input");g.setAttribute("type","text");g.setAttribute("size","28");g.style.width="340px";g.style.marginBottom="8px";f.appendChild(g);mxUtils.br(f);var k=document.createElement("div");
k.style.paddingTop="10px";k.style.textAlign="center";var l=document.createElement("input");l.setAttribute("type","checkbox");l.setAttribute("checked","checked");l.defaultChecked=!0;k.appendChild(l);mxUtils.write(k,mxResources.get("fit"));var n=document.createElement("span");n.style.marginLeft="10px";mxUtils.write(n,mxResources.get("zoom")+": ");k.appendChild(n);var m=document.createElement("input");m.setAttribute("type","text");m.setAttribute("size","4");m.style.width="40px";m.value="100%";k.appendChild(m);
-n=document.createElement("span");n.style.marginLeft="10px";mxUtils.write(n,mxResources.get("link")+": ");k.appendChild(n);var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","8");p.style.width="50px";p.value="#0000ff";k.appendChild(p);mxUtils.br(k);var q=document.createElement("input");q.setAttribute("type","checkbox");q.setAttribute("checked","checked");q.defaultChecked=!0;q.style.marginTop="14px";k.appendChild(q);mxUtils.write(k,mxResources.get("lightbox"));
-var r=document.createElement("input");r.setAttribute("type","checkbox");r.setAttribute("checked","checked");r.defaultChecked=!0;r.style.marginLeft="10px";var s=document.createElement("input");s.setAttribute("type","checkbox");s.style.marginLeft="10px";n=a.editor.graph.getModel();null==a.pages||0==a.pages.length&&1>=n.getChildCount(n.getRoot())?s.setAttribute("disabled","disabled"):(s.setAttribute("checked","checked"),s.defaultChecked=!0);k.appendChild(s);mxUtils.write(k,mxResources.get("layers"));
+n=document.createElement("span");n.style.marginLeft="10px";mxUtils.write(n,mxResources.get("link")+": ");k.appendChild(n);var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","8");p.style.width="50px";p.value="#0000ff";k.appendChild(p);mxUtils.br(k);var r=document.createElement("input");r.setAttribute("type","checkbox");r.setAttribute("checked","checked");r.defaultChecked=!0;r.style.marginTop="14px";k.appendChild(r);mxUtils.write(k,mxResources.get("lightbox"));
+var s=document.createElement("input");s.setAttribute("type","checkbox");s.setAttribute("checked","checked");s.defaultChecked=!0;s.style.marginLeft="10px";var q=document.createElement("input");q.setAttribute("type","checkbox");q.style.marginLeft="10px";n=a.editor.graph.getModel();null==a.pages||0==a.pages.length&&1>=n.getChildCount(n.getRoot())?q.setAttribute("disabled","disabled"):(q.setAttribute("checked","checked"),q.defaultChecked=!0);k.appendChild(q);mxUtils.write(k,mxResources.get("layers"));
var t=document.createElement("input");t.setAttribute("type","checkbox");t.style.marginLeft="10px";k.appendChild(t);mxUtils.write(k,mxResources.get("zoom"));t.setAttribute("checked","checked");t.defaultChecked=!0;var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.marginLeft="10px";null!=a.pages&&1<a.pages.length&&(u.setAttribute("checked","checked"),u.defaultChecked=!0,k.appendChild(u));mxUtils.write(k,mxResources.get("allPages"));f.appendChild(k);this.init=function(){c()};
-mxEvent.addListener(g,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(m,"change",c);mxEvent.addListener(s,"change",c);mxEvent.addListener(r,"change",c);mxEvent.addListener(l,"change",c);mxEvent.addListener(q,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(u,"change",c);k=document.createElement("div");k.style.paddingTop="20px";k.style.textAlign="right";a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){window.open("https://support.draw.io/pages/viewpage.action?pageId\x3d12878123")}),
+mxEvent.addListener(g,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(m,"change",c);mxEvent.addListener(q,"change",c);mxEvent.addListener(s,"change",c);mxEvent.addListener(l,"change",c);mxEvent.addListener(r,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(u,"change",c);k=document.createElement("div");k.style.paddingTop="20px";k.style.textAlign="right";a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){window.open("https://support.draw.io/pages/viewpage.action?pageId\x3d12878123")}),
n.className="geBtn",k.appendChild(n));if(!mxClient.IS_CHROMEAPP&&!navigator.standalone&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))n=mxUtils.button(mxResources.get("preview"),function(){var a=window.open(),c=a.document;"CSS1Compat"===document.compatMode&&c.writeln("\x3c!DOCTYPE html\x3e");c.writeln("\x3chtml\x3e");c.writeln("\x3chead\x3e\x3ctitle\x3e"+encodeURIComponent(mxResources.get("preview"))+'\x3c/title\x3e\x3cmeta charset\x3d"utf-8"\x3e\x3c/head\x3e');c.writeln("\x3cbody\x3e");
c.writeln(b.value);var d=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;d&&c.writeln(e.value);c.writeln("\x3c/body\x3e");c.writeln("\x3c/html\x3e");c.close();if(!d){var f=a.document.createElement("div");f.marginLeft="26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));d=a.document.createElement("img");d.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");d.style.marginLeft="6px";f.appendChild(d);a.document.body.insertBefore(f,
a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(e.value)[1];c.body.appendChild(a);f.parentNode.removeChild(f)},20)}}),n.className="geBtn",k.appendChild(n);var n=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()}),v=mxUtils.button(mxResources.get("copy"),function(){b.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?b.select():document.execCommand("selectAll",
!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});k.appendChild(n);!mxClient.IS_SF&&null==document.documentMode?(k.appendChild(v),v.className="geBtn gePrimaryBtn",n.className="geBtn"):n.className="geBtn gePrimaryBtn";f.appendChild(k);this.container=f},EmbedSvgDialog=function(a,c){function f(b){if(c){var d=a.editor.graph.getGraphBounds(),f=function(a){var b=" ",c="";p.checked&&(b=" onclick\x3d\"(function(img){if(img.wnd!\x3dnull\x26\x26!img.wnd.closed){img.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dimg.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
-(q.checked?"\x26layers\x3d1":"")+"');}})(this);\"",c+="cursor:pointer;");k.checked&&(c+="max-width:100%;");var f="";m.checked&&(f=' width\x3d"'+Math.round(d.width)+'" height\x3d"'+Math.round(d.height)+'"');e.value='\x3cimg src\x3d"'+a+'"'+f+(""!=c?' style\x3d"'+c+'"':"")+b+"/\x3e";e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null)};if(a.isExportToCanvas())e.value=mxResources.get("updatingDocument"),a.exportToCanvas(mxUtils.bind(this,
-function(b){var c=p.checked?a.getFileData(!0):null;b=a.createPngDataUri(b,c);f(b)}),null,null,null,mxUtils.bind(this,function(b){e.value="";a.handleError({message:mxResources.get("unknownError")})}),null,!0,m.checked?2:1,null,l.checked);else if(b=a.getFileData(!0),d.width*d.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){e.value=mxResources.get("updatingDocument");var g="";m.checked&&(g="\x26w\x3d"+Math.round(2*d.width)+"\x26h\x3d"+Math.round(2*d.height));var r=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+
-(p.checked?"1":"0")+g+"\x26xml\x3d"+encodeURIComponent(b));r.send(mxUtils.bind(this,function(){200==r.getStatus()?f("data:image/png;base64,"+r.getText()):(e.value="",a.handleError({message:mxResources.get("unknownError")}))}))}else e.value="",a.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}else{b=a.editor.graph.getSvg();g=b.getElementsByTagName("a");if(null!=g)for(var y=0;y<g.length;y++){var x=g[y].getAttribute("href");null!=x&&("#"==x.charAt(0)&&"_blank"==g[y].getAttribute("target"))&&
-g[y].removeAttribute("target")}p.checked&&b.setAttribute("content",a.getFileData(!0));l.checked&&a.editor.addSvgShadow(b);if(n.checked){var D=" ",z="";p.checked&&(D="onclick\x3d\"(function(img){if(img.wnd!\x3dnull\x26\x26!img.wnd.closed){img.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dimg.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
-(q.checked?"\x26layers\x3d1":"")+"');}})(this);\"",z+="cursor:pointer;");k.checked&&(z+="max-width:100%;");a.convertImages(b,function(b){e.value='\x3cimg src\x3d"'+a.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=z?' style\x3d"'+z+'"':"")+D+"/\x3e"})}else z="",p.checked&&(b.setAttribute("onclick","(function(svg){var src\x3dwindow.event.target||window.event.srcElement;while (src!\x3dnull\x26\x26src.nodeName.toLowerCase()!\x3d'a'){src\x3dsrc.parentNode;}if(src\x3d\x3dnull){if(svg.wnd!\x3dnull\x26\x26!svg.wnd.closed){svg.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dsvg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
-(q.checked?"\x26layers\x3d1":"")+"');}}})(this);"),z+="cursor:pointer;"),k.checked&&(g=parseInt(b.getAttribute("width")),y=parseInt(b.getAttribute("height")),b.setAttribute("viewBox","0 0 "+g+" "+y),z+="max-width:100%;max-height:"+y+"px;",b.removeAttribute("height")),""!=z&&b.setAttribute("style",z),e.value=mxUtils.getXml(b);e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null)}}a.getCurrentFile();var d=document.createElement("div"),
+(r.checked?"\x26layers\x3d1":"")+"');}})(this);\"",c+="cursor:pointer;");k.checked&&(c+="max-width:100%;");var f="";m.checked&&(f=' width\x3d"'+Math.round(d.width)+'" height\x3d"'+Math.round(d.height)+'"');e.value='\x3cimg src\x3d"'+a+'"'+f+(""!=c?' style\x3d"'+c+'"':"")+b+"/\x3e";e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null)};if(a.isExportToCanvas())e.value=mxResources.get("updatingDocument"),a.exportToCanvas(mxUtils.bind(this,
+function(b){var c=p.checked?a.getFileData(!0):null;b=a.createPngDataUri(b,c);f(b)}),null,null,null,mxUtils.bind(this,function(b){e.value="";a.handleError({message:mxResources.get("unknownError")})}),null,!0,m.checked?2:1,null,l.checked);else if(b=a.getFileData(!0),d.width*d.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){e.value=mxResources.get("updatingDocument");var g="";m.checked&&(g="\x26w\x3d"+Math.round(2*d.width)+"\x26h\x3d"+Math.round(2*d.height));var s=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+
+(p.checked?"1":"0")+g+"\x26xml\x3d"+encodeURIComponent(b));s.send(mxUtils.bind(this,function(){200==s.getStatus()?f("data:image/png;base64,"+s.getText()):(e.value="",a.handleError({message:mxResources.get("unknownError")}))}))}else e.value="",a.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}else{b=a.editor.graph.getSvg();g=b.getElementsByTagName("a");if(null!=g)for(var y=0;y<g.length;y++){var x=g[y].getAttribute("href");null!=x&&("#"==x.charAt(0)&&"_blank"==g[y].getAttribute("target"))&&
+g[y].removeAttribute("target")}p.checked&&b.setAttribute("content",a.getFileData(!0));l.checked&&a.editor.addSvgShadow(b);if(n.checked){var D=" ",A="";p.checked&&(D="onclick\x3d\"(function(img){if(img.wnd!\x3dnull\x26\x26!img.wnd.closed){img.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dimg.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
+(r.checked?"\x26layers\x3d1":"")+"');}})(this);\"",A+="cursor:pointer;");k.checked&&(A+="max-width:100%;");a.convertImages(b,function(b){e.value='\x3cimg src\x3d"'+a.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=A?' style\x3d"'+A+'"':"")+D+"/\x3e"})}else A="",p.checked&&(b.setAttribute("onclick","(function(svg){var src\x3dwindow.event.target||window.event.srcElement;while (src!\x3dnull\x26\x26src.nodeName.toLowerCase()!\x3d'a'){src\x3dsrc.parentNode;}if(src\x3d\x3dnull){if(svg.wnd!\x3dnull\x26\x26!svg.wnd.closed){svg.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dsvg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
+(r.checked?"\x26layers\x3d1":"")+"');}}})(this);"),A+="cursor:pointer;"),k.checked&&(g=parseInt(b.getAttribute("width")),y=parseInt(b.getAttribute("height")),b.setAttribute("viewBox","0 0 "+g+" "+y),A+="max-width:100%;max-height:"+y+"px;",b.removeAttribute("height")),""!=A&&b.setAttribute("style",A),e.value=mxUtils.getXml(b);e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null)}}a.getCurrentFile();var d=document.createElement("div"),
b=a.editor.graph;b.getGraphBounds();mxUtils.write(d,mxResources.get("mainEmbedNotice")+": ");mxUtils.br(d);var e=document.createElement("textarea");e.style.marginTop="6px";e.style.width="550px";e.style.height="280px";e.style.resize="none";d.appendChild(e);mxUtils.br(d);var g=document.createElement("div");g.style.paddingTop="16px";g.style.textAlign="center";var k=document.createElement("input");k.setAttribute("type","checkbox");k.setAttribute("checked","checked");k.defaultChecked=!0;g.appendChild(k);
mxUtils.write(g,mxResources.get("fit"));var l=document.createElement("input");l.setAttribute("type","checkbox");l.style.marginLeft="30px";b.shadowVisible&&(l.setAttribute("checked","checked"),l.defaultChecked=!0);if(!c||a.isExportToCanvas())g.appendChild(l),mxUtils.write(g,mxResources.get("shadow"));var n=document.createElement("input");n.setAttribute("type","checkbox");n.style.marginLeft="30px";c||(g.appendChild(n),mxUtils.write(g,mxResources.get("image")));var m=document.createElement("input");
-m.setAttribute("type","checkbox");m.style.marginLeft="30px";c&&(g.appendChild(m),mxUtils.write(g,mxResources.get("retina")));var p=document.createElement("input");p.setAttribute("type","checkbox");p.setAttribute("checked","checked");p.defaultChecked=!0;p.style.marginLeft="30px";g.appendChild(p);mxUtils.write(g,mxResources.get("lightbox"));var q=document.createElement("input");q.setAttribute("type","checkbox");q.style.marginLeft="30px";b=a.editor.graph.getModel();1<b.getChildCount(b.getRoot())?(q.setAttribute("checked",
-"checked"),q.defaultChecked=!0):q.setAttribute("disabled","disabled");g.appendChild(q);mxUtils.write(g,mxResources.get("layers"));d.appendChild(g);this.init=function(){f()};mxEvent.addListener(n,"change",f);mxEvent.addListener(m,"change",f);mxEvent.addListener(l,"change",f);mxEvent.addListener(k,"change",f);mxEvent.addListener(p,"change",f);mxEvent.addListener(q,"change",f);g=document.createElement("div");g.style.paddingTop="18px";g.style.textAlign="right";!a.isOffline()&&!c&&(b=mxUtils.button(mxResources.get("help"),
+m.setAttribute("type","checkbox");m.style.marginLeft="30px";c&&(g.appendChild(m),mxUtils.write(g,mxResources.get("retina")));var p=document.createElement("input");p.setAttribute("type","checkbox");p.setAttribute("checked","checked");p.defaultChecked=!0;p.style.marginLeft="30px";g.appendChild(p);mxUtils.write(g,mxResources.get("lightbox"));var r=document.createElement("input");r.setAttribute("type","checkbox");r.style.marginLeft="30px";b=a.editor.graph.getModel();1<b.getChildCount(b.getRoot())?(r.setAttribute("checked",
+"checked"),r.defaultChecked=!0):r.setAttribute("disabled","disabled");g.appendChild(r);mxUtils.write(g,mxResources.get("layers"));d.appendChild(g);this.init=function(){f()};mxEvent.addListener(n,"change",f);mxEvent.addListener(m,"change",f);mxEvent.addListener(l,"change",f);mxEvent.addListener(k,"change",f);mxEvent.addListener(p,"change",f);mxEvent.addListener(r,"change",f);g=document.createElement("div");g.style.paddingTop="18px";g.style.textAlign="right";!a.isOffline()&&!c&&(b=mxUtils.button(mxResources.get("help"),
function(){window.open("https://support.draw.io/pages/viewpage.action?pageId\x3d12222606")}),b.className="geBtn",g.appendChild(b));if(!mxClient.IS_CHROMEAPP&&!navigator.standalone&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))b=mxUtils.button(mxResources.get("preview"),function(){var a=window.open().document;a.writeln("\x3chtml\x3e\x3chead\x3e\x3ctitle\x3e"+encodeURIComponent(mxResources.get("preview"))+'\x3c/title\x3e\x3cmeta charset\x3d"utf-8"\x3e\x3c/head\x3e\x3cbody\x3e'+
-e.value+"\x3c/body\x3e\x3c/html\x3e");a.close()}),b.className="geBtn",g.appendChild(b);var b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()}),r=mxUtils.button(mxResources.get("copy"),function(){e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});g.appendChild(b);!mxClient.IS_SF&&null==document.documentMode?(g.appendChild(r),r.className=
-"geBtn gePrimaryBtn",b.className="geBtn"):b.className="geBtn gePrimaryBtn";d.appendChild(g);this.container=d},GoogleSitesDialog=function(a){function c(){var a=null!=D.getTitle()?D.getTitle():this.defaultFilename;if(y.checked&&""!=p.value){var b="https://www.draw.io/gadget.xml?type\x3d4\x26diagram\x3d"+encodeURIComponent(mxUtils.htmlEntities(p.value));null!=a&&(b+="\x26title\x3d"+encodeURIComponent(a));0<x.length&&(b+="\x26s\x3d"+x);""!=q.value&&"0"!=q.value&&(b+="\x26border\x3d"+q.value);""!=m.value&&
-(b+="\x26height\x3d"+m.value);b+="\x26pan\x3d"+(r.checked?"1":"0");b+="\x26zoom\x3d"+(s.checked?"1":"0");b+="\x26fit\x3d"+(A.checked?"1":"0");b+="\x26resize\x3d"+(v.checked?"1":"0");b+="\x26x0\x3d"+Number(n.value);b+="\x26y0\x3d"+k;d.mathEnabled&&(b+="\x26math\x3d1");u.checked?b+="\x26edit\x3d_blank":t.checked&&(b+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));l.value=b}else D.constructor==DriveFile||D.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed\x3d0\x26diagram\x3d",
+e.value+"\x3c/body\x3e\x3c/html\x3e");a.close()}),b.className="geBtn",g.appendChild(b);var b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()}),s=mxUtils.button(mxResources.get("copy"),function(){e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});g.appendChild(b);!mxClient.IS_SF&&null==document.documentMode?(g.appendChild(s),s.className=
+"geBtn gePrimaryBtn",b.className="geBtn"):b.className="geBtn gePrimaryBtn";d.appendChild(g);this.container=d},GoogleSitesDialog=function(a){function c(){var a=null!=D.getTitle()?D.getTitle():this.defaultFilename;if(y.checked&&""!=p.value){var b="https://www.draw.io/gadget.xml?type\x3d4\x26diagram\x3d"+encodeURIComponent(mxUtils.htmlEntities(p.value));null!=a&&(b+="\x26title\x3d"+encodeURIComponent(a));0<x.length&&(b+="\x26s\x3d"+x);""!=r.value&&"0"!=r.value&&(b+="\x26border\x3d"+r.value);""!=m.value&&
+(b+="\x26height\x3d"+m.value);b+="\x26pan\x3d"+(s.checked?"1":"0");b+="\x26zoom\x3d"+(q.checked?"1":"0");b+="\x26fit\x3d"+(z.checked?"1":"0");b+="\x26resize\x3d"+(v.checked?"1":"0");b+="\x26x0\x3d"+Number(n.value);b+="\x26y0\x3d"+k;d.mathEnabled&&(b+="\x26math\x3d1");u.checked?b+="\x26edit\x3d_blank":t.checked&&(b+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));l.value=b}else D.constructor==DriveFile||D.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed\x3d0\x26diagram\x3d",
""!=p.value?b+=encodeURIComponent(mxUtils.htmlEntities(p.value))+"\x26type\x3d3":(b+=D.getHash().substring(1),b=D.constructor==DropboxFile?b+"\x26type\x3d2":b+"\x26type\x3d1"),null!=a&&(b+="\x26title\x3d"+encodeURIComponent(a)),""!=m.value&&(a=parseInt(m.value)+parseInt(n.value),b+="\x26height\x3d"+a),l.value=b):l.value=""}var f=document.createElement("div"),d=a.editor.graph,b=d.getGraphBounds(),e=d.view.scale,g=Math.floor(b.x/e-d.view.translate.x),k=Math.floor(b.y/e-d.view.translate.y);mxUtils.write(f,
mxResources.get("googleGadget")+":");mxUtils.br(f);var l=document.createElement("input");l.setAttribute("type","text");l.style.marginBottom="8px";l.style.marginTop="2px";l.style.width="410px";f.appendChild(l);mxUtils.br(f);this.init=function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)};mxUtils.write(f,mxResources.get("top")+":");var n=document.createElement("input");n.setAttribute("type","text");n.setAttribute("size",
"4");n.style.marginRight="16px";n.style.marginLeft="4px";n.value=g;f.appendChild(n);mxUtils.write(f,mxResources.get("height")+":");var m=document.createElement("input");m.setAttribute("type","text");m.setAttribute("size","4");m.style.marginLeft="4px";m.value=Math.ceil(b.height/e);f.appendChild(m);mxUtils.br(f);b=document.createElement("hr");b.setAttribute("size","1");b.style.marginBottom="16px";b.style.marginTop="16px";f.appendChild(b);mxUtils.write(f,mxResources.get("publicDiagramUrl")+":");mxUtils.br(f);
-var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","28");p.style.marginBottom="8px";p.style.marginTop="2px";p.style.width="410px";f.appendChild(p);mxUtils.br(f);mxUtils.write(f,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","3");q.style.marginBottom="8px";q.style.marginLeft="4px";q.value="0";f.appendChild(q);mxUtils.br(f);var r=document.createElement("input");r.setAttribute("type",
-"checkbox");r.setAttribute("checked","checked");r.defaultChecked=!0;r.style.marginLeft="16px";f.appendChild(r);mxUtils.write(f,mxResources.get("pan")+" ");var s=document.createElement("input");s.setAttribute("type","checkbox");s.setAttribute("checked","checked");s.defaultChecked=!0;s.style.marginLeft="8px";f.appendChild(s);mxUtils.write(f,mxResources.get("zoom")+" ");var t=document.createElement("input");t.setAttribute("type","checkbox");t.style.marginLeft="8px";t.setAttribute("title",window.location.href);
-f.appendChild(t);mxUtils.write(f,mxResources.get("edit")+" ");var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.marginLeft="8px";f.appendChild(u);mxUtils.write(f,mxResources.get("asNew")+" ");mxUtils.br(f);var v=document.createElement("input");v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="16px";f.appendChild(v);mxUtils.write(f,mxResources.get("resize")+" ");var A=document.createElement("input");A.setAttribute("type",
-"checkbox");A.style.marginLeft="8px";f.appendChild(A);mxUtils.write(f,mxResources.get("fit")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";f.appendChild(y);mxUtils.write(f,mxResources.get("embed")+" ");var x=a.getBasenames().join(";"),D=a.getCurrentFile();c();p.setAttribute("placeholder",mxResources.get("loading")+"...");a.getPublicUrl(D,function(a){p.setAttribute("placeholder","");p.value=null!=a?a:"";c()});mxEvent.addListener(r,"change",c);
-mxEvent.addListener(s,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(A,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(m,"change",c);mxEvent.addListener(n,"change",c);mxEvent.addListener(q,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(l,"click",function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)});
-b=document.createElement("div");b.style.paddingTop="12px";b.style.textAlign="right";e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);f.appendChild(b);this.container=f},IframeDialog=function(a,c,f){function d(){null!=v&&null!=v.getTitle()&&v.getTitle();if(f&&null!=v&&(""!=s.value||v.constructor==DriveFile||v.constructor==DropboxFile||v.constructor==OneDriveFile)){t.removeAttribute("disabled");u.removeAttribute("disabled");var a=
-"https://www.draw.io/?chrome\x3d0";p.checked&&(a+="\x26lightbox\x3d1");q.checked&&(a+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities("https://www.draw.io/#"+v.getHash())));e.foldingEnabled&&(a+="\x26nav\x3d1");r.checked&&(a+="\x26layers\x3d1");a=""!=s.value?a+("\x26url\x3d"+encodeURIComponent(mxUtils.htmlEntities(s.value))):a+("#"+v.getHash());l.value=a;l.removeAttribute("disabled")}else if(""!=s.value){t.removeAttribute("disabled");u.removeAttribute("disabled");var b=encodeURIComponent(mxUtils.htmlEntities(s.value));
-c?(a=EXPORT_URL+"?format\x3dpng\x26url\x3d"+b,l.value=a):(a="https://www.draw.io/?chrome\x3d0",p.checked&&(a+="\x26lightbox\x3d1"),q.checked&&(a+="\x26edit\x3d"+b),e.foldingEnabled&&(a+="\x26nav\x3d1"),r.checked&&(a+="\x26layers\x3d1"),l.value='\x3ciframe frameborder\x3d"0" style\x3d"width:'+n.value+";height:"+m.value+'" src\x3d"'+(a+("\x26url\x3d"+b))+'"\x3e\x3c/iframe\x3e');l.removeAttribute("disabled")}else!c&&!f&&null!=v&&(v.constructor==DriveFile||v.constructor==DropboxFile||v.constructor==OneDriveFile)?
-(t.removeAttribute("disabled"),u.removeAttribute("disabled"),a="https://www.draw.io/?chrome\x3d0",p.checked&&(a+="\x26lightbox\x3d1"),q.checked&&(a+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities("https://www.draw.io/#"+v.getHash()))),e.foldingEnabled&&(a+="\x26nav\x3d1"),r.checked&&(a+="\x26layers\x3d1"),a+="#"+v.getHash(),l.value='\x3ciframe frameborder\x3d"0" style\x3d"width:'+n.value+";height:"+m.value+'" src\x3d"'+a+'"\x3e\x3c/iframe\x3e',l.removeAttribute("disabled")):(t.setAttribute("disabled",
+var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","28");p.style.marginBottom="8px";p.style.marginTop="2px";p.style.width="410px";f.appendChild(p);mxUtils.br(f);mxUtils.write(f,mxResources.get("borderWidth")+":");var r=document.createElement("input");r.setAttribute("type","text");r.setAttribute("size","3");r.style.marginBottom="8px";r.style.marginLeft="4px";r.value="0";f.appendChild(r);mxUtils.br(f);var s=document.createElement("input");s.setAttribute("type",
+"checkbox");s.setAttribute("checked","checked");s.defaultChecked=!0;s.style.marginLeft="16px";f.appendChild(s);mxUtils.write(f,mxResources.get("pan")+" ");var q=document.createElement("input");q.setAttribute("type","checkbox");q.setAttribute("checked","checked");q.defaultChecked=!0;q.style.marginLeft="8px";f.appendChild(q);mxUtils.write(f,mxResources.get("zoom")+" ");var t=document.createElement("input");t.setAttribute("type","checkbox");t.style.marginLeft="8px";t.setAttribute("title",window.location.href);
+f.appendChild(t);mxUtils.write(f,mxResources.get("edit")+" ");var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.marginLeft="8px";f.appendChild(u);mxUtils.write(f,mxResources.get("asNew")+" ");mxUtils.br(f);var v=document.createElement("input");v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="16px";f.appendChild(v);mxUtils.write(f,mxResources.get("resize")+" ");var z=document.createElement("input");z.setAttribute("type",
+"checkbox");z.style.marginLeft="8px";f.appendChild(z);mxUtils.write(f,mxResources.get("fit")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";f.appendChild(y);mxUtils.write(f,mxResources.get("embed")+" ");var x=a.getBasenames().join(";"),D=a.getCurrentFile();c();p.setAttribute("placeholder",mxResources.get("loading")+"...");a.getPublicUrl(D,function(a){p.setAttribute("placeholder","");p.value=null!=a?a:"";c()});mxEvent.addListener(s,"change",c);
+mxEvent.addListener(q,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(z,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(m,"change",c);mxEvent.addListener(n,"change",c);mxEvent.addListener(r,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(l,"click",function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)});
+b=document.createElement("div");b.style.paddingTop="12px";b.style.textAlign="right";e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);f.appendChild(b);this.container=f},IframeDialog=function(a,c,f){function d(){null!=v&&null!=v.getTitle()&&v.getTitle();if(f&&null!=v&&(""!=q.value||v.constructor==DriveFile||v.constructor==DropboxFile||v.constructor==OneDriveFile)){t.removeAttribute("disabled");u.removeAttribute("disabled");var a=
+"https://www.draw.io/?chrome\x3d0";p.checked&&(a+="\x26lightbox\x3d1");r.checked&&(a+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities("https://www.draw.io/#"+v.getHash())));e.foldingEnabled&&(a+="\x26nav\x3d1");s.checked&&(a+="\x26layers\x3d1");a=""!=q.value?a+("\x26url\x3d"+encodeURIComponent(mxUtils.htmlEntities(q.value))):a+("#"+v.getHash());l.value=a;l.removeAttribute("disabled")}else if(""!=q.value){t.removeAttribute("disabled");u.removeAttribute("disabled");var b=encodeURIComponent(mxUtils.htmlEntities(q.value));
+c?(a=EXPORT_URL+"?format\x3dpng\x26url\x3d"+b,l.value=a):(a="https://www.draw.io/?chrome\x3d0",p.checked&&(a+="\x26lightbox\x3d1"),r.checked&&(a+="\x26edit\x3d"+b),e.foldingEnabled&&(a+="\x26nav\x3d1"),s.checked&&(a+="\x26layers\x3d1"),l.value='\x3ciframe frameborder\x3d"0" style\x3d"width:'+n.value+";height:"+m.value+'" src\x3d"'+(a+("\x26url\x3d"+b))+'"\x3e\x3c/iframe\x3e');l.removeAttribute("disabled")}else!c&&!f&&null!=v&&(v.constructor==DriveFile||v.constructor==DropboxFile||v.constructor==OneDriveFile)?
+(t.removeAttribute("disabled"),u.removeAttribute("disabled"),a="https://www.draw.io/?chrome\x3d0",p.checked&&(a+="\x26lightbox\x3d1"),r.checked&&(a+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities("https://www.draw.io/#"+v.getHash()))),e.foldingEnabled&&(a+="\x26nav\x3d1"),s.checked&&(a+="\x26layers\x3d1"),a+="#"+v.getHash(),l.value='\x3ciframe frameborder\x3d"0" style\x3d"width:'+n.value+";height:"+m.value+'" src\x3d"'+a+'"\x3e\x3c/iframe\x3e',l.removeAttribute("disabled")):(t.setAttribute("disabled",
"disabled"),u.setAttribute("disabled","disabled"),l.value=mxResources.get("invalidPublicUrl"),l.setAttribute("disabled","disabled"))}var b=document.createElement("div"),e=a.editor.graph,g=e.getGraphBounds(),k=e.view.scale;mxUtils.write(b,mxResources.get(f?"link":"mainEmbedNotice")+": ");mxUtils.br(b);var l=document.createElement("input");l.setAttribute("type","text");l.style.marginBottom="8px";l.style.marginTop="2px";l.style.width="410px";b.appendChild(l);mxUtils.br(b);this.init=function(){"disabled"!=
l.getAttribute("disabled")&&(l.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null))};var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px";n.style.width="60px";n.style.marginBottom="8px";n.style.marginLeft="4px";n.value="100%";!c&&!f&&(mxUtils.write(b,mxResources.get("width")+":"),b.appendChild(n));var m=document.createElement("input");m.setAttribute("type","text");m.style.width="60px";m.style.marginLeft=
-"4px";m.value=Math.ceil((g.y+g.height-e.view.translate.y)/k)+2+"px";var p=document.createElement("input");p.setAttribute("type","checkbox");var q=document.createElement("input");q.setAttribute("type","checkbox");var r=document.createElement("input");r.setAttribute("type","checkbox");c||(f||(mxUtils.write(b,mxResources.get("height")+":"),b.appendChild(m),mxUtils.br(b)),p.setAttribute("checked","checked"),p.defaultChecked=!0,b.appendChild(p),mxUtils.write(b,mxResources.get("lightbox")),r.style.marginLeft=
-"16px",g=a.editor.graph.getModel(),1<g.getChildCount(g.getRoot())?(r.setAttribute("checked","checked"),r.defaultChecked=!0):r.setAttribute("disabled","disabled"),b.appendChild(r),mxUtils.write(b,mxResources.get("layers")),q.style.marginLeft="16px",q.setAttribute("checked","checked"),q.defaultChecked=!0,b.appendChild(q),mxUtils.write(b,mxResources.get("edit")),mxUtils.br(b));g=document.createElement("hr");g.setAttribute("size","1");g.style.marginBottom="16px";g.style.marginTop="16px";b.appendChild(g);
-mxUtils.write(b,mxResources.get("publicDiagramUrl")+":");mxUtils.br(b);var s=document.createElement("input");s.setAttribute("type","text");s.setAttribute("size","28");s.style.marginBottom="8px";s.style.marginTop="2px";s.style.width="410px";b.appendChild(s);mxUtils.br(b);var t=mxUtils.button(mxResources.get("preview"),function(){if(c||f)window.open(l.value);else{var a=window.open().document;"CSS1Compat"===document.compatMode&&a.writeln("\x3c!DOCTYPE html\x3e");a.writeln("\x3chead\x3e\x3ctitle\x3e"+
+"4px";m.value=Math.ceil((g.y+g.height-e.view.translate.y)/k)+2+"px";var p=document.createElement("input");p.setAttribute("type","checkbox");var r=document.createElement("input");r.setAttribute("type","checkbox");var s=document.createElement("input");s.setAttribute("type","checkbox");c||(f||(mxUtils.write(b,mxResources.get("height")+":"),b.appendChild(m),mxUtils.br(b)),p.setAttribute("checked","checked"),p.defaultChecked=!0,b.appendChild(p),mxUtils.write(b,mxResources.get("lightbox")),s.style.marginLeft=
+"16px",g=a.editor.graph.getModel(),1<g.getChildCount(g.getRoot())?(s.setAttribute("checked","checked"),s.defaultChecked=!0):s.setAttribute("disabled","disabled"),b.appendChild(s),mxUtils.write(b,mxResources.get("layers")),r.style.marginLeft="16px",r.setAttribute("checked","checked"),r.defaultChecked=!0,b.appendChild(r),mxUtils.write(b,mxResources.get("edit")),mxUtils.br(b));g=document.createElement("hr");g.setAttribute("size","1");g.style.marginBottom="16px";g.style.marginTop="16px";b.appendChild(g);
+mxUtils.write(b,mxResources.get("publicDiagramUrl")+":");mxUtils.br(b);var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","28");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";b.appendChild(q);mxUtils.br(b);var t=mxUtils.button(mxResources.get("preview"),function(){if(c||f)window.open(l.value);else{var a=window.open().document;"CSS1Compat"===document.compatMode&&a.writeln("\x3c!DOCTYPE html\x3e");a.writeln("\x3chead\x3e\x3ctitle\x3e"+
encodeURIComponent(mxResources.get("preview"))+'\x3c/title\x3e\x3cmeta charset\x3d"utf-8"\x3e\x3c/head\x3e');a.writeln("\x3cbody\x3e");a.writeln(l.value);a.writeln("\x3c/body\x3e");a.writeln("\x3c/html\x3e");a.close()}});t.className="geBtn";var u=mxUtils.button(mxResources.get("copy"),function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))}),v=a.getCurrentFile();
-d();s.setAttribute("placeholder",mxResources.get("loading")+"...");a.getPublicUrl(v,function(a){s.setAttribute("placeholder","");s.value=null!=a?a:"";d()});mxEvent.addListener(n,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(r,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(s,"change",d);mxEvent.addListener(l,"click",function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",
+d();q.setAttribute("placeholder",mxResources.get("loading")+"...");a.getPublicUrl(v,function(a){q.setAttribute("placeholder","");q.value=null!=a?a:"";d()});mxEvent.addListener(n,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(s,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(r,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(l,"click",function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",
!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});(c||!mxClient.IS_QUIRKS&&!navigator.standalone&&(!window.chrome||!chrome.app||!chrome.app.runtime)&&(null==document.documentMode||9<=document.documentMode))&&g.appendChild(t);g.appendChild(k);!mxClient.IS_SF&&null==document.documentMode?(g.appendChild(u),u.className="geBtn gePrimaryBtn",k.className="geBtn"):k.className="geBtn gePrimaryBtn";
b.appendChild(g);this.container=b},CreateGraphDialog=function(a,c,f){var d=document.createElement("div");d.style.textAlign="right";this.init=function(){var b=document.createElement("div");b.style.position="relative";b.style.border="1px solid gray";b.style.width="100%";b.style.height="360px";b.style.overflow="hidden";b.style.marginBottom="16px";mxEvent.disableContextMenu(b);d.appendChild(b);var c=new Graph(b);c.setCellsCloneable(!0);c.setPanning(!0);c.setAllowDanglingEdges(!1);c.connectionHandler.select=
!1;c.view.setTranslate(20,20);c.border=20;c.panningHandler.useLeftButtonForPanning=!0;var g="curved\x3d1;";c.cellRenderer.installCellOverlayListeners=function(a,b,c){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(c.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchstart",function(c){b.fireEvent(new mxEventObject("pointerdown",
"event",c,"state",a))})};c.getAllConnectionConstraints=function(){return null};c.connectionHandler.marker.highlight.keepOnTop=!1;c.connectionHandler.createEdgeState=function(a){a=c.createEdge(null,null,null,null,null,g);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var k=c.getDefaultParent(),l=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,d){c.connectionHandler.reset();c.clearSelection();
-var f=c.getCellGeometry(a),m;p(function(){m=c.insertVertex(k,null,"Entry",f.x,f.y,80,30,"rounded\x3d1;");l(m);c.view.refresh(m);c.insertEdge(k,null,"",a,m,g)},function(){c.scrollCellToVisible(m)})});b.addListener("pointerdown",function(a,b){var d=b.getProperty("event"),f=b.getProperty("state");c.popupMenuHandler.hideMenu();c.stopEditing(!1);var g=mxUtils.convertPoint(c.container,mxEvent.getClientX(d),mxEvent.getClientY(d));c.connectionHandler.start(f,g.x,g.y);c.isMouseDown=!0;c.isMouseTrigger=mxEvent.isMouseEvent(d);
+var f=c.getCellGeometry(a),n;p(function(){n=c.insertVertex(k,null,"Entry",f.x,f.y,80,30,"rounded\x3d1;");l(n);c.view.refresh(n);c.insertEdge(k,null,"",a,n,g)},function(){c.scrollCellToVisible(n)})});b.addListener("pointerdown",function(a,b){var d=b.getProperty("event"),f=b.getProperty("state");c.popupMenuHandler.hideMenu();c.stopEditing(!1);var k=mxUtils.convertPoint(c.container,mxEvent.getClientX(d),mxEvent.getClientY(d));c.connectionHandler.start(f,k.x,k.y);c.isMouseDown=!0;c.isMouseTrigger=mxEvent.isMouseEvent(d);
mxEvent.consume(d)});c.addCellOverlay(a,b)});c.getModel().beginUpdate();var n;try{n=c.insertVertex(k,null,"Start",0,0,80,30,"ellipse"),l(n)}finally{c.getModel().endUpdate()}var m;"horizontalTree"==f?(m=new mxCompactTreeLayout(c),m.edgeRouting=!1,m.levelDistance=30,g="edgeStyle\x3delbowEdgeStyle;elbow\x3dhorizontal;"):"verticalTree"==f?(m=new mxCompactTreeLayout(c,!1),m.edgeRouting=!1,m.levelDistance=30,g="edgeStyle\x3delbowEdgeStyle;elbow\x3dvertical;"):"verticalFlow"==f?m=new mxHierarchicalLayout(c,
-mxConstants.DIRECTION_NORTH):"horizontalFlow"==f?m=new mxHierarchicalLayout(c,mxConstants.DIRECTION_WEST):"organic"==f?(m=new mxFastOrganicLayout(c,!1),m.forceConstant=80):"circle"==f&&(m=new mxCircleLayout(c));if(null!=m){var p=function(a,b){c.getModel().beginUpdate();try{null!=a&&a(),m.execute(c.getDefaultParent(),n)}catch(d){throw d;}finally{var f=new mxMorphing(c);f.addListener(mxEvent.DONE,mxUtils.bind(this,function(){c.getModel().endUpdate();null!=b&&b()}));f.startAnimation()}},q=mxEdgeHandler.prototype.connect;
-mxEdgeHandler.prototype.connect=function(a,b,c,d,e){q.apply(this,arguments);p()};c.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);p()};c.connectionHandler.addListener(mxEvent.CONNECT,function(){p()})}var r=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){c.destroy();b.parentNode.removeChild(b);a.hideDialog()})});r.className="geBtn";a.editor.cancelFirst&&d.appendChild(r);var s=mxUtils.button(mxResources.get("insert"),function(){c.clearCellOverlays();
-var d=a.editor.graph.getFreeInsertPoint(),d=a.editor.graph.importCells(c.getModel().getChildren(c.getDefaultParent()),d.x,d.y),f=view.getBounds(d);f.x-=view.translate.x;f.y-=view.translate.y;a.editor.graph.scrollRectToVisible(f);a.editor.graph.setSelectionCells(d);c.destroy();b.parentNode.removeChild(b);a.hideDialog()});d.appendChild(s);s.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(r)};this.container=d};
-CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg\x3d\x3d":IMAGE_PATH+
-"/handle-connect.png",26,26);
+mxConstants.DIRECTION_NORTH):"horizontalFlow"==f?m=new mxHierarchicalLayout(c,mxConstants.DIRECTION_WEST):"organic"==f?(m=new mxFastOrganicLayout(c,!1),m.forceConstant=80):"circle"==f&&(m=new mxCircleLayout(c));if(null!=m){var p=function(a,b){c.getModel().beginUpdate();try{null!=a&&a(),m.execute(c.getDefaultParent(),n)}catch(d){throw d;}finally{var f=new mxMorphing(c);f.addListener(mxEvent.DONE,mxUtils.bind(this,function(){c.getModel().endUpdate();null!=b&&b()}));f.startAnimation()}},r=mxEdgeHandler.prototype.connect;
+mxEdgeHandler.prototype.connect=function(a,b,c,d,e){r.apply(this,arguments);p()};c.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);p()};c.connectionHandler.addListener(mxEvent.CONNECT,function(){p()})}var s=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){c.destroy();b.parentNode.removeChild(b);a.hideDialog()})});s.className="geBtn";a.editor.cancelFirst&&d.appendChild(s);var q=mxUtils.button(mxResources.get("insert"),function(){c.clearCellOverlays();
+var d=a.editor.graph.getFreeInsertPoint(),d=a.editor.graph.importCells(c.getModel().getChildren(c.getDefaultParent()),d.x,d.y),f=a.editor.graph.view,k=f.getBounds(d);k.x-=f.translate.x;k.y-=f.translate.y;a.editor.graph.scrollRectToVisible(k);a.editor.graph.setSelectionCells(d);c.destroy();b.parentNode.removeChild(b);a.hideDialog()});d.appendChild(q);q.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(s)};this.container=d};
+CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg\x3d\x3d":
+IMAGE_PATH+"/handle-connect.png",26,26);
var BackgroundImageDialog=function(a,c){var f=document.createElement("div");f.style.whiteSpace="nowrap";var d=document.createElement("h2");mxUtils.write(d,mxResources.get("backgroundImage"));d.style.marginTop="0px";f.appendChild(d);mxUtils.write(f,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(f);var d=a.editor.graph.backgroundImage,b=document.createElement("input");b.setAttribute("type","text");b.style.marginTop="4px";b.style.marginBottom="4px";b.style.width="350px";b.value=
null!=d?d.src:"";var e=!1,g=function(){!e&&""!=b.value&&!a.isOffline()?a.loadImage(mxUtils.trim(b.value),function(a){k.value=a.width;l.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));b.value="";k.value="";l.value=""}):(k.value="",l.value="")};this.init=function(){b.focus();if(Graph.fileSupport){b.setAttribute("placeholder",mxResources.get("dragImagesHere"));var c=f.parentNode,d=null;mxEvent.addListener(c,"dragleave",function(a){null!=
d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(b){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=a.highlightElement(c);b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c,"drop",mxUtils.bind(this,function(c){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<c.dataTransfer.files.length)a.importFiles(c.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,c,d,e,f,k){b.value=a;g()},function(){},
@@ -7120,66 +7194,66 @@ function(){e=!0});mxEvent.addListener(d,"touchstart",function(){e=!0});d.classNa
n.className="geBtn";a.editor.cancelFirst&&d.appendChild(n);if(!a.isOffline()&&"undefined"!=typeof google&&"undefined"!=typeof google.picker){var m=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0);a.movePickersToTop()});
m.className="geBtn";d.appendChild(m);null!=a.drive&&"1"==urlParams.photos&&(m=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);
a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0);a.movePickersToTop()}))}),m.className="geBtn",d.appendChild(m))}m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c(""!=b.value?new mxImage(mxUtils.trim(b.value),k.value,l.value):null)});m.className="geBtn gePrimaryBtn";d.appendChild(m);a.editor.cancelFirst||d.appendChild(n);f.appendChild(d);this.container=f},ParseDialog=function(a,c){function f(b,c){var d=b.split("\n");if(c){if(0<
-d.length){var e=a.editor.graph,f=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle\x3d1;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3dnone;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;");f.vertex=!0;var g=e.getPreferredSizeForCell(f);null!=g&&f.geometry.width<g.width+10&&(f.geometry.width=g.width+10);if(1<d.length)for(var k=1;k<d.length;k++)if("--"==d[k])g=new mxCell("",new mxGeometry(0,
-0,40,8),"line;strokeWidth\x3d1;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dmiddle;spacingTop\x3d-1;spacingLeft\x3d3;spacingRight\x3d3;rotatable\x3d0;labelPosition\x3dright;points\x3d[];portConstraint\x3deastwest;"),g.vertex=!0,f.geometry.height+=g.geometry.height,f.insert(g);else if(0<d[k].length&&";"!=d[k].charAt(0)){var l=new mxCell(d[k],new mxGeometry(0,0,60,26),"text;strokeColor\x3dnone;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dtop;spacingLeft\x3d4;spacingRight\x3d4;overflow\x3dhidden;rotatable\x3d0;points\x3d[[0,0.5],[1,0.5]];portConstraint\x3deastwest;");
-l.vertex=!0;g=e.getPreferredSizeForCell(l);null!=g&&l.geometry.width<g.width&&(l.geometry.width=g.width);f.geometry.width=Math.max(f.geometry.width,l.geometry.width);f.geometry.height+=l.geometry.height;f.insert(l)}g=e.view;l=e.getGraphBounds();k=Math.ceil(Math.max(0,l.x/g.scale-g.translate.x)+4*e.gridSize);g=Math.ceil(Math.max(0,(l.y+l.height)/g.scale-g.translate.y)+4*e.gridSize);e.setSelectionCells(e.importCells([f],k,g));e.scrollCellToVisible(e.getSelectionCell())}}else{for(var n={},y=[],e=function(a){var b=
-n[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30)),b.vertex=!0,n[a]=b,y.push(b));return b},k=0;k<d.length;k++)if(";"!=d[k].charAt(0)){var x=d[k].split("-\x3e");if(2==x.length){var l=e(x[0]),x=e(x[1]),D=new mxCell("",new mxGeometry);D.edge=!0;l.insertEdge(D,!0);x.insertEdge(D,!1);y.push(D)}}if(0<y.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);e=new Graph(d);e.getModel().beginUpdate();try{y=e.importCells(y);for(k=0;k<y.length;k++)e.getModel().isVertex(y[k])&&
-(g=e.getPreferredSizeForCell(y[k]),y[k].geometry.width=Math.max(y[k].geometry.width,g.width),y[k].geometry.height=Math.max(y[k].geometry.height,g.height));f=new mxFastOrganicLayout(e);f.disableEdgeStyle=!1;f.forceConstant=120;f.execute(e.getDefaultParent());e.moveCells(y,20,20)}finally{e.getModel().endUpdate()}e.clearCellOverlays();g=a.editor.graph.view;l=a.editor.graph.getGraphBounds();k=Math.ceil(Math.max(0,l.x/g.scale-g.translate.x)+e.gridSize);g=Math.ceil(Math.max(0,(l.y+l.height)/g.scale-g.translate.y)+
-4*e.gridSize);a.editor.graph.setSelectionCells(a.editor.graph.importCells(e.getModel().getChildren(e.getDefaultParent()),k,g));a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());e.destroy();d.parentNode.removeChild(d)}}}function d(){return!g.checked?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":";Example:\na-\x3eb\nb-\x3ec\nc-\x3ea\n"}var b=document.createElement("div");b.style.textAlign="right";var e=document.createElement("textarea");
+d.length){var e=a.editor.graph,f=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle\x3d1;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3dnone;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;");f.vertex=!0;var k=e.getPreferredSizeForCell(f);null!=k&&f.geometry.width<k.width+10&&(f.geometry.width=k.width+10);if(1<d.length)for(var g=1;g<d.length;g++)if("--"==d[g])k=new mxCell("",new mxGeometry(0,
+0,40,8),"line;strokeWidth\x3d1;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dmiddle;spacingTop\x3d-1;spacingLeft\x3d3;spacingRight\x3d3;rotatable\x3d0;labelPosition\x3dright;points\x3d[];portConstraint\x3deastwest;"),k.vertex=!0,f.geometry.height+=k.geometry.height,f.insert(k);else if(0<d[g].length&&";"!=d[g].charAt(0)){var l=new mxCell(d[g],new mxGeometry(0,0,60,26),"text;strokeColor\x3dnone;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dtop;spacingLeft\x3d4;spacingRight\x3d4;overflow\x3dhidden;rotatable\x3d0;points\x3d[[0,0.5],[1,0.5]];portConstraint\x3deastwest;");
+l.vertex=!0;k=e.getPreferredSizeForCell(l);null!=k&&l.geometry.width<k.width&&(l.geometry.width=k.width);f.geometry.width=Math.max(f.geometry.width,l.geometry.width);f.geometry.height+=l.geometry.height;f.insert(l)}k=e.view;l=e.getGraphBounds();g=Math.ceil(Math.max(0,l.x/k.scale-k.translate.x)+4*e.gridSize);k=Math.ceil(Math.max(0,(l.y+l.height)/k.scale-k.translate.y)+4*e.gridSize);e.setSelectionCells(e.importCells([f],g,k));e.scrollCellToVisible(e.getSelectionCell())}}else{for(var n={},y=[],e=function(a){var b=
+n[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30)),b.vertex=!0,n[a]=b,y.push(b));return b},g=0;g<d.length;g++)if(";"!=d[g].charAt(0)){var x=d[g].split("-\x3e");if(2==x.length){var l=e(x[0]),x=e(x[1]),D=new mxCell("",new mxGeometry);D.edge=!0;l.insertEdge(D,!0);x.insertEdge(D,!1);y.push(D)}}if(0<y.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);e=new Graph(d);e.getModel().beginUpdate();try{y=e.importCells(y);for(g=0;g<y.length;g++)e.getModel().isVertex(y[g])&&
+(k=e.getPreferredSizeForCell(y[g]),y[g].geometry.width=Math.max(y[g].geometry.width,k.width),y[g].geometry.height=Math.max(y[g].geometry.height,k.height));f=new mxFastOrganicLayout(e);f.disableEdgeStyle=!1;f.forceConstant=120;f.execute(e.getDefaultParent());e.moveCells(y,20,20)}finally{e.getModel().endUpdate()}e.clearCellOverlays();k=a.editor.graph.view;l=a.editor.graph.getGraphBounds();g=Math.ceil(Math.max(0,l.x/k.scale-k.translate.x)+e.gridSize);k=Math.ceil(Math.max(0,(l.y+l.height)/k.scale-k.translate.y)+
+4*e.gridSize);a.editor.graph.setSelectionCells(a.editor.graph.importCells(e.getModel().getChildren(e.getDefaultParent()),g,k));a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());e.destroy();d.parentNode.removeChild(d)}}}function d(){return!g.checked?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":";Example:\na-\x3eb\nb-\x3ec\nc-\x3ea\n"}var b=document.createElement("div");b.style.textAlign="right";var e=document.createElement("textarea");
e.style.resize="none";e.style.width="100%";e.style.height="354px";e.style.marginBottom="16px";var g=document.createElement("input");g.setAttribute("type","checkbox");var k=d();e.value=k;b.appendChild(e);this.init=function(){e.focus()};Graph.fileSupport&&(e.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),e.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=
function(a){e.value=a.target.result};b.readAsText(a)}},!1));b.appendChild(g);mxEvent.addListener(g,"change",function(){var a=d();if(0==e.value.length||e.value==k)k=a,e.value=k});var l=document.createElement("span");mxUtils.write(l," "+mxResources.get("diagram"));l.style.marginRight="10px";b.appendChild(l);l=mxUtils.button(mxResources.get("close"),function(){e.value==k?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});l.className="geBtn";a.editor.cancelFirst&&b.appendChild(l);
-var n=mxUtils.button(mxResources.get("insert"),function(){a.hideDialog();f(e.value,!g.checked)});b.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(l);this.container=b},NewDialog=function(a,c,f,d){function b(){if(d)a.hideDialog(),d(r);else{var b=p.value;if(null!=b&&0<b.length){var c=a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null;a.pickFolder(c,function(c){a.createFile(b,r,null!=q&&0<q.length?q:null,null,
-function(){a.hideDialog()},null,c)},c!=App.MODE_GOOGLE)}}}function e(a,b,c){null!=s&&(s.style.backgroundColor="transparent",s.style.border="1px solid transparent");r=b;q=c;s=a;s.style.backgroundColor="#e6eff8";s.style.border="1px solid #ccd9ea"}function g(a,c,d,f,g){var k=document.createElement("div");k.className="geTemplate";k.style.height=A+"px";k.style.width=y+"px";null!=f&&0<f.length&&k.setAttribute("title",f);if(null!=a&&0<a.length){a.substring(0,a.length-4);k.style.backgroundImage="url("+TEMPLATE_PATH+
-"/"+a.substring(0,a.length-4)+".png)";k.style.backgroundPosition="center center";k.style.backgroundRepeat="no-repeat";var l=!1;mxEvent.addListener(k,"click",function(d){t.setAttribute("disabled","disabled");k.style.backgroundColor="transparent";k.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200==a.getStatus()&&(t.removeAttribute("disabled"),e(k,a.getText(),c),l&&b())}))});mxEvent.addListener(k,"dblclick",function(a){l=!0})}else k.innerHTML='\x3ctable width\x3d"100%" height\x3d"100%"\x3e\x3ctr\x3e\x3ctd align\x3d"center" valign\x3d"middle"\x3e'+
-mxResources.get(d)+"\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e",g&&e(k),mxEvent.addListener(k,"click",function(a){e(k)}),mxEvent.addListener(k,"dblclick",function(a){b()});u.appendChild(k)}function k(){function a(){for(var c=!0;b<z.length&&(c||0!=mxUtils.mod(b,30));)c=z[b++],g(c.url,c.libs,c.title,c.tooltip,c.select),c=!1}var b=0;mxEvent.addListener(u,"scroll",function(b){u.scrollTop+u.clientHeight>=u.scrollHeight&&(a(),mxEvent.consume(b))});var c=null,d;for(d in x){var e=document.createElement("div"),
+var n=mxUtils.button(mxResources.get("insert"),function(){a.hideDialog();f(e.value,!g.checked)});b.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(l);this.container=b},NewDialog=function(a,c,f,d){function b(){if(d)a.hideDialog(),d(s);else{var b=p.value;if(null!=b&&0<b.length){var c=a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null;a.pickFolder(c,function(c){a.createFile(b,s,null!=r&&0<r.length?r:null,null,
+function(){a.hideDialog()},null,c)},c!=App.MODE_GOOGLE)}}}function e(a,b,c){null!=q&&(q.style.backgroundColor="transparent",q.style.border="1px solid transparent");s=b;r=c;q=a;q.style.backgroundColor="#e6eff8";q.style.border="1px solid #ccd9ea"}function g(a,c,d,f,k){var g=document.createElement("div");g.className="geTemplate";g.style.height=z+"px";g.style.width=y+"px";null!=f&&0<f.length&&g.setAttribute("title",f);if(null!=a&&0<a.length){a.substring(0,a.length-4);g.style.backgroundImage="url("+TEMPLATE_PATH+
+"/"+a.substring(0,a.length-4)+".png)";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";var l=!1;mxEvent.addListener(g,"click",function(d){t.setAttribute("disabled","disabled");g.style.backgroundColor="transparent";g.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200==a.getStatus()&&(t.removeAttribute("disabled"),e(g,a.getText(),c),l&&b())}))});mxEvent.addListener(g,"dblclick",function(a){l=!0})}else g.innerHTML='\x3ctable width\x3d"100%" height\x3d"100%"\x3e\x3ctr\x3e\x3ctd align\x3d"center" valign\x3d"middle"\x3e'+
+mxResources.get(d)+"\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e",k&&e(g),mxEvent.addListener(g,"click",function(a){e(g)}),mxEvent.addListener(g,"dblclick",function(a){b()});u.appendChild(g)}function k(){function a(){for(var c=!0;b<A.length&&(c||0!=mxUtils.mod(b,30));)c=A[b++],g(c.url,c.libs,c.title,c.tooltip,c.select),c=!1}var b=0;mxEvent.addListener(u,"scroll",function(b){u.scrollTop+u.clientHeight>=u.scrollHeight&&(a(),mxEvent.consume(b))});var c=null,d;for(d in x){var e=document.createElement("div"),
f=mxResources.get(d),k=x[d];null==f&&(f=d.substring(0,1).toUpperCase()+d.substring(1));18<f.length&&(f=f.substring(0,18)+"\x26hellip;");e.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";e.setAttribute("title",f+" ("+k.length+")");mxUtils.write(e,e.getAttribute("title"));v.appendChild(e);null==c&&(c=e,c.style.backgroundColor="#ebf2f9");(function(d,f){mxEvent.addListener(e,"click",function(){c!=f&&(c.style.backgroundColor=
-"",c=f,c.style.backgroundColor="#ebf2f9",u.scrollTop=0,u.innerHTML="",b=0,z=x[d],a())})})(d,e)}a()}f=null!=f?f:!0;var l=document.createElement("div");l.style.height="100%";var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.height="46px";l.appendChild(n);var m=document.createElement("img");m.setAttribute("border","0");m.setAttribute("align","absmiddle");m.style.width="40px";m.style.height="40px";m.style.marginRight="10px";m.style.paddingBottom="4px";m.src=a.mode==App.MODE_GOOGLE?
+"",c=f,c.style.backgroundColor="#ebf2f9",u.scrollTop=0,u.innerHTML="",b=0,A=x[d],a())})})(d,e)}a()}f=null!=f?f:!0;var l=document.createElement("div");l.style.height="100%";var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.height="46px";l.appendChild(n);var m=document.createElement("img");m.setAttribute("border","0");m.setAttribute("align","absmiddle");m.style.width="40px";m.style.height="40px";m.style.marginRight="10px";m.style.paddingBottom="4px";m.src=a.mode==App.MODE_GOOGLE?
IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!c&&f&&n.appendChild(m);f&&mxUtils.write(n,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");m=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?m=a.drive.extension:a.mode==App.MODE_DROPBOX&&
-null!=a.dropbox?m=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive&&(m=a.oneDrive.extension);var p=document.createElement("input");p.setAttribute("value",a.defaultFilename+m);p.style.marginRight="20px";p.style.marginLeft="10px";p.style.width=c?"220px":"450px";this.init=function(){f&&(p.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null))};f&&n.appendChild(p);var q=null,r=null,s=null,t=mxUtils.button(mxResources.get("create"),
+null!=a.dropbox?m=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive&&(m=a.oneDrive.extension);var p=document.createElement("input");p.setAttribute("value",a.defaultFilename+m);p.style.marginRight="20px";p.style.marginLeft="10px";p.style.width=c?"220px":"450px";this.init=function(){f&&(p.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null))};f&&n.appendChild(p);var r=null,s=null,q=null,t=mxUtils.button(mxResources.get("create"),
function(){b()});t.className="geBtn gePrimaryBtn";var u=document.createElement("div");u.style.border="1px solid #d3d3d3";u.style.position="absolute";u.style.left="160px";u.style.right="34px";u.style.top=f?"72px":"40px";u.style.bottom="76px";u.style.margin="6px 0 0 -1px";u.style.padding="6px";u.style.overflow="auto";var v=document.createElement("div");v.style.cssText="position:absolute;left:30px;width:128px;top:72px;bottom:76px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";f||(v.style.top=
-"40px");var A=140,y=140,x={},D=1;x.basic=[{title:"blankDiagram",select:!0}];var z=x.basic;if(!c){l.appendChild(v);l.appendChild(u);var B=!1;mxUtils.get(TEMPLATE_PATH+"/index.xml",function(a){if(!B){B=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=x[b];null==c&&(D++,c=[],x[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),
-tooltip:a.getAttribute("url")})}}a=a.nextSibling}k()}})}mxEvent.addListener(p,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),b())});n=document.createElement("div");n.style.marginTop=c?"4px":"16px";n.style.textAlign="right";n.style.position="absolute";n.style.left="40px";n.style.bottom="30px";n.style.right="40px";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});m.className="geBtn";a.editor.cancelFirst&&n.appendChild(m);if(!c&&!a.isOffline()&&f){var F=mxUtils.button(mxResources.get("help"),
-function(){window.open("https://support.draw.io/display/DO/Creating+and+Opening+Files")});F.className="geBtn";n.appendChild(F)}c||(c=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode\x3d"+a.mode+"\x26title\x3d"+encodeURIComponent(p.value)+"\x26create\x3d"+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));
-a.showDialog(b.container,300,80,!0,!0);b.init()}),c.className="geBtn",n.appendChild(c));n.appendChild(t);a.editor.cancelFirst||n.appendChild(m);l.appendChild(n);this.container=l},CreateDialog=function(a,c,f,d,b,e,g,k,l,n,m){function p(b,c,d,e){function f(){mxEvent.addListener(g,"click",function(){q(d);r(d)})}var g=document.createElement("a");g.style.overflow="hidden";var k=document.createElement("img");k.src=b;k.setAttribute("border","0");k.setAttribute("align","absmiddle");k.style.width="60px";k.style.height=
-"60px";k.style.paddingBottom="6px";g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace="nowrap";g.appendChild(k);mxClient.IS_QUIRKS&&(g.style.cssFloat="left",g.style.zoom="1");g.style.color="gray";g.style.fontSize="11px";var l=document.createElement("div");g.appendChild(l);mxUtils.write(l,c);if(null!=e&&null==a[e]){k.style.visibility="hidden";mxUtils.setOpacity(l,
-10);var m=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});m.spin(g);var n=window.setTimeout(function(){null==a[e]&&(m.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[e]&&(window.clearTimeout(n),mxUtils.setOpacity(l,100),k.style.visibility="",m.stop(),f())}))}else f();A.appendChild(g)}function q(b){if(g){var d=v.value,e=d.lastIndexOf(".");if(0>c.lastIndexOf(".")&&
-(!t||0>e)){b=null!=b?b:y.value;var f="";b==App.MODE_GOOGLE?f=a.drive.extension:b==App.MODE_DROPBOX?f=a.dropbox.extension:b==App.MODE_ONEDRIVE?f=a.oneDrive.extension:b==App.MODE_DEVICE&&(f=".xml");0<=e&&(d=d.substring(0,e));v.value=d+f}}}function r(b){var c=v.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),f(c,b)}g=null!=g?g:!0;k=null!=k?k:!0;var s=document.createElement("div"),t=!0;null==d&&a.addLanguageMenu(s);var u=document.createElement("h2");mxUtils.write(u,b||mxResources.get("create"));
-u.style.marginTop="0px";u.style.marginBottom="24px";s.appendChild(u);mxUtils.write(s,mxResources.get("filename")+":");var v=document.createElement("input");v.setAttribute("value",c);v.style.width="280px";v.style.marginLeft="10px";v.style.marginBottom="20px";this.init=function(){v.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?v.select():document.execCommand("selectAll",!1,null)};s.appendChild(v);mxUtils.br(s);var A=document.createElement("div");A.style.textAlign="center";t?(A.style.marginTop=
-"6px",s.appendChild(A)):mxUtils.write(s,mxResources.get("chooseAnOption")+":");var y=document.createElement("select");y.style.marginLeft="10px";"function"===typeof window.DriveClient&&(b=document.createElement("option"),b.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(b,mxResources.get("googleDrive")),y.appendChild(b),p(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive"));"function"===typeof window.DropboxClient&&(b=document.createElement("option"),b.setAttribute("value",
+"40px");var z=140,y=140,x={},D=1;x.basic=[{title:"blankDiagram",select:!0}];var A=x.basic;if(!c){l.appendChild(v);l.appendChild(u);var B=!1;mxUtils.get(TEMPLATE_PATH+"/index.xml",function(a){if(!B){B=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=x[b];null==c&&(D++,c=[],x[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),
+tooltip:a.getAttribute("url")})}}a=a.nextSibling}k()}})}mxEvent.addListener(p,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),b())});n=document.createElement("div");n.style.marginTop=c?"4px":"16px";n.style.textAlign="right";n.style.position="absolute";n.style.left="40px";n.style.bottom="30px";n.style.right="40px";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});m.className="geBtn";a.editor.cancelFirst&&n.appendChild(m);if(!c&&!a.isOffline()&&f){var E=mxUtils.button(mxResources.get("help"),
+function(){window.open("https://support.draw.io/display/DO/Creating+and+Opening+Files")});E.className="geBtn";n.appendChild(E)}c||(c=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode\x3d"+a.mode+"\x26title\x3d"+encodeURIComponent(p.value)+"\x26create\x3d"+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));
+a.showDialog(b.container,300,80,!0,!0);b.init()}),c.className="geBtn",n.appendChild(c));n.appendChild(t);a.editor.cancelFirst||n.appendChild(m);l.appendChild(n);this.container=l},CreateDialog=function(a,c,f,d,b,e,g,k,l,n,m){function p(b,c,d,e){function f(){mxEvent.addListener(k,"click",function(){r(d);s(d)})}var k=document.createElement("a");k.style.overflow="hidden";var g=document.createElement("img");g.src=b;g.setAttribute("border","0");g.setAttribute("align","absmiddle");g.style.width="60px";g.style.height=
+"60px";g.style.paddingBottom="6px";k.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";k.className="geBaseButton";k.style.position="relative";k.style.margin="4px";k.style.padding="8px 8px 10px 8px";k.style.whiteSpace="nowrap";k.appendChild(g);mxClient.IS_QUIRKS&&(k.style.cssFloat="left",k.style.zoom="1");k.style.color="gray";k.style.fontSize="11px";var l=document.createElement("div");k.appendChild(l);mxUtils.write(l,c);if(null!=e&&null==a[e]){g.style.visibility="hidden";mxUtils.setOpacity(l,
+10);var n=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});n.spin(k);var m=window.setTimeout(function(){null==a[e]&&(n.stop(),k.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[e]&&(window.clearTimeout(m),mxUtils.setOpacity(l,100),g.style.visibility="",n.stop(),f())}))}else f();z.appendChild(k)}function r(b){if(g){var d=v.value,e=d.lastIndexOf(".");if(0>c.lastIndexOf(".")&&
+(!t||0>e)){b=null!=b?b:y.value;var f="";b==App.MODE_GOOGLE?f=a.drive.extension:b==App.MODE_DROPBOX?f=a.dropbox.extension:b==App.MODE_ONEDRIVE?f=a.oneDrive.extension:b==App.MODE_DEVICE&&(f=".xml");0<=e&&(d=d.substring(0,e));v.value=d+f}}}function s(b){var c=v.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),f(c,b)}g=null!=g?g:!0;k=null!=k?k:!0;var q=document.createElement("div"),t=!0;null==d&&a.addLanguageMenu(q);var u=document.createElement("h2");mxUtils.write(u,b||mxResources.get("create"));
+u.style.marginTop="0px";u.style.marginBottom="24px";q.appendChild(u);mxUtils.write(q,mxResources.get("filename")+":");var v=document.createElement("input");v.setAttribute("value",c);v.style.width="280px";v.style.marginLeft="10px";v.style.marginBottom="20px";this.init=function(){v.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?v.select():document.execCommand("selectAll",!1,null)};q.appendChild(v);mxUtils.br(q);var z=document.createElement("div");z.style.textAlign="center";t?(z.style.marginTop=
+"6px",q.appendChild(z)):mxUtils.write(q,mxResources.get("chooseAnOption")+":");var y=document.createElement("select");y.style.marginLeft="10px";"function"===typeof window.DriveClient&&(b=document.createElement("option"),b.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(b,mxResources.get("googleDrive")),y.appendChild(b),p(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive"));"function"===typeof window.DropboxClient&&(b=document.createElement("option"),b.setAttribute("value",
App.MODE_DROPBOX),mxUtils.write(b,mxResources.get("dropbox")),y.appendChild(b),a.mode==App.MODE_DROPBOX&&b.setAttribute("selected","selected"),p(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox"));"function"===typeof window.OneDriveClient&&(b=document.createElement("option"),b.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(b,mxResources.get("oneDrive")),y.appendChild(b),a.mode==App.MODE_ONEDRIVE&&b.setAttribute("selected","selected"),p(IMAGE_PATH+"/onedrive-logo.svg",
-mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive"));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)b=document.createElement("option"),b.setAttribute("value",App.MODE_DEVICE),mxUtils.write(b,mxResources.get("device")),y.appendChild(b),(a.mode==App.MODE_DEVICE||!k)&&b.setAttribute("selected","selected"),m&&(mxUtils.br(A),p(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE));k&&(isLocalStorage&&"0"!=urlParams.browser)&&
-(k=document.createElement("option"),k.setAttribute("value",App.MODE_BROWSER),mxUtils.write(k,mxResources.get("browser")),y.appendChild(k),a.mode==App.MODE_BROWSER&&k.setAttribute("selected","selected"),p(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));k=document.createElement("div");k.style.marginTop=t?"26px":"38px";k.style.textAlign=t?"center":"right";t||(s.appendChild(y),mxEvent.addListener(y,"change",q),q());null!=n&&(b=mxUtils.button(mxResources.get("help"),function(){window.open(n)}),
-b.className="geBtn",k.appendChild(b));b=mxUtils.button(mxResources.get("cancel"),function(){null!=d?d():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});b.className="geBtn";a.editor.cancelFirst&&k.appendChild(b);null==d&&(u=mxUtils.button(mxResources.get("decideLater"),function(){r(null)}),u.className="geBtn",k.appendChild(u));l&&(l=mxUtils.button(mxResources.get("openInNewWindow"),function(){r("_blank")}),l.className="geBtn",k.appendChild(l));if(!mxClient.IS_IOS||
-!t)e=mxUtils.button(e||mxResources.get("create"),function(){r(m?"download":t?App.MODE_DEVICE:y.value)}),e.className="geBtn gePrimaryBtn",k.appendChild(e);a.editor.cancelFirst||k.appendChild(b);mxEvent.addListener(v,"keypress",function(b){13==b.keyCode?r(t?App.MODE_DEVICE:y.value):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});s.appendChild(k);this.container=s},PopupDialog=function(a,c,f,d,b){b=null!=b?b:!0;var e=document.createElement("div");e.style.textAlign="left";mxUtils.write(e,
+mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive"));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)b=document.createElement("option"),b.setAttribute("value",App.MODE_DEVICE),mxUtils.write(b,mxResources.get("device")),y.appendChild(b),(a.mode==App.MODE_DEVICE||!k)&&b.setAttribute("selected","selected"),m&&(mxUtils.br(z),p(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE));k&&(isLocalStorage&&"0"!=urlParams.browser)&&
+(k=document.createElement("option"),k.setAttribute("value",App.MODE_BROWSER),mxUtils.write(k,mxResources.get("browser")),y.appendChild(k),a.mode==App.MODE_BROWSER&&k.setAttribute("selected","selected"),p(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));k=document.createElement("div");k.style.marginTop=t?"26px":"38px";k.style.textAlign=t?"center":"right";t||(q.appendChild(y),mxEvent.addListener(y,"change",r),r());null!=n&&(b=mxUtils.button(mxResources.get("help"),function(){window.open(n)}),
+b.className="geBtn",k.appendChild(b));b=mxUtils.button(mxResources.get("cancel"),function(){null!=d?d():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});b.className="geBtn";a.editor.cancelFirst&&k.appendChild(b);null==d&&(u=mxUtils.button(mxResources.get("decideLater"),function(){s(null)}),u.className="geBtn",k.appendChild(u));l&&(l=mxUtils.button(mxResources.get("openInNewWindow"),function(){s("_blank")}),l.className="geBtn",k.appendChild(l));if(!mxClient.IS_IOS||
+!t)e=mxUtils.button(e||mxResources.get("create"),function(){s(m?"download":t?App.MODE_DEVICE:y.value)}),e.className="geBtn gePrimaryBtn",k.appendChild(e);a.editor.cancelFirst||k.appendChild(b);mxEvent.addListener(v,"keypress",function(b){13==b.keyCode?s(t?App.MODE_DEVICE:y.value):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});q.appendChild(k);this.container=q},PopupDialog=function(a,c,f,d,b){b=null!=b?b:!0;var e=document.createElement("div");e.style.textAlign="left";mxUtils.write(e,
mxResources.get("fileOpenLocation"));mxUtils.br(e);mxUtils.br(e);var g=mxUtils.button(mxResources.get("openInThisWindow"),function(){b&&a.hideDialog();null!=d&&d()});g.className="geBtn";g.style.marginBottom="8px";g.style.width="280px";e.appendChild(g);mxUtils.br(e);var k=mxUtils.button(mxResources.get("openInNewWindow"),function(){b&&a.hideDialog();null!=f&&f();window.open(c)});k.className="geBtn gePrimaryBtn";k.style.width=g.style.width;e.appendChild(k);mxUtils.br(e);mxUtils.br(e);mxUtils.write(e,
mxResources.get("allowPopups"));this.container=e},ImageDialog=function(a,c,f,d,b,e){e=null!=e?e:!0;var g=a.editor.graph,k=document.createElement("div");mxUtils.write(k,c);c=document.createElement("div");c.className="geTitle";c.style.backgroundColor="transparent";c.style.borderColor="transparent";c.style.whiteSpace="nowrap";c.style.textOverflow="clip";c.style.cursor="default";mxClient.IS_VML||(c.style.paddingRight="20px");var l=document.createElement("input");l.setAttribute("value",f);l.setAttribute("type",
"text");l.style.marginTop="6px";l.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";l.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";l.style.backgroundRepeat="no-repeat";l.style.backgroundPosition="100% 50%";l.style.paddingRight="14px";f=document.createElement("div");f.setAttribute("title",mxResources.get("reset"));f.style.position="relative";f.style.left="-16px";f.style.width="12px";f.style.height="14px";f.style.cursor="pointer";f.style.display=mxClient.IS_VML?
-"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){l.value="";l.focus()});c.appendChild(l);c.appendChild(f);k.appendChild(c);var n=function(b,c,f){var g="data:"==b.substring(0,5);(!a.isOffline()||g&&"undefined"===typeof chrome)&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(g){a.spinner.stop();a.hideDialog();var k=null!=c&&null!=f?Math.max(c/g.width,f/
-g.height):Math.min(1,Math.min(520/g.width,520/g.height));e&&(b=a.convertDataUri(b));d(b,Math.round(Number(g.width)*k),Math.round(Number(g.height)*k))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},m=function(c){if(null!=c&&0<c.length){var e=b?null:g.getModel().getGeometry(g.getSelectionCell());null!=e?n(c,e.width,e.height):n(c)}else a.hideDialog(),
+"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){l.value="";l.focus()});c.appendChild(l);c.appendChild(f);k.appendChild(c);var n=function(b,c,f){var k="data:"==b.substring(0,5);(!a.isOffline()||k&&"undefined"===typeof chrome)&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(k){a.spinner.stop();a.hideDialog();var g=null!=c&&null!=f?Math.max(c/k.width,f/
+k.height):Math.min(1,Math.min(520/k.width,520/k.height));e&&(b=a.convertDataUri(b));d(b,Math.round(Number(k.width)*g),Math.round(Number(k.height)*g))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},m=function(c){if(null!=c&&0<c.length){var e=b?null:g.getModel().getGeometry(g.getSelectionCell());null!=e?n(c,e.width,e.height):n(c)}else a.hideDialog(),
d(null)};this.init=function(){l.focus();if(Graph.fileSupport){l.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=k.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){if(null==c&&(!mxClient.IS_IE||10<document.documentMode))c=a.highlightElement(b);d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,
function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,e,f){m(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(d)&&m(decodeURIComponent(d))}b.stopPropagation();
b.preventDefault()}),!1)}};f=document.createElement("div");f.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";f.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&f.appendChild(c);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(l.value=a.url));l.focus()};if("undefined"!=typeof google&&
-"undefined"!=typeof google.picker){if(Graph.fileSupport){var p=document.createElement("input");p.setAttribute("multiple","multiple");p.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(p,"change",function(b){a.importFiles(p.files,0,0,a.maxImageSize,function(a,b,c,d,e,f){m(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var q=mxUtils.button(mxResources.get("open"),function(){p.click()});q.className=
-"geBtn";f.appendChild(q)}}q=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0);a.movePickersToTop()});q.className="geBtn";f.appendChild(q);null!=a.drive&&"1"==urlParams.photos&&(q=mxUtils.button(mxResources.get("googlePlus"),
+"undefined"!=typeof google.picker){if(Graph.fileSupport){var p=document.createElement("input");p.setAttribute("multiple","multiple");p.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(p,"change",function(b){a.importFiles(p.files,0,0,a.maxImageSize,function(a,b,c,d,e,f){m(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var r=mxUtils.button(mxResources.get("open"),function(){p.click()});r.className=
+"geBtn";f.appendChild(r)}}r=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0);a.movePickersToTop()});r.className="geBtn";f.appendChild(r);null!=a.drive&&"1"==urlParams.photos&&(r=mxUtils.button(mxResources.get("googlePlus"),
function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0);
-a.movePickersToTop()}))}),q.className="geBtn",f.appendChild(q))}mxEvent.addListener(l,"keypress",function(a){13==a.keyCode&&m(l.value)});q=mxUtils.button(mxResources.get("apply"),function(){m(l.value)});q.className="geBtn gePrimaryBtn";f.appendChild(q);a.editor.cancelFirst||f.appendChild(c);Graph.fileSupport&&(f.style.marginTop="120px",k.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",k.style.backgroundPosition="center 65%",k.style.backgroundRepeat="no-repeat",c=document.createElement("div"),
+a.movePickersToTop()}))}),r.className="geBtn",f.appendChild(r))}mxEvent.addListener(l,"keypress",function(a){13==a.keyCode&&m(l.value)});r=mxUtils.button(mxResources.get("apply"),function(){m(l.value)});r.className="geBtn gePrimaryBtn";f.appendChild(r);a.editor.cancelFirst||f.appendChild(c);Graph.fileSupport&&(f.style.marginTop="120px",k.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",k.style.backgroundPosition="center 65%",k.style.backgroundRepeat="no-repeat",c=document.createElement("div"),
c.style.position="absolute",c.style.width="420px",c.style.top="58%",c.style.textAlign="center",c.style.fontSize="18px",c.style.color="#a0c3ff",mxUtils.write(c,mxResources.get("dragImagesHere")),k.appendChild(c));k.appendChild(f);this.container=k};
-PrintDialog.prototype.create=function(a){function c(){q.value=Math.max(1,Math.min(g,Math.max(parseInt(q.value),parseInt(p.value))));p.value=Math.max(1,Math.min(g,Math.min(parseInt(q.value),parseInt(p.value))))}function f(b){function c(a,b,d){var f=a.getGraphBounds(),g=0,k=0,l=I.get(),m=1/a.pageScale,n=u.checked;if(n)var m=parseInt(E.value),s=parseInt(H.value),m=Math.min(l.height*s/(f.height/a.view.scale),l.width*m/(f.width/a.view.scale));else m=parseInt(t.value)/(100*a.pageScale),isNaN(m)&&(e=1/a.pageScale,
-t.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width*e);l.height=Math.ceil(l.height*e);m*=e;!n&&a.pageVisible?(f=a.getPageLayout(),g-=f.x*l.width,k-=f.y*l.height):n=!0;if(null==b){b=PrintDialog.createPrintPreview(a,m,l,0,g,k,n);b.pageSelector=!1;b.mathEnabled=!1;if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage=function(a,b,c,d,e,f){var g=v.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:g.className="geDisableMathJax";return g}}b.open(null,null,
-d,!0)}else{l=a.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=n;b.appendGraph(a,m,g,k,d,!0)}return b}var e=parseInt(J.value)/100;isNaN(e)&&(e=1,J.value="100 %");var e=0.75*e,f=p.value,g=q.value,l=!n.checked,m=null;l&&(l=f==k&&g==k);if(!l&&null!=a.pages&&a.pages.length){var s=0,l=a.pages.length-1;n.checked||(s=parseInt(f)-1,l=parseInt(g)-1);for(var v=s;v<=l;v++){var r=a.pages[v],f=r==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.getStylesheet()),
-g=!0,s=!1,A=null,y=null;null==r.viewState&&null==r.mapping&&null==r.root&&a.updatePageRoot(r);null!=r.viewState?(g=r.viewState.pageVisible,s=r.viewState.mathEnabled,A=r.viewState.background,y=r.viewState.backgroundImage):null!=r.mapping&&null!=r.mapping.diagramMap&&(s="0"!=r.mapping.diagramMap.get("mathEnabled"),A=r.mapping.diagramMap.get("background"),y=r.mapping.diagramMap.get("backgroundImage"),y=null!=y&&0<y.length?JSON.parse(y):null);f.background=A;f.backgroundImage=null!=y?new mxImage(y.src,
-y.width,y.height):null;f.pageVisible=g;f.mathEnabled=s;var x=f.getGlobalVariable;f.getGlobalVariable=function(a){return"page"==a?r.getName():"pagenumber"==a?v+1:x.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(r);f.model.setRoot(r.root)}m=c(f,m,v!=l);f!=d&&f.container.parentNode.removeChild(f.container)}}else m=c(d);m.mathEnabled&&(l=m.wnd.document,l.writeln('\x3cscript type\x3d"text/x-mathjax-config"\x3e'),l.writeln("MathJax.Hub.Config({"),l.writeln('messageStyle: "none",'),
+PrintDialog.prototype.create=function(a){function c(){r.value=Math.max(1,Math.min(g,Math.max(parseInt(r.value),parseInt(p.value))));p.value=Math.max(1,Math.min(g,Math.min(parseInt(r.value),parseInt(p.value))))}function f(b){function c(a,b,d){var f=a.getGraphBounds(),k=0,g=0,l=I.get(),n=1/a.pageScale,m=u.checked;if(m)var n=parseInt(F.value),p=parseInt(H.value),n=Math.min(l.height*p/(f.height/a.view.scale),l.width*n/(f.width/a.view.scale));else n=parseInt(t.value)/(100*a.pageScale),isNaN(n)&&(e=1/a.pageScale,
+t.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width*e);l.height=Math.ceil(l.height*e);n*=e;!m&&a.pageVisible?(f=a.getPageLayout(),k-=f.x*l.width,g-=f.y*l.height):m=!0;if(null==b){b=PrintDialog.createPrintPreview(a,n,l,0,k,g,m);b.pageSelector=!1;b.mathEnabled=!1;if("undefined"!==typeof MathJax){var q=b.renderPage;b.renderPage=function(a,b,c,d,e,f){var k=q.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:k.className="geDisableMathJax";return k}}b.open(null,null,
+d,!0)}else{l=a.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=m;b.appendGraph(a,n,k,g,d,!0)}return b}var e=parseInt(L.value)/100;isNaN(e)&&(e=1,L.value="100 %");var e=0.75*e,f=p.value,g=r.value,l=!n.checked,m=null;l&&(l=f==k&&g==k);if(!l&&null!=a.pages&&a.pages.length){var q=0,l=a.pages.length-1;n.checked||(q=parseInt(f)-1,l=parseInt(g)-1);for(var v=q;v<=l;v++){var s=a.pages[v],f=s==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.getStylesheet()),
+g=!0,q=!1,z=null,y=null;null==s.viewState&&null==s.mapping&&null==s.root&&a.updatePageRoot(s);null!=s.viewState?(g=s.viewState.pageVisible,q=s.viewState.mathEnabled,z=s.viewState.background,y=s.viewState.backgroundImage):null!=s.mapping&&null!=s.mapping.diagramMap&&(q="0"!=s.mapping.diagramMap.get("mathEnabled"),z=s.mapping.diagramMap.get("background"),y=s.mapping.diagramMap.get("backgroundImage"),y=null!=y&&0<y.length?JSON.parse(y):null);f.background=z;f.backgroundImage=null!=y?new mxImage(y.src,
+y.width,y.height):null;f.pageVisible=g;f.mathEnabled=q;var x=f.getGlobalVariable;f.getGlobalVariable=function(a){return"page"==a?s.getName():"pagenumber"==a?v+1:x.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(s);f.model.setRoot(s.root)}m=c(f,m,v!=l);f!=d&&f.container.parentNode.removeChild(f.container)}}else m=c(d);m.mathEnabled&&(l=m.wnd.document,l.writeln('\x3cscript type\x3d"text/x-mathjax-config"\x3e'),l.writeln("MathJax.Hub.Config({"),l.writeln('messageStyle: "none",'),
l.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),l.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),l.writeln("TeX: {"),l.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),l.writeln("},"),l.writeln("tex2jax: {"),l.writeln('\tignoreClass: "geDisableMathJax"'),l.writeln("},"),l.writeln("asciimath2jax: {"),l.writeln('\tignoreClass: "geDisableMathJax"'),l.writeln("}"),l.writeln("});"),b&&(l.writeln("MathJax.Hub.Queue(function () {"),
l.writeln("window.print();"),l.writeln("});")),l.writeln("\x3c/script\x3e"),l.writeln('\x3cscript type\x3d"text/javascript" src\x3d"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js"\x3e\x3c/script\x3e'));m.closeDocument();!m.mathEnabled&&b&&PrintDialog.printPreview(m)}var d=a.editor.graph,b=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("print"));b.appendChild(e);var g=1,k=1,l=document.createElement("div");l.style.cssText=
"border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-bottom:8px;";n.setAttribute("value","all");n.setAttribute("type","radio");n.setAttribute("name","pages-printdialog");l.appendChild(n);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));l.appendChild(e);mxUtils.br(l);var m=n.cloneNode(!0);n.setAttribute("checked","checked");m.setAttribute("value","range");l.appendChild(m);
-e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");l.appendChild(e);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.style.width="50px";l.appendChild(p);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));l.appendChild(e);var q=p.cloneNode(!0);l.appendChild(q);mxEvent.addListener(p,"focus",function(){m.checked=!0});mxEvent.addListener(q,
-"focus",function(){m.checked=!0});mxEvent.addListener(p,"change",c);mxEvent.addListener(q,"change",c);if(null!=a.pages&&(g=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){k=e+1;p.value=k;q.value=k;break}p.setAttribute("max",g);q.setAttribute("max",g);1<g&&b.appendChild(l);var r=document.createElement("div");r.style.marginBottom="10px";var s=document.createElement("input");s.style.marginRight="8px";s.setAttribute("value","adjust");s.setAttribute("type",
-"radio");s.setAttribute("name","printZoom");r.appendChild(s);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));r.appendChild(e);var t=document.createElement("input");t.style.cssText="margin:0 8px 0 8px;";t.setAttribute("value","100 %");t.style.width="50px";r.appendChild(t);mxEvent.addListener(t,"focus",function(){s.checked=!0});b.appendChild(r);var l=l.cloneNode(!1),u=s.cloneNode(!0);u.setAttribute("value","fit");s.setAttribute("checked","checked");e=document.createElement("div");
-e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(u);l.appendChild(e);r=document.createElement("table");r.style.display="inline-block";var v=document.createElement("tbody"),A=document.createElement("tr"),y=A.cloneNode(!0),x=document.createElement("td"),D=x.cloneNode(!0),z=x.cloneNode(!0),B=x.cloneNode(!0),F=x.cloneNode(!0),G=x.cloneNode(!0);x.style.textAlign="right";B.style.textAlign="right";mxUtils.write(x,mxResources.get("fitTo"));var E=document.createElement("input");
-E.style.cssText="margin:0 8px 0 8px;";E.setAttribute("value","1");E.setAttribute("min","1");E.setAttribute("type","number");E.style.width="40px";D.appendChild(E);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));z.appendChild(e);mxUtils.write(B,mxResources.get("fitToBy"));var H=E.cloneNode(!0);F.appendChild(H);mxEvent.addListener(E,"focus",function(){u.checked=!0});mxEvent.addListener(H,"focus",function(){u.checked=!0});e=document.createElement("span");mxUtils.write(e,
-mxResources.get("fitToSheetsDown"));G.appendChild(e);A.appendChild(x);A.appendChild(D);A.appendChild(z);y.appendChild(B);y.appendChild(F);y.appendChild(G);v.appendChild(A);v.appendChild(y);r.appendChild(v);l.appendChild(r);b.appendChild(l);l=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));l.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var I=PageSetupDialog.addPageFormatPanel(e,
-"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);l.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));l.appendChild(e);var J=document.createElement("input");J.style.cssText="margin:0 8px 0 8px;";J.setAttribute("value","100 %");J.style.width="60px";l.appendChild(J);b.appendChild(l);e=document.createElement("div");e.style.cssText="text-align:right;margin:42px 0 0 0;";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
-l.className="geBtn";a.editor.cancelFirst&&e.appendChild(l);mxClient.IS_CHROMEAPP||(r=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();f(!1)}),r.className="geBtn",e.appendChild(r));r=mxUtils.button(mxResources.get(mxClient.IS_CHROMEAPP?"ok":"print"),function(){a.hideDialog();f(!0)});r.className="geBtn gePrimaryBtn";e.appendChild(r);a.editor.cancelFirst||e.appendChild(l);b.appendChild(e);this.container=b};
+e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");l.appendChild(e);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.style.width="50px";l.appendChild(p);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));l.appendChild(e);var r=p.cloneNode(!0);l.appendChild(r);mxEvent.addListener(p,"focus",function(){m.checked=!0});mxEvent.addListener(r,
+"focus",function(){m.checked=!0});mxEvent.addListener(p,"change",c);mxEvent.addListener(r,"change",c);if(null!=a.pages&&(g=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){k=e+1;p.value=k;r.value=k;break}p.setAttribute("max",g);r.setAttribute("max",g);1<g&&b.appendChild(l);var s=document.createElement("div");s.style.marginBottom="10px";var q=document.createElement("input");q.style.marginRight="8px";q.setAttribute("value","adjust");q.setAttribute("type",
+"radio");q.setAttribute("name","printZoom");s.appendChild(q);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));s.appendChild(e);var t=document.createElement("input");t.style.cssText="margin:0 8px 0 8px;";t.setAttribute("value","100 %");t.style.width="50px";s.appendChild(t);mxEvent.addListener(t,"focus",function(){q.checked=!0});b.appendChild(s);var l=l.cloneNode(!1),u=q.cloneNode(!0);u.setAttribute("value","fit");q.setAttribute("checked","checked");e=document.createElement("div");
+e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(u);l.appendChild(e);s=document.createElement("table");s.style.display="inline-block";var v=document.createElement("tbody"),z=document.createElement("tr"),y=z.cloneNode(!0),x=document.createElement("td"),D=x.cloneNode(!0),A=x.cloneNode(!0),B=x.cloneNode(!0),E=x.cloneNode(!0),G=x.cloneNode(!0);x.style.textAlign="right";B.style.textAlign="right";mxUtils.write(x,mxResources.get("fitTo"));var F=document.createElement("input");
+F.style.cssText="margin:0 8px 0 8px;";F.setAttribute("value","1");F.setAttribute("min","1");F.setAttribute("type","number");F.style.width="40px";D.appendChild(F);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));A.appendChild(e);mxUtils.write(B,mxResources.get("fitToBy"));var H=F.cloneNode(!0);E.appendChild(H);mxEvent.addListener(F,"focus",function(){u.checked=!0});mxEvent.addListener(H,"focus",function(){u.checked=!0});e=document.createElement("span");mxUtils.write(e,
+mxResources.get("fitToSheetsDown"));G.appendChild(e);z.appendChild(x);z.appendChild(D);z.appendChild(A);y.appendChild(B);y.appendChild(E);y.appendChild(G);v.appendChild(z);v.appendChild(y);s.appendChild(v);l.appendChild(s);b.appendChild(l);l=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));l.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var I=PageSetupDialog.addPageFormatPanel(e,
+"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);l.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));l.appendChild(e);var L=document.createElement("input");L.style.cssText="margin:0 8px 0 8px;";L.setAttribute("value","100 %");L.style.width="60px";l.appendChild(L);b.appendChild(l);e=document.createElement("div");e.style.cssText="text-align:right;margin:42px 0 0 0;";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
+l.className="geBtn";a.editor.cancelFirst&&e.appendChild(l);mxClient.IS_CHROMEAPP||(s=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();f(!1)}),s.className="geBtn",e.appendChild(s));s=mxUtils.button(mxResources.get(mxClient.IS_CHROMEAPP?"ok":"print"),function(){a.hideDialog();f(!0)});s.className="geBtn gePrimaryBtn";e.appendChild(s);a.editor.cancelFirst||e.appendChild(l);b.appendChild(e);this.container=b};
var LinkDialog=function(a,c,f,d){var b=document.createElement("div");mxUtils.write(b,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var g=document.createElement("input");g.setAttribute("value",c);g.setAttribute("placeholder",mxResources.get("dragUrlsHere"));
g.setAttribute("type","text");g.style.marginTop="6px";g.style.width="400px";g.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";g.style.backgroundRepeat="no-repeat";g.style.backgroundPosition="100% 50%";g.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=
(mxClient.IS_VML?0:3)+"px";c.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(c,"click",function(){g.value="";g.focus()});e.appendChild(g);e.appendChild(c);b.appendChild(e);var k=mxUtils.button(f,function(){a.hideDialog();d(g.value,LinkDialog.selectedDocs)});k.className="geBtn gePrimaryBtn";this.init=function(){g.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?g.select():document.execCommand("selectAll",!1,null);if(Graph.fileSupport){var c=b.parentNode,
@@ -7199,210 +7273,264 @@ mxEvent.addListener(d,"change",function(){0<d.value.length&&0<e.test(d.value)?b.
c.appendChild(l);f=document.createElement("div");f.style.marginTop="26px";f.style.textAlign="right";k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst?(f.appendChild(k),f.appendChild(b)):(f.appendChild(b),f.appendChild(k));c.appendChild(f);this.container=c};FeedbackDialog.maxAttachmentSize=1E6;
var RevisionDialog=function(a,c){var f=document.createElement("div"),d=document.createElement("h3");d.style.marginTop="0px";mxUtils.write(d,mxResources.get("revisionHistory"));f.appendChild(d);var b=document.createElement("div");b.style.position="absolute";b.style.overflow="auto";b.style.width="170px";b.style.height="378px";f.appendChild(b);var e=document.createElement("div");e.style.position="absolute";e.style.border="1px solid lightGray";e.style.left="199px";e.style.width="470px";e.style.height=
"376px";e.style.overflow="hidden";mxEvent.disableContextMenu(e);f.appendChild(e);var g=new Graph(e);g.setEnabled(!1);g.setPanning(!0);g.panningHandler.ignoreCell=!0;g.panningHandler.useLeftButtonForPanning=!0;g.minFitScale=null;g.maxFitScale=null;g.centerZoom=!0;var k=0,l=null,n=0,m=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a&&null!=l&&null!=l[n]?l[k].getAttribute("name"):"pagenumber"==a?n+1:m.apply(this,arguments)};g.getLinkForCell=function(){return null};Editor.MathJaxRender&&
-g.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(g.container)}));var p=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),q=a.getCurrentFile(),r=null,s=null,t=null,u=null,v=mxUtils.button("",function(){null!=t&&g.zoomIn()});v.className="geSprite geSprite-zoomin";v.setAttribute("title",mxResources.get("zoomIn"));
-v.style.outline="none";v.style.border="none";v.style.margin="2px";v.setAttribute("disabled","disabled");mxUtils.setOpacity(v,20);var A=mxUtils.button("",function(){null!=t&&g.zoomOut()});A.className="geSprite geSprite-zoomout";A.setAttribute("title",mxResources.get("zoomOut"));A.style.outline="none";A.style.border="none";A.style.margin="2px";A.setAttribute("disabled","disabled");mxUtils.setOpacity(A,20);var y=mxUtils.button("",function(){null!=t&&(g.maxFitScale=8,g.fit(8),g.center())});y.className=
+g.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(g.container)}));var p=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),r=a.getCurrentFile(),s=null,q=null,t=null,u=null,v=mxUtils.button("",function(){null!=t&&g.zoomIn()});v.className="geSprite geSprite-zoomin";v.setAttribute("title",mxResources.get("zoomIn"));
+v.style.outline="none";v.style.border="none";v.style.margin="2px";v.setAttribute("disabled","disabled");mxUtils.setOpacity(v,20);var z=mxUtils.button("",function(){null!=t&&g.zoomOut()});z.className="geSprite geSprite-zoomout";z.setAttribute("title",mxResources.get("zoomOut"));z.style.outline="none";z.style.border="none";z.style.margin="2px";z.setAttribute("disabled","disabled");mxUtils.setOpacity(z,20);var y=mxUtils.button("",function(){null!=t&&(g.maxFitScale=8,g.fit(8),g.center())});y.className=
"geSprite geSprite-fit";y.setAttribute("title",mxResources.get("fit"));y.style.outline="none";y.style.border="none";y.style.margin="2px";y.setAttribute("disabled","disabled");mxUtils.setOpacity(y,20);var x=mxUtils.button("",function(){null!=t&&(g.zoomActual(),g.center())});x.className="geSprite geSprite-actualsize";x.setAttribute("title",mxResources.get("actualSize"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var D=
-document.createElement("div");D.style.position="absolute";D.style.textAlign="right";D.style.color="gray";D.style.marginTop="10px";D.style.backgroundColor="transparent";D.style.top="440px";D.style.right="32px";D.style.maxWidth="380px";D.style.cursor="default";var z=mxUtils.button(mxResources.get("download"),function(){if(null!=t){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(t.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"):
-(c="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(c):"\x26data\x3d"+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(b)+"\x26format\x3dxml"+c)).simulate(document,"_blank"))}});z.className="geBtn";z.setAttribute("disabled","disabled");var B=mxUtils.button(mxResources.get("restore"),function(){null!=t&&null!=u&&a.confirm(mxResources.get("areYouSure"),function(){a.spinner.spin(document.body,mxResources.get("restoring"))&&q.save(!0,
-function(b){a.spinner.stop();a.replaceFileData(u);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});B.className="geBtn";B.setAttribute("disabled","disabled");var F=document.createElement("select");F.setAttribute("disabled","disabled");F.style.maxWidth="80px";F.style.position="relative";F.style.top="-2px";F.style.verticalAlign="bottom";F.style.marginRight="6px";F.style.display="none";var G=null;mxEvent.addListener(F,
-"change",function(a){null!=G&&(G(a),mxEvent.consume(a))});var E=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=t&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(t.documentElement)),window.openWindow(a.getUrl()))});E.className="geBtn";E.setAttribute("disabled","disabled");var H=mxUtils.button(mxResources.get("show"),function(){null!=s&&window.open(s.getUrl())});H.className="geBtn gePrimaryBtn";H.setAttribute("disabled","disabled");
-d=document.createElement("div");d.style.position="absolute";d.style.top="482px";d.style.width="640px";d.style.textAlign="right";var I=document.createElement("div");I.className="geToolbarContainer";I.style.backgroundColor="transparent";I.style.padding="2px";I.style.border="none";I.style.left="199px";I.style.top="442px";var J=null;if(null==q||null==a.drive&&q.constructor==DriveFile||null==a.dropbox&&q.constructor==DropboxFile)e.style.display="none",I.style.display="none",mxUtils.write(b,mxResources.get("notAvailable"));
-else if(null!=c&&0<c.length){e.style.cursor="move";var N=document.createElement("table");N.style.border="1px solid lightGray";N.style.borderCollapse="collapse";N.style.borderSpacing="0px";N.style.width="100%";var T=document.createElement("tbody"),Y=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(k=mxUtils.indexOf(a.pages,a.currentPage));for(var C=c.length-1;0<=C;C--){var U=function(b){var d=new Date(b.modifiedDate),f=null;if(0<=d.getTime()){f=document.createElement("tr");f.style.borderBottom=
+document.createElement("div");D.style.position="absolute";D.style.textAlign="right";D.style.color="gray";D.style.marginTop="10px";D.style.backgroundColor="transparent";D.style.top="440px";D.style.right="32px";D.style.maxWidth="380px";D.style.cursor="default";var A=mxUtils.button(mxResources.get("download"),function(){if(null!=t){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(t.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"):
+(c="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(c):"\x26data\x3d"+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(b)+"\x26format\x3dxml"+c)).simulate(document,"_blank"))}});A.className="geBtn";A.setAttribute("disabled","disabled");var B=mxUtils.button(mxResources.get("restore"),function(){null!=t&&null!=u&&a.confirm(mxResources.get("areYouSure"),function(){a.spinner.spin(document.body,mxResources.get("restoring"))&&r.save(!0,
+function(b){a.spinner.stop();a.replaceFileData(u);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});B.className="geBtn";B.setAttribute("disabled","disabled");var E=document.createElement("select");E.setAttribute("disabled","disabled");E.style.maxWidth="80px";E.style.position="relative";E.style.top="-2px";E.style.verticalAlign="bottom";E.style.marginRight="6px";E.style.display="none";var G=null;mxEvent.addListener(E,
+"change",function(a){null!=G&&(G(a),mxEvent.consume(a))});var F=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=t&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(t.documentElement)),window.openWindow(a.getUrl()))});F.className="geBtn";F.setAttribute("disabled","disabled");var H=mxUtils.button(mxResources.get("show"),function(){null!=q&&window.open(q.getUrl())});H.className="geBtn gePrimaryBtn";H.setAttribute("disabled","disabled");
+d=document.createElement("div");d.style.position="absolute";d.style.top="482px";d.style.width="640px";d.style.textAlign="right";var I=document.createElement("div");I.className="geToolbarContainer";I.style.backgroundColor="transparent";I.style.padding="2px";I.style.border="none";I.style.left="199px";I.style.top="442px";var L=null;if(null==r||null==a.drive&&r.constructor==DriveFile||null==a.dropbox&&r.constructor==DropboxFile)e.style.display="none",I.style.display="none",mxUtils.write(b,mxResources.get("notAvailable"));
+else if(null!=c&&0<c.length){e.style.cursor="move";var O=document.createElement("table");O.style.border="1px solid lightGray";O.style.borderCollapse="collapse";O.style.borderSpacing="0px";O.style.width="100%";var T=document.createElement("tbody"),Y=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(k=mxUtils.indexOf(a.pages,a.currentPage));for(var C=c.length-1;0<=C;C--){var U=function(b){var d=new Date(b.modifiedDate),f=null;if(0<=d.getTime()){f=document.createElement("tr");f.style.borderBottom=
"1px solid lightGray";f.style.fontSize="12px";f.style.cursor="pointer";var m=document.createElement("td");m.style.padding="6px";m.style.whiteSpace="nowrap";b==c[c.length-1]?mxUtils.write(m,mxResources.get("current")):d.toDateString()===Y?mxUtils.write(m,d.toLocaleTimeString()):mxUtils.write(m,d.toLocaleDateString()+" "+d.toLocaleTimeString());f.appendChild(m);f.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(b.fileSize))+(null!=b.lastModifyingUserName?
-" "+b.lastModifyingUserName:""));var C=function(b){p.stop();var c=mxUtils.parseXml(b),m=a.editor.extractGraphModel(c.documentElement,!0);if(null!=m){F.style.display="none";F.innerHTML="";t=c;u=b;l=parseSelectFunction=null;n=0;var s=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,g.getModel());g.maxFitScale=1;g.fit(8);g.center();return a},r=function(b){null!=b&&(b=s(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));
-return b};if("mxfile"==m.nodeName){c=m.getElementsByTagName("diagram");l=[];for(b=0;b<c.length;b++)l.push(c[b]);n=Math.min(k,l.length-1);0<l.length&&r(l[n]);if(1<l.length){F.removeAttribute("disabled");F.style.display="";for(b=0;b<l.length;b++)c=document.createElement("option"),mxUtils.write(c,l[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==n&&c.setAttribute("selected","selected"),F.appendChild(c)}G=function(){n=k=parseInt(F.value);r(l[k])}}else s(m);
-D.innerHTML="";mxUtils.write(D,d.toLocaleDateString()+" "+d.toLocaleTimeString());D.setAttribute("title",f.getAttribute("title"));v.removeAttribute("disabled");A.removeAttribute("disabled");y.removeAttribute("disabled");x.removeAttribute("disabled");if(null==q||!q.isRestricted())a.editor.graph.isEnabled()&&B.removeAttribute("disabled"),z.removeAttribute("disabled"),H.removeAttribute("disabled"),E.removeAttribute("disabled");mxUtils.setOpacity(v,60);mxUtils.setOpacity(A,60);mxUtils.setOpacity(y,60);
-mxUtils.setOpacity(x,60)}else F.style.display="none",F.innerHTML="",D.innerHTML="",mxUtils.write(D,mxResources.get("errorLoadingFile"))};mxEvent.addListener(f,"click",function(a){s!=b&&(p.stop(),null!=r&&(r.style.backgroundColor=""),s=b,r=f,r.style.backgroundColor="#ebf2f9",u=t=null,D.removeAttribute("title"),D.innerHTML=mxResources.get("loading")+"...",e.style.backgroundColor="#ffffff",g.getModel().clear(),B.setAttribute("disabled","disabled"),z.setAttribute("disabled","disabled"),v.setAttribute("disabled",
-"disabled"),A.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"),y.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),mxUtils.setOpacity(v,20),mxUtils.setOpacity(A,20),mxUtils.setOpacity(y,20),mxUtils.setOpacity(x,20),p.spin(e),b.getXml(function(a){s==b&&C(a)},function(a){p.stop();F.style.display="none";F.innerHTML="";D.innerHTML="";mxUtils.write(D,mxResources.get("errorLoadingFile"))}),
-mxEvent.consume(a))});mxEvent.addListener(f,"dblclick",function(a){H.click();window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(f)}return f}(c[C]);null!=U&&C==c.length-1&&(J=U)}N.appendChild(T);b.appendChild(N)}else e.style.display="none",I.style.display="none",mxUtils.write(b,mxResources.get("noRevisions"));this.init=function(){null!=J&&J.click()};b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});
-b.className="geBtn";I.appendChild(F);I.appendChild(v);I.appendChild(A);I.appendChild(x);I.appendChild(y);a.editor.cancelFirst?(d.appendChild(b),d.appendChild(z),d.appendChild(E),d.appendChild(B),d.appendChild(H)):(d.appendChild(z),d.appendChild(E),d.appendChild(B),d.appendChild(H),d.appendChild(b));f.appendChild(d);f.appendChild(I);f.appendChild(D);this.container=f},AnimationWindow=function(a,c,f,d,b){function e(a){for(var b=[],c=0;c<a.length;c++){var d=B.view.getState(a[c]);if(null!=d){for(var e=
+" "+b.lastModifyingUserName:""));var C=function(b){p.stop();var c=mxUtils.parseXml(b),m=a.editor.extractGraphModel(c.documentElement,!0);if(null!=m){E.style.display="none";E.innerHTML="";t=c;u=b;l=parseSelectFunction=null;n=0;var q=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,g.getModel());g.maxFitScale=1;g.fit(8);g.center();return a},s=function(b){null!=b&&(b=q(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));
+return b};if("mxfile"==m.nodeName){c=m.getElementsByTagName("diagram");l=[];for(b=0;b<c.length;b++)l.push(c[b]);n=Math.min(k,l.length-1);0<l.length&&s(l[n]);if(1<l.length){E.removeAttribute("disabled");E.style.display="";for(b=0;b<l.length;b++)c=document.createElement("option"),mxUtils.write(c,l[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==n&&c.setAttribute("selected","selected"),E.appendChild(c)}G=function(){n=k=parseInt(E.value);s(l[k])}}else q(m);
+D.innerHTML="";mxUtils.write(D,d.toLocaleDateString()+" "+d.toLocaleTimeString());D.setAttribute("title",f.getAttribute("title"));v.removeAttribute("disabled");z.removeAttribute("disabled");y.removeAttribute("disabled");x.removeAttribute("disabled");if(null==r||!r.isRestricted())a.editor.graph.isEnabled()&&B.removeAttribute("disabled"),A.removeAttribute("disabled"),H.removeAttribute("disabled"),F.removeAttribute("disabled");mxUtils.setOpacity(v,60);mxUtils.setOpacity(z,60);mxUtils.setOpacity(y,60);
+mxUtils.setOpacity(x,60)}else E.style.display="none",E.innerHTML="",D.innerHTML="",mxUtils.write(D,mxResources.get("errorLoadingFile"))};mxEvent.addListener(f,"click",function(a){q!=b&&(p.stop(),null!=s&&(s.style.backgroundColor=""),q=b,s=f,s.style.backgroundColor="#ebf2f9",u=t=null,D.removeAttribute("title"),D.innerHTML=mxResources.get("loading")+"...",e.style.backgroundColor="#ffffff",g.getModel().clear(),B.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"),v.setAttribute("disabled",
+"disabled"),z.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"),y.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),mxUtils.setOpacity(v,20),mxUtils.setOpacity(z,20),mxUtils.setOpacity(y,20),mxUtils.setOpacity(x,20),p.spin(e),b.getXml(function(a){q==b&&C(a)},function(a){p.stop();E.style.display="none";E.innerHTML="";D.innerHTML="";mxUtils.write(D,mxResources.get("errorLoadingFile"))}),
+mxEvent.consume(a))});mxEvent.addListener(f,"dblclick",function(a){H.click();window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(f)}return f}(c[C]);null!=U&&C==c.length-1&&(L=U)}O.appendChild(T);b.appendChild(O)}else e.style.display="none",I.style.display="none",mxUtils.write(b,mxResources.get("noRevisions"));this.init=function(){null!=L&&L.click()};b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});
+b.className="geBtn";I.appendChild(E);I.appendChild(v);I.appendChild(z);I.appendChild(x);I.appendChild(y);a.editor.cancelFirst?(d.appendChild(b),d.appendChild(A),d.appendChild(F),d.appendChild(B),d.appendChild(H)):(d.appendChild(A),d.appendChild(F),d.appendChild(B),d.appendChild(H),d.appendChild(b));f.appendChild(d);f.appendChild(I);f.appendChild(D);this.container=f},AnimationWindow=function(a,c,f,d,b){function e(a){for(var b=[],c=0;c<a.length;c++){var d=B.view.getState(a[c]);if(null!=d){for(var e=
B.cellRenderer.getShapesForState(d),f=0;f<e.length;f++)null!=e[f]&&null!=e[f].node&&b.push(e[f].node);null!=d.control&&null!=d.control.node&&b.push(d.control.node)}}return b}function g(a){if(null!=a){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition",null),a[b].style.opacity="0";window.setTimeout(function(){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition","all 1s ease-in-out"),a[b].style.opacity="1"},0)}}function k(a){if(null!=a){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,
-"transition",null),a[b].style.opacity="1";window.setTimeout(function(){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition","all 1s ease-in-out"),a[b].style.opacity="0"},0)}}function l(a){var b=a.absolutePoints.slice(),c=a.segments,d=a.length,e=b.length;return{execute:function(f,g){if(null!=a.shape){for(var k=[b[0]],l=d*f/g,m=1;m<e;m++)if(l<=c[m-1]){k.push(new mxPoint(b[m-1].x+(b[m].x-b[m-1].x)*l/c[m-1],b[m-1].y+(b[m].y-b[m-1].y)*l/c[m-1]));break}else l-=c[m-1],k.push(b[m]);
-a.shape.points=k;a.shape.redraw()}},stop:function(){null!=a.shape&&(a.shape.points=b,a.shape.redraw())}}}function n(a){var b=new mxRectangle.fromRectangle(a.shape.bounds),c=null;null!=a.text&&(null!=a.text.node&&null!=a.text.node.firstChild)&&(c=a.text.node.firstChild.getAttribute("transform"));return{execute:function(d,e){if(null!=a.shape){var f=d/e;a.shape.bounds=new mxRectangle(b.x,b.y,b.width*f,b.height);a.shape.redraw();null!=c&&a.text.node.firstChild.setAttribute("transform",c+" scale("+f+",1)")}},
-stop:function(){null!=a.shape&&(a.shape.bounds=b,a.shape.redraw(),null!=c&&a.text.node.firstChild.setAttribute("transform",c))}}}function m(a,b,c){function d(){if(k==b){window.clearInterval(m);for(var a=0;a<e.length;a++)e[a].stop()}else{for(a=0;a<e.length;a++)e[a].execute(k,b);k++}}b=null!=b?b:30;c=null!=c?c:30;for(var e=[],f=0;f<a.length;f++){var g=B.view.getState(a[f]);null!=g&&null!=g.shape&&B.model.isEdge(g.cell)&&null!=g.absolutePoints&&1<g.absolutePoints.length?e.push(l(g)):null!=g&&(B.model.isVertex(g.cell)&&
-null!=g.shape&&null!=g.shape.bounds)&&e.push(n(g))}var k=0,m=window.setInterval(d,c);d()}function p(a,b,c){c=null!=c?c:{};c[a.id]=b;for(var d=a.getChildCount(),e=0;e<d;e++)p(a.getChildAt(e),b.getChildAt(e),c);return c}function q(){if(!G){G=F=!0;B.getModel().clear();B.getModel().setRoot(B.cloneCells([a.editor.graph.getModel().getRoot()])[0]);B.maxFitScale=1;B.fit(8);B.center();B.getModel().beginUpdate();try{for(var b in B.getModel().cells){var c=B.getModel().cells[b];if(B.getModel().isVertex(c)||B.getModel().isEdge(c))B.setCellStyles("opacity",
-"0",[c]),B.setCellStyles("noLabel","1",[c])}}finally{B.getModel().endUpdate()}var d=p(a.editor.graph.getModel().getRoot(),B.getModel().getRoot()),f=x.value.split("\n"),l=0,n=function(){if(F&&l<f.length){var a=f[l].split(" ");if(0<a.length)if("wait"==a[0]&&1<a.length)window.setTimeout(function(){l++;n()},parseFloat(a[1]));else{if(1<a.length){var c=d[a[1]];null!=c?"show"==a[0]?(B.setCellStyles("opacity","100",[c]),B.setCellStyles("noLabel",null,[c]),2<a.length&&"fade"==a[2]?g(e([c])):m([c])):"hide"==
-a[0]&&k(e([c])):console.log("cell not found",b,f[l])}l++;n()}}else G=!1};n()}}var r=document.createElement("table");r.style.width="100%";r.style.height="100%";var s=document.createElement("tbody"),t=document.createElement("tr"),u=document.createElement("td");u.style.width="140px";var v=document.createElement("td"),A=document.createElement("tr");A.style.height="40px";var y=document.createElement("td");y.setAttribute("colspan","2");var x=document.createElement("textarea");x.style.overflow="auto";x.style.width=
-"100%";x.style.height="100%";u.appendChild(x);var D=a.editor.graph.getModel().getRoot();null!=D.value&&"object"==typeof D.value&&(x.value=D.value.getAttribute("animation"));var z=document.createElement("div");z.style.border="1px solid lightGray";z.style.background="#ffffff";z.style.width="100%";z.style.height="100%";z.style.overflow="auto";mxEvent.disableContextMenu(z);v.appendChild(z);var B=new Graph(z);B.setEnabled(!1);B.setPanning(!0);B.foldingEnabled=!1;B.panningHandler.ignoreCell=!0;B.panningHandler.useLeftButtonForPanning=
-!0;B.minFitScale=null;B.maxFitScale=null;B.centerZoom=!0;var F=!1,G=!1,z=mxUtils.button("Fade In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+" fade\n";x.value+="wait 1000\n"}});y.appendChild(z);z=mxUtils.button("Wipe In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+"\n";x.value+="wait 1000\n"}});y.appendChild(z);z=mxUtils.button("Fade Out",
-function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"hide "+b[c].id+"\n";x.value+="wait 1000\n"}});y.appendChild(z);z=mxUtils.button("Wait",function(){x.value+="wait 1000\n"});y.appendChild(z);z=mxUtils.button("Preview",function(){q()});y.appendChild(z);z=mxUtils.button("Stop",function(){F=!1;B.getModel().clear()});y.appendChild(z);z=mxUtils.button("Apply",function(){a.editor.graph.setAttributeForCell(D,"animation",x.value)});y.appendChild(z);
-D=a.editor.graph.getModel().getRoot();t.appendChild(u);t.appendChild(v);s.appendChild(t);A.appendChild(y);s.appendChild(A);r.appendChild(s);this.window=new mxWindow("Animation",r,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0)},AuthDialog=function(a,c,f,d){var b=document.createElement("div");b.style.textAlign="center";var e=document.createElement("p");e.style.fontSize="16pt";e.style.padding=
+"transition",null),a[b].style.opacity="1";window.setTimeout(function(){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition","all 1s ease-in-out"),a[b].style.opacity="0"},0)}}function l(a){var b=a.absolutePoints.slice(),c=a.segments,d=a.length,e=b.length;return{execute:function(f,k){if(null!=a.shape){for(var g=[b[0]],l=d*f/k,n=1;n<e;n++)if(l<=c[n-1]){g.push(new mxPoint(b[n-1].x+(b[n].x-b[n-1].x)*l/c[n-1],b[n-1].y+(b[n].y-b[n-1].y)*l/c[n-1]));break}else l-=c[n-1],g.push(b[n]);
+a.shape.points=g;a.shape.redraw()}},stop:function(){null!=a.shape&&(a.shape.points=b,a.shape.redraw())}}}function n(a){var b=new mxRectangle.fromRectangle(a.shape.bounds),c=null;null!=a.text&&(null!=a.text.node&&null!=a.text.node.firstChild)&&(c=a.text.node.firstChild.getAttribute("transform"));return{execute:function(d,e){if(null!=a.shape){var f=d/e;a.shape.bounds=new mxRectangle(b.x,b.y,b.width*f,b.height);a.shape.redraw();null!=c&&a.text.node.firstChild.setAttribute("transform",c+" scale("+f+",1)")}},
+stop:function(){null!=a.shape&&(a.shape.bounds=b,a.shape.redraw(),null!=c&&a.text.node.firstChild.setAttribute("transform",c))}}}function m(a,b,c){function d(){if(g==b){window.clearInterval(m);for(var a=0;a<e.length;a++)e[a].stop()}else{for(a=0;a<e.length;a++)e[a].execute(g,b);g++}}b=null!=b?b:30;c=null!=c?c:30;for(var e=[],f=0;f<a.length;f++){var k=B.view.getState(a[f]);null!=k&&null!=k.shape&&B.model.isEdge(k.cell)&&null!=k.absolutePoints&&1<k.absolutePoints.length?e.push(l(k)):null!=k&&(B.model.isVertex(k.cell)&&
+null!=k.shape&&null!=k.shape.bounds)&&e.push(n(k))}var g=0,m=window.setInterval(d,c);d()}function p(a,b,c){c=null!=c?c:{};c[a.id]=b;for(var d=a.getChildCount(),e=0;e<d;e++)p(a.getChildAt(e),b.getChildAt(e),c);return c}function r(){if(!G){G=E=!0;B.getModel().clear();B.getModel().setRoot(B.cloneCells([a.editor.graph.getModel().getRoot()])[0]);B.maxFitScale=1;B.fit(8);B.center();B.getModel().beginUpdate();try{for(var b in B.getModel().cells){var c=B.getModel().cells[b];if(B.getModel().isVertex(c)||B.getModel().isEdge(c))B.setCellStyles("opacity",
+"0",[c]),B.setCellStyles("noLabel","1",[c])}}finally{B.getModel().endUpdate()}var d=p(a.editor.graph.getModel().getRoot(),B.getModel().getRoot()),f=x.value.split("\n"),l=0,n=function(){if(E&&l<f.length){var a=f[l].split(" ");if(0<a.length)if("wait"==a[0]&&1<a.length)window.setTimeout(function(){l++;n()},parseFloat(a[1]));else{if(1<a.length){var c=d[a[1]];null!=c?"show"==a[0]?(B.setCellStyles("opacity","100",[c]),B.setCellStyles("noLabel",null,[c]),2<a.length&&"fade"==a[2]?g(e([c])):m([c])):"hide"==
+a[0]&&k(e([c])):console.log("cell not found",b,f[l])}l++;n()}}else G=!1};n()}}var s=document.createElement("table");s.style.width="100%";s.style.height="100%";var q=document.createElement("tbody"),t=document.createElement("tr"),u=document.createElement("td");u.style.width="140px";var v=document.createElement("td"),z=document.createElement("tr");z.style.height="40px";var y=document.createElement("td");y.setAttribute("colspan","2");var x=document.createElement("textarea");x.style.overflow="auto";x.style.width=
+"100%";x.style.height="100%";u.appendChild(x);var D=a.editor.graph.getModel().getRoot();null!=D.value&&"object"==typeof D.value&&(x.value=D.value.getAttribute("animation"));var A=document.createElement("div");A.style.border="1px solid lightGray";A.style.background="#ffffff";A.style.width="100%";A.style.height="100%";A.style.overflow="auto";mxEvent.disableContextMenu(A);v.appendChild(A);var B=new Graph(A);B.setEnabled(!1);B.setPanning(!0);B.foldingEnabled=!1;B.panningHandler.ignoreCell=!0;B.panningHandler.useLeftButtonForPanning=
+!0;B.minFitScale=null;B.maxFitScale=null;B.centerZoom=!0;var E=!1,G=!1,A=mxUtils.button("Fade In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+" fade\n";x.value+="wait 1000\n"}});y.appendChild(A);A=mxUtils.button("Wipe In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+"\n";x.value+="wait 1000\n"}});y.appendChild(A);A=mxUtils.button("Fade Out",
+function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"hide "+b[c].id+"\n";x.value+="wait 1000\n"}});y.appendChild(A);A=mxUtils.button("Wait",function(){x.value+="wait 1000\n"});y.appendChild(A);A=mxUtils.button("Preview",function(){r()});y.appendChild(A);A=mxUtils.button("Stop",function(){E=!1;B.getModel().clear()});y.appendChild(A);A=mxUtils.button("Apply",function(){a.editor.graph.setAttributeForCell(D,"animation",x.value)});y.appendChild(A);
+D=a.editor.graph.getModel().getRoot();t.appendChild(u);t.appendChild(v);q.appendChild(t);z.appendChild(y);q.appendChild(z);s.appendChild(q);this.window=new mxWindow("Animation",s,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0)},AuthDialog=function(a,c,f,d){var b=document.createElement("div");b.style.textAlign="center";var e=document.createElement("p");e.style.fontSize="16pt";e.style.padding=
"0px";e.style.margin="0px";e.style.color="gray";mxUtils.write(e,mxResources.get("authorizationRequired"));var g="Unknown",k=document.createElement("img");k.setAttribute("border","0");k.setAttribute("align","absmiddle");k.style.marginRight="10px";c==a.drive?(g=mxResources.get("googleDrive"),k.src=IMAGE_PATH+"/google-drive-logo-white.svg"):c==a.dropbox?(g=mxResources.get("dropbox"),k.src=IMAGE_PATH+"/dropbox-logo-white.svg"):c==a.oneDrive&&(g=mxResources.get("oneDrive"),k.src=IMAGE_PATH+"/onedrive-logo-white.svg");
c=document.createElement("p");mxUtils.write(c,mxResources.get("authorizeThisAppIn",[g]));var l=document.createElement("input");l.setAttribute("type","checkbox");g=mxUtils.button(mxResources.get("authorize"),function(){a.hideDialog(!1);d(l.checked)});g.insertBefore(k,g.firstChild);g.style.marginTop="6px";g.className="geBigButton";b.appendChild(e);b.appendChild(c);b.appendChild(g);f&&(f=document.createElement("p"),f.style.marginTop="20px",f.appendChild(l),e=document.createElement("span"),mxUtils.write(e,
" "+mxResources.get("rememberMe")),f.appendChild(e),b.appendChild(f),l.checked=!0,l.defaultChecked=!0,mxEvent.addListener(e,"click",function(a){l.checked=!l.checked;mxEvent.consume(a)}));this.container=b},MoreShapesDialog=function(a,c,f){f=null!=f?f:a.sidebar.entries;var d=document.createElement("div");if(c){c=document.createElement("div");c.className="geDialogTitle";mxUtils.write(c,mxResources.get("shapes"));c.style.position="absolute";c.style.top="0px";c.style.left="0px";c.style.lineHeight="40px";
c.style.height="40px";c.style.right="0px";mxClient.IS_QUIRKS&&(c.style.width="718px");var b=document.createElement("div"),e=document.createElement("div");b.style.position="absolute";b.style.top="40px";b.style.left="0px";b.style.width="202px";b.style.bottom="60px";b.style.overflow="auto";mxClient.IS_QUIRKS&&(b.style.height="437px",b.style.marginTop="1px");e.style.position="absolute";e.style.left="202px";e.style.right="0px";e.style.top="40px";e.style.bottom="60px";e.style.overflow="auto";e.style.borderLeft=
"1px solid rgb(211, 211, 211)";e.style.textAlign="center";mxClient.IS_QUIRKS&&(e.style.width=parseInt(c.style.width)-202+"px",e.style.height=b.style.height,e.style.marginTop=b.style.marginTop);var g=null,k=[],l=document.createElement("div");l.style.position="relative";l.style.left="0px";l.style.right="0px";for(var n=0;n<f.length;n++)(function(c){var d=l.cloneNode(!1);d.style.fontWeight="bold";d.style.backgroundColor="#e5e5e5";d.style.padding="6px 0px 6px 20px";mxUtils.write(d,c.title);b.appendChild(d);
-for(var f=0;f<c.entries.length;f++)(function(c){var d=l.cloneNode(!1);d.style.cursor="pointer";d.style.padding="4px 0px 4px 20px";var m=document.createElement("input");m.setAttribute("type","checkbox");m.checked=a.sidebar.isEntryVisible(c.id);m.defaultChecked=m.checked;d.appendChild(m);mxUtils.write(d," "+c.title);b.appendChild(d);var u=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName)null!=c.imageCallback?c.imageCallback(e):null!=c.image?e.innerHTML='\x3cimg border\x3d"0" src\x3d"'+
-c.image+'"/\x3e':(e.innerHTML="\x3cbr\x3e",mxUtils.write(e,mxResources.get("noPreview"))),null!=g&&(g.style.backgroundColor=""),g=d,g.style.backgroundColor="#ebf2f9",null!=a&&mxEvent.consume(a)};mxEvent.addListener(d,"click",u);mxEvent.addListener(d,"dblclick",function(a){m.checked=!m.checked;mxEvent.consume(a)});k.push(function(){return m.checked?c.id:null});0==n&&0==f&&u()})(c.entries[f])})(f[n]);d.style.padding="30px";d.appendChild(c);d.appendChild(b);d.appendChild(e);f=document.createElement("div");
+for(var f=0;f<c.entries.length;f++)(function(c){var d=l.cloneNode(!1);d.style.cursor="pointer";d.style.padding="4px 0px 4px 20px";var m=document.createElement("input");m.setAttribute("type","checkbox");m.checked=a.sidebar.isEntryVisible(c.id);m.defaultChecked=m.checked;d.appendChild(m);mxUtils.write(d," "+c.title);b.appendChild(d);var p=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName)null!=c.imageCallback?c.imageCallback(e):null!=c.image?e.innerHTML='\x3cimg border\x3d"0" src\x3d"'+
+c.image+'"/\x3e':(e.innerHTML="\x3cbr\x3e",mxUtils.write(e,mxResources.get("noPreview"))),null!=g&&(g.style.backgroundColor=""),g=d,g.style.backgroundColor="#ebf2f9",null!=a&&mxEvent.consume(a)};mxEvent.addListener(d,"click",p);mxEvent.addListener(d,"dblclick",function(a){m.checked=!m.checked;mxEvent.consume(a)});k.push(function(){return m.checked?c.id:null});0==n&&0==f&&p()})(c.entries[f])})(f[n]);d.style.padding="30px";d.appendChild(c);d.appendChild(b);d.appendChild(e);f=document.createElement("div");
f.className="geDialogFooter";f.style.position="absolute";f.style.paddingRight="16px";f.style.color="gray";f.style.left="0px";f.style.right="0px";f.style.bottom="0px";f.style.height="60px";f.style.lineHeight="52px";mxClient.IS_QUIRKS&&(f.style.width=c.style.width,f.style.paddingTop="12px");var m=document.createElement("input");m.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)c=document.createElement("span"),c.style.paddingRight="20px",c.appendChild(m),mxUtils.write(c," "+
mxResources.get("rememberThisSetting")),m.checked=!0,m.defaultChecked=!0,mxEvent.addListener(c,"click",function(a){mxEvent.getSource(a)!=m&&(m.checked=!m.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(c.style.position="relative",c.style.top="-6px"),f.appendChild(c);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";var p=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=[],c=0;c<k.length;c++){var d=k[c].apply(this,arguments);null!=
-d&&b.push(d)}a.sidebar.showEntries(b.join(";"),m.checked,!0)});p.className="geBtn gePrimaryBtn"}else{var q=document.createElement("table"),r=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";var s=document.createElement("tr");q.style.width="100%";c=document.createElement("td");var p=document.createElement("td"),t=document.createElement("td"),u=mxUtils.bind(this,function(b,c,d){var e=document.createElement("input");e.type="checkbox";q.appendChild(e);e.checked=a.sidebar.isEntryVisible(d);
-var f=document.createElement("span");mxUtils.write(f,c);c=document.createElement("div");c.style.display="block";c.appendChild(e);c.appendChild(f);mxEvent.addListener(f,"click",function(a){e.checked=!e.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return e.checked?d:null}});s.appendChild(c);s.appendChild(p);s.appendChild(t);r.appendChild(s);q.appendChild(r);for(var k=[],v=0,n=0;n<f.length;n++)for(r=0;r<f[n].entries.length;r++)v++;for(var A=[c,p,t],y=0,n=0;n<f.length;n++)(function(a){for(var b=
-0;b<a.entries.length;b++){var c=a.entries[b];k.push(u(A[Math.floor(y/(v/3))],c.title,c.id));y++}})(f[n]);d.appendChild(q);f=document.createElement("div");f.style.marginTop="18px";f.style.textAlign="center";m=document.createElement("input");isLocalStorage&&(m.setAttribute("type","checkbox"),m.checked=!0,m.defaultChecked=!0,f.appendChild(m),c=document.createElement("span"),mxUtils.write(c," "+mxResources.get("rememberThisSetting")),f.appendChild(c),mxEvent.addListener(c,"click",function(a){m.checked=
+d&&b.push(d)}a.sidebar.showEntries(b.join(";"),m.checked,!0)});p.className="geBtn gePrimaryBtn"}else{var r=document.createElement("table"),s=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";var q=document.createElement("tr");r.style.width="100%";c=document.createElement("td");var p=document.createElement("td"),t=document.createElement("td"),u=mxUtils.bind(this,function(b,c,d){var e=document.createElement("input");e.type="checkbox";r.appendChild(e);e.checked=a.sidebar.isEntryVisible(d);
+var f=document.createElement("span");mxUtils.write(f,c);c=document.createElement("div");c.style.display="block";c.appendChild(e);c.appendChild(f);mxEvent.addListener(f,"click",function(a){e.checked=!e.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return e.checked?d:null}});q.appendChild(c);q.appendChild(p);q.appendChild(t);s.appendChild(q);r.appendChild(s);for(var k=[],v=0,n=0;n<f.length;n++)for(s=0;s<f[n].entries.length;s++)v++;for(var z=[c,p,t],y=0,n=0;n<f.length;n++)(function(a){for(var b=
+0;b<a.entries.length;b++){var c=a.entries[b];k.push(u(z[Math.floor(y/(v/3))],c.title,c.id));y++}})(f[n]);d.appendChild(r);f=document.createElement("div");f.style.marginTop="18px";f.style.textAlign="center";m=document.createElement("input");isLocalStorage&&(m.setAttribute("type","checkbox"),m.checked=!0,m.defaultChecked=!0,f.appendChild(m),c=document.createElement("span"),mxUtils.write(c," "+mxResources.get("rememberThisSetting")),f.appendChild(c),mxEvent.addListener(c,"click",function(a){m.checked=
!m.checked;mxEvent.consume(a)}));d.appendChild(f);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";p=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<k.length;c++){var d=k[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",m.checked);a.hideDialog()});p.className="geBtn gePrimaryBtn";f=document.createElement("div");f.style.marginTop="26px";f.style.textAlign="right"}a.editor.cancelFirst?(f.appendChild(c),
-f.appendChild(p)):(f.appendChild(p),f.appendChild(c));d.appendChild(f);this.container=d},PluginsDialog=function(a){function c(){if(0==b.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var e=0;e<b.length;e++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var g=document.createElement("span");g.className="geSprite geSprite-delete";g.style.position="relative";g.style.cursor="pointer";g.style.top="5px";g.style.marginRight="4px";g.style.display="inline-block";
-f.appendChild(g);mxUtils.write(f,b[e]);d.appendChild(f);mxUtils.br(d);mxEvent.addListener(g,"click",function(d){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+b[d]+'"?',function(){b.splice(d,1);c()})}}(e))}}}var f=document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var b=mxSettings.getPlugins().slice();f.appendChild(d);c();var e=mxUtils.button(mxResources.get("add"),function(){var d="",e=urlParams.p;if(null!=e&&0<e.length){for(var f=
-e.split(";"),e=0;e<f.length;e++){var g=App.pluginRegistry[f[e]];null!=g&&(d+=g+";")}";"==d.charAt(d.length-1)&&(d=d.substring(0,d.length-1))}d=new FilenameDialog(a,d,mxResources.get("add"),function(a){if(null!=a&&0<a.length){f=a.split(";");for(a=0;a<f.length;a++)0<f[a].length&&0>mxUtils.indexOf(b,f[a])&&b.push(f[a]);c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(d.container,300,80,!0,!0);d.init()});e.className="geBtn";var g=mxUtils.button(mxResources.get("cancel"),
+f.appendChild(p)):(f.appendChild(p),f.appendChild(c));d.appendChild(f);this.container=d},PluginsDialog=function(a){function c(){if(0==b.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var e=0;e<b.length;e++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var k=document.createElement("span");k.className="geSprite geSprite-delete";k.style.position="relative";k.style.cursor="pointer";k.style.top="5px";k.style.marginRight="4px";k.style.display="inline-block";
+f.appendChild(k);mxUtils.write(f,b[e]);d.appendChild(f);mxUtils.br(d);mxEvent.addListener(k,"click",function(d){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+b[d]+'"?',function(){b.splice(d,1);c()})}}(e))}}}var f=document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var b=mxSettings.getPlugins().slice();f.appendChild(d);c();var e=mxUtils.button(mxResources.get("add"),function(){var d="",e=urlParams.p;if(null!=e&&0<e.length){for(var f=
+e.split(";"),e=0;e<f.length;e++){var k=App.pluginRegistry[f[e]];null!=k&&(d+=k+";")}";"==d.charAt(d.length-1)&&(d=d.substring(0,d.length-1))}d=new FilenameDialog(a,d,mxResources.get("add"),function(a){if(null!=a&&0<a.length){f=a.split(";");for(a=0;a<f.length;a++)0<f[a].length&&0>mxUtils.indexOf(b,f[a])&&b.push(f[a]);c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(d.container,300,80,!0,!0);d.init()});e.className="geBtn";var g=mxUtils.button(mxResources.get("cancel"),
function(){a.hideDialog()});g.className="geBtn";var k=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(b);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});k.className="geBtn gePrimaryBtn";var l=document.createElement("div");l.style.marginTop="14px";l.style.textAlign="right";a.editor.cancelFirst?(l.appendChild(g),l.appendChild(e),l.appendChild(k)):(l.appendChild(e),l.appendChild(k),l.appendChild(g));f.appendChild(l);this.container=f},EditGeometryDialog=
function(a,c){var f=a.editor.graph,d=1==c.length?f.getCellGeometry(c[0]):null,b=document.createElement("div"),e=document.createElement("table"),g=document.createElement("tbody"),k=document.createElement("tr"),l=document.createElement("td"),n=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(l,mxResources.get("left")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value=null!=d?d.x:"";this.init=function(){m.focus();m.select()};n.appendChild(m);
k.appendChild(l);k.appendChild(n);g.appendChild(k);k=document.createElement("tr");l=document.createElement("td");n=document.createElement("td");mxUtils.write(l,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=d?d.y:"";n.appendChild(p);k.appendChild(l);k.appendChild(n);g.appendChild(k);k=document.createElement("tr");l=document.createElement("td");n=document.createElement("td");mxUtils.write(l,mxResources.get("width")+
-":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=d?d.width:"";n.appendChild(q);k.appendChild(l);k.appendChild(n);g.appendChild(k);k=document.createElement("tr");l=document.createElement("td");n=document.createElement("td");mxUtils.write(l,mxResources.get("height")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.width="100px";r.value=null!=d?d.height:"";n.appendChild(r);k.appendChild(l);k.appendChild(n);g.appendChild(k);
-k=document.createElement("tr");l=document.createElement("td");n=document.createElement("td");mxUtils.write(l,mxResources.get("rotation")+":");var s=document.createElement("input");s.setAttribute("type","text");s.style.width="100px";s.value=1==c.length?mxUtils.getValue(f.getCellStyle(c[0]),mxConstants.STYLE_ROTATION,0):"";n.appendChild(s);k.appendChild(l);k.appendChild(n);g.appendChild(k);e.appendChild(g);b.appendChild(e);var d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),t=
-mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();f.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var d=f.getCellGeometry(c[b]);null!=d&&(d=d.clone(),f.isCellMovable(c[b])&&(0<mxUtils.trim(m.value).length&&(d.x=Number(m.value)),0<mxUtils.trim(p.value).length&&(d.y=Number(p.value))),f.isCellResizable(c[b])&&(0<mxUtils.trim(q.value).length&&(d.width=Number(q.value)),0<mxUtils.trim(r.value).length&&(d.height=Number(r.value))),f.getModel().setGeometry(c[b],d));0<mxUtils.trim(s.value).length&&
-f.setCellStyles(mxConstants.STYLE_ROTATION,Number(s.value),[c[b]])}}finally{f.getModel().endUpdate()}});mxEvent.addListener(b,"keypress",function(a){13==a.keyCode&&t.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(d),e.appendChild(t)):(e.appendChild(t),e.appendChild(d));b.appendChild(e);this.container=b},LibraryDialog=function(a,c,f,d,b,e){function g(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=
-r;)a=a.parentNode;var b=null;if(null!=a)for(var c=r.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function k(b,c,d,e,f,l,n,q,p){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=n||null==t[b]){r.style.backgroundImage="";s.style.display="none";var y=f,z=l;if(f>a.maxImageSize||l>a.maxImageSize){var U=Math.min(1,Math.min(a.maxImageSize/Math.max(1,f)),a.maxImageSize/Math.max(1,l));f*=U;l*=U}y>z?(z=Math.round(z*u/y),y=u):(y=Math.round(y*v/z),z=v);var P=document.createElement("div");
-P.setAttribute("draggable","true");P.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";P.style.position="relative";P.style.cursor="move";mxUtils.setPrefixedStyle(P.style,"transition","transform .1s ease-in-out");if(null!=b){var O=document.createElement("img");O.setAttribute("src",D.convert(b));O.style.width=y+"px";O.style.height=z+"px";O.style.margin="10px";O.style.paddingBottom=Math.floor((v-z)/2)+"px";O.style.paddingLeft=Math.floor((u-y)/2)+"px";P.appendChild(O)}else if(null!=n){var M=a.stringToCells(a.editor.graph.decompress(n.xml));
+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.width="100px";r.value=null!=d?d.width:"";n.appendChild(r);k.appendChild(l);k.appendChild(n);g.appendChild(k);k=document.createElement("tr");l=document.createElement("td");n=document.createElement("td");mxUtils.write(l,mxResources.get("height")+":");var s=document.createElement("input");s.setAttribute("type","text");s.style.width="100px";s.value=null!=d?d.height:"";n.appendChild(s);k.appendChild(l);k.appendChild(n);g.appendChild(k);
+k=document.createElement("tr");l=document.createElement("td");n=document.createElement("td");mxUtils.write(l,mxResources.get("rotation")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=1==c.length?mxUtils.getValue(f.getCellStyle(c[0]),mxConstants.STYLE_ROTATION,0):"";n.appendChild(q);k.appendChild(l);k.appendChild(n);g.appendChild(k);e.appendChild(g);b.appendChild(e);var d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),t=
+mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();f.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var d=f.getCellGeometry(c[b]);null!=d&&(d=d.clone(),f.isCellMovable(c[b])&&(0<mxUtils.trim(m.value).length&&(d.x=Number(m.value)),0<mxUtils.trim(p.value).length&&(d.y=Number(p.value))),f.isCellResizable(c[b])&&(0<mxUtils.trim(r.value).length&&(d.width=Number(r.value)),0<mxUtils.trim(s.value).length&&(d.height=Number(s.value))),f.getModel().setGeometry(c[b],d));0<mxUtils.trim(q.value).length&&
+f.setCellStyles(mxConstants.STYLE_ROTATION,Number(q.value),[c[b]])}}finally{f.getModel().endUpdate()}});mxEvent.addListener(b,"keypress",function(a){13==a.keyCode&&t.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(d),e.appendChild(t)):(e.appendChild(t),e.appendChild(d));b.appendChild(e);this.container=b},LibraryDialog=function(a,c,f,d,b,e){function g(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=
+s;)a=a.parentNode;var b=null;if(null!=a)for(var c=s.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function k(b,c,d,e,f,l,n,p,r){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=n||null==t[b]){s.style.backgroundImage="";q.style.display="none";var y=f,A=l;if(f>a.maxImageSize||l>a.maxImageSize){var U=Math.min(1,Math.min(a.maxImageSize/Math.max(1,f)),a.maxImageSize/Math.max(1,l));f*=U;l*=U}y>A?(A=Math.round(A*u/y),y=u):(y=Math.round(y*v/A),A=v);var P=document.createElement("div");
+P.setAttribute("draggable","true");P.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";P.style.position="relative";P.style.cursor="move";mxUtils.setPrefixedStyle(P.style,"transition","transform .1s ease-in-out");if(null!=b){var N=document.createElement("img");N.setAttribute("src",D.convert(b));N.style.width=y+"px";N.style.height=A+"px";N.style.margin="10px";N.style.paddingBottom=Math.floor((v-A)/2)+"px";N.style.paddingLeft=Math.floor((u-y)/2)+"px";P.appendChild(N)}else if(null!=n){var M=a.stringToCells(a.editor.graph.decompress(n.xml));
0<M.length&&(a.sidebar.createThumb(M,u,v,P,null,!0,!1),P.firstChild.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",P.firstChild.style.cursor="")}var V=document.createElement("img");V.setAttribute("src",Editor.closeImage);V.setAttribute("border","0");V.setAttribute("title",mxResources.get("delete"));V.setAttribute("align","top");V.style.paddingTop="4px";V.style.marginLeft="-22px";V.style.cursor="pointer";mxEvent.addListener(V,"dragstart",function(a){mxEvent.consume(a)});null==b&&null!=n&&
-(V.style.position="relative");(function(a,c){mxEvent.addListener(V,"click",function(d){t[b]=null;for(var e=0;e<m.length;e++)if(null!=b&&m[e].data==c||null!=n&&m[e].xml==n.xml){m.splice(e,1);break}P.parentNode.removeChild(a);0==m.length&&(r.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",s.style.display="");mxEvent.consume(d)});mxEvent.addListener(V,"dblclick",function(a){mxEvent.consume(a)})})(P,b,n);P.appendChild(V);P.style.marginBottom="30px";var K=document.createElement("div");K.style.position=
-"absolute";K.style.boxSizing="border-box";K.style.bottom="-18px";K.style.left="10px";K.style.right="10px";K.style.backgroundColor="#ffffff";K.style.overflow="hidden";K.style.textAlign="center";var L=null;null!=b?(L={data:b,w:f,h:l,title:p},null!=q&&(L.aspect=q),t[b]=O,m.push(L)):null!=n&&(n.aspect="fixed",m.push(n),L=n);var R=function(){K.innerHTML="";K.style.cursor="pointer";K.style.whiteSpace="nowrap";K.style.textOverflow="ellipsis";mxUtils.write(K,null!=L.title&&0<L.title.length?L.title:mxResources.get("untitled"));
-K.style.color=null==L.title||0==L.title.length?"#d0d0d0":""};mxEvent.addListener(K,"keydown",function(a){13==a.keyCode&&null!=x&&(x(),x=null,mxEvent.consume(a))});R();P.appendChild(K);mxEvent.addListener(K,"mousedown",function(a){mxEvent.consume(a)});f=function(b){if(!mxClient.IS_IOS&&!mxClient.IS_QUIRKS&&!mxClient.IS_FF&&(null==document.documentMode||9<document.documentMode)){if("true"!=K.getAttribute("contentEditable")){null!=x&&(x(),x=null);if(null==L.title||0==L.title.length)K.innerHTML="";K.style.textOverflow=
-"";K.style.whiteSpace="";K.style.cursor="text";K.style.color="";K.setAttribute("contentEditable","true");K.focus();document.execCommand("selectAll",!1,null);x=function(){K.removeAttribute("contentEditable");K.style.cursor="pointer";L.title=K.innerHTML;R()}}}else{var c=new FilenameDialog(a,L.title||"",mxResources.get("ok"),function(a){null!=a&&(L.title=a,R())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init()}mxEvent.consume(b)};mxEvent.addListener(K,"click",f);mxEvent.addListener(P,
-"dblclick",f);r.appendChild(P);mxEvent.addListener(P,"dragstart",function(a){null==b&&null!=n&&(V.style.visibility="hidden",K.style.visibility="hidden");mxClient.IS_FF&&null!=n.xml&&a.dataTransfer.setData("Text",n.xml);A=g(a);mxClient.IS_GC&&(P.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(P.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(P,30);V.style.visibility="";K.style.visibility=""},0)});mxEvent.addListener(P,"dragend",function(a){"hidden"==V.style.visibility&&
-(V.style.visibility="",K.style.visibility="");A=null;mxUtils.setOpacity(P,100);mxUtils.setPrefixedStyle(P.style,"transform",null)})}else a.handleError({message:mxResources.get("fileExists")});else{f=!1;try{if(null!=b&&"\x3cmxlibrary"==b.substring(0,10)){z=mxUtils.parseXml(b);y=JSON.parse(mxUtils.getTextContent(z.documentElement));if(null!=y&&0<y.length)for(l=0;l<y.length;l++)null!=y[l].xml?k(null,null,0,0,0,0,y[l]):k(y[l].data,null,0,0,y[l].w,y[l].h,null,"fixed",y[l].title);a.spinner.stop();f=!0}}catch(Z){}f||
-(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(ea){console.log("e",ea)}return null}function l(a){a.dataTransfer.dropEffect=null!=A?"move":"copy";a.stopPropagation();a.preventDefault()}function n(b){b.stopPropagation();b.preventDefault();y=g(b);if(null!=A)null!=y&&y<r.children.length?(m.splice(y>A?y-1:y,0,m.splice(A,1)[0]),r.insertBefore(r.children[A],r.children[y])):(m.push(m.splice(A,1)[0]),r.appendChild(r.children[A]));else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,
+(V.style.position="relative");(function(a,c){mxEvent.addListener(V,"click",function(d){t[b]=null;for(var e=0;e<m.length;e++)if(null!=b&&m[e].data==c||null!=n&&m[e].xml==n.xml){m.splice(e,1);break}P.parentNode.removeChild(a);0==m.length&&(s.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",q.style.display="");mxEvent.consume(d)});mxEvent.addListener(V,"dblclick",function(a){mxEvent.consume(a)})})(P,b,n);P.appendChild(V);P.style.marginBottom="30px";var J=document.createElement("div");J.style.position=
+"absolute";J.style.boxSizing="border-box";J.style.bottom="-18px";J.style.left="10px";J.style.right="10px";J.style.backgroundColor="#ffffff";J.style.overflow="hidden";J.style.textAlign="center";var K=null;null!=b?(K={data:b,w:f,h:l,title:r},null!=p&&(K.aspect=p),t[b]=N,m.push(K)):null!=n&&(n.aspect="fixed",m.push(n),K=n);var R=function(){J.innerHTML="";J.style.cursor="pointer";J.style.whiteSpace="nowrap";J.style.textOverflow="ellipsis";mxUtils.write(J,null!=K.title&&0<K.title.length?K.title:mxResources.get("untitled"));
+J.style.color=null==K.title||0==K.title.length?"#d0d0d0":""};mxEvent.addListener(J,"keydown",function(a){13==a.keyCode&&null!=x&&(x(),x=null,mxEvent.consume(a))});R();P.appendChild(J);mxEvent.addListener(J,"mousedown",function(a){mxEvent.consume(a)});f=function(b){if(!mxClient.IS_IOS&&!mxClient.IS_QUIRKS&&!mxClient.IS_FF&&(null==document.documentMode||9<document.documentMode)){if("true"!=J.getAttribute("contentEditable")){null!=x&&(x(),x=null);if(null==K.title||0==K.title.length)J.innerHTML="";J.style.textOverflow=
+"";J.style.whiteSpace="";J.style.cursor="text";J.style.color="";J.setAttribute("contentEditable","true");J.focus();document.execCommand("selectAll",!1,null);x=function(){J.removeAttribute("contentEditable");J.style.cursor="pointer";K.title=J.innerHTML;R()}}}else{var c=new FilenameDialog(a,K.title||"",mxResources.get("ok"),function(a){null!=a&&(K.title=a,R())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init()}mxEvent.consume(b)};mxEvent.addListener(J,"click",f);mxEvent.addListener(P,
+"dblclick",f);s.appendChild(P);mxEvent.addListener(P,"dragstart",function(a){null==b&&null!=n&&(V.style.visibility="hidden",J.style.visibility="hidden");mxClient.IS_FF&&null!=n.xml&&a.dataTransfer.setData("Text",n.xml);z=g(a);mxClient.IS_GC&&(P.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(P.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(P,30);V.style.visibility="";J.style.visibility=""},0)});mxEvent.addListener(P,"dragend",function(a){"hidden"==V.style.visibility&&
+(V.style.visibility="",J.style.visibility="");z=null;mxUtils.setOpacity(P,100);mxUtils.setPrefixedStyle(P.style,"transform",null)})}else a.handleError({message:mxResources.get("fileExists")});else{f=!1;try{if(null!=b&&"\x3cmxlibrary"==b.substring(0,10)){A=mxUtils.parseXml(b);y=JSON.parse(mxUtils.getTextContent(A.documentElement));if(null!=y&&0<y.length)for(l=0;l<y.length;l++)null!=y[l].xml?k(null,null,0,0,0,0,y[l]):k(y[l].data,null,0,0,y[l].w,y[l].h,null,"fixed",y[l].title);a.spinner.stop();f=!0}}catch(Z){}f||
+(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(ea){console.log("e",ea)}return null}function l(a){a.dataTransfer.dropEffect=null!=z?"move":"copy";a.stopPropagation();a.preventDefault()}function n(b){b.stopPropagation();b.preventDefault();y=g(b);if(null!=z)null!=y&&y<s.children.length?(m.splice(y>z?y-1:y,0,m.splice(z,1)[0]),s.insertBefore(s.children[z],s.children[y])):(m.push(m.splice(z,1)[0]),s.appendChild(s.children[z]));else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,
0,0,a.maxImageSize,function(a,c,d,e,f,g,l){k(a,c,d,e,f,g,l,"fixed",mxEvent.isAltDown(b)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," "))});else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){k(c,null,0,0,a.width,a.height)})}b.stopPropagation();b.preventDefault()}var m=[];f=document.createElement("div");
-f.style.height="100%";var p=document.createElement("div");p.style.whiteSpace="nowrap";p.style.height="40px";f.appendChild(p);mxUtils.write(p,mxResources.get("filename")+":");null==c&&(c=a.defaultLibraryName+".xml");var q=document.createElement("input");q.setAttribute("value",c);q.style.marginRight="20px";q.style.marginLeft="10px";q.style.width="500px";null!=b&&!b.isRenamable()&&q.setAttribute("disabled","true");this.init=function(){if(null==b||b.isRenamable())q.focus(),mxClient.IS_FF||5<=document.documentMode||
-mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};p.appendChild(q);var r=document.createElement("div");r.style.borderWidth="1px 0px 1px 0px";r.style.borderColor="#d3d3d3";r.style.borderStyle="solid";r.style.marginTop="6px";r.style.overflow="auto";r.style.height="340px";r.style.backgroundPosition="center center";r.style.backgroundRepeat="no-repeat";0==m.length&&Graph.fileSupport&&(r.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var s=document.createElement("div");
-s.style.position="absolute";s.style.width="640px";s.style.top="260px";s.style.textAlign="center";s.style.fontSize="22px";s.style.color="#a0c3ff";mxUtils.write(s,mxResources.get("dragImagesHere"));f.appendChild(s);var t={},u=100,v=100,A=null,y=null,x=null;c=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=x&&(x(),x=null,mxEvent.consume(a))};mxEvent.addListener(r,"mousedown",c);mxEvent.addListener(r,"pointerdown",c);mxEvent.addListener(r,"touchstart",c);var D=new mxUrlConverter;
-if(null!=d)for(c=0;c<d.length;c++)p=d[c],k(p.data,null,0,0,p.w,p.h,p);mxEvent.addListener(r,"dragleave",function(a){s.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==r||b==s){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});mxEvent.addListener(r,"dragover",l);mxEvent.addListener(r,"drop",n);mxEvent.addListener(s,"dragover",l);mxEvent.addListener(s,"drop",n);f.appendChild(r);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";c=mxUtils.button(mxResources.get("cancel"),
-function(){a.hideDialog(!0)});c.setAttribute("id","btnCancel");c.className="geBtn";a.editor.cancelFirst&&d.appendChild(c);!window.chrome||!chrome.app||!chrome.app.runtime?(p=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(m),c=q.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml"):(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(c)+"\x26format\x3dxml\x26xml\x3d"+encodeURIComponent(b))).simulate(document,"_blank")}),
-p.setAttribute("id","btnDownload"),p.className="geBtn",d.appendChild(p)):q.setAttribute("disabled","disabled");var z=document.createElement("input");z.setAttribute("multiple","multiple");z.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(z,"change",function(b){a.importFiles(z.files,0,0,a.maxImageSize,function(a,b,c,d,e,f,g){k(a,b,c,d,e,f,g,"fixed");z.value=""})}),p=mxUtils.button(mxResources.get("import"),function(){null!=x&&(x(),x=null);z.click()}),p.setAttribute("id",
+f.style.height="100%";var p=document.createElement("div");p.style.whiteSpace="nowrap";p.style.height="40px";f.appendChild(p);mxUtils.write(p,mxResources.get("filename")+":");null==c&&(c=a.defaultLibraryName+".xml");var r=document.createElement("input");r.setAttribute("value",c);r.style.marginRight="20px";r.style.marginLeft="10px";r.style.width="500px";null!=b&&!b.isRenamable()&&r.setAttribute("disabled","true");this.init=function(){if(null==b||b.isRenamable())r.focus(),mxClient.IS_FF||5<=document.documentMode||
+mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};p.appendChild(r);var s=document.createElement("div");s.style.borderWidth="1px 0px 1px 0px";s.style.borderColor="#d3d3d3";s.style.borderStyle="solid";s.style.marginTop="6px";s.style.overflow="auto";s.style.height="340px";s.style.backgroundPosition="center center";s.style.backgroundRepeat="no-repeat";0==m.length&&Graph.fileSupport&&(s.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var q=document.createElement("div");
+q.style.position="absolute";q.style.width="640px";q.style.top="260px";q.style.textAlign="center";q.style.fontSize="22px";q.style.color="#a0c3ff";mxUtils.write(q,mxResources.get("dragImagesHere"));f.appendChild(q);var t={},u=100,v=100,z=null,y=null,x=null;c=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=x&&(x(),x=null,mxEvent.consume(a))};mxEvent.addListener(s,"mousedown",c);mxEvent.addListener(s,"pointerdown",c);mxEvent.addListener(s,"touchstart",c);var D=new mxUrlConverter;
+if(null!=d)for(c=0;c<d.length;c++)p=d[c],k(p.data,null,0,0,p.w,p.h,p);mxEvent.addListener(s,"dragleave",function(a){q.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==s||b==q){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});mxEvent.addListener(s,"dragover",l);mxEvent.addListener(s,"drop",n);mxEvent.addListener(q,"dragover",l);mxEvent.addListener(q,"drop",n);f.appendChild(s);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";c=mxUtils.button(mxResources.get("cancel"),
+function(){a.hideDialog(!0)});c.setAttribute("id","btnCancel");c.className="geBtn";a.editor.cancelFirst&&d.appendChild(c);!window.chrome||!chrome.app||!chrome.app.runtime?(p=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(m),c=r.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml"):(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(c)+"\x26format\x3dxml\x26xml\x3d"+encodeURIComponent(b))).simulate(document,"_blank")}),
+p.setAttribute("id","btnDownload"),p.className="geBtn",d.appendChild(p)):r.setAttribute("disabled","disabled");var A=document.createElement("input");A.setAttribute("multiple","multiple");A.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(A,"change",function(b){a.importFiles(A.files,0,0,a.maxImageSize,function(a,b,c,d,e,f,g){k(a,b,c,d,e,f,g,"fixed");A.value=""})}),p=mxUtils.button(mxResources.get("import"),function(){null!=x&&(x(),x=null);A.click()}),p.setAttribute("id",
"btnAddImage"),p.className="geBtn",d.appendChild(p));p=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=x&&(x(),x=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}k(a,null,0,0,b,c)}})});p.setAttribute("id","btnAddImageUrl");p.className="geBtn";d.appendChild(p);this.saveBtnClickHandler=function(b,c,d,e){a.saveLibrary(b,c,d,e)};p=mxUtils.button(mxResources.get("save"),
-mxUtils.bind(this,function(){null!=x&&(x(),x=null);this.saveBtnClickHandler(q.value,m,b,e)}));p.setAttribute("id","btnSave");p.className="geBtn gePrimaryBtn";d.appendChild(p);a.editor.cancelFirst||d.appendChild(c);f.appendChild(d);this.container=f},EditShapeDialog=function(a,c,f,d,b){d=null!=d?d:300;b=null!=b?b:120;var e,g,k=document.createElement("table"),l=document.createElement("tbody");k.style.cellPadding="4px";e=document.createElement("tr");g=document.createElement("td");g.setAttribute("colspan",
+mxUtils.bind(this,function(){null!=x&&(x(),x=null);this.saveBtnClickHandler(r.value,m,b,e)}));p.setAttribute("id","btnSave");p.className="geBtn gePrimaryBtn";d.appendChild(p);a.editor.cancelFirst||d.appendChild(c);f.appendChild(d);this.container=f},EditShapeDialog=function(a,c,f,d,b){d=null!=d?d:300;b=null!=b?b:120;var e,g,k=document.createElement("table"),l=document.createElement("tbody");k.style.cellPadding="4px";e=document.createElement("tr");g=document.createElement("td");g.setAttribute("colspan",
"2");g.style.fontSize="10pt";mxUtils.write(g,f);e.appendChild(g);l.appendChild(e);e=document.createElement("tr");g=document.createElement("td");var n=document.createElement("textarea");n.style.outline="none";n.style.resize="none";n.style.width=d-200+"px";n.style.height=b+"px";this.textarea=n;this.init=function(){n.focus();n.scrollTop=0};g.appendChild(n);e.appendChild(g);g=document.createElement("td");f=document.createElement("div");f.style.position="relative";f.style.border="1px solid gray";f.style.top=
-"6px";f.style.width="200px";f.style.height=b+4+"px";f.style.overflow="hidden";f.style.marginBottom="16px";mxEvent.disableContextMenu(f);g.appendChild(f);var m=new Graph(f);m.setEnabled(!1);var p=a.editor.graph.cloneCells([c])[0];m.addCells([p]);f=m.view.getState(p);var q="";null!=f.shape&&null!=f.shape.stencil&&(q=mxUtils.getPrettyXml(f.shape.stencil.desc));mxUtils.write(n,q||"");f=m.getGraphBounds();b=Math.min(160/f.width,(b-40)/f.height);m.view.scaleAndTranslate(b,20/b-f.x,20/b-f.y);e.appendChild(g);
-l.appendChild(e);e=document.createElement("tr");g=document.createElement("td");g.setAttribute("colspan","2");g.style.paddingTop="2px";g.style.whiteSpace="nowrap";g.setAttribute("align","right");b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&g.appendChild(b);a.isOffline()||(f=mxUtils.button(mxResources.get("help"),function(){window.open("https://support.draw.io/display/DO/Editing+Shapes")}),f.className="geBtn",g.appendChild(f));var r=
-function(b,c,d){var e=n.value,f=mxUtils.parseXml(e),e=mxUtils.getPrettyXml(f.documentElement),f=f.documentElement.getElementsByTagName("parsererror");if(null!=f&&0<f.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),f=!b.model.contains(c),!d||f||e!=q){e=a.editor.graph.compress(e);b.getModel().beginUpdate();try{if(f){var g=a.editor.graph.getInsertPoint();c.geometry.x=g.x;c.geometry.y=g.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,
-"stencil("+e+")",[c])}catch(k){throw k;}finally{b.getModel().endUpdate()}f&&b.setSelectionCell(c)}};f=mxUtils.button(mxResources.get("preview"),function(){r(m,p,!1)});f.className="geBtn";g.appendChild(f);f=mxUtils.button(mxResources.get("apply"),function(){r(a.editor.graph,c,!0)});f.className="geBtn gePrimaryBtn";g.appendChild(f);a.editor.cancelFirst||g.appendChild(b);e.appendChild(g);l.appendChild(e);k.appendChild(l);this.container=k},CustomDialog=function(a,c,f,d,b,e){var g=document.createElement("div");
+"6px";f.style.width="200px";f.style.height=b+4+"px";f.style.overflow="hidden";f.style.marginBottom="16px";mxEvent.disableContextMenu(f);g.appendChild(f);var m=new Graph(f);m.setEnabled(!1);var p=a.editor.graph.cloneCells([c])[0];m.addCells([p]);f=m.view.getState(p);var r="";null!=f.shape&&null!=f.shape.stencil&&(r=mxUtils.getPrettyXml(f.shape.stencil.desc));mxUtils.write(n,r||"");f=m.getGraphBounds();b=Math.min(160/f.width,(b-40)/f.height);m.view.scaleAndTranslate(b,20/b-f.x,20/b-f.y);e.appendChild(g);
+l.appendChild(e);e=document.createElement("tr");g=document.createElement("td");g.setAttribute("colspan","2");g.style.paddingTop="2px";g.style.whiteSpace="nowrap";g.setAttribute("align","right");b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&g.appendChild(b);a.isOffline()||(f=mxUtils.button(mxResources.get("help"),function(){window.open("https://support.draw.io/display/DO/Editing+Shapes")}),f.className="geBtn",g.appendChild(f));var s=
+function(b,c,d){var e=n.value,f=mxUtils.parseXml(e),e=mxUtils.getPrettyXml(f.documentElement),f=f.documentElement.getElementsByTagName("parsererror");if(null!=f&&0<f.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),f=!b.model.contains(c),!d||f||e!=r){e=a.editor.graph.compress(e);b.getModel().beginUpdate();try{if(f){var k=a.editor.graph.getInsertPoint();c.geometry.x=k.x;c.geometry.y=k.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,
+"stencil("+e+")",[c])}catch(g){throw g;}finally{b.getModel().endUpdate()}f&&b.setSelectionCell(c)}};f=mxUtils.button(mxResources.get("preview"),function(){s(m,p,!1)});f.className="geBtn";g.appendChild(f);f=mxUtils.button(mxResources.get("apply"),function(){s(a.editor.graph,c,!0)});f.className="geBtn gePrimaryBtn";g.appendChild(f);a.editor.cancelFirst||g.appendChild(b);e.appendChild(g);l.appendChild(e);k.appendChild(l);this.container=k},CustomDialog=function(a,c,f,d,b,e){var g=document.createElement("div");
g.appendChild(c);c=document.createElement("div");c.style.marginTop="16px";c.style.textAlign="center";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});k.className="geBtn";a.editor.cancelFirst&&c.appendChild(k);if(!a.isOffline()&&null!=e){var l=mxUtils.button(mxResources.get("help"),function(){window.open(e)});l.className="geBtn";c.appendChild(l)}b=mxUtils.button(b||mxResources.get("ok"),function(){a.hideDialog();null!=f&&f()});c.appendChild(b);b.className="geBtn gePrimaryBtn";
-a.editor.cancelFirst||c.appendChild(k);g.appendChild(c);this.container=g};(function(){EditorUi.VERSION="6.0.1.1";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
-null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";
-Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
-MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};
-var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
-IMAGE_PATH+"/delete.png";Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?
-d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in","blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2","offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),g=null;0==f.length?(g=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(g,a.firstChild):a.appendChild(g)):g=f[0];g.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var a=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=
-function(){a.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
-this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+
-encodeURIComponent(a.getFileData(!0))}});Editor.prototype.appName="draw.io";EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;
-d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight="10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),
-mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));
-this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,
-4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),
-a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&("\x3c"!=c.charAt(0)&&"%"!=c.charAt(0))&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};
-null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=
-c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=c.apply(this,arguments);if(null==b)try{var d=a.indexOf("\x26lt;mxfile ");if(0<=d){var e=a.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(b=a.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(a),g=this.editor.extractGraphModel(f.documentElement),
-b=null!=g?mxUtils.getXml(g):""}catch(k){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;
-b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=
-a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.setFileData=
-function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",
-[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};
-var f=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(a){a=null!=a&&"mxlibrary"!=a.nodeName?this.extractGraphModel(a):null;if(null!=a){var b=a.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],c=b.getElementsByTagName("div");null!=c&&0<c.length&&(b=c[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==a.nodeName){b=a.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==b||""==b)){if(c=null!=this.graph.themes?this.graph.themes["default-old"]:
-mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var d=new mxCodec(c.ownerDocument);d.decode(c,this.graph.getStylesheet())}}else b!=this.graph.currentStyle&&(c=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=c&&(d=new mxCodec(c.ownerDocument),d.decode(c,this.graph.getStylesheet())));this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==a.getAttribute("math");b=a.getAttribute("backgroundImage");
-null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==a.getAttribute("shadow"),!1)}f.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,
-arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return b};var b=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=
-null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;b.apply(this,arguments)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=
-38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");
-b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display=
-"none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=
-function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
-EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);
-return a};EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,
-0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));
-return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";
-f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),
-null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);
-var k=document.createElement("input");k.style.marginTop="16px";k.style.marginRight="8px";k.setAttribute("type","checkbox");e.isSelectionEmpty()&&k.setAttribute("disabled","disabled");f.appendChild(k);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var l=document.createElement("input");l.style.marginTop="16px";l.style.marginRight="8px";l.setAttribute("type","checkbox");f.appendChild(l);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(l.setAttribute("checked",
-"checked"),l.defaultChecked=!0);var m=document.createElement("input");m.style.marginTop="16px";m.style.marginRight="8px";m.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&m.setAttribute("disabled","disabled");a&&(f.appendChild(m),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight="8px";n.setAttribute("type","checkbox");n.style.marginBottom="8px";n.setAttribute("checked","checked");
-n.defaultChecked=!0;f.appendChild(n);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,!k.checked,l.checked,n.checked,m.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";
-var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),k=document.createElement("td"),l=document.createElement("input");l.setAttribute("type","text");mxUtils.write(k,"Username:");g.appendChild(k);k=k.cloneNode(!1);k.appendChild(l);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),m=document.createElement("input");m.setAttribute("type","password");mxUtils.write(k,"Password:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(m);
-g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),n=document.createElement("input");n.setAttribute("type","text");mxUtils.write(k,"Organisation:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(n);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),p=document.createElement("input");p.setAttribute("type","text");mxUtils.write(k,"Repository:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(p);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),F=
-document.createElement("input");F.setAttribute("type","text");mxUtils.write(k,"Path:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(F);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var G=a.lastIndexOf(".");0<G&&(a=a.substring(0,G));F.value=a+".png";var E=document.createElement("input");E.setAttribute("type","text");mxUtils.write(k,"Branch/Tag:");E.value="master";g=g.cloneNode(!1);g.appendChild(k);
-k=k.cloneNode(!1);k.appendChild(E);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),H=document.createElement("input");H.setAttribute("type","text");mxUtils.write(k,"Message:");H.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(H);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+n.value+"/"+
-p.value+"/contents/"+F.value+"?ref\x3d"+encodeURIComponent(E.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:F.value,message:H.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+n.value+"/"+p.value+"/blob/"+E.value+"/"+F.value;var b=
-new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(l.value+
-":"+m.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),k=f;0<g&&(k=f=k.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:k+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),l=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var m=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");m.send(mxUtils.bind(this,function(){200==m.getStatus()?k():l(m)}),mxUtils.bind(this,function(){l(m)}))}else k()}catch(n){this.handleError(n)}else l(a)}),mxUtils.bind(this,function(a){l(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,k){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var l=this.editor.graph.isSelectionEmpty();f=null!=f?f:l;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=k?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),k,b)}catch(l){this.handleError(l)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(m){this.handleError(m)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var k=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));k.send(mxUtils.bind(this,function(){200==k.getStatus()?a(c,k.getText(),e,b):this.handleError(k)}))}catch(l){this.handleError(l)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,k,l,m,n,p){f=null!=f?f:!0;p=null!=p?p:this.editor.graph;var F=l?null:p.background;F==mxConstants.NONE&&(F=null);null==F&&(F=d);null==F&&!1==l&&(F="#ffffff");this.convertImages(p.getSvg(F,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height"));k=null!=
-k?k:1;null!=b&&(k=!f?b/g:Math.min(1,Math.min(3*b/(4*l),b/g)));e.setAttribute("width",Math.ceil(k*g));e.setAttribute("height",Math.ceil(k*l));g=e.getContext("2d");g.scale(k,k);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{m&&this.editor.addSvgShadow(c),this.convertMath(p,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,n)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();
-var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var k=a.getElementsByTagName(c),l=0;l<k.length;l++)mxUtils.bind(this,
-function(c){var k=d.convert(c.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var l=f[k];null==l?(e++,this.convertImageToDataUri(k,function(d){null!=d&&(f[k]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,l)}})(k[l])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=
-document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var k=mxUtils.parseXml(a),l=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var m=l.getElementsByTagName("diagram");if(1==m.length)l=
-mxUtils.parseXml(g.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){g.model.beginUpdate();try{for(var n=0;n<m.length;n++){var p=this.updatePageRoot(new DiagramPage(m[n])),F=this.pages.length;null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[F+1]));g.model.execute(new ChangePage(this,p,p,F))}}finally{g.model.endUpdate()}}}if(null!=l&&"mxGraphModel"===l.nodeName){var G=new mxGraphModel;(new mxCodec(l.ownerDocument)).decode(l,G);var E=G.getChildCount(G.getRoot());
-g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(n=0;n<E;n++){var H=G.getChildAt(G.getRoot(),n);if(1==E&&!g.isCellLocked(g.getDefaultParent()))var I=G.getChildren(H),f=f.concat(g.importCells(I,b,c,g.getDefaultParent(),null,a));else H=g.importCells([H],0,0,g.model.getRoot(),null,a)[0],I=g.model.getChildren(H),g.moveCells(I,b,c),f=f.concat(I)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var J=g.getBoundingBoxFromGeometry(f,!0);null!=J&&g.moveCells(f,b-J.x,c-J.y)}}finally{g.model.endUpdate()}}}}catch(N){throw e||
-this.handleError(N,mxResources.get("invalidOrMissingFile")),N;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&
-(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var k=this.extractGraphModelFromPng(a),l=this.importXml(k,b,c,f,!0);if(0<l.length)return l}if("data:image/svg+xml;"==a.substring(0,19))try{if(k=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(k=a.substring(a.indexOf(",")+1),k=window.atob&&!mxClient.IS_SF?atob(k):Base64.decode(k,!0)):k=decodeURIComponent(a.substring(a.indexOf(",")+1)),l=this.importXml(k,
-b,c,f,!0),0<l.length)return l}catch(m){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),
-f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",
-[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
+a.editor.cancelFirst||c.appendChild(k);g.appendChild(c);this.container=g};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
+IMAGE_PATH+"/delete.png";Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],d=c.getElementsByTagName("div");
+null!=d&&0<d.length&&(c=d[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==b.nodeName){c=b.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==c||""==c)){if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}}else c!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+
+"/"+c+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,c.width,c.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==b.getAttribute("shadow"),
+!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var c=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",
+this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return b};var f=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;f.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,
+arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath",
+"output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):
+Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,
+e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in",
+"blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2",
+"offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),k=null;0==f.length?(k=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(k,a.firstChild):a.appendChild(k)):
+k=f[0];k.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};if(window.ColorDialog){var b=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){b.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;
+ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+encodeURIComponent(a.getFileData(!0))}});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
+this.update)};var k=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?k.apply(this,arguments):this.clear()};var l=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=l.apply(this,arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},
+{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var n=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));n.apply(this,arguments)};var m=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=
+function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+
+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return m.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),k=0;k<f.length;k++)e=mxUtils.removeStylename(e,f[k]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,
+a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&
+(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var k=0;k<a.length;k++)0<k&&0==mxUtils.mod(k,4)&&mxUtils.br(e),
+c(a[k])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace="normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",
+null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var k=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",
+stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
+a.appendChild(g);mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,k.length);b(k[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
+a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,k.length);b(k[this.editorUi.currentScheme])}));c(g);c(l);b(k[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),
+c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),b.setAttribute("title",mxResources.get("editShape")),
+b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName=
+"default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.edgeMode="move"!=urlParams.edge;var p=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}p.apply(this,arguments);var b=null;mxEvent.addListener(this.container,
+"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&
+"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var r=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=
+function(){r.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,
+c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=
+[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=
+[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=
+[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=
+[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=
+[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=
+[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var s=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,k,g,l,n){if(null!=c&&null==mxMarker.markers[c]){var m=this.getPackageForType(c);null!=m&&mxStencilRegistry.getStencil(m)}return s.apply(this,arguments)}})();(function(){EditorUi.VERSION="6.0.1.2";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
+EditorUi.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
+EditorUi.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";EditorUi.prototype.mode=null;(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();
+EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};
+EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
+EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=
+new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight=
+"10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,
+b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<
+16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);
+break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&("\x3c"!=c.charAt(0)&&"%"!=c.charAt(0))&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&
+(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=
+function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("\x26lt;mxfile ");if(0<=d){var e=b.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(c=b.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,
+'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),g=this.editor.extractGraphModel(f.documentElement),c=null!=g?mxUtils.getXml(g):""}catch(s){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
+null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));
+b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,
+c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,f,g,q,t){b=null!=b?b:this.editor.graph;e=null!=e?e:!1;t=null!=t?t:!0;var u=null,v=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?u="_blank":v=u=d;if(null==a)return"";var z=a;if("mxfile"!=z.nodeName.toLowerCase()){var y=b.zapGremlins(mxUtils.getXml(a)),z=b.compress(y);if(b.decompress(z)!=y)return y;y=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(y,z);z=a.ownerDocument.createElement("mxfile");
+z.appendChild(y)}z.setAttribute("userAgent",navigator.userAgent);z.setAttribute("version",EditorUi.VERSION);z.setAttribute("editor","www.draw.io");a=null!=c?c.getMode():this.mode;null!=a&&z.setAttribute("type",a);a=mxUtils.getXml(z);if(!f&&!e&&(g||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(z),b,null!=c?c.getTitle():null,u,v);else if(f||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle())){if(null!=c&&(c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER))d=null;a=this.getEmbeddedSvg(a,
+b,d,null,q,t,v)}return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var e=0;e<this.pages.length;e++){var f=this.pages[e].mapping;this.currentPage!=this.pages[e]&&(null!=
+f&&f.needsUpdate)&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel),f.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[e].node,d),f.needsUpdate=!1);c.appendChild(this.pages[e].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,f,g){e=null!=e?e:!0;g=null!=g?g:this.getXmlFileData(e,null!=f?f:!1);f=this.editor.graph;var q=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=
+this.pages[0]&&(b||!a&&null!=q&&/(\.svg)$/i.test(q.getTitle()))){f=this.createTemporaryGraph(f.getStylesheet());var t=f.getGlobalVariable,u=this.pages[0];f.getGlobalVariable=function(a){return"page"==a?u.getName():"pagenumber"==a?1:t.apply(this,arguments)};document.body.appendChild(f.container);f.model.setRoot(u.root)}a=this.createFileData(g,f,q,window.location.href,a,b,c,d,e);f!=this.editor.graph&&f.container.parentNode.removeChild(f.container);return a};EditorUi.prototype.getHtml=function(a,b,c,
+d,e,f){f=null!=f?f:!0;var g=null,q="https://www.draw.io/js/embed-static.min.js";if(null!=b){var g=f?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),t=b.view.scale;f=Math.floor(g.x/t-b.view.translate.x);t=Math.floor(g.y/t-b.view.translate.y);g=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(q="https://www.draw.io/embed.js?s\x3d"+b));a.setAttribute("x0",f);a.setAttribute("y0",t)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),
+a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':
+"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+"\x3c/head\x3e\n\x3cbody"+(null==e&&null!=g&&g!=mxConstants.NONE?' style\x3d"background-color:'+g+';"\x3e':"\x3e")+'\n\x3cdiv class\x3d"mxgraph" style\x3d"position:relative;overflow:auto;width:100%;"\x3e\n\x3cdiv style\x3d"width:1px;height:1px;overflow:hidden;"\x3e'+
+d+"\x3c/div\x3e\n\x3c/div\x3e\n"+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+q+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){d="https://www.draw.io/js/viewer.min.js";var f="";null!=b&&null==e&&(f=this.getBasenames().join(";"),
+0<f.length&&(d="https://www.draw.io/embed2.js?s\x3d"+f));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+
+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+'\x3cmeta charset\x3d"utf-8"/\x3e\n\x3c/head\x3e\n\x3cbody\x3e\n\x3cdiv class\x3d"mxgraph" style\x3d"max-width:100%;border:1px solid transparent;" data-mxgraph\x3d"'+mxUtils.htmlEntities(JSON.stringify(a))+
+'"\x3e\x3c/div\x3e\n'+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+d+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?
+mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.downloadFile=function(a,b,c,d,e){try{var f=this.getCurrentFile();d=null!=d?d:this.editor.graph.isSelectionEmpty();
+var g=null!=f&&null!=f.getTitle()?f.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(g)||/(\.html)$/i.test(g)||/(\.svg)$/i.test(g))g=g.substring(0,g.lastIndexOf("."));var q=g+"."+a;if("xml"==a){var t='\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(q,a,t,"text/xml")}else if("html"==a)t=this.getHtml2(this.getFileData(!0),this.editor.graph,g),this.saveData(q,a,t,"text/html");else if(("svg"==
+a||"xmlsvg"==a)&&this.spinner.spin(document.body,mxResources.get("export"))){var u=null,v=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(q,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(u)}))});if("svg"==a){var z=this.editor.graph.background;z==mxConstants.NONE&&(z=null);var y=this.editor.graph.getSvg(z,null,null,!1,null,d);c&&this.editor.addSvgShadow(y);this.convertImages(y,
+mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();v('\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a))})))}else q=g+".svg",u=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();v(a)}),d)}else{var x=this.editor.graph.getGraphBounds(),t=this.getFileData(!0,null,null,null,d,"xmlpng"!=a),D="";if(x.width*x.height<=MAX_AREA&&t.length<=
+MAX_REQUEST_SIZE){var A="0";if("xmlpng"==a&&(A="1",a="png",q=g+"."+a,null!=this.pages&&null!=this.currentPage))for(b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){D="\x26from\x3d"+b;break}this.saveRequest(t,q,a,function(b,c){return new mxXmlRequest(EXPORT_URL,"format\x3d"+a+D+"\x26base64\x3d"+c+"\x26embedXml\x3d"+A+"\x26xml\x3d"+encodeURIComponent(t)+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):""))})}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}}catch(B){this.handleError(B)}};
+EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display=
+"none";this.sidebarFooterContainer.style.display="none";this.editor.graph.setEnabled(!1);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{if(this.setCurrentFile(a),a.addListener("descriptorChanged",
+this.descriptorChangedListener),a.addListener("contentChanged",this.descriptorChangedListener),this.setMode(a.getMode()),this.descriptorChanged(),a.open(),this.diagramContainer.style.visibility="",this.formatContainer.style.visibility="",this.hsplit.style.display="",this.sidebarContainer.style.display="",this.sidebarFooterContainer.style.display="",this.editor.undoManager.clear(),this.updateUi(),null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus(mxResources.get("readOnly"))),
+this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries()),this.chromelessResize&&this.chromelessResize(),this.editor.fireEvent(new mxEventObject("fileLoaded")),this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE)try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(d){}}catch(e){null!=window.console&&console.log("error in fileLoaded:",a,e),this.handleError(e,mxResources.get("errorLoadingFile"),
+mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?this.fileLoaded(b):c()}))}else c()};EditorUi.prototype.toggleScratchpad=function(){if(isLocalStorage||mxClient.IS_CHROMEAPP)null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad)};
+EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];
+if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName)b=JSON.parse(mxUtils.getTextContent(b.documentElement)),this.libraryLoaded(a,
+b);else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.libraryLoaded=function(a,b){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var d=null,e=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==d&&(d=document.createElement("div"),mxUtils.setPrefixedStyle(d.style,"borderRadius",
+"6px"),d.style.border="3px dotted lightGray",d.style.textAlign="center",d.style.padding="8px",d.style.color="#B3B3B3",mxUtils.write(d,mxResources.get("dragElementsHere"))),c.appendChild(d);else for(var e=0;e<b.length;e++){var f=b[e],g=f.data;if(null!=g){var g=this.convertDataUri(g),l="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;",l="fixed"==f.aspect?l+"aspect\x3dfixed;":l+"imageAspect\x3d0;";c.appendChild(this.sidebar.createVertexTemplate(l+"image\x3d"+g,f.w,f.h,"",f.title||
+"",!1,!1,!1))}else null!=f.xml&&(g=this.stringToCells(this.editor.graph.decompress(f.xml)),0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,f.w,f.h,f.title||"",!0,!1,!1)))}}),f=this.sidebar.addPalette(a.getHash(),a.getTitle(),!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var c=f.parentNode.previousSibling,g=c.getAttribute("title");null!=g&&(0<g.length&&".scratchpad"!=a.title)&&c.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+g);var q=document.createElement("div");
+q.style.position="absolute";q.style.right="0px";q.style.top="5px";c.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Dialog.prototype.closeImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("align","top");t.setAttribute("border","0");t.style.cursor="pointer";t.style.marginRight="8px";t.style.marginTop="3px";q.appendChild(t);var u=null;mxEvent.addListener(t,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,
+function(){this.closeLibrary(a)});null!=u?this.confirm(mxResources.get("allChangesLost"),c):c();mxEvent.consume(b)}}));mxEvent.addListener(f,"mousemove",mxUtils.bind(this,function(a){mxEvent.getSource(a)==f?f.setAttribute("title",mxResources.get("libraryTooltip")):f.removeAttribute("title")}));if(a.isEditable()){var v=this.editor.graph,z=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),f,b,a,a.getMode());mxEvent.consume(c)}),y=mxUtils.bind(this,function(c){a.constructor!=LocalLibrary||
+a.isAutosave()?(null!=A&&null!=A.parentNode&&A.parentNode.removeChild(A),A=t.cloneNode(!1),A.setAttribute("src",EditorUi.spinImage),A.setAttribute("title",mxResources.get("saving")),A.style.cursor="default",A.style.marginRight="6px",A.style.marginTop="2px",q.insertBefore(A,q.firstChild),this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=A&&null!=A.parentNode&&A.parentNode.removeChild(A)})):null==u&&(u=t.cloneNode(!1),u.setAttribute("src",IMAGE_PATH+"/download.png"),u.setAttribute("title",
+mxResources.get("save")),q.insertBefore(u,q.firstChild),mxEvent.addListener(u,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0);u.parentNode.removeChild(u);u=null;mxEvent.consume(c)})))}),x=mxUtils.bind(this,function(a,c,e,g){a=v.cloneCells(v.model.getTopmostCells(a));for(var k=0;k<a.length;k++){var n=v.getCellGeometry(a[k]);null!=n&&n.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,g||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
+w:c.width,h:c.height};null!=g&&(a.title=g);b.push(a);y(e);null!=d&&(null!=d.parentNode&&0<b.length)&&(d.parentNode.removeChild(d),d=null)}),D=mxUtils.bind(this,function(a){if(v.isSelectionEmpty())v.getRubberband().isActive()?(v.getRubberband().execute(a),v.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=v.getSelectionCells(),c=v.view.getBounds(b),d=v.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=v.view.translate.x;
+c.y-=v.view.translate.y;x(b,c)}mxEvent.consume(a)});f.style.border="3px solid transparent";mxEvent.addGestureListeners(f,function(){},mxUtils.bind(this,function(a){v.isMouseDown&&(null!=v.panningManager&&null!=v.graphHandler.shape)&&(v.graphHandler.shape.node.style.visibility="hidden",null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)",f.style.cursor="copy",v.panningManager.stop(),v.autoScroll=!1,null!=v.graphHandler.guide&&v.graphHandler.guide.setVisible(!1),
+null!=v.graphHandler.hint&&(v.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){v.isMouseDown&&(null!=v.panningManager&&null!=v.graphHandler)&&(f.style.border="3px solid transparent",null!=d&&(d.style.border="3px dotted lightGray"),f.style.cursor="default",this.sidebar.showTooltips=!0,v.panningManager.stop(),v.graphHandler.reset(),v.isMouseDown=!1,v.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){v.isMouseDown&&
+null!=v.graphHandler.shape&&(v.graphHandler.shape.node.style.visibility="visible",f.style.border="3px solid transparent",f.style.cursor="",v.autoScroll=!0,null!=v.graphHandler.guide&&v.graphHandler.guide.setVisible(!0),null!=v.graphHandler.hint&&(v.graphHandler.hint.style.visibility="visible"),null!=d&&(d.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(f,"dragover",mxUtils.bind(this,function(a){null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)";
+a.dataTransfer.dropEffect="copy";f.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"drop",mxUtils.bind(this,function(a){f.style.border="3px solid transparent";f.style.cursor="";null!=d&&(d.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,g,k,n,t,u,q){if(null!=c&&"image/"==g.substring(0,6)){var v="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+
+this.convertDataUri(c),v=[new mxCell("",new mxGeometry(0,0,t,u),v)];v[0].vertex=!0;x(v,new mxRectangle(0,0,t,u),a,mxEvent.isAltDown(a)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," "))}else{q=!1;if(null!=c&&"text/xml"==g)if(c=mxUtils.parseXml(c),"mxlibrary"==c.documentElement.nodeName)try{var s=JSON.parse(mxUtils.getTextContent(c.documentElement));e(s,f);b=b.concat(s);y(a);this.spinner.stop();q=!0}catch(z){}else if("mxfile"==c.documentElement.nodeName)try{s=mxUtils.getTextContent(c.documentElement.getElementsByTagName("diagram")[0]),
+v=this.stringToCells(this.editor.graph.decompress(s)),x(v,new mxRectangle(0,0,t,u),a),q=!0}catch(A){}q||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}))}null!=d&&(null!=d.parentNode&&0<b.length)&&(d.parentNode.removeChild(d),d=null)}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){null!=d?d.style.border="3px dotted lightGray":(f.style.border="3px solid transparent",f.style.cursor="");a.stopPropagation();a.preventDefault()}));
+t=t.cloneNode(!1);t.setAttribute("src",IMAGE_PATH+"/edit.gif");t.setAttribute("title",mxResources.get("edit"));q.insertBefore(t,q.firstChild);mxEvent.addListener(t,"click",z);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&z(a)});t=t.cloneNode(!1);t.setAttribute("src",EditorUi.plusImage);t.setAttribute("title",mxResources.get("add"));q.insertBefore(t,q.firstChild);this.isOffline()||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText=
+"color:gray;text-decoration:none;margin-right:8px;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(a){window.open("https://support.draw.io/questions/10420280");mxEvent.consume(a)})),q.insertBefore(g,q.firstChild));var A=null;mxEvent.addListener(t,"click",D)}c.appendChild(q)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
+Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?
+5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,
+function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});
+var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow=
+"hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=this.spinner.pause(),e=null!=a&&null!=a.error?a.error:a;if(null!=e||
+null!=b){a=mxResources.get("unknownError");var f=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=e)if("undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxResources.get("forbidden");else if(404==e.code||404==e.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxResources.get("fileNotFoundOrDenied");
+var q=window.location.hash;null!=q&&"#G"==q.substring(0,2)&&(q=q.substring(2),a+=' \x3ca href\x3d"https://drive.google.com/open?id\x3d'+q+'" target\x3d"_blank"\x3e'+mxResources.get("tryOpeningViaThisPage")+"\x3c/a\x3e")}else e.code==App.ERROR_TIMEOUT?(a=mxResources.get("timeout"),null!=e.retry&&(f=mxResources.get("cancel"),g=function(){d();e.retry()})):e.code==App.ERROR_BUSY?a=mxResources.get("busy"):null!=e.message?a=e.message:null!=e.response&&null!=e.response.error&&(a=e.response.error);this.showError(b,
+a,f,c,g)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c){var d=null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},
+function(){d();null!=c&&c()})).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=
+function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,
+d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));
+mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");
+f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);var q=document.createElement("input");q.style.marginTop="16px";q.style.marginRight="8px";q.setAttribute("type","checkbox");e.isSelectionEmpty()&&q.setAttribute("disabled",
+"disabled");f.appendChild(q);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.setAttribute("type","checkbox");f.appendChild(t);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(t.setAttribute("checked","checked"),t.defaultChecked=!0);var u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");(this.isOffline()||
+!this.canvasSupported)&&u.setAttribute("disabled","disabled");a&&(f.appendChild(u),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");v.style.marginBottom="8px";v.setAttribute("checked","checked");v.defaultChecked=!0;f.appendChild(v);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,
+!q.checked,t.checked,v.checked,u.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),t=document.createElement("input");t.setAttribute("type",
+"text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(t);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=
+q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),y=document.createElement("input");y.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(y);g.appendChild(q);f.appendChild(g);
+q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var x=a.lastIndexOf(".");0<x&&(a=a.substring(0,x));y.value=a+".png";var D=document.createElement("input");D.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");D.value="master";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(D);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),A=document.createElement("input");A.setAttribute("type","text");mxUtils.write(q,"Message:");
+A.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(A);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+v.value+"/"+z.value+"/contents/"+y.value+"?ref\x3d"+encodeURIComponent(D.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());
+var e={path:y.value,message:A.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+v.value+"/"+z.value+"/blob/"+D.value+"/"+y.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,
+function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(t.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();
+this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,
+function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),t=f;0<g&&(t=f=t.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:t+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});
+g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,
+a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=
+new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,
+mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(m){this.handleError(m)}}),
+null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,
+"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),e,b):this.handleError(q)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+
+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",
+encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};
+EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,t,u,v,z){f=null!=f?f:!0;z=null!=z?z:this.editor.graph;var y=t?null:z.background;y==mxConstants.NONE&&(y=null);null==y&&(y=d);null==y&&!1==t&&(y="#ffffff");this.convertImages(z.getSvg(y,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),n=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?
+b/g:Math.min(1,Math.min(3*b/(4*n),b/g)));e.setAttribute("width",Math.ceil(q*g));e.setAttribute("height",Math.ceil(q*n));g=e.getContext("2d");g.scale(q,q);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(z,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,v)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=
+function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));
+if(null!=n&&"data:"!=n.substring(0,5)){var t=f[n];null==t?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,t)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),
+d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),t=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var u=t.getElementsByTagName("diagram");if(1==u.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;
+else if(1<u.length){g.model.beginUpdate();try{for(var v=0;v<u.length;v++){var z=this.updatePageRoot(new DiagramPage(u[v])),y=this.pages.length;null==z.getName()&&z.setName(mxResources.get("pageWithNumber",[y+1]));g.model.execute(new ChangePage(this,z,z,y))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var x=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,x);var D=x.getChildCount(x.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};
+for(v=0;v<D;v++){var A=x.getChildAt(x.getRoot(),v);if(1==D&&!g.isCellLocked(g.getDefaultParent()))var B=x.getChildren(A),f=f.concat(g.importCells(B,b,c,g.getDefaultParent(),null,a));else A=g.importCells([A],0,0,g.model.getRoot(),null,a)[0],B=g.model.getChildren(A),g.moveCells(B,b,c),f=f.concat(B)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var E=g.getBoundingBoxFromGeometry(f,!0);null!=E&&g.moveCells(f,b-E.x,c-E.y)}}finally{g.model.endUpdate()}}}}catch(G){throw e||this.handleError(G,mxResources.get("invalidOrMissingFile")),
+G;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=
+this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),t=this.importXml(q,b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+1)),t=this.importXml(q,b,c,f,!0),0<t.length)return t}catch(u){}this.loadImage(a,mxUtils.bind(this,
+function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));
+if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
g.setLinkForCell(e,e.value),e.geometry.width+=g.gridSize,e.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
-function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,k,l,m){m=null!=m?m:!0;var n=!1,p=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(p=this.importXml(b,c,d,m),g=!0)),g||(p=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),m&&
-p.isGridEnabled()&&(c=p.snap(c),d=p.snap(d)),p=[p.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(n=!0,this.parseFile(null!=l?l:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,m));null!=
-k&&k(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(l):p=this.insertTextAt(this.validateFileData(a),c,d,!0);!n&&null!=k&&k(p);return p};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,t,u){u=null!=u?u:!0;var v=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),u&&
+z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(v=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,u));null!=
+q&&q(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(t):z=this.insertTextAt(this.validateFileData(a),c,d,!0);!v&&null!=q&&q(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
-6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,k,l,m,n){var p=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;m=null!=m?m:this.maxImageBytes;l=null!=l?l:!0;var F=this.editor.graph,G=F.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
-this.importFile(a,b,c,d,e,f,g,k,l,p)});f=null!=f?f:mxUtils.bind(this,function(a){F.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var E=a.length,H=E,I=[],J=mxUtils.bind(this,function(a,b){I[a]=b;if(0==--H){this.spinner.stop();if(null!=k)k(I);else{var c=[];F.getModel().beginUpdate();try{for(var d=0;d<I.length;d++){var e=I[d]();null!=e&&(c=c.concat(e))}}finally{F.getModel().endUpdate()}}f(c)}}),N=0;N<E;N++)mxUtils.bind(this,function(f){var k=a[f],p=new FileReader;
-p.onload=mxUtils.bind(this,function(a){if(null==g||g(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var p=a.target.result,v=p.indexOf(","),q=atob(p.substring(v+1)),y=mxUtils.parseXml(q),q=y.getElementsByTagName("svg");if(0<q.length){var B=q[0].getAttribute("content");null!=B&&("\x3c"!=B.charAt(0)&&"%"!=B.charAt(0))&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null!=B&&("\x3cmxfile "===B.substring(0,8)||"\x3cmxGraphModel "===
-B.substring(0,14))?J(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*G,c+f*G,0,0,k.name)})):J(f,mxUtils.bind(this,function(){try{if(p.substring(0,v+1),null!=y){var a=y.getElementsByTagName("svg");if(0<a.length){var g=a[0],l=parseFloat(g.getAttribute("width")),m=parseFloat(g.getAttribute("height")),n=g.getAttribute("viewBox");if(null==n||0==n.length)g.setAttribute("viewBox","0 0 "+l+" "+m);else if(isNaN(l)||isNaN(m)){var q=n.split(" ");3<q.length&&(l=parseFloat(q[2]),m=parseFloat(q[3]))}p=
-this.createSvgDataUri(mxUtils.getXml(a[0]));var A=Math.min(1,Math.min(d/Math.max(1,l)),d/Math.max(1,m));return e(p,k.type,b+f*G,c+f*G,Math.max(1,Math.round(l*A)),Math.max(1,Math.round(m*A)),k.name)}}}catch(x){}return null}))}}else{q=!1;if("image/png"==k.type){var E=this.extractGraphModelFromPng(a.target.result);if(null!=E&&0<E.length){var F=new Image;F.src=a.target.result;J(f,mxUtils.bind(this,function(){return e(E,"text/xml",b+f*G,c+f*G,F.width,F.height,k.name)}));q=!0}}q||(null!=window.chrome&&
-null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,n,p){J(f,mxUtils.bind(this,function(){if(null!=g&&g.length<m){var v=!l||!this.isResampleImage(a.target.result)?
-1:Math.min(1,Math.min(d/n,d/p));return e(g,k.type,b+f*G,c+f*G,Math.round(n*v),Math.round(p*v),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),l,d,n)})))}else e(a.target.result,k.type,b+f*G,c+f*G,240,160,k.name,function(a){J(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(k.name)?e(null,k.type,b+f*G,c+f*G,240,160,k.name,function(a){J(f,function(){return a})},k):"image"==k.type.substring(0,5)?p.readAsDataURL(k):p.readAsText(k)})(N)};EditorUi.prototype.parseFile=
-function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var l=Math.max(g/e,k/e);if(1<l){var m=
-Math.round(g/l),n=Math.round(k/l),p=document.createElement("canvas");p.width=m;p.height=n;p.getContext("2d").drawImage(a,0,0,m,n);var F=p.toDataURL();if(F.length<b.length){var G=document.createElement("canvas");G.width=m;G.height=n;var E=G.toDataURL();F!==E&&(b=F,g=m,k=n)}}}catch(H){}c(b,g,k)};(function(){EditorUi.prototype.crcTable=[];for(var a=0;256>a;a++)for(var b=a,c=0;8>c;c++)b=1==(b&1)?3988292384^b>>>1:b>>>1,EditorUi.prototype.crcTable[a]=b;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=
-0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a}})();EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=k;k+=b;return a.substring(c,k)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=
-e&&e();else{f(a,17);e=a.substring(0,k);do{var l=g(a);if("IDAT"==f(a,4)){e=a.substring(0,k-8);l=4294967295;l=this.updateCRC(l,b,0,4);l=this.updateCRC(l,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((l^4294967295)>>24&255,(l^4294967295)>>16&255,(l^4294967295)>>
-8&255,(l^4294967295)&255);e+=a.substring(k-8,a.length);break}e+=a.substring(k-8,k-4+l);d=f(a,l);f(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,
-e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var e=EditorUi.prototype.init;
-EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
-b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,t,u,v){var z=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;t=null!=t?t:!0;var y=this.editor.graph,x=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,z)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var D=a.length,A=D,B=[],E=mxUtils.bind(this,function(a,b){B[a]=b;if(0==--A){this.spinner.stop();if(null!=q)q(B);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<B.length;d++){var e=B[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<D;G++)mxUtils.bind(this,function(f){var q=a[f],r=new FileReader;
+r.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,r=k.indexOf(","),z=atob(k.substring(r+1)),y=mxUtils.parseXml(z),z=y.getElementsByTagName("svg");if(0<z.length){var A=z[0].getAttribute("content");null!=A&&("\x3c"!=A.charAt(0)&&"%"!=A.charAt(0))&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null!=A&&("\x3cmxfile "===A.substring(0,8)||"\x3cmxGraphModel "===
+A.substring(0,14))?E(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*x,c+f*x,0,0,q.name)})):E(f,mxUtils.bind(this,function(){try{if(k.substring(0,r+1),null!=y){var a=y.getElementsByTagName("svg");if(0<a.length){var g=a[0],t=parseFloat(g.getAttribute("width")),u=parseFloat(g.getAttribute("height")),v=g.getAttribute("viewBox");if(null==v||0==v.length)g.setAttribute("viewBox","0 0 "+t+" "+u);else if(isNaN(t)||isNaN(u)){var s=v.split(" ");3<s.length&&(t=parseFloat(s[2]),u=parseFloat(s[3]))}k=
+this.createSvgDataUri(mxUtils.getXml(a[0]));var z=Math.min(1,Math.min(d/Math.max(1,t)),d/Math.max(1,u));return e(k,q.type,b+f*x,c+f*x,Math.max(1,Math.round(t*z)),Math.max(1,Math.round(u*z)),q.name)}}}catch(A){}return null}))}}else{z=!1;if("image/png"==q.type){var D=this.extractGraphModelFromPng(a.target.result);if(null!=D&&0<D.length){var B=new Image;B.src=a.target.result;E(f,mxUtils.bind(this,function(){return e(D,"text/xml",b+f*x,c+f*x,B.width,B.height,q.name)}));z=!0}}z||(null!=window.chrome&&
+null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,v){E(f,mxUtils.bind(this,function(){if(null!=g&&g.length<u){var r=!t||!this.isResampleImage(a.target.result)?
+1:Math.min(1,Math.min(d/k,d/v));return e(g,q.type,b+f*x,c+f*x,Math.round(k*r),Math.round(v*r),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),t,d,v)})))}else e(a.target.result,q.type,b+f*x,c+f*x,240,160,q.name,function(a){E(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*x,c+f*x,240,160,q.name,function(a){E(f,function(){return a})},q):"image"==q.type.substring(0,5)?r.readAsDataURL(q):r.readAsText(q)})(G)};EditorUi.prototype.parseFile=
+function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var t=Math.max(g/e,q/e);if(1<t){var u=
+Math.round(g/t),v=Math.round(q/t),z=document.createElement("canvas");z.width=u;z.height=v;z.getContext("2d").drawImage(a,0,0,u,v);var y=z.toDataURL();if(y.length<b.length){var x=document.createElement("canvas");x.width=u;x.height=v;var D=x.toDataURL();y!==D&&(b=y,g=u,q=v)}}}catch(A){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var f=c,d=0;8>d;d++)f=1==(f&1)?3988292384^f>>>1:f>>>1,EditorUi.prototype.crcTable[c]=f;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=
+EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,
+17);e=a.substring(0,q);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>16&255,(t^4294967295)>>8&255,(t^
+4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&
+(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var b=EditorUi.prototype.init;
+EditorUi.prototype.init=function(){b.apply(this,arguments);var a=this.editor.graph,c=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var d=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=c.currentPage?c.currentPage.getName():"pagenumber"==a?null!=c.currentPage&&null!=c.pages?mxUtils.indexOf(c.pages,c.currentPage)+1:1:d.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
+c.defaultFilename,b=c.getCurrentFile();null!=b&&(a=null!=b.getTitle()?b.getTitle():a);return a};var e=this.actions.get("print");e.setEnabled(!mxClient.IS_IOS||!navigator.standalone);e.visible=e.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,
!0,"insertEllipse",!0);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a)&&!b.isEditing())try{for(var c=a.clipboardData||a.originalEvent.clipboardData,b=!1,d=0;d<c.types.length;d++)if("text/"===c.types[d].substring(0,5)){b=!0;break}if(!b){var e=c.items;for(index in e){var f=e[index];if("file"===f.kind){var g=this.editor.graph.getInsertPoint();this.importFiles([f.getAsFile()],g.x,g.y,this.maxImageSize);mxEvent.consume(a);
break}}}}catch(k){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);
-if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var k=
+if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var s=
function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&(null==this.dialog&&null!=a.container)&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),
-k())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),k())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var l=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:l.apply(this,arguments)}}d=Math.max(document.body.clientHeight||
-0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||
+s())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),s())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}e=Math.max(document.body.clientHeight||
+0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,e,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||
10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",
-!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");null!=d&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width=
-"98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),d.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);
-this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var m=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:m.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var n=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=n&&(n.parentNode.removeChild(n),n=null),b.stopPropagation(),
-b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==n&&(!mxClient.IS_IE||10<document.documentMode))n=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=n&&(n.parentNode.removeChild(n),n=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
-e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
-b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,l=e.getElementsByTagName("img");null!=l&&1==l.length?(c=l[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
-b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+k+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
+!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){e=document.getElementById("geFooter");null!=e&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width=
+"98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),e.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);
+this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}e=document.getElementById("geInfo");null!=e&&e.parentNode.removeChild(e);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),
+b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
+e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
+b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,n=e.getElementsByTagName("img");null!=n&&1==n.length?(c=n[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
+b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",
-!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var k=b.getElementsByTagName("span"),l=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(d);this.isCompatibleString(l)&&(e=!0,d=l)}catch(m){}c.lastPasteXml==d?c.pasteCounter++:
-(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(n){}}}};
-var g=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=Format.prototype.init;Format.prototype.init=function(){b.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var c=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?c.apply(this,arguments):this.clear()};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=d.apply(this,
-arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var e=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=
-function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));e.apply(this,arguments)};var f=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom=
-"2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return f.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=
-mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),g=0;g<f.length;g++)e=mxUtils.removeStylename(e,f[g]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,
-"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+
-a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(e),c(a[g])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace=
-"normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",
-stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},
-{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
-a.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,g.length);b(g[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
-a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,g.length);b(g[this.editorUi.currentScheme])}));c(k);c(l);b(g[this.editorUi.currentScheme]);return a};return g.apply(this,arguments)};null!=window.StyleFormatPanel&&(StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),
-mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
-b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft=
-"2px"),a.appendChild(b));return a});EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],
-"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?
-c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&
-this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=
-function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=
-Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var q=b.getElementsByTagName("span"),t=null!=q&&0<q.length?mxUtils.trim(decodeURIComponent(q[0].textContent)):decodeURIComponent(d);this.isCompatibleString(t)&&(e=!0,d=t)}catch(u){}c.lastPasteXml==d?c.pasteCounter++:
+(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(v){}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
@@ -7413,51 +7541,41 @@ var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell
this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=!1,c=mxUtils.bind(this,function(a,b){null!=urlParams.modified&&("0"==urlParams.modified?this.editor.setStatus(""):
this.editor.setStatus(mxResources.get(urlParams.modified)))});this.editor.graph.model.addListener(mxEvent.CHANGE,c);mxEvent.addListener(window,"message",mxUtils.bind(this,function(c){var e=c.data;if("json"==urlParams.proto){e=JSON.parse(e);if("dialog"==e.action){this.showError(null!=e.titleKey?mxResources.get(e.titleKey):e.title,null!=e.messageKey?mxResources.get(e.messageKey):e.message,null!=e.buttonKey?mxResources.get(e.buttonKey):e.button);null!=e.modified&&(this.editor.modified=e.modified);return}if("template"==
e.action){this.spinner.stop();var f=new NewDialog(this,!1,!1,mxUtils.bind(this,function(b){a(b||"",c,null!=b)}));this.showDialog(f.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));f.init();return}if("status"==e.action){null!=e.messageKey?this.editor.setStatus(mxResources.get(e.messageKey)):null!=e.message&&this.editor.setStatus(e.message);null!=e.modified&&(this.editor.modified=e.modified);return}if("spinner"==e.action){var g=null!=e.messageKey?mxResources.get(e.messageKey):
-e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var k=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(k);b.data="data:image/png;base64,"+
-a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var m=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var m=this.createTemporaryGraph(m.getStylesheet()),n=m.getGlobalVariable,p=this.pages[0];m.getGlobalVariable=function(a){return"page"==a?p.getName():"pagenumber"==a?1:n.apply(this,arguments)};document.body.appendChild(m.container);m.model.setRoot(p.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
-"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(k))));m!=this.editor.graph&&m.container.parentNode.removeChild(m.container);l(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,m)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(k)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();200==a.getStatus()&&l(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)k=this.editor.getGraphXml(),g.data=this.getHtml(k,
-this.editor.graph),g.xml=mxUtils.getXml(k),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var n=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var u=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(n);b.data="data:image/png;base64,"+
+a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var v=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var v=this.createTemporaryGraph(v.getStylesheet()),z=v.getGlobalVariable,y=this.pages[0];v.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?1:z.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(y.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
+"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(n))));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);u(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,v)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(n)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();200==a.getStatus()&&u(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)n=this.editor.getGraphXml(),g.data=this.getHtml(n,
+this.editor.graph),g.xml=mxUtils.getXml(n),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
this.spinner.stop();g.data=this.createSvgDataUri(a);d.postMessage(JSON.stringify(g),"*")})):this.convertImages(this.editor.graph.getSvg(f),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();g.data=this.createSvgDataUri(mxUtils.getXml(a));d.postMessage(JSON.stringify(g),"*")}));return}f="xmlsvg"==e.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(f));g.data=this.createSvgDataUri(f)}d.postMessage(JSON.stringify(g),
"*")}return}"load"==e.action?(b=1==e.autosave,null!=e.modified&&null==urlParams.modified&&(urlParams.modified=e.modified),null!=e.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=e.saveAndExit),null!=e.title&&null!=this.buttonContainer&&(f=document.createElement("span"),mxUtils.write(f,e.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop=
-"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(s){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
+"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(x){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
(f=mxUtils.bind(this,function(a,b){var c="0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml()),d=this.createLoadMessage("autosave");d.xml=c;c=JSON.stringify(d);(window.opener||window.parent).postMessage(c,"*")}),this.editor.graph.model.addListener(mxEvent.CHANGE,f),this.addListener("pageFormatChanged",f),this.addListener("backgroundColorChanged",f),this.addListener("backgroundImageChanged",f),this.addListener("foldingEnabledChanged",
f),this.addListener("mathEnabledChanged",f),this.addListener("gridEnabledChanged",f),this.addListener("guidesEnabledChanged",f),this.addListener("pageViewChanged",f));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&d.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var d=window.opener||window.parent,c="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";d.postMessage(c,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=
document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,
"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};
-EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var k=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=k.apply(this,arguments),
-c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
-null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),
-f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var f=b.init;b.init=function(){f.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
+EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var e=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=e.apply(this,arguments),
+c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var f=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
+null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return f.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),
+f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,
-!0);b.outline.view.validate()});return b};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);
-this.actions.get("connectionPoints").setEnabled(c);this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==
-urlParams.embed||null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
-null!=a&&null!=a.shape&&null!=a.shape.stencil)};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.edgeMode="move"!=urlParams.edge;var n=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){n.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.setShadowVisible=
-function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked",
-"0"));null!=b&&1<c&&this.setDefaultParent(b)}};var m=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}m.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=
-function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=
-!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+
-"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];
-mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries.eeLogicGates=[STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeResistors=[STENCIL_PATH+"/electrical/resistors.xml"];mxStencilRegistry.libraries.eeCapacitors=[STENCIL_PATH+"/electrical/capacitors.xml"];mxStencilRegistry.libraries.eeInductors=[STENCIL_PATH+
-"/electrical/inductors.xml"];mxStencilRegistry.libraries.eeSwitchesRelays=[STENCIL_PATH+"/electrical/switchesRelays.xml",STENCIL_PATH+"/electrical/electro-mechanical.xml"];mxStencilRegistry.libraries.eeDiodes=[STENCIL_PATH+"/electrical/diodes.xml"];mxStencilRegistry.libraries.eeSources=[STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries.eeTransistors=[STENCIL_PATH+"/electrical/mosfets1.xml",STENCIL_PATH+"/electrical/mosfets2.xml",STENCIL_PATH+"/electrical/transistors.xml"];
-mxStencilRegistry.libraries.eeMisc=[STENCIL_PATH+"/electrical/electro-mechanical.xml",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries.eeAudio=[STENCIL_PATH+"/electrical/radio.xml"];mxStencilRegistry.libraries.eePlcLadder=[STENCIL_PATH+"/electrical/plc_ladder.xml"];mxStencilRegistry.libraries.eeAbstract=[STENCIL_PATH+"/electrical/abstract.xml",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeOptical=[STENCIL_PATH+"/electrical/opto_electronics.xml"];
-mxStencilRegistry.libraries.eeVacuumTubes=[STENCIL_PATH+"/electrical/vacuum_tubes.xml"];mxStencilRegistry.libraries.eeWaveforms=[STENCIL_PATH+"/electrical/waveforms.xml"];mxStencilRegistry.libraries.eeInstruments=[STENCIL_PATH+"/electrical/instruments.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];
-mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+
-"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
-[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",
-STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var p=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,g,k,l,m){if(null!=c&&null==mxMarker.markers[c]){var n=this.getPackageForType(c);
-null!=n&&mxStencilRegistry.getStencil(n)}return p.apply(this,arguments)}})();var mxSettings={key:".drawio-config",settings:{language:"",libraries:Sidebar.prototype.defaultEntries,customLibraries:[],plugins:[],recentColors:[],formatWidth:"240",currentEdgeStyle:Graph.prototype.defaultEdgeStyle,currentVertexStyle:{},createTarget:!1,pageFormat:mxGraph.prototype.pageFormat,search:!0,showStartScreen:!0,gridColor:mxGraphView.prototype.gridColor,autosave:!0,version:13,isNew:!0},getLanguage:function(){return this.settings.language},setLanguage:function(a){this.settings.language=a},
+!0);b.outline.view.validate()});return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),b=null!=a||"1"==urlParams.embed;this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var c="1"!=urlParams.embed&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!c);this.actions.get("print").setEnabled(!c);this.menus.get("exportAs").setEnabled(!c);this.menus.get("embed").setEnabled(!c);
+a="1"==urlParams.embed||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&
+this.toolbar.edgeStyleMenu.setEnabled(a));if(this.isOfflineApp()){if((mxClient.IS_GC||mxClient.IS_IOS&&mxClient.IS_SF)&&null!=applicationCache){var d=applicationCache;if(null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin=
+"4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);var e=window.setTimeout(mxUtils.bind(this,function(){d.status==d.IDLE&&(this.offlineStatus.innerHTML='[\x3cimg title\x3d"Cached" border\x3d"0" src\x3d"'+IMAGE_PATH+'/checkmark.gif"/\x3e]',window.clearTimeout(e))}),5E3)}}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=
+function(){};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);this.actions.get("connectionPoints").setEnabled(c);
+this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==urlParams.embed||
+null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
+null!=a&&null!=a.shape&&null!=a.shape.stencil)}})();var mxSettings={key:".drawio-config",settings:{language:"",libraries:Sidebar.prototype.defaultEntries,customLibraries:[],plugins:[],recentColors:[],formatWidth:"240",currentEdgeStyle:Graph.prototype.defaultEdgeStyle,currentVertexStyle:{},createTarget:!1,pageFormat:mxGraph.prototype.pageFormat,search:!0,showStartScreen:!0,gridColor:mxGraphView.prototype.gridColor,autosave:!0,version:13,isNew:!0},getLanguage:function(){return this.settings.language},setLanguage:function(a){this.settings.language=a},
getUi:function(){return this.settings.ui},setUi:function(a){this.settings.ui=a},getShowStartScreen:function(){return this.settings.showStartScreen},setShowStartScreen:function(a){this.settings.showStartScreen=a},getGridColor:function(){return this.settings.gridColor},setGridColor:function(a){this.settings.gridColor=a},getAutosave:function(){return this.settings.autosave},setAutosave:function(a){this.settings.autosave=a},getLibraries:function(){return this.settings.libraries},setLibraries:function(a){this.settings.libraries=
a},addCustomLibrary:function(a){mxSettings.load();0>mxUtils.indexOf(this.settings.customLibraries,a)&&this.settings.customLibraries.push(a);mxSettings.save()},removeCustomLibrary:function(a){mxSettings.load();mxUtils.remove(a,this.settings.customLibraries);mxSettings.save()},getCustomLibraries:function(){return this.settings.customLibraries},getPlugins:function(){return this.settings.plugins},setPlugins:function(a){this.settings.plugins=a},getRecentColors:function(){return this.settings.recentColors},
setRecentColors:function(a){this.settings.recentColors=a},getFormatWidth:function(){return parseInt(this.settings.formatWidth)},setFormatWidth:function(a){this.settings.formatWidth=a},getCurrentEdgeStyle:function(){return this.settings.currentEdgeStyle},setCurrentEdgeStyle:function(a){this.settings.currentEdgeStyle=a},getCurrentVertexStyle:function(){return this.settings.currentVertexStyle},setCurrentVertexStyle:function(a){this.settings.currentVertexStyle=a},isCreateTarget:function(){return this.settings.createTarget},
setCreateTarget:function(a){this.settings.createTarget=a},getPageFormat:function(){return this.settings.pageFormat},setPageFormat:function(a){this.settings.pageFormat=a},save:function(){if(isLocalStorage&&"undefined"!==typeof JSON)try{delete this.settings.isNew,this.settings.version=12,localStorage.setItem(mxSettings.key,JSON.stringify(this.settings))}catch(a){}},load:function(){isLocalStorage&&"undefined"!==typeof JSON&&mxSettings.parse(localStorage.getItem(mxSettings.key))},parse:function(a){null!=
a&&(this.settings=JSON.parse(a),null==this.settings.plugins&&(this.settings.plugins=[]),null==this.settings.recentColors&&(this.settings.recentColors=[]),null==this.settings.libraries&&(this.settings.libraries=Sidebar.prototype.defaultEntries),null==this.settings.customLibraries&&(this.settings.customLibraries=[]),null==this.settings.ui&&(this.settings.ui=""),null==this.settings.formatWidth&&(this.settings.formatWidth="240"),null!=this.settings.lastAlert&&delete this.settings.lastAlert,null==this.settings.currentEdgeStyle?
this.settings.currentEdgeStyle=Graph.prototype.defaultEdgeStyle:10>=this.settings.version&&(this.settings.currentEdgeStyle.orthogonalLoop=1,this.settings.currentEdgeStyle.jettySize="auto"),null==this.settings.currentVertexStyle&&(this.settings.currentVertexStyle={}),null==this.settings.createTarget&&(this.settings.createTarget=!1),null==this.settings.pageFormat&&(this.settings.pageFormat=mxGraph.prototype.pageFormat),null==this.settings.search&&(this.settings.search=!0),null==this.settings.showStartScreen&&
-(this.settings.showStartScreen=!0),null==this.settings.gridColor&&(this.settings.gridColor=mxGraphView.prototype.gridColor),null==this.settings.autosave&&(this.settings.autosave=!0),null!=this.settings.scratchpadSeen&&delete this.settings.scratchpadSeen)},clear:function(){isLocalStorage&&localStorage.removeItem(mxSettings.key)}};("undefined"==typeof mxLoadSettings||mxLoadSettings)&&mxSettings.load();Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('\x3cmxStylesheet\x3e\x3cadd as\x3d"defaultVertex"\x3e\x3cadd as\x3d"shape" value\x3d"label"/\x3e\x3cadd as\x3d"perimeter" value\x3d"rectanglePerimeter"/\x3e\x3cadd as\x3d"fontSize" value\x3d"12"/\x3e\x3cadd as\x3d"fontFamily" value\x3d"Helvetica"/\x3e\x3cadd as\x3d"align" value\x3d"center"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"middle"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#000000"/\x3e\x3cadd as\x3d"fontColor" value\x3d"#000000"/\x3e\x3c/add\x3e\x3cadd as\x3d"defaultEdge"\x3e\x3cadd as\x3d"shape" value\x3d"connector"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"endArrow" value\x3d"classic"/\x3e\x3cadd as\x3d"fontSize" value\x3d"11"/\x3e\x3cadd as\x3d"fontFamily" value\x3d"Helvetica"/\x3e\x3cadd as\x3d"align" value\x3d"center"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"middle"/\x3e\x3cadd as\x3d"rounded" value\x3d"1"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#000000"/\x3e\x3cadd as\x3d"fontColor" value\x3d"#000000"/\x3e\x3c/add\x3e\x3cadd as\x3d"fancy"\x3e\x3cadd as\x3d"shadow" value\x3d"1"/\x3e\x3cadd as\x3d"glass" value\x3d"1"/\x3e\x3c/add\x3e\x3cadd as\x3d"gray" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B3B3B3"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F5F5F5"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#666666"/\x3e\x3c/add\x3e\x3cadd as\x3d"blue" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#7EA6E0"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#DAE8FC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6C8EBF"/\x3e\x3c/add\x3e\x3cadd as\x3d"green" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#97D077"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#82B366"/\x3e\x3c/add\x3e\x3cadd as\x3d"turquoise" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#67AB9F"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6A9153"/\x3e\x3c/add\x3e\x3cadd as\x3d"yellow" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFD966"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFF2CC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D6B656"/\x3e\x3c/add\x3e\x3cadd as\x3d"orange" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFA500"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFCD28"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D79B00"/\x3e\x3c/add\x3e\x3cadd as\x3d"red" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#EA6B66"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F8CECC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#B85450"/\x3e\x3c/add\x3e\x3cadd as\x3d"pink" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B5739D"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E6D0DE"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#996185"/\x3e\x3c/add\x3e\x3cadd as\x3d"purple" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#8C6C9C"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E1D5E7"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#9673A6"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-gray"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B3B3B3"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F5F5F5"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#666666"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-blue"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#7EA6E0"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#DAE8FC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6C8EBF"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-green"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#97D077"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#82B366"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-turquoise"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#67AB9F"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6A9153"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-yellow"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFD966"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFF2CC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D6B656"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-orange"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFA500"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFCD28"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D79B00"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-red"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#EA6B66"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F8CECC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#B85450"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-pink"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B5739D"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E6D0DE"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#996185"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-purple"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#8C6C9C"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E1D5E7"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#9673A6"/\x3e\x3c/add\x3e\x3cadd as\x3d"text"\x3e\x3cadd as\x3d"fillColor" value\x3d"none"/\x3e\x3cadd as\x3d"gradientColor" value\x3d"none"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"none"/\x3e\x3cadd as\x3d"align" value\x3d"left"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3c/add\x3e\x3cadd as\x3d"label"\x3e\x3cadd as\x3d"fontStyle" value\x3d"1"/\x3e\x3cadd as\x3d"align" value\x3d"left"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"middle"/\x3e\x3cadd as\x3d"spacing" value\x3d"2"/\x3e\x3cadd as\x3d"spacingLeft" value\x3d"52"/\x3e\x3cadd as\x3d"imageWidth" value\x3d"42"/\x3e\x3cadd as\x3d"imageHeight" value\x3d"42"/\x3e\x3cadd as\x3d"rounded" value\x3d"1"/\x3e\x3c/add\x3e\x3cadd as\x3d"icon" extend\x3d"label"\x3e\x3cadd as\x3d"align" value\x3d"center"/\x3e\x3cadd as\x3d"imageAlign" value\x3d"center"/\x3e\x3cadd as\x3d"verticalLabelPosition" value\x3d"bottom"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"spacingTop" value\x3d"4"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"spacing" value\x3d"0"/\x3e\x3cadd as\x3d"spacingLeft" value\x3d"0"/\x3e\x3cadd as\x3d"spacingTop" value\x3d"6"/\x3e\x3cadd as\x3d"fontStyle" value\x3d"0"/\x3e\x3cadd as\x3d"imageWidth" value\x3d"48"/\x3e\x3cadd as\x3d"imageHeight" value\x3d"48"/\x3e\x3c/add\x3e\x3cadd as\x3d"swimlane"\x3e\x3cadd as\x3d"shape" value\x3d"swimlane"/\x3e\x3cadd as\x3d"fontSize" value\x3d"12"/\x3e\x3cadd as\x3d"fontStyle" value\x3d"1"/\x3e\x3cadd as\x3d"startSize" value\x3d"23"/\x3e\x3c/add\x3e\x3cadd as\x3d"group"\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"fillColor" value\x3d"none"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"none"/\x3e\x3cadd as\x3d"gradientColor" value\x3d"none"/\x3e\x3cadd as\x3d"pointerEvents" value\x3d"0"/\x3e\x3c/add\x3e\x3cadd as\x3d"ellipse"\x3e\x3cadd as\x3d"shape" value\x3d"ellipse"/\x3e\x3cadd as\x3d"perimeter" value\x3d"ellipsePerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"rhombus"\x3e\x3cadd as\x3d"shape" value\x3d"rhombus"/\x3e\x3cadd as\x3d"perimeter" value\x3d"rhombusPerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"triangle"\x3e\x3cadd as\x3d"shape" value\x3d"triangle"/\x3e\x3cadd as\x3d"perimeter" value\x3d"trianglePerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"line"\x3e\x3cadd as\x3d"shape" value\x3d"line"/\x3e\x3cadd as\x3d"strokeWidth" value\x3d"4"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"spacingTop" value\x3d"8"/\x3e\x3c/add\x3e\x3cadd as\x3d"image"\x3e\x3cadd as\x3d"shape" value\x3d"image"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"white"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"verticalLabelPosition" value\x3d"bottom"/\x3e\x3c/add\x3e\x3cadd as\x3d"roundImage" extend\x3d"image"\x3e\x3cadd as\x3d"perimeter" value\x3d"ellipsePerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"rhombusImage" extend\x3d"image"\x3e\x3cadd as\x3d"perimeter" value\x3d"rhombusPerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"arrow"\x3e\x3cadd as\x3d"shape" value\x3d"arrow"/\x3e\x3cadd as\x3d"edgeStyle" value\x3d"none"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#ffffff"/\x3e\x3c/add\x3e\x3c/mxStylesheet\x3e').documentElement;(!/\bMSIE 6/.test(navigator.userAgent)||window.opera)&&function(){var a,c,f,d,b,e,g,k,l,n,m,p={}.hasOwnProperty,q=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},r=function(a,b){function c(){this.constructor=a}for(var d in b)p.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};if(m=function(){return function(){throw Error("Not implemented. Did you mean to use Dropbox.Client?");}}(),m.Util=function(){return function(){}}(),
+(this.settings.showStartScreen=!0),null==this.settings.gridColor&&(this.settings.gridColor=mxGraphView.prototype.gridColor),null==this.settings.autosave&&(this.settings.autosave=!0),null!=this.settings.scratchpadSeen&&delete this.settings.scratchpadSeen)},clear:function(){isLocalStorage&&localStorage.removeItem(mxSettings.key)}};("undefined"==typeof mxLoadSettings||mxLoadSettings)&&mxSettings.load();Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('\x3cmxStylesheet\x3e\x3cadd as\x3d"defaultVertex"\x3e\x3cadd as\x3d"shape" value\x3d"label"/\x3e\x3cadd as\x3d"perimeter" value\x3d"rectanglePerimeter"/\x3e\x3cadd as\x3d"fontSize" value\x3d"12"/\x3e\x3cadd as\x3d"fontFamily" value\x3d"Helvetica"/\x3e\x3cadd as\x3d"align" value\x3d"center"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"middle"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#000000"/\x3e\x3cadd as\x3d"fontColor" value\x3d"#000000"/\x3e\x3c/add\x3e\x3cadd as\x3d"defaultEdge"\x3e\x3cadd as\x3d"shape" value\x3d"connector"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"endArrow" value\x3d"classic"/\x3e\x3cadd as\x3d"fontSize" value\x3d"11"/\x3e\x3cadd as\x3d"fontFamily" value\x3d"Helvetica"/\x3e\x3cadd as\x3d"align" value\x3d"center"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"middle"/\x3e\x3cadd as\x3d"rounded" value\x3d"1"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#000000"/\x3e\x3cadd as\x3d"fontColor" value\x3d"#000000"/\x3e\x3c/add\x3e\x3cadd as\x3d"fancy"\x3e\x3cadd as\x3d"shadow" value\x3d"1"/\x3e\x3cadd as\x3d"glass" value\x3d"1"/\x3e\x3c/add\x3e\x3cadd as\x3d"gray" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B3B3B3"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F5F5F5"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#666666"/\x3e\x3c/add\x3e\x3cadd as\x3d"blue" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#7EA6E0"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#DAE8FC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6C8EBF"/\x3e\x3c/add\x3e\x3cadd as\x3d"green" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#97D077"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#82B366"/\x3e\x3c/add\x3e\x3cadd as\x3d"turquoise" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#67AB9F"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6A9153"/\x3e\x3c/add\x3e\x3cadd as\x3d"yellow" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFD966"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFF2CC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D6B656"/\x3e\x3c/add\x3e\x3cadd as\x3d"orange" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFA500"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFCD28"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D79B00"/\x3e\x3c/add\x3e\x3cadd as\x3d"red" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#EA6B66"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F8CECC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#B85450"/\x3e\x3c/add\x3e\x3cadd as\x3d"pink" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B5739D"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E6D0DE"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#996185"/\x3e\x3c/add\x3e\x3cadd as\x3d"purple" extend\x3d"fancy"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#8C6C9C"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E1D5E7"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#9673A6"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-gray"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B3B3B3"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F5F5F5"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#666666"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-blue"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#7EA6E0"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#DAE8FC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6C8EBF"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-green"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#97D077"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#82B366"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-turquoise"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#67AB9F"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#D5E8D4"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#6A9153"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-yellow"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFD966"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFF2CC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D6B656"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-orange"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#FFA500"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#FFCD28"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#D79B00"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-red"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#EA6B66"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#F8CECC"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#B85450"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-pink"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#B5739D"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E6D0DE"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#996185"/\x3e\x3c/add\x3e\x3cadd as\x3d"plain-purple"\x3e\x3cadd as\x3d"gradientColor" value\x3d"#8C6C9C"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#E1D5E7"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"#9673A6"/\x3e\x3c/add\x3e\x3cadd as\x3d"text"\x3e\x3cadd as\x3d"fillColor" value\x3d"none"/\x3e\x3cadd as\x3d"gradientColor" value\x3d"none"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"none"/\x3e\x3cadd as\x3d"align" value\x3d"left"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3c/add\x3e\x3cadd as\x3d"label"\x3e\x3cadd as\x3d"fontStyle" value\x3d"1"/\x3e\x3cadd as\x3d"align" value\x3d"left"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"middle"/\x3e\x3cadd as\x3d"spacing" value\x3d"2"/\x3e\x3cadd as\x3d"spacingLeft" value\x3d"52"/\x3e\x3cadd as\x3d"imageWidth" value\x3d"42"/\x3e\x3cadd as\x3d"imageHeight" value\x3d"42"/\x3e\x3cadd as\x3d"rounded" value\x3d"1"/\x3e\x3c/add\x3e\x3cadd as\x3d"icon" extend\x3d"label"\x3e\x3cadd as\x3d"align" value\x3d"center"/\x3e\x3cadd as\x3d"imageAlign" value\x3d"center"/\x3e\x3cadd as\x3d"verticalLabelPosition" value\x3d"bottom"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"spacingTop" value\x3d"4"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"spacing" value\x3d"0"/\x3e\x3cadd as\x3d"spacingLeft" value\x3d"0"/\x3e\x3cadd as\x3d"spacingTop" value\x3d"6"/\x3e\x3cadd as\x3d"fontStyle" value\x3d"0"/\x3e\x3cadd as\x3d"imageWidth" value\x3d"48"/\x3e\x3cadd as\x3d"imageHeight" value\x3d"48"/\x3e\x3c/add\x3e\x3cadd as\x3d"swimlane"\x3e\x3cadd as\x3d"shape" value\x3d"swimlane"/\x3e\x3cadd as\x3d"fontSize" value\x3d"12"/\x3e\x3cadd as\x3d"fontStyle" value\x3d"1"/\x3e\x3cadd as\x3d"startSize" value\x3d"23"/\x3e\x3c/add\x3e\x3cadd as\x3d"group"\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"fillColor" value\x3d"none"/\x3e\x3cadd as\x3d"strokeColor" value\x3d"none"/\x3e\x3cadd as\x3d"gradientColor" value\x3d"none"/\x3e\x3cadd as\x3d"pointerEvents" value\x3d"0"/\x3e\x3c/add\x3e\x3cadd as\x3d"ellipse"\x3e\x3cadd as\x3d"shape" value\x3d"ellipse"/\x3e\x3cadd as\x3d"perimeter" value\x3d"ellipsePerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"rhombus"\x3e\x3cadd as\x3d"shape" value\x3d"rhombus"/\x3e\x3cadd as\x3d"perimeter" value\x3d"rhombusPerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"triangle"\x3e\x3cadd as\x3d"shape" value\x3d"triangle"/\x3e\x3cadd as\x3d"perimeter" value\x3d"trianglePerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"line"\x3e\x3cadd as\x3d"shape" value\x3d"line"/\x3e\x3cadd as\x3d"strokeWidth" value\x3d"4"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"#ffffff"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"spacingTop" value\x3d"8"/\x3e\x3c/add\x3e\x3cadd as\x3d"image"\x3e\x3cadd as\x3d"shape" value\x3d"image"/\x3e\x3cadd as\x3d"labelBackgroundColor" value\x3d"white"/\x3e\x3cadd as\x3d"verticalAlign" value\x3d"top"/\x3e\x3cadd as\x3d"verticalLabelPosition" value\x3d"bottom"/\x3e\x3c/add\x3e\x3cadd as\x3d"roundImage" extend\x3d"image"\x3e\x3cadd as\x3d"perimeter" value\x3d"ellipsePerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"rhombusImage" extend\x3d"image"\x3e\x3cadd as\x3d"perimeter" value\x3d"rhombusPerimeter"/\x3e\x3c/add\x3e\x3cadd as\x3d"arrow"\x3e\x3cadd as\x3d"shape" value\x3d"arrow"/\x3e\x3cadd as\x3d"edgeStyle" value\x3d"none"/\x3e\x3cadd as\x3d"fillColor" value\x3d"#ffffff"/\x3e\x3c/add\x3e\x3c/mxStylesheet\x3e').documentElement;(!/\bMSIE 6/.test(navigator.userAgent)||window.opera)&&function(){var a,c,f,d,b,e,g,k,l,n,m,p={}.hasOwnProperty,r=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},s=function(a,b){function c(){this.constructor=a}for(var d in b)p.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};if(m=function(){return function(){throw Error("Not implemented. Did you mean to use Dropbox.Client?");}}(),m.Util=function(){return function(){}}(),
m.Http=function(){return function(){}}(),m.File=function(){return function(){}}(),"undefined"!=typeof global&&"undefined"!=typeof module&&"exports"in module)c=global,f=module.require.bind(module),module.exports=m;else if("undefined"!=typeof window&&"undefined"!=typeof navigator)c=window,f=null,window.Dropbox&&!function(){var a,b,c,d;c=window.Dropbox;d=[];for(a in c)p.call(c,a)&&(b=c[a],d.push(m[a]=b));return d}(),window.Dropbox=m;else{if("undefined"==typeof self||"undefined"==typeof navigator)throw Error("dropbox.js loaded in an unsupported JavaScript environment.");
-c=self;f=self.importScripts.bind(self);self.Dropbox=m}if(m.Env=function(){function a(){}return a.global=c,a.require=f,a}(),m.Util.EventSource=function(){function a(b){this._cancelable=b&&b.cancelable;this._listeners=[]}return a.prototype.addListener=function(a){if("function"!=typeof a)throw new TypeError("Invalid listener type; expected function");return 0>q.call(this._listeners,a)&&this._listeners.push(a),this},a.prototype.removeListener=function(a){var b,c,d,e,f;if(this._listeners.indexOf)a=this._listeners.indexOf(a),
+c=self;f=self.importScripts.bind(self);self.Dropbox=m}if(m.Env=function(){function a(){}return a.global=c,a.require=f,a}(),m.Util.EventSource=function(){function a(b){this._cancelable=b&&b.cancelable;this._listeners=[]}return a.prototype.addListener=function(a){if("function"!=typeof a)throw new TypeError("Invalid listener type; expected function");return 0>r.call(this._listeners,a)&&this._listeners.push(a),this},a.prototype.removeListener=function(a){var b,c,d,e,f;if(this._listeners.indexOf)a=this._listeners.indexOf(a),
-1!==a&&this._listeners.splice(a,1);else{f=this._listeners;b=d=0;for(e=f.length;e>d;b=++d)if(c=f[b],c===a){this._listeners.splice(b,1);break}}return this},a.prototype.dispatch=function(a){var b,c,d,e,f;f=this._listeners;d=0;for(e=f.length;e>d;d++)if(b=f[d],c=b(a),this._cancelable&&!1===c)return!1;return!0},a}(),m.AccountInfo=function(){function a(b){var c;this._json=b;this.name=b.display_name;this.email=b.email;this.countryCode=b.country||null;this.uid=b.uid.toString();b.public_app_url?(this.publicAppUrl=
b.public_app_url,c=this.publicAppUrl.length-1,0<=c&&"/"===this.publicAppUrl.substring(c)&&(this.publicAppUrl=this.publicAppUrl.substring(0,c))):this.publicAppUrl=null;this.referralUrl=b.referral_link;this.quota=b.quota_info.quota;this.privateBytes=b.quota_info.normal||0;this.sharedBytes=b.quota_info.shared||0;this.usedQuota=this.privateBytes+this.sharedBytes}return a.parse=function(a){return a&&"object"==typeof a?new m.AccountInfo(a):a},a.prototype.name=null,a.prototype.email=null,a.prototype.countryCode=
null,a.prototype.uid=null,a.prototype.referralUrl=null,a.prototype.publicAppUrl=null,a.prototype.quota=null,a.prototype.usedQuota=null,a.prototype.privateBytes=null,a.prototype.sharedBytes=null,a.prototype.json=function(){return this._json},a}(),m.ApiError=function(){function a(b,c,d){var e;if(this.method=c,this.url=d,this.status=b.status,b.responseType)try{e=b.response||b.responseText}catch(f){try{e=b.responseText}catch(g){e=null}}else try{e=b.responseText}catch(k){e=null}if(e)try{this.responseText=
@@ -7469,17 +7587,17 @@ window&&window.navigator&&a.authDriver(new m.AuthDriver.Redirect)}},m.AuthDriver
function(a,b){var c,d;c=JSON.stringify(a);try{this.storage.setItem(this.storageKey,c)}catch(e){d=encodeURIComponent(this.storageKey),c=encodeURIComponent(c),document.cookie=""+d+"\x3d"+c+"; path\x3d/"}return b(),this},a.prototype.loadCredentials=function(a){var b,c,d,e;try{c=this.storage.getItem(this.storageKey)}catch(f){c=null}if(null===c&&(e=encodeURIComponent(this.storageKey),e.replace(/[.*+()]/g,"\\$\x26"),b=RegExp("(^|(;\\s*))"+e+"\x3d([^;]*)(;|$)"),(d=b.exec(document.cookie))&&(c=decodeURIComponent(d[3]))),
!c)return a(null),this;try{a(JSON.parse(c))}catch(g){a(null)}return this},a.prototype.forgetCredentials=function(a){var b,c;try{this.storage.removeItem(this.storageKey)}catch(d){c=encodeURIComponent(this.storageKey),b=(new Date(0)).toGMTString(),document.cookie=""+c+"\x3d{}; expires\x3d"+b+"; path\x3d/"}return a(),this},a.prototype.locationStateParam=function(a){var b,c;return b=a||m.AuthDriver.BrowserBase.currentLocation(),c=this.stateRe.exec(b),c?decodeURIComponent(c[2]):null},a.prototype.replaceUrlBasename=
function(a,b){var c,d,e;return d=a.indexOf("#"),-1!==d&&(a=a.substring(0,d)),e=a.indexOf("?"),-1!==e&&(a=a.substring(0,e)),c=a.split("/"),c[c.length-1]=b,c.join("/")},a.localStorage=function(){if("undefined"==typeof window)return null;try{return window.localStorage}catch(a){return null}},a.currentLocation=function(){return window.location.href},a.cleanupLocation=function(){var a,b;window.history&&window.history.replaceState?(b=this.currentLocation(),a=b.indexOf("#"),window.history.replaceState({},
-document.title,b.substring(0,a))):window.location.hash=""},a}(),m.AuthDriver.Redirect=function(a){function b(a){b.__super__.constructor.call(this,a);this.receiverUrl=this.baseUrl(a)}return r(b,a),b.prototype.baseUrl=function(a){var b,c;if(c=m.AuthDriver.BrowserBase.currentLocation(),a){if(a.redirectUrl)return a.redirectUrl;if(a.redirectFile)return this.replaceUrlBasename(c,a.redirectFile)}return b=c.indexOf("#"),-1!==b&&(c=c.substring(0,b)),c},b.prototype.url=function(){return this.receiverUrl},b.prototype.doAuthorize=
+document.title,b.substring(0,a))):window.location.hash=""},a}(),m.AuthDriver.Redirect=function(a){function b(a){b.__super__.constructor.call(this,a);this.receiverUrl=this.baseUrl(a)}return s(b,a),b.prototype.baseUrl=function(a){var b,c;if(c=m.AuthDriver.BrowserBase.currentLocation(),a){if(a.redirectUrl)return a.redirectUrl;if(a.redirectFile)return this.replaceUrlBasename(c,a.redirectFile)}return b=c.indexOf("#"),-1!==b&&(c=c.substring(0,b)),c},b.prototype.url=function(){return this.receiverUrl},b.prototype.doAuthorize=
function(a,b,c){return this.storeCredentials(c.credentials(),function(){return window.location.assign(a)})},b.prototype.resumeAuthorize=function(a,b,c){var d;return this.locationStateParam()===a?(d=m.AuthDriver.BrowserBase.currentLocation(),m.AuthDriver.BrowserBase.cleanupLocation(),c(m.Util.Oauth.queryParamsFromUrl(d))):this.forgetCredentials(function(){return c({error:"Authorization error"})})},b}(m.AuthDriver.BrowserBase),m.AuthDriver.Popup=function(a){function b(a){b.__super__.constructor.call(this,
-a);this.receiverUrl=this.baseUrl(a)}return r(b,a),b.prototype.url=function(){return this.receiverUrl},b.prototype.doAuthorize=function(a,b,c,d){return this.listenForMessage(b,d),this.openWindow(a)},b.prototype.baseUrl=function(a){var b;if(b=m.AuthDriver.BrowserBase.currentLocation(),a){if(a.receiverUrl)return a.receiverUrl;if(a.receiverFile)return this.replaceUrlBasename(b,a.receiverFile)}return b},b.prototype.openWindow=function(a){return window.open(a,"_dropboxOauthSigninWindow",this.popupWindowSpec(980,
-700))},b.prototype.popupWindowSpec=function(a,b){var c,d,e,f,g,k,l,m,n,u;return g=null!=(l=window.screenX)?l:window.screenLeft,k=null!=(m=window.screenY)?m:window.screenTop,f=null!=(n=window.outerWidth)?n:document.documentElement.clientWidth,c=null!=(u=window.outerHeight)?u:document.documentElement.clientHeight,d=Math.round(g+(f-a)/2),e=Math.round(k+(c-b)/2.5),g>d&&(d=g),k>e&&(e=k),"width\x3d"+a+",height\x3d"+b+","+("left\x3d"+d+",top\x3d"+e)+"dialog\x3dyes,dependent\x3dyes,scrollbars\x3dyes,location\x3dyes"},
+a);this.receiverUrl=this.baseUrl(a)}return s(b,a),b.prototype.url=function(){return this.receiverUrl},b.prototype.doAuthorize=function(a,b,c,d){return this.listenForMessage(b,d),this.openWindow(a)},b.prototype.baseUrl=function(a){var b;if(b=m.AuthDriver.BrowserBase.currentLocation(),a){if(a.receiverUrl)return a.receiverUrl;if(a.receiverFile)return this.replaceUrlBasename(b,a.receiverFile)}return b},b.prototype.openWindow=function(a){return window.open(a,"_dropboxOauthSigninWindow",this.popupWindowSpec(980,
+700))},b.prototype.popupWindowSpec=function(a,b){var c,d,e,f,g,k,l,n,m,p;return g=null!=(l=window.screenX)?l:window.screenLeft,k=null!=(n=window.screenY)?n:window.screenTop,f=null!=(m=window.outerWidth)?m:document.documentElement.clientWidth,c=null!=(p=window.outerHeight)?p:document.documentElement.clientHeight,d=Math.round(g+(f-a)/2),e=Math.round(k+(c-b)/2.5),g>d&&(d=g),k>e&&(e=k),"width\x3d"+a+",height\x3d"+b+","+("left\x3d"+d+",top\x3d"+e)+"dialog\x3dyes,dependent\x3dyes,scrollbars\x3dyes,location\x3dyes"},
b.prototype.listenForMessage=function(a,b){var c;return c=function(d){return function(e){var f;e=e.data?e.data:e;try{f=JSON.parse(e)._dropboxjs_oauth_info}catch(g){return}if(f)return d.locationStateParam(f)===a?(a=!1,window.removeEventListener("message",c),m.AuthDriver.Popup.onMessage.removeListener(c),b(m.Util.Oauth.queryParamsFromUrl(e))):void 0}}(this),window.addEventListener("message",c,!1),m.AuthDriver.Popup.onMessage.addListener(c)},b.locationOrigin=function(a){var b;return(b=/^(file:\/\/[^\?\#]*)(\?|\#|$)/.exec(a))?
b[1]:(b=/^([^\:]+\:\/\/[^\/\?\#]*)(\/|\?|\#|$)/.exec(a),b?b[1]:a)},b.oauthReceiver=function(){window.addEventListener("load",function(){var a,b,c,d;if(d=window.location.href,a=JSON.stringify({_dropboxjs_oauth_info:d}),m.AuthDriver.BrowserBase.cleanupLocation(),b=window.opener,window.parent!==window.top&&(b||(b=window.parent)),b){try{c=window.location.origin||locationOrigin(d),b.postMessage(a,c),window.close()}catch(e){}try{return b.Dropbox.AuthDriver.Popup.onMessage.dispatch(a),window.close()}catch(f){}}})},
-b.onMessage=new m.Util.EventSource,b}(m.AuthDriver.BrowserBase),m.AuthDriver.ChromeBase=function(a){function b(a){b.__super__.constructor.call(this,a);this.storageKey="dropbox_js_"+this.scope+"_credentials"}return r(b,a),b.prototype.onAuthStepChange=function(a,b){switch(a.authStep){case m.Client.RESET:return this.loadCredentials(function(c){return c&&a.setCredentials(c),b()});case m.Client.DONE:return this.storeCredentials(a.credentials(),b);case m.Client.SIGNED_OUT:return this.forgetCredentials(b);
+b.onMessage=new m.Util.EventSource,b}(m.AuthDriver.BrowserBase),m.AuthDriver.ChromeBase=function(a){function b(a){b.__super__.constructor.call(this,a);this.storageKey="dropbox_js_"+this.scope+"_credentials"}return s(b,a),b.prototype.onAuthStepChange=function(a,b){switch(a.authStep){case m.Client.RESET:return this.loadCredentials(function(c){return c&&a.setCredentials(c),b()});case m.Client.DONE:return this.storeCredentials(a.credentials(),b);case m.Client.SIGNED_OUT:return this.forgetCredentials(b);
case m.Client.ERROR:return this.forgetCredentials(b);default:return b()}},b.prototype.url=function(){return this.receiverUrl},b.prototype.storeCredentials=function(a,b){var c;return c={},c[this.storageKey]=a,chrome.storage.local.set(c,b),this},b.prototype.loadCredentials=function(a){return chrome.storage.local.get(this.storageKey,function(b){return function(c){return a(c[b.storageKey]||null)}}(this)),this},b.prototype.forgetCredentials=function(a){return chrome.storage.local.remove(this.storageKey,
-a),this},b}(m.AuthDriver.BrowserBase),m.AuthDriver.ChromeApp=function(a){function b(a){b.__super__.constructor.call(this,a);this.receiverUrl="https://"+chrome.runtime.id+".chromiumapp.org/"}return r(b,a),b.prototype.doAuthorize=function(a,b,c,d){return chrome.identity.launchWebAuthFlow({url:a,interactive:!0},function(a){return function(c){return a.locationStateParam(c)===b?(b=!1,d(m.Util.Oauth.queryParamsFromUrl(c))):void 0}}(this))},b}(m.AuthDriver.ChromeBase),m.AuthDriver.ChromeExtension=function(a){function b(a){b.__super__.constructor.call(this,
-a);this.receiverUrl=chrome.runtime.getURL(a&&a.receiverPath||"chrome_oauth_receiver.html")}return r(b,a),b.prototype.doAuthorize=function(a,b,c,d){var e,f;return f=null,e=function(a){return function(c,g){var k;if((!g||!g.tab||g.tab.url.substring(0,a.receiverUrl.length)===a.receiverUrl)&&c.dropbox_oauth_receiver_href)return k=c.dropbox_oauth_receiver_href,a.locationStateParam(k)===b?(b=!1,f&&chrome.tabs.remove(f.id),chrome.runtime.onMessage.removeListener(e),d(m.Util.Oauth.queryParamsFromUrl(k))):
-void 0}}(this),chrome.runtime.onMessage.addListener(e),chrome.tabs.create({url:a,active:!0,pinned:!1},function(a){return f=a})},b.oauthReceiver=function(){return window.addEventListener("load",function(){var a;return a=window.location.href,window.location.hash="",chrome.runtime.sendMessage({dropbox_oauth_receiver_href:a}),window.close?window.close():void 0})},b}(m.AuthDriver.ChromeBase),m.AuthDriver.Cordova=function(a){function b(a){b.__super__.constructor.call(this,a)}return r(b,a),b.prototype.url=
+a),this},b}(m.AuthDriver.BrowserBase),m.AuthDriver.ChromeApp=function(a){function b(a){b.__super__.constructor.call(this,a);this.receiverUrl="https://"+chrome.runtime.id+".chromiumapp.org/"}return s(b,a),b.prototype.doAuthorize=function(a,b,c,d){return chrome.identity.launchWebAuthFlow({url:a,interactive:!0},function(a){return function(c){return a.locationStateParam(c)===b?(b=!1,d(m.Util.Oauth.queryParamsFromUrl(c))):void 0}}(this))},b}(m.AuthDriver.ChromeBase),m.AuthDriver.ChromeExtension=function(a){function b(a){b.__super__.constructor.call(this,
+a);this.receiverUrl=chrome.runtime.getURL(a&&a.receiverPath||"chrome_oauth_receiver.html")}return s(b,a),b.prototype.doAuthorize=function(a,b,c,d){var e,f;return f=null,e=function(a){return function(c,g){var k;if((!g||!g.tab||g.tab.url.substring(0,a.receiverUrl.length)===a.receiverUrl)&&c.dropbox_oauth_receiver_href)return k=c.dropbox_oauth_receiver_href,a.locationStateParam(k)===b?(b=!1,f&&chrome.tabs.remove(f.id),chrome.runtime.onMessage.removeListener(e),d(m.Util.Oauth.queryParamsFromUrl(k))):
+void 0}}(this),chrome.runtime.onMessage.addListener(e),chrome.tabs.create({url:a,active:!0,pinned:!1},function(a){return f=a})},b.oauthReceiver=function(){return window.addEventListener("load",function(){var a;return a=window.location.href,window.location.hash="",chrome.runtime.sendMessage({dropbox_oauth_receiver_href:a}),window.close?window.close():void 0})},b}(m.AuthDriver.ChromeBase),m.AuthDriver.Cordova=function(a){function b(a){b.__super__.constructor.call(this,a)}return s(b,a),b.prototype.url=
function(){return"https://www.dropbox.com/1/oauth2/redirect_receiver"},b.prototype.doAuthorize=function(a,b,c,d){var e,f,g;return e=window.open(a,"_blank","location\x3dyes,closebuttoncaption\x3dCancel"),/^[^/]*\/\/[^/]*\//.exec(a),g=!1,f=function(a){return function(c){if(c.url&&a.locationStateParam(c.url)===b)return g?void 0:(e.removeEventListener("loadstart",f),e.removeEventListener("loaderror",f),e.removeEventListener("loadstop",f),e.removeEventListener("exit",f),g=!0,window.setTimeout(function(){return e.close()},
10),void d(m.Util.Oauth.queryParamsFromUrl(c.url)));"exit"===c.type&&!g&&(e.removeEventListener("loadstart",f),e.removeEventListener("loaderror",f),e.removeEventListener("loadstop",f),e.removeEventListener("exit",f),g=!0,d(new AuthError("error\x3daccess_denied\x26error_description\x3dUser+closed+browser+window")))}}(this),e.addEventListener("loadstart",f),e.addEventListener("loaderror",f),e.addEventListener("loadstop",f),e.addEventListener("exit",f)},b}(m.AuthDriver.BrowserBase),m.AuthDriver.NodeServer=
function(){function a(b){this._port=(null!=b?b.port:void 0)||8912;null!=b&&b.tls?(this._tlsOptions=b.tls,("string"==typeof this._tlsOptions||this._tlsOptions instanceof Buffer)&&(this._tlsOptions={key:this._tlsOptions,cert:this._tlsOptions})):this._tlsOptions=null;this._fs=m.Env.require("fs");this._http=m.Env.require("http");this._https=m.Env.require("https");this._open=m.Env.require("open");this._callbacks={};this._nodeUrl=m.Env.require("url");this.createApp()}return a.prototype.authType=function(){return"code"},
@@ -7539,10 +7657,10 @@ null,this.offset=a.offset||0,this.expiresAt=m.Util.parseDate(a.expires)||Date.no
d,e;e=[];b=c=0;for(d=a.length;0<=d?d>c:c>d;b=0<=d?++c:--c)e.push(String.fromCharCode(a[b]));return e.join("")},m.Util.btoa=function(a){var b,c,d=Buffer,e,f,g;g=[];c=e=0;for(f=a.length;0<=f?f>e:e>f;c=0<=f?++e:--e)g.push(a.charCodeAt(c));return b=new d(g),b.toString("base64")}):!function(){var a,b;return b=function(a,b,c){var d,e;e=3-b;a<<=8*e;for(d=3;d>=e;)c.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(a>>6*d&63)),d-=1;for(d=b;3>d;)c.push("\x3d"),d+=1;return null},
a=function(a,b,c){var d;d=4-b;a<<=6*d;for(b=2;b>=d;)c.push(String.fromCharCode(a>>8*b&255)),b-=1;return null},m.Util.btoa=function(a){var c,d,e,f,g,k;f=[];e=g=d=c=0;for(k=a.length;0<=k?k>g:g>k;e=0<=k?++g:--g)c=c<<8|a.charCodeAt(e),d+=1,3===d&&(b(c,d,f),c=d=0);return 0<d&&b(c,d,f),f.join("")},m.Util.atob=function(b){var c,d,e,f,g,k,l;g=[];f=k=e=c=0;for(l=b.length;(0<=l?l>k:k>l)&&(d=b.charAt(f),"\x3d"!==d);f=0<=l?++k:--k)c=c<<6|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(d),
e+=1,4===e&&(a(c,e,g),c=e=0);return 0<e&&a(c,e,g),g.join("")}}(),function(){var a,b,c,d,e,f,g,k,l;if(m.Util.hmac=function(b,d){return a(c(k(b),k(d),b.length,d.length))},m.Util.sha1=function(b){return a(d(k(b),b.length))},m.Util.sha256=function(b){return a(e(k(b),b.length))},m.Env.require)try{b=m.Env.require("crypto"),b.createHmac&&b.createHash&&(m.Util.hmac=function(a,c){var d;return d=b.createHmac("sha1",c),d.update(a),d.digest("base64")},m.Util.sha1=function(a){var c;return c=b.createHash("sha1"),
-c.update(a),c.digest("base64")},m.Util.sha256=function(a){var c;return c=b.createHash("sha256"),c.update(a),c.digest("base64")})}catch(n){}return c=function(a,b,c,e){var f,g,k,l;return 16<b.length&&(b=d(b,e)),k=function(){var a,c;c=[];for(g=a=0;16>a;g=++a)c.push(909522486^b[g]);return c}(),l=function(){var a,c;c=[];for(g=a=0;16>a;g=++a)c.push(1549556828^b[g]);return c}(),f=d(k.concat(a),64+c),d(l.concat(f),84)},d=function(a,b){var c,d,e,f,g,k,l,m,n,p,s,u,t,q,r,v,y;a[b>>2]|=1<<31-((3&b)<<3);a[(b+8>>
-6<<4)+15]=b<<3;r=Array(80);c=1732584193;e=4023233417;g=2562383102;l=271733878;n=3285377520;s=0;for(t=a.length;t>s;){d=c;f=e;k=g;m=l;p=n;for(u=y=0;80>y;u=++y)16>u?r[u]=0|a[s+u<<2>>2]:(q=(0|r[u-3<<2>>2])^(0|r[u-8<<2>>2])^(0|r[u-14<<2>>2])^(0|r[u-16<<2>>2]),r[u]=q<<1|q>>>31),v=((c<<5|c>>>27)+n|0)+r[u<<2>>2]|0,v=20>u?v+((e&g|~e&l)+1518500249|0)|0:40>u?v+((e^g^l)+1859775393|0)|0:60>u?v+((e&g|e&l|g&l)-1894007588)|0:v+((e^g^l)-899497514|0)|0,n=l,l=g,g=e<<30|e>>>2,e=c,c=v;c=d+c|0;e=f+e|0;g=k+g|0;l=m+l|0;
-n=p+n|0;s=s+16|0}return[c,e,g,l,n]},e=function(a,b){var c,d,e,k,l,m,n,p,s,u,t,q,r,v,y,A,z,B,F,X,aa,W,Q,ga,ca,$,fa,ia,ba,ka;a[b>>2]|=1<<31-((3&b)<<3);a[(b+8>>6<<4)+15]=b<<3;ba=Array(80);c=f[0];e=f[1];l=f[2];p=f[3];u=f[4];q=f[5];v=f[6];X=f[7];W=0;for(ga=a.length;ga>W;){d=c;k=e;m=l;s=p;t=u;r=q;y=v;aa=X;for(Q=ka=0;64>ka;Q=++ka)16>Q?ia=ba[Q]=0|a[W+Q<<2>>2]:(z=0|ba[Q-15<<2>>2],A=(z<<25|z>>>7)^(z<<14|z>>>18)^z>>>3,F=0|ba[Q-2<<2>>2],B=(F<<15|F>>>17)^(F<<13|F>>>19)^F>>>10,ia=ba[Q]=(A+(0|ba[Q-7<<2>>2])|0)+
-(B+(0|ba[Q-16<<2>>2])|0)|0),n=u&q^~u&v,ca=c&e^c&l^e&l,$=(c<<30|c>>>2)^(c<<19|c>>>13)^(c<<10|c>>>22),fa=(u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25),n=((X+fa|0)+(n+ia|0)|0)+(0|g[Q<<2>>2])|0,ca=$+ca|0,X=v,v=q,q=u,u=p+n|0,p=l,l=e,e=c,c=n+ca|0;c=d+c|0;e=k+e|0;l=m+l|0;p=s+p|0;u=t+u|0;q=r+q|0;v=y+v|0;X=aa+X|0;W+=16}return[c,e,l,p,u,q,v,X]},f=[],g=[],function(){var a,b,c,d,e,k,l;b=function(a){return 4294967296*(a-Math.floor(a))|0};e=2;l=[];for(c=k=0;64>k;c=++k){for(;;){d=!0;for(a=2;e>=a*a;){if(0===e%a){d=
+c.update(a),c.digest("base64")},m.Util.sha256=function(a){var c;return c=b.createHash("sha256"),c.update(a),c.digest("base64")})}catch(n){}return c=function(a,b,c,e){var f,g,k,l;return 16<b.length&&(b=d(b,e)),k=function(){var a,c;c=[];for(g=a=0;16>a;g=++a)c.push(909522486^b[g]);return c}(),l=function(){var a,c;c=[];for(g=a=0;16>a;g=++a)c.push(1549556828^b[g]);return c}(),f=d(k.concat(a),64+c),d(l.concat(f),84)},d=function(a,b){var c,d,e,f,g,k,l,n,m,p,q,t,r,s,u,v,y;a[b>>2]|=1<<31-((3&b)<<3);a[(b+8>>
+6<<4)+15]=b<<3;u=Array(80);c=1732584193;e=4023233417;g=2562383102;l=271733878;m=3285377520;q=0;for(r=a.length;r>q;){d=c;f=e;k=g;n=l;p=m;for(t=y=0;80>y;t=++y)16>t?u[t]=0|a[q+t<<2>>2]:(s=(0|u[t-3<<2>>2])^(0|u[t-8<<2>>2])^(0|u[t-14<<2>>2])^(0|u[t-16<<2>>2]),u[t]=s<<1|s>>>31),v=((c<<5|c>>>27)+m|0)+u[t<<2>>2]|0,v=20>t?v+((e&g|~e&l)+1518500249|0)|0:40>t?v+((e^g^l)+1859775393|0)|0:60>t?v+((e&g|e&l|g&l)-1894007588)|0:v+((e^g^l)-899497514|0)|0,m=l,l=g,g=e<<30|e>>>2,e=c,c=v;c=d+c|0;e=f+e|0;g=k+g|0;l=n+l|0;
+m=p+m|0;q=q+16|0}return[c,e,g,l,m]},e=function(a,b){var c,d,e,k,l,n,m,p,q,t,r,s,u,v,y,z,A,B,E,X,aa,W,Q,ga,ca,$,fa,ia,ba,ka;a[b>>2]|=1<<31-((3&b)<<3);a[(b+8>>6<<4)+15]=b<<3;ba=Array(80);c=f[0];e=f[1];l=f[2];p=f[3];t=f[4];s=f[5];v=f[6];X=f[7];W=0;for(ga=a.length;ga>W;){d=c;k=e;n=l;q=p;r=t;u=s;y=v;aa=X;for(Q=ka=0;64>ka;Q=++ka)16>Q?ia=ba[Q]=0|a[W+Q<<2>>2]:(A=0|ba[Q-15<<2>>2],z=(A<<25|A>>>7)^(A<<14|A>>>18)^A>>>3,E=0|ba[Q-2<<2>>2],B=(E<<15|E>>>17)^(E<<13|E>>>19)^E>>>10,ia=ba[Q]=(z+(0|ba[Q-7<<2>>2])|0)+
+(B+(0|ba[Q-16<<2>>2])|0)|0),m=t&s^~t&v,ca=c&e^c&l^e&l,$=(c<<30|c>>>2)^(c<<19|c>>>13)^(c<<10|c>>>22),fa=(t<<26|t>>>6)^(t<<21|t>>>11)^(t<<7|t>>>25),m=((X+fa|0)+(m+ia|0)|0)+(0|g[Q<<2>>2])|0,ca=$+ca|0,X=v,v=s,s=t,t=p+m|0,p=l,l=e,e=c,c=m+ca|0;c=d+c|0;e=k+e|0;l=n+l|0;p=q+p|0;t=r+t|0;s=u+s|0;v=y+v|0;X=aa+X|0;W+=16}return[c,e,l,p,t,s,v,X]},f=[],g=[],function(){var a,b,c,d,e,k,l;b=function(a){return 4294967296*(a-Math.floor(a))|0};e=2;l=[];for(c=k=0;64>k;c=++k){for(;;){d=!0;for(a=2;e>=a*a;){if(0===e%a){d=
!1;break}a+=1}if(d)break;e+=1}8>c&&(f[c]=b(Math.pow(e,0.5)));g[c]=b(Math.pow(e,1/3));l.push(e+=1)}return l}(),a=function(a){var b,c,d,e,f;e="";b=0;for(d=4*a.length;d>b;)c=b,f=(a[c>>2]>>(3-(3&c)<<3)&255)<<16,c+=1,f|=(a[c>>2]>>(3-(3&c)<<3)&255)<<8,c+=1,f|=a[c>>2]>>(3-(3&c)<<3)&255,e+=l[f>>18&63],e+=l[f>>12&63],b+=1,e+=b>=d?"\x3d":l[f>>6&63],b+=1,e+=b>=d?"\x3d":l[63&f],b+=1;return e},l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",k=function(a){var b,c,d,e;b=[];c=d=0;for(e=a.length;0<=
e?e>d:d>e;c=0<=e?++d:--d)b[c>>2]|=(a.charCodeAt(c)&255)<<(3-(3&c)<<3);return b}}(),m.Util.Oauth=function(){function a(b){this._loaded=this._appHash=this._error=this._tokenKid=this._tokenKey=this._token=this._authCode=this._stateParam=this._secret=this._id=null;this.setCredentials(b)}return a.prototype.setCredentials=function(a){if(a.key)this._id=a.key;else{if(!a.token)throw Error("No API key supplied");this._id=null}return this._secret=a.secret||null,this._appHash=null,this._error=null,this._loaded=
!0,this.reset(),a.token?(this._token=a.token,a.tokenKey&&(this._tokenKey=a.tokenKey,this._tokenKid=a.tokenKid)):a.oauthCode?this._authCode=a.oauthCode:a.oauthStateParam&&(this._stateParam=a.oauthStateParam),this},a.prototype.credentials=function(){var a;return a={},this._id&&(a.key=this._id),this._secret&&(a.secret=this._secret),null!==this._token?(a.token=this._token,this._tokenKey&&(a.tokenKey=this._tokenKey,a.tokenKid=this._tokenKid)):null!==this._authCode?a.oauthCode=this._authCode:null!==this._stateParam&&
@@ -7555,7 +7673,7 @@ d=0;for(e=f.length;e>d;d++)a=f[d],b=a.indexOf("\x3d"),-1!==b&&(c[decodeURICompon
this._id).replace(/[\/+=]/g,"")},a.prototype.reset=function(){return this._stateParam=null,this._authCode=null,this._token=null,this._tokenKey=null,this._tokenKid=null,this._error=null,this},a.timestamp=function(){return Math.floor(Date.now()/1E3)},a.randomAuthStateParam=function(){return["oas",Date.now().toString(36),Math.random().toString(36)].join("_")},a}(),null==Date.now&&(m.Util.Oauth.timestamp=function(){return Math.floor((new Date).getTime()/1E3)}),2274814865E3===(new Date("Fri, 31 Jan 2042 21:01:05 +0000")).valueOf()?
m.Util.parseDate=function(a){return new Date(a)}:2274814865E3===Date.parse("Fri, 31 Jan 2042 21:01:05 +0000")?m.Util.parseDate=function(a){return new Date(Date.parse(a))}:!function(){var a,b;return b=/^\w+\, (\d+) (\w+) (\d+) (\d+)\:(\d+)\:(\d+) (\+\d+|UTC|GMT)$/,a={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},m.Util.parseDate=function(c){var d;return(d=b.exec(c))?new Date(Date.UTC(parseInt(d[3]),a[d[2]],parseInt(d[1]),parseInt(d[4]),parseInt(d[5]),parseInt(d[6]),0)):
0/0}}(),m.Env.global.XMLHttpRequest?(!m.Env.global.XDomainRequest||"withCredentials"in new XMLHttpRequest?(k=XMLHttpRequest,g=!1,b="undefined"!=typeof FormData&&-1===navigator.userAgent.indexOf("Firefox")):(k=XDomainRequest,g=!0,b=!1),e=!0):(k=m.Env.require("xhr2"),g=!1,b=!1,e=!1),m.Env.global.Uint8Array)if(Object.getPrototypeOf?d=Object.getPrototypeOf(Object.getPrototypeOf(new Uint8Array(0))).constructor:Object.__proto__&&(d=(new Uint8Array(0)).__proto__.__proto__.constructor),m.Env.global.Blob){try{!(2===
-(new Blob([new Uint8Array(2)])).size?(n=!0,l=!0):(l=!1,n=2===(new Blob([new ArrayBuffer(2)])).size))}catch(s){n=l=!1,m.Env.global.WebKitBlobBuilder&&-1!==navigator.userAgent.indexOf("Android")&&(b=!1)}d===Object&&(l=!1)}else n=!1,l=!0;else d=null,l=n=!1;m.Util.Xhr=function(){function a(b,c){this.method=b;this.isGet="GET"===this.method;this.url=c;this.wantHeaders=!1;this.headers={};this.body=this.params=null;this.preflight=!(this.isGet||"POST"===this.method);this.completed=this.signed=!1;this.onError=
+(new Blob([new Uint8Array(2)])).size?(n=!0,l=!0):(l=!1,n=2===(new Blob([new ArrayBuffer(2)])).size))}catch(q){n=l=!1,m.Env.global.WebKitBlobBuilder&&-1!==navigator.userAgent.indexOf("Android")&&(b=!1)}d===Object&&(l=!1)}else n=!1,l=!0;else d=null,l=n=!1;m.Util.Xhr=function(){function a(b,c){this.method=b;this.isGet="GET"===this.method;this.url=c;this.wantHeaders=!1;this.headers={};this.body=this.params=null;this.preflight=!(this.isGet||"POST"===this.method);this.completed=this.signed=!1;this.onError=
this.xhr=this.callback=this.responseType=null}return a.Request=k,a.ieXdr=g,a.canSendForms=b,a.doesPreflight=e,a.ArrayBufferView=d,a.sendArrayBufferView=l,a.wrapBlob=n,a.prototype.xhr=null,a.prototype.onError=null,a.prototype.setParams=function(a){if(this.signed)throw Error("setParams called after addOauthParams or addOauthHeader");if(this.params)throw Error("setParams cannot be called twice");return this.params=a,this},a.prototype.setCallback=function(a){return this.callback=a,this},a.prototype.signWithOauth=
function(a,b){return m.Util.Xhr.ieXdr?this.addOauthParams(a):this.preflight||!m.Util.Xhr.doesPreflight?this.addOauthHeader(a):this.isGet&&b?this.addOauthHeader(a):this.addOauthParams(a)},a.prototype.addOauthParams=function(a){if(this.signed)throw Error("Request already has an OAuth signature");return this.params||(this.params={}),a.addAuthParams(this.method,this.url,this.params),this.signed=!0,this},a.prototype.addOauthHeader=function(a){if(this.signed)throw Error("Request already has an OAuth signature");
return this.params||(this.params={}),this.signed=!0,this.setHeader("Authorization",a.authHeader(this.method,this.url,this.params))},a.prototype.setBody=function(a){if(this.isGet)throw Error("setBody cannot be called on GET requests");if(null!==this.body)throw Error("Request already has a body");return"string"==typeof a||"undefined"!=typeof FormData&&a instanceof FormData||(this.headers["Content-Type"]="application/octet-stream",this.preflight=!0),this.body=a,this},a.prototype.setResponseType=function(a){return this.responseType=
@@ -7576,7 +7694,7 @@ mxAsyncCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.wai
mxAsyncCanvas.prototype.setAlpha=function(a){this.state.alpha=a};mxAsyncCanvas.prototype.setFontColor=function(a){this.state.fontColor=a};mxAsyncCanvas.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxAsyncCanvas.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxAsyncCanvas.prototype.setFontSize=function(a){this.state.fontSize=a};
mxAsyncCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxAsyncCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxAsyncCanvas.prototype.rect=function(a,c,f,d){};mxAsyncCanvas.prototype.roundrect=function(a,c,f,d,b,e){};mxAsyncCanvas.prototype.ellipse=function(a,c,f,d){};mxAsyncCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url\x3d"+encodeURIComponent(a);return a};
mxAsyncCanvas.prototype.image=function(a,c,f,d,b,e,g,k){b=this.rewriteImageSource(b);a=this.htmlCanvas.images[b];null==a&&(a=new Image,a.onload=mxUtils.bind(this,function(){this.decWaitCounter()}),a.onerror=mxUtils.bind(this,function(){this.decWaitCounter()}),this.incWaitCounter(),this.htmlCanvas.images[b]=a,a.src=b)};mxAsyncCanvas.prototype.fill=function(){};mxAsyncCanvas.prototype.stroke=function(){};mxAsyncCanvas.prototype.fillAndStroke=function(){};
-mxAsyncCanvas.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p){if(!(null==b||0==b.length))if(a=this.state.scale,"html"==l&&"function"===typeof html2canvas){this.incWaitCounter();var q=this.canvasIndex++;html2canvas(b,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[q]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null;
+mxAsyncCanvas.prototype.text=function(a,c,f,d,b,e,g,k,l,n,m,p){if(!(null==b||0==b.length))if(a=this.state.scale,"html"==l&&"function"===typeof html2canvas){this.incWaitCounter();var r=this.canvasIndex++;html2canvas(b,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[r]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null;
mxJsCanvas.prototype.subCanvas=null;mxJsCanvas.prototype.canvasIndex=0;mxJsCanvas.prototype.hexToRgb=function(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,f,d,b){return f+f+d+d+b+b});return(a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a))?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null};mxJsCanvas.prototype.incWaitCounter=function(){this.waitCounter++};
mxJsCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxJsCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily};
mxJsCanvas.prototype.save=function(){this.states.push(this.state);this.state=mxUtils.clone(this.state);this.ctx.save()};mxJsCanvas.prototype.restore=function(){this.state=this.states.pop();this.ctx.restore()};mxJsCanvas.prototype.scale=function(a){this.state.scale*=a;this.state.strokeWidth*=a;this.ctx.scale(a,a)};mxJsCanvas.prototype.translate=function(a,c){this.state.dx+=a;this.state.dy+=c;this.ctx.translate(a,c)};
@@ -7738,8 +7856,8 @@ DriveClient.prototype.loadRealtime=function(a,c,f){if("1"!=urlParams.ignoremime&
gapi.drive.realtime.load(a.id,mxUtils.bind(this,function(a){window.clearTimeout(e);b&&c(a)}))});d()}else c()};
DriveClient.prototype.getXmlFile=function(a,c,f,d,b,e){var g=gapi.auth.getToken().access_token;this.ui.loadUrl(a.downloadUrl+"\x26access_token\x3d"+g,mxUtils.bind(this,function(g){if(null==g)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||e)a.mimeType==this.libraryMimeType&&!e?d({message:mxResources.get("notADiagramFile")}):f(new DriveLibrary(this.ui,g,a));else{var l=new DriveFile(this.ui,g,a,c);!b&&"850530949725"!=this.appId&&l.isEditable()&&a.mimeType!=
this.mimeType?this.saveFile(l,!0,mxUtils.bind(this,function(a){l.desc=a;f(l)}),d,!0):f(l)}}),d,"image/png"==a.mimeType)};
-DriveClient.prototype.saveFile=function(a,c,f,d,b,e){if(a.isEditable()){var g=(new Date).getTime();b=null!=b?b:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;e=null!=e?e:!1;var k=mxUtils.bind(this,function(b,k,l){var q={mimeType:a.constructor==DriveLibrary?this.libraryMimeType:this.mimeType,title:a.getTitle()};l||(null==b&&!e&&(b=this.placeholderThumbnail,k=this.placeholderMimeType),null!=b&&null!=k&&(q.thumbnail={image:b,mimeType:k}));this.executeRequest(this.createUploadRequest(a.getId(),
-q,a.getData(),c||a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType),function(){a.saveDelay=(new Date).getTime()-g;f.apply(this,arguments)},d)}),l=mxUtils.bind(this,function(){var b=null!=this.ui.currentPage&&this.ui.currentPage!=this.ui.pages[0];(e||a.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||b||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){var b=null;if(null!=a)try{b=a.toDataURL("image/png")}catch(c){}b=null==b||b.length>
+DriveClient.prototype.saveFile=function(a,c,f,d,b,e){if(a.isEditable()){var g=(new Date).getTime();b=null!=b?b:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;e=null!=e?e:!1;var k=mxUtils.bind(this,function(b,k,l){var r={mimeType:a.constructor==DriveLibrary?this.libraryMimeType:this.mimeType,title:a.getTitle()};l||(null==b&&!e&&(b=this.placeholderThumbnail,k=this.placeholderMimeType),null!=b&&null!=k&&(r.thumbnail={image:b,mimeType:k}));this.executeRequest(this.createUploadRequest(a.getId(),
+r,a.getData(),c||a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType),function(){a.saveDelay=(new Date).getTime()-g;f.apply(this,arguments)},d)}),l=mxUtils.bind(this,function(){var b=null!=this.ui.currentPage&&this.ui.currentPage!=this.ui.pages[0];(e||a.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||b||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){var b=null;if(null!=a)try{b=a.toDataURL("image/png")}catch(c){}b=null==b||b.length>
this.maxThumbnailSize?null:b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");k(b,"image/png")})))&&k(null,null,a.constructor!=DriveLibrary&&b)});b||!c?l():this.verifyMimeType(a.getId(),l,!0)}else this.ui.editor.graph.reset(),null!=d&&d({message:mxResources.get("readOnly")})};
DriveClient.prototype.verifyMimeType=function(a,c,f,d){null==this.lastMimeCheck&&(this.lastMimeCheck=0);var b=(new Date).getTime();if(f||b-this.lastMimeCheck>this.mimeTypeCheckCoolOff)this.lastMimeCheck=b,this.checkingMimeType||(this.checkingMimeType=!0,this.executeRequest(gapi.client.drive.files.get({fileId:a,fields:"mimeType"}),mxUtils.bind(this,function(b){this.checkingMimeType=!1;null!=b&&"application/vnd.jgraph.mxfile.realtime"==b.mimeType?this.redirectToNewApp(d,a):null!=c&&c()})))};
DriveClient.prototype.redirectToNewApp=function(a,c){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var f=window.location.protocol+"//"+this.newAppHostname+"/"+this.ui.getSearch("create title mode url drive splash".split(" "))+"#G"+c;null!=a?this.ui.confirm(mxResources.get("redirectToNewApp"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href=f}),mxUtils.bind(this,function(){this.redirectDialogShowing=!1;null!=a&&a()})):this.ui.alert(mxResources.get("redirectToNewApp"),
@@ -7761,7 +7879,7 @@ b=(new google.picker.DocsUploadView).setIncludeFolders(!0);this.libraryPicker=(n
DropboxClient.prototype.logout=function(){this.client.signOut(mxUtils.bind(this,function(){this.setUser(null)}))};DropboxClient.prototype.setUser=function(a){this.user=a;this.fireEvent(new mxEventObject("userChanged"))};DropboxClient.prototype.getUser=function(){return this.user};DropboxClient.prototype.updateUser=function(a,c,f){this.client.getUserInfo(null,mxUtils.bind(this,function(a,b){null==a?this.setUser(new DrawioUser(b.uid,b.email,b.name)):this.setUser(null)}))};
DropboxClient.prototype.execute=function(a){this.client.isAuthenticated()?a():this.authorize(!1,mxUtils.bind(this,function(c,f){null!=c?this.ui.handleError(c):this.client.isAuthenticated()?(this.updateUser(),a()):this.ui.showAuthDialog(this,!1,mxUtils.bind(this,function(c,b){this.authorize(!0,mxUtils.bind(this,function(c,d){null!=c?this.ui.handleError(c):this.client.isAuthenticated()&&(this.updateUser(),null!=b&&b(),a())}))}))}))};
DropboxClient.prototype.authorize=function(a,c){this.client.authenticate({interactive:a},mxUtils.bind(this,function(a,d){null!=a?null!=window.console&&console.log(a):c()}))};DropboxClient.prototype.getLibrary=function(a,c,f){this.getFile(a,c,f,!1,!0)};
-DropboxClient.prototype.getFile=function(a,c,f,d,b){b=null!=b?b:!1;var e=mxUtils.bind(this,function(){this.execute(mxUtils.bind(this,function(){var d=!0,k=window.setTimeout(mxUtils.bind(this,function(){d=!1;f({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout),l=null;null!=urlParams.rev&&(l={versionTag:urlParams.rev});this.client.readFile("/"+a,l,mxUtils.bind(this,function(a,e,l){try{window.clearTimeout(k),d&&(null!=a?f(a):b?c(new DropboxLibrary(this.ui,e,l)):c(new DropboxFile(this.ui,e,l)))}catch(q){f(q)}}))}))});
+DropboxClient.prototype.getFile=function(a,c,f,d,b){b=null!=b?b:!1;var e=mxUtils.bind(this,function(){this.execute(mxUtils.bind(this,function(){var d=!0,k=window.setTimeout(mxUtils.bind(this,function(){d=!1;f({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout),l=null;null!=urlParams.rev&&(l={versionTag:urlParams.rev});this.client.readFile("/"+a,l,mxUtils.bind(this,function(a,e,l){try{window.clearTimeout(k),d&&(null!=a?f(a):b?c(new DropboxLibrary(this.ui,e,l)):c(new DropboxFile(this.ui,e,l)))}catch(r){f(r)}}))}))});
e()};DropboxClient.prototype.checkExists=function(a,c){this.client.stat(a,mxUtils.bind(this,function(f,d){null!=f&&404==f.status||null!=d&&d.isRemoved?c(!0):this.ui.confirm(mxResources.get("replaceIt",[a]),function(){c(!0)},function(){c(!1)})}))};
DropboxClient.prototype.renameFile=function(a,c,f,d){null!=a&&null!=c&&this.execute(mxUtils.bind(this,function(){this.checkExists(c,mxUtils.bind(this,function(b){b?this.writeFile(c,a.getData(),mxUtils.bind(this,function(b){this.client.remove(a.getTitle(),function(a,c){null!=a?d(a):f(b)})}),d):d()}))}))};DropboxClient.prototype.insertLibrary=function(a,c,f,d){this.insertFile(a,c,f,d,!0)};
DropboxClient.prototype.insertFile=function(a,c,f,d,b){b=null!=b?b:!1;this.execute(mxUtils.bind(this,function(){this.checkExists(a,mxUtils.bind(this,function(e){e?this.writeFile(a,c,mxUtils.bind(this,function(a){b?f(new DropboxLibrary(this.ui,c,a)):f(new DropboxFile(this.ui,c,a))}),d):d()}))}))};DropboxClient.prototype.saveFile=function(a,c,f,d){this.execute(mxUtils.bind(this,function(){this.writeFile(a,c,f,d)}))};
@@ -7817,12 +7935,11 @@ ChatWindow.prototype.htmlEscape=function(a){return a.replace(/&/g,"\x26amp;").re
App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.DROPBOX_APPKEY="libwls2fa9szdji";
App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"/plugins/explore.js",ex:"/plugins/explore.js",p1:"/plugins/p1.js",ac:"/plugins/connect.js",acj:"/plugins/connectJira.js",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.js",electron:"plugins/electron.js",tags:"/plugins/tags.js",sql:"/plugins/sql.js",find:"/plugins/find.js"};
App.getStoredMode=function(){var a=null;if("undefined"!=typeof Storage)for(var c=document.cookie.split(";"),f=0;f<c.length;f++){var d=mxUtils.trim(c[f]);if("MODE\x3d"==d.substring(0,5)){a=d.substring(5);break}}return a};
-(function(){window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;var a=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){a.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};if(!mxClient.IS_CHROMEAPP&&("1"!=urlParams.offline&&
-("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode,null==App.mode&&(App.mode=App.getStoredMode())),null!=window.mxscript&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&"#G"==window.location.hash.substring(0,2)?mxscript("https://apis.google.com/js/api.js"):
-"0"==urlParams.chrome&&(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,2)?mxscript("https://www.dropbox.com/static/api/1/dropins.js",null,"dropboxjs",App.DROPBOX_APPKEY):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=null),"function"===typeof window.OneDriveClient&&
-("0"!=urlParams.od&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript("https://js.live.net/v5.0/wl.js"):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=null),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")),"0"!=urlParams.plugins&&"1"!=urlParams.offline)){var f=mxSettings.getPlugins(),d=
-urlParams.p;if(null!=d||null!=f&&0<f.length)App.DrawPlugins=[],window.Draw={},window.Draw.loadPlugin=function(a){App.DrawPlugins.push(a)};if(null!=d)for(var d=d.split(";"),b=0;b<d.length;b++){var e=App.pluginRegistry[d[b]];null!=e?mxscript(e):null!=window.console&&console.log("Unknown plugin:",d[b])}if(null!=f&&0<f.length&&"0"!=urlParams.plugins)if(1==f.length&&("/"==f[0].charAt(0)||0==f[0].indexOf(window.location.protocol+"//"+window.location.host)))mxscript(f[0]);else if(mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",
-[f.join("\n")]).replace(/\\n/g,"\n")))for(b=0;b<f.length;b++)try{mxscript(f[b])}catch(g){}}})();
+(function(){if(!mxClient.IS_CHROMEAPP&&("1"!=urlParams.offline&&("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode,null==App.mode&&(App.mode=App.getStoredMode())),null!=window.mxscript&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&"#G"==window.location.hash.substring(0,
+2)?mxscript("https://apis.google.com/js/api.js"):"0"==urlParams.chrome&&(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,2)?mxscript("https://www.dropbox.com/static/api/1/dropins.js",null,"dropboxjs",App.DROPBOX_APPKEY):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=
+null),"function"===typeof window.OneDriveClient&&("0"!=urlParams.od&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript("https://js.live.net/v5.0/wl.js"):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=null),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")),"0"!=urlParams.plugins&&"1"!=urlParams.offline)){var a=
+mxSettings.getPlugins(),c=urlParams.p;if(null!=c||null!=a&&0<a.length)App.DrawPlugins=[],window.Draw={},window.Draw.loadPlugin=function(a){App.DrawPlugins.push(a)};if(null!=c)for(var c=c.split(";"),f=0;f<c.length;f++){var d=App.pluginRegistry[c[f]];null!=d?mxscript(d):null!=window.console&&console.log("Unknown plugin:",c[f])}if(null!=a&&0<a.length&&"0"!=urlParams.plugins)if(1==a.length&&("/"==a[0].charAt(0)||0==a[0].indexOf(window.location.protocol+"//"+window.location.host)))mxscript(a[0]);else if(mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",
+[a.join("\n")]).replace(/\\n/g,"\n")))for(f=0;f<a.length;f++)try{mxscript(a[f])}catch(b){}}})();
App.main=function(a){var c=null;window.onerror=function(a,b,e,f,k){try{if(!(a==c||null!=a&&null!=b&&(-1!=a.indexOf("Script error")||-1!=a.indexOf("extension")))&&null!=a&&0>a.indexOf("DocumentClosedError")){c=a;var l=new Image,n=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";l.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3d"+n+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+
"\x26msg\x3dclientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(e)+(null!=f?":colno:"+encodeURIComponent(f):"")+(null!=k&&null!=k.stack?"\x26stack\x3d"+encodeURIComponent(k.stack):"")}}catch(m){}};"atlas"==uiTheme&&mxClient.link("stylesheet","styles/atlas.css");if(null!=window.mxscript){"0"!=urlParams.chrome&&mxscript("js/jscolor/jscolor.js");if("1"==urlParams.offline){mxscript("js/shapes.min.js");var f=document.createElement("iframe");
f.setAttribute("width","0");f.setAttribute("height","0");f.setAttribute("src","offline.html");document.body.appendChild(f);mxStencilRegistry.stencilSet={};mxStencilRegistry.getStencil=function(a){return mxStencilRegistry.stencils[a]};mxStencilRegistry.loadStencilSet=function(a,b,c){a=a.substring(a.indexOf("/")+1);a="mxgraph."+a.substring(0,a.length-4).replace(/\//g,".");a=mxStencilRegistry.stencilSet[a];null!=a&&mxStencilRegistry.parseStencilSet(a,b,!1)};for(f=mxUtils.load("stencils.xml").getXml().documentElement.firstChild;null!=
@@ -7837,9 +7954,7 @@ App.prototype.chevronUpImage=!mxClient.IS_SVG?IMAGE_PATH+"/chevron-up.png":"data
App.prototype.chevronDownImage=!mxClient.IS_SVG?IMAGE_PATH+"/chevron-down.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUI1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NUM1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1OTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1QTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsCtve8AAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAALUlEQVR42mJgRgMMRAkwQEXBNAOcBSPhclB1cNVwfcxI+vEZykSpoSR6DiDAAF23ApT99bZ+AAAAAElFTkSuQmCC";
App.prototype.formatShowImage=!mxClient.IS_SVG?IMAGE_PATH+"/format-show.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODdCREY5REY1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODdCREY5RTA1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4N0JERjlERDU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4N0JERjlERTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlnMQ/8AAAAJUExURQAAAP///3FxcTfTiAsAAAACdFJOU/8A5bcwSgAAACFJREFUeNpiYEQDDEQJMMABTAAixcQ00ALoDiPRcwABBgB6DADly9Yx8wAAAABJRU5ErkJggg\x3d\x3d";
App.prototype.formatHideImage=!mxClient.IS_SVG?IMAGE_PATH+"/format-hide.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODdCREY5REI1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODdCREY5REM1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4N0JERjlEOTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4N0JERjlEQTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqjT9SMAAAAGUExURQAAAP///6XZn90AAAACdFJOU/8A5bcwSgAAAB9JREFUeNpiYEQDDEQJMMABTAAmNdAC6A4j0XMAAQYAcbwA1Xvj1CgAAAAASUVORK5CYII\x3d";
-App.prototype.fullscreenImage=!mxClient.IS_SVG?IMAGE_PATH+"/fullscreen.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABpJREFUCNdjgAAbGxAy4AEh5gNwBBGByoIBAIueBd12TUjqAAAAAElFTkSuQmCC";App.prototype.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
-App.prototype.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
-App.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";App.prototype.mode=null;App.prototype.timeout=25E3;App.prototype.enableLogging=!0;App.prototype.formatEnabled="0"!=urlParams.format;App.prototype.formatWidth=600>screen.width?0:mxSettings.getFormatWidth();"1"!=urlParams.embed&&(App.prototype.menubarHeight=60);Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;
+App.prototype.fullscreenImage=!mxClient.IS_SVG?IMAGE_PATH+"/fullscreen.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABpJREFUCNdjgAAbGxAy4AEh5gNwBBGByoIBAIueBd12TUjqAAAAAElFTkSuQmCC";App.prototype.timeout=25E3;App.prototype.enableLogging=!0;App.prototype.formatEnabled="0"!=urlParams.format;App.prototype.formatWidth=600>screen.width?0:mxSettings.getFormatWidth();"1"!=urlParams.embed&&(App.prototype.menubarHeight=60);
App.prototype.init=function(){EditorUi.prototype.init.apply(this,arguments);if(this.isLocalFileSave()){var a=this;ExportDialog.saveLocalFile=function(b,c,d){var e="text/xml";"svg"===d&&(e="image/svg+xml");a.saveLocalFile(b,c,e)};ExportDialog.saveRequest=function(b,c,d,e){a.saveRequest(b,c,d,e)}}this.defaultLibraryName=mxResources.get("untitledLibrary");this.descriptorChangedListener=mxUtils.bind(this,this.descriptorChanged);if("1"!=urlParams.embed){this.bg=this.createBackground();document.body.appendChild(this.bg);
this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";var c=mxUtils.bind(this,function(){"undefined"!==typeof WL?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):
null==window.DrawOneDriveClientCallback&&(window.DrawOneDriveClientCallback=c)});c();var f=mxUtils.bind(this,function(){if("undefined"!==typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this);"420247213240"==this.drive.appId&&this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile&&(a=document.getElementById("geFooterItem2"),null!=a&&(a.innerHTML='\x3ca href\x3d"https://support.draw.io/display/DO/2014/11/27/Switching+application+in+Google+Drive" target\x3d"_blank" title\x3d"IMPORTANT NOTICE" \x3eIMPORTANT NOTICE\x3c/a\x3e'))}));
@@ -7867,16 +7982,11 @@ App.prototype.onBeforeUnload=function(){var a=this.getCurrentFile();if(null!=a){
App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.lightbox){var a=this.editor.appName,c=this.getCurrentFile();null!=c&&(a=(null!=c.getTitle()?c.getTitle():this.defaultFilename)+" - "+a);this.isOfflineApp()&&(a+=" ["+mxResources.get("offline")+"]");document.title=a}};App.prototype.createCrcTable=function(){for(var a=[],c,f=0;256>f;f++){c=f;for(var d=0;8>d;d++)c=c&1?3988292384^c>>>1:c>>>1;a[f]=c}return a};
App.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,f=0;f<a.length;f++)c=c>>>8^this.crcTable[(c^a.charCodeAt(f))&255];return(c^-1)>>>0};
App.prototype.getThumbnail=function(a,c){var f=!1;try{if(null==this.thumbImageCache&&(this.thumbImageCache={}),this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){c(a)}),a,this.thumbImageCache,"#ffffff",function(){c()}),f=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var d=this.editor.graph,b=document.createElement("canvas"),e=d.getGraphBounds(),g=a/e.width,g=Math.min(1,Math.min(3*a/(4*e.height),g)),k=Math.floor(e.x),l=Math.floor(e.y);b.setAttribute("width",Math.ceil(g*
-(e.width+4)));b.setAttribute("height",Math.ceil(g*(e.height+4)));var n=b.getContext("2d");n.scale(g,g);n.translate(-k,-l);var m=d.background;if(null==m||""==m||m==mxConstants.NONE)m="#ffffff";n.save();n.fillStyle=m;n.fillRect(k,l,Math.ceil(e.width+4),Math.ceil(e.height+4));n.restore();var p=new mxJsCanvas(b),q=new mxAsyncCanvas(this.thumbImageCache);p.images=this.thumbImageCache.images;var r=new mxImageExport;r.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(0.5,
-0.5),a.shape.paint(b),b.translate(-0.5,-0.5),b.restore())};r.drawText=function(a,b){};r.drawState(d.getView().getState(d.model.root),q);q.finish(function(){r.drawState(d.getView().getState(d.model.root),p);c(b)});f=!0}}catch(s){}return f};App.prototype.getPublicUrl=function(a,c){c(null)};
-App.prototype.createFileData=function(a,c,f,d,b,e,g,k,l){c=null!=c?c:this.editor.graph;b=null!=b?b:!1;l=null!=l?l:!0;var n=null,m=null;null==f||f.getMode()==App.MODE_DEVICE||f.getMode()==App.MODE_BROWSER?n="_blank":m=n=d;if(null==a)return"";var p=a;if("mxfile"!=p.nodeName.toLowerCase()){var q=c.zapGremlins(mxUtils.getXml(a)),p=c.compress(q);if(c.decompress(p)!=q)return q;q=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(q,p);p=a.ownerDocument.createElement("mxfile");p.appendChild(q)}p.setAttribute("userAgent",
-navigator.userAgent);p.setAttribute("version",EditorUi.VERSION);p.setAttribute("editor","www.draw.io");a=null!=f?f.getMode():this.mode;null!=a&&p.setAttribute("type",a);a=mxUtils.getXml(p);if(!e&&!b&&(g||null!=f&&/(\.html)$/i.test(f.getTitle())))a=this.getHtml2(mxUtils.getXml(p),c,null!=f?f.getTitle():null,n,m);else if(e||!b&&null!=f&&/(\.svg)$/i.test(f.getTitle())){if(null!=f&&(f.getMode()==App.MODE_DEVICE||f.getMode()==App.MODE_BROWSER))d=null;a=this.getEmbeddedSvg(a,c,d,null,k,l,m)}return a};
-App.prototype.getXmlFileData=function(a,c){a=null!=a?a:!0;c=null!=c?c:!1;var f=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(f)));mxUtils.setTextContent(this.currentPage.node,d);f=this.fileNode.cloneNode(!1);if(c)f.appendChild(this.currentPage.node);else for(var b=0;b<this.pages.length;b++){var e=this.pages[b].mapping;this.currentPage!=this.pages[b]&&(null!=e&&e.needsUpdate)&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),
-e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[b].node,d),e.needsUpdate=!1);f.appendChild(this.pages[b].node)}}return f};
-App.prototype.getFileData=function(a,c,f,d,b,e,g){b=null!=b?b:!0;g=null!=g?g:this.getXmlFileData(b,null!=e?e:!1);e=this.editor.graph;var k=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=this.pages[0]&&(c||!a&&null!=k&&/(\.svg)$/i.test(k.getTitle()))){e=this.createTemporaryGraph(e.getStylesheet());var l=e.getGlobalVariable,n=this.pages[0];e.getGlobalVariable=function(a){return"page"==a?n.getName():"pagenumber"==a?1:l.apply(this,arguments)};document.body.appendChild(e.container);e.model.setRoot(n.root)}a=
-this.createFileData(g,e,k,window.location.href,a,c,f,d,b);e!=this.editor.graph&&e.container.parentNode.removeChild(e.container);return a};App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a};
-App.prototype.setMode=function(a,c){this.mode=a;null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if("undefined"!=typeof Storage&&c){var f=new Date;f.setYear(f.getFullYear()+1);document.cookie="MODE\x3d"+a+"; expires\x3d"+f.toUTCString()}null!=this.appIcon&&(f=this.getCurrentFile(),a=null!=f?f.getMode():null,a==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):a==App.MODE_DROPBOX?
-(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),this.appIcon.style.cursor="pointer"):a==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor="default"))};
+(e.width+4)));b.setAttribute("height",Math.ceil(g*(e.height+4)));var n=b.getContext("2d");n.scale(g,g);n.translate(-k,-l);var m=d.background;if(null==m||""==m||m==mxConstants.NONE)m="#ffffff";n.save();n.fillStyle=m;n.fillRect(k,l,Math.ceil(e.width+4),Math.ceil(e.height+4));n.restore();var p=new mxJsCanvas(b),r=new mxAsyncCanvas(this.thumbImageCache);p.images=this.thumbImageCache.images;var s=new mxImageExport;s.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(0.5,
+0.5),a.shape.paint(b),b.translate(-0.5,-0.5),b.restore())};s.drawText=function(a,b){};s.drawState(d.getView().getState(d.model.root),r);r.finish(function(){s.drawState(d.getView().getState(d.model.root),p);c(b)});f=!0}}catch(q){}return f};App.prototype.getPublicUrl=function(a,c){c(null)};
+App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a};
+(function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(c,f){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if("undefined"!=typeof Storage&&f){var d=new Date;d.setYear(d.getFullYear()+1);document.cookie="MODE\x3d"+c+"; expires\x3d"+d.toUTCString()}null!=this.appIcon&&(d=this.getCurrentFile(),c=null!=d?d.getMode():null,c==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),
+this.appIcon.style.cursor="pointer"):c==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),this.appIcon.style.cursor="pointer"):c==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor="default"))}})();
App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var c=this.getCurrentFile(),f=null!=c?c.getMode():null;f==App.MODE_GOOGLE?0<c.desc.parents.length?window.open("https://drive.google.com/drive/folders/"+c.desc.parents[0].id):window.open("https://drive.google.com/?authuser\x3d0"):f==App.MODE_DROPBOX?window.open("https://www.dropbox.com/"):f==App.MODE_ONEDRIVE&&window.open("https://onedrive.live.com/")}mxEvent.consume(a)};
App.prototype.clearMode=function(){if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE\x3d; expires\x3d"+a.toUTCString()}};App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a};
App.prototype.open=function(){try{if(null!=window.opener){var a=urlParams.create;null!=a&&(a=decodeURIComponent(a));if(null!=a&&0<a.length&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)){var c=mxUtils.parseXml(window.opener[a]);this.editor.setGraphXml(c.documentElement)}else null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){this.spinner.stop();if(null==b){var c=urlParams.title,c=null!=c?decodeURIComponent(c):this.defaultFilename;this.fileLoaded(new LocalFile(this,
@@ -7909,7 +8019,7 @@ App.MODE_BROWSER?new StorageFile(this,b,c):new LocalFile(this,b,c))}));var d=thi
App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE){var c=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:this.dropbox;null!=c&&c.pickLibrary(mxUtils.bind(this,function(a,d){null!=d?this.loadLibrary(d):this.spinner.spin(document.body,mxResources.get("loading"))&&c.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(b){this.handleError(b,mxResources.get("errorLoadingFile"))}}),
mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a==App.MODE_DEVICE&&Graph.fileSupport&&!mxClient.IS_IE&&!mxClient.IS_IE11){var f=document.createElement("input");f.setAttribute("type","file");mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if(null!=f.files)for(var a=0;a<f.files.length;a++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){try{this.loadLibrary(new LocalLibrary(this,b.target.result,
a.name))}catch(c){this.handleError(c,mxResources.get("errorLoadingFile"))}});b.readAsText(a)})(f.files[a])}));f.click()}else{window.openNew=!1;window.openKey="open";var d=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{this.loadLibrary(a==App.MODE_BROWSER?new StorageLibrary(this,b,c):new LocalLibrary(this,b,c))}catch(d){this.handleError(d,
-mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=d;window.openFile=null})}};App.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),f=c.createElement("mxlibrary");mxUtils.setTextContent(f,JSON.stringify(a));c.appendChild(f);return mxUtils.getXml(c)};
+mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=d;window.openFile=null})}};
App.prototype.saveLibrary=function(a,c,f,d,b,e,g){d=null!=d?d:this.mode;b=null!=b?b:!1;e=null!=e?e:!1;var k=this.createLibraryDataFromImages(c),l=mxUtils.bind(this,function(a){this.spinner.stop();null!=g&&g();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==f&&d==App.MODE_DEVICE&&(f=new LocalLibrary(this,k,a));if(null==f)this.pickFolder(d,mxUtils.bind(this,function(b){d==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a,
k,b,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),l,this.drive.libraryMimeType):d==App.MODE_DROPBOX&&null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.dropbox.insertLibrary(a,k,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),l,b):d==App.MODE_ONEDRIVE&&null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.oneDrive.insertLibrary(a,k,
mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),l,b):d==App.MODE_BROWSER?(b=mxUtils.bind(this,function(){var b=new StorageLibrary(this,k,a);b.saveFile(a,!1,mxUtils.bind(this,function(){this.hideDialog(!0);this.libraryLoaded(b,c)}),l)}),null==localStorage.getItem(a)?b():this.confirm(mxResources.get("replaceIt",[a]),b)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(b||this.spinner.spin(document.body,mxResources.get("saving"))){f.setData(k);
@@ -7927,40 +8037,12 @@ g()});a.constructor==LocalFile||a.constructor==DriveFile?k():a.saveFile(a.getTit
App.prototype.loadFile=function(a,c,f){this.hideDialog();var d=mxUtils.bind(this,function(){if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==a.charAt(0))if(this.spinner.stop(),isLocalStorage)try{a=decodeURIComponent(a.substring(1));var b=localStorage.getItem(a);if(null!=b)this.fileLoaded(new StorageFile(this,b,a));else throw{message:mxResources.get("fileNotFound")};}catch(c){this.handleError(c,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();
window.location.hash=null!=a?a.getHash():""}))}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}));else null!=f?(this.spinner.stop(),this.fileLoaded(f)):(b=null,"G"==a.charAt(0)?b=this.drive:"D"==a.charAt(0)?b=this.dropbox:"W"==a.charAt(0)&&(b=this.oneDrive),a=decodeURIComponent(a.substring(1)),null==b?this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},
mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""})):b.getFile(a,mxUtils.bind(this,function(a){this.spinner.stop();this.fileLoaded(a)}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash=
-a.getHash()}))})))});null==a||0==a.length?(this.editor.setStatus(""),this.fileLoaded(null)):null!=this.getCurrentFile()&&!this.isDiagramEmpty()&&!c?window.openWindow(this.getUrl()+"#"+a,null,d):d()};App.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName)c=JSON.parse(mxUtils.getTextContent(c.documentElement)),this.libraryLoaded(a,c);else throw{message:mxResources.get("notALibraryFile")};};
-App.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var f=0;f<c.length;f++)c[f].parentNode.removeChild(c[f]);delete this.sidebar.palettes[a]}};
+a.getHash()}))})))});null==a||0==a.length?(this.editor.setStatus(""),this.fileLoaded(null)):null!=this.getCurrentFile()&&!this.isDiagramEmpty()&&!c?window.openWindow(this.getUrl()+"#"+a,null,d):d()};
App.prototype.getLibraryStorageHint=function(a){var c="";a.constructor!=LocalLibrary&&(c+=a.getHash());a.constructor==DriveLibrary?c+=" ("+mxResources.get("googleDrive")+")":a.constructor==DropboxLibrary?c+=" ("+mxResources.get("dropbox")+")":a.constructor==OneDriveLibrary?c+=" ("+mxResources.get("oneDrive")+")":a.constructor==StorageLibrary?c+=" ("+mxResources.get("browser")+")":a.constructor==LocalLibrary&&(c+=" ("+mxResources.get("device")+")");return c};
-App.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};App.prototype.repositionLibrary=function(a){var c=this.sidebar.container;a=null!=a?a:c.firstChild.nextSibling.nextSibling;var f=c.lastChild,d=f.previousSibling;c.insertBefore(f,a);c.insertBefore(d,f)};
-App.prototype.toggleScratchpad=function(){if(isLocalStorage||mxClient.IS_CHROMEAPP)null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad)};
-App.prototype.libraryLoaded=function(a,c){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var f=this.sidebar.palettes[a.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var d=null,b=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==d&&(d=document.createElement("div"),mxUtils.setPrefixedStyle(d.style,"borderRadius","6px"),d.style.border="3px dotted lightGray",d.style.textAlign=
-"center",d.style.padding="8px",d.style.color="#B3B3B3",mxUtils.write(d,mxResources.get("dragElementsHere"))),c.appendChild(d);else for(var e=0;e<b.length;e++){var f=b[e],g=f.data;if(null!=g){var g=this.convertDataUri(g),k="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;",k="fixed"==f.aspect?k+"aspect\x3dfixed;":k+"imageAspect\x3d0;";c.appendChild(this.sidebar.createVertexTemplate(k+"image\x3d"+g,f.w,f.h,"",f.title||"",!1,!1,!1))}else null!=f.xml&&(g=this.stringToCells(this.editor.graph.decompress(f.xml)),
-0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,f.w,f.h,f.title||"",!0,!1,!1)))}}),e=this.sidebar.addPalette(a.getHash(),a.getTitle(),!0,mxUtils.bind(this,function(a){b(c,a)}));this.repositionLibrary(f);var f=e.parentNode.previousSibling,g=f.getAttribute("title");null!=g&&(0<g.length&&".scratchpad"!=a.title)&&f.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+g);var k=document.createElement("div");k.style.position="absolute";k.style.right="0px";k.style.top="5px";f.style.position=
-"relative";var l=document.createElement("img");l.setAttribute("src",Dialog.prototype.closeImage);l.setAttribute("title",mxResources.get("close"));l.setAttribute("align","top");l.setAttribute("border","0");l.style.cursor="pointer";l.style.marginRight="8px";l.style.marginTop="3px";k.appendChild(l);var n=null;mxEvent.addListener(l,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=n?this.confirm(mxResources.get("allChangesLost"),
-c):c();mxEvent.consume(b)}}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){mxEvent.getSource(a)==e?e.setAttribute("title",mxResources.get("libraryTooltip")):e.removeAttribute("title")}));if(a.isEditable()){var m=this.editor.graph,p=mxUtils.bind(this,function(b){this.showLibraryDialog(a.getTitle(),e,c,a,a.getMode());mxEvent.consume(b)}),q=mxUtils.bind(this,function(b){a.constructor!=LocalLibrary||a.isAutosave()?(null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t),t=l.cloneNode(!1),
-t.setAttribute("src",App.prototype.spinImage),t.setAttribute("title",mxResources.get("saving")),t.style.cursor="default",t.style.marginRight="6px",t.style.marginTop="2px",k.insertBefore(t,k.firstChild),this.saveLibrary(a.getTitle(),c,a,a.getMode(),!0,!0,function(){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)})):null==n&&(n=l.cloneNode(!1),n.setAttribute("src",IMAGE_PATH+"/download.png"),n.setAttribute("title",mxResources.get("save")),k.insertBefore(n,k.firstChild),mxEvent.addListener(n,
-"click",mxUtils.bind(this,function(b){this.saveLibrary(a.getTitle(),c,a,a.getMode(),!0,!0);n.parentNode.removeChild(n);n=null;mxEvent.consume(b)})))}),r=mxUtils.bind(this,function(a,b,f,g){a=m.cloneCells(m.model.getTopmostCells(a));for(var k=0;k<a.length;k++){var l=m.getCellGeometry(a[k]);null!=l&&l.translate(-b.x,-b.y)}e.appendChild(this.sidebar.createVertexTemplateFromCells(a,b.width,b.height,g||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:b.width,
-h:b.height};null!=g&&(a.title=g);c.push(a);q(f);null!=d&&(null!=d.parentNode&&0<c.length)&&(d.parentNode.removeChild(d),d=null)}),s=mxUtils.bind(this,function(a){if(m.isSelectionEmpty())m.getRubberband().isActive()?(m.getRubberband().execute(a),m.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=m.getSelectionCells(),c=m.view.getBounds(b),d=m.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=m.view.translate.x;
-c.y-=m.view.translate.y;r(b,c)}mxEvent.consume(a)});e.style.border="3px solid transparent";mxEvent.addGestureListeners(e,function(){},mxUtils.bind(this,function(a){m.isMouseDown&&(null!=m.panningManager&&null!=m.graphHandler.shape)&&(m.graphHandler.shape.node.style.visibility="hidden",null!=d?d.style.border="3px dotted rgb(254, 137, 12)":e.style.border="3px dotted rgb(254, 137, 12)",e.style.cursor="copy",m.panningManager.stop(),m.autoScroll=!1,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!1),
-null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){m.isMouseDown&&(null!=m.panningManager&&null!=m.graphHandler)&&(e.style.border="3px solid transparent",null!=d&&(d.style.border="3px dotted lightGray"),e.style.cursor="default",this.sidebar.showTooltips=!0,m.panningManager.stop(),m.graphHandler.reset(),m.isMouseDown=!1,m.autoScroll=!0,s(a),mxEvent.consume(a))}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){m.isMouseDown&&
-null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="visible",e.style.border="3px solid transparent",e.style.cursor="",m.autoScroll=!0,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!0),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="visible"),null!=d&&(d.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=d?d.style.border="3px dotted rgb(254, 137, 12)":e.style.border="3px dotted rgb(254, 137, 12)";
-a.dataTransfer.dropEffect="copy";e.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){e.style.border="3px solid transparent";e.style.cursor="";null!=d&&(d.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(f,g,k,l,m,n,p){if(null!=f&&"image/"==g.substring(0,6)){var s="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+
-this.convertDataUri(f),s=[new mxCell("",new mxGeometry(0,0,m,n),s)];s[0].vertex=!0;r(s,new mxRectangle(0,0,m,n),a,mxEvent.isAltDown(a)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," "))}else{p=!1;if(null!=f&&"text/xml"==g)if(f=mxUtils.parseXml(f),"mxlibrary"==f.documentElement.nodeName)try{var t=JSON.parse(mxUtils.getTextContent(f.documentElement));b(t,e);c=c.concat(t);q(a);this.spinner.stop();p=!0}catch(E){}else if("mxfile"==f.documentElement.nodeName)try{t=mxUtils.getTextContent(f.documentElement.getElementsByTagName("diagram")[0]),
-s=this.stringToCells(this.editor.graph.decompress(t)),r(s,new mxRectangle(0,0,m,n),a),p=!0}catch(H){}p||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}))}null!=d&&(null!=d.parentNode&&0<c.length)&&(d.parentNode.removeChild(d),d=null)}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(e,"dragleave",function(a){null!=d?d.style.border="3px dotted lightGray":(e.style.border="3px solid transparent",e.style.cursor="");a.stopPropagation();a.preventDefault()}));
-l=l.cloneNode(!1);l.setAttribute("src",IMAGE_PATH+"/edit.gif");l.setAttribute("title",mxResources.get("edit"));k.insertBefore(l,k.firstChild);mxEvent.addListener(l,"click",p);mxEvent.addListener(e,"dblclick",function(a){mxEvent.getSource(a)==e&&p(a)});l=l.cloneNode(!1);l.setAttribute("src",App.prototype.plusImage);l.setAttribute("title",mxResources.get("add"));k.insertBefore(l,k.firstChild);this.isOffline()||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText=
-"color:gray;text-decoration:none;margin-right:8px;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(a){window.open("https://support.draw.io/questions/10420280");mxEvent.consume(a)})),k.insertBefore(g,k.firstChild));var t=null;mxEvent.addListener(l,"click",s)}f.appendChild(k)};
-App.prototype.fileLoaded=function(a){this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var f=mxUtils.bind(this,function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";this.editor.graph.setEnabled(!1);
-null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{if(this.setCurrentFile(a),a.addListener("descriptorChanged",this.descriptorChangedListener),a.addListener("contentChanged",
-this.descriptorChangedListener),this.setMode(a.getMode()),this.descriptorChanged(),a.open(),this.diagramContainer.style.visibility="",this.formatContainer.style.visibility="",this.hsplit.style.display="",this.sidebarContainer.style.display="",this.sidebarFooterContainer.style.display="",this.editor.undoManager.clear(),this.updateUi(),null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus(mxResources.get("readOnly"))),this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():
-(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries()),this.chromelessResize&&this.chromelessResize(),this.editor.fireEvent(new mxEventObject("fileLoaded")),this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE)try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(d){}}catch(b){null!=window.console&&console.log("error in fileLoaded:",a,b),this.handleError(b,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&
-this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):f()}))}else f()};
App.prototype.restoreLibraries=function(){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var a=mxUtils.bind(this,function(a){mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),c=mxUtils.bind(this,function(c){if(null!=c)for(var d=0;d<c.length;d++){var b=encodeURIComponent(decodeURIComponent(c[d]));mxUtils.bind(this,function(b){if(null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){this.pendingLibraries[b]=!0;var c=b.substring(0,1);if("L"==
c){if(isLocalStorage||mxClient.IS_CHROMEAPP)try{var d=decodeURIComponent(b.substring(1));this.getLocalData(d,mxUtils.bind(this,function(c){".scratchpad"==d&&null==c&&(c=this.emptyLibraryXml);null!=c?this.loadLibrary(new StorageLibrary(this,c,d)):a(b)}))}catch(f){a(b)}}else if("U"==c){var n=decodeURIComponent(b.substring(1));this.isOffline()||mxUtils.get(PROXY_URL+"?url\x3d"+encodeURIComponent(n),mxUtils.bind(this,function(c){if(200==c.getStatus())try{this.loadLibrary(new UrlLibrary(this,c.getText(),
n)),delete this.pendingLibraries[b]}catch(d){a(b)}else a(b)}),function(){a(b)})}else{var m=null;"G"==c?null!=this.drive&&null!=this.drive.user&&(m=this.drive):"D"==c?null!=this.dropbox&&null!=this.dropbox.getUser()&&(m=this.dropbox):"W"==c&&(null!=this.oneDrive&&null!=this.oneDrive.getUser())&&(m=this.oneDrive);null!=m&&m.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(c){try{this.loadLibrary(c),delete this.pendingLibraries[b]}catch(d){a(b)}}),function(c){a(b)})}}})(b)}});
c(mxSettings.getCustomLibraries());c((urlParams.clibs||"").split(";"))}};
-App.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),c=null!=a||"1"==urlParams.embed;this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var f="1"!=urlParams.embed&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!f);this.actions.get("print").setEnabled(!f);this.menus.get("exportAs").setEnabled(!f);this.menus.get("embed").setEnabled(!f);a="1"==urlParams.embed||null!=a&&a.isEditable();
-this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));if(this.isOfflineApp()){if((mxClient.IS_GC||
-mxClient.IS_IOS&&mxClient.IS_SF)&&null!=applicationCache){var d=applicationCache;if(null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin="4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign=
-"middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);var b=window.setTimeout(mxUtils.bind(this,function(){d.status==d.IDLE&&(this.offlineStatus.innerHTML='[\x3cimg title\x3d"Cached" border\x3d"0" src\x3d"'+IMAGE_PATH+'/checkmark.gif"/\x3e]',window.clearTimeout(b))}),5E3)}}}else this.updateUserElement()};
App.prototype.exportImage=function(a,c,f,d,b){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var e=this.editor.graph.isSelectionEmpty();f=null!=f?f:e;try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,b?this.getFileData(!0,null,null,null,f):null)}catch(c){"Invalid image"==c.message?this.downloadFile("png"):this.handleError(c)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,f,a||1,c,d)}catch(g){this.spinner.stop(),
this.handleError(g)}}};
EditorUi.prototype.exportSvg=function(a,c,f,d,b,e){var g=this.editor.graph.isSelectionEmpty();f=null!=f?f:g;g=c?null:this.editor.graph.background;g==mxConstants.NONE&&(g=null);null==g&&!1==c&&(g="#ffffff");var k=this.editor.graph.getSvg(g,a,null,null,null,f);d&&this.editor.addSvgShadow(k);a=this.getCurrentFile();var l=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=l.lastIndexOf(".");0<a&&(l=l.substring(0,a));l+=".svg";if(this.spinner.spin(document.body,mxResources.get("export"))){var n=mxUtils.bind(this,
@@ -7983,26 +8065,10 @@ App.prototype.doSaveLocalFile=function(a,c,f,d){if(window.MSBlobBuilder&&navigat
b.download=c;document.body.appendChild(b);mxClient.IS_SF&&b.setAttribute("target","_blank");try{b.click(),window.setTimeout(function(){URL.revokeObjectURL(b.href)},0),b.parentNode.removeChild(b)}catch(e){}}};
App.prototype.saveLocalFile=function(a,c,f,d){if(this.isOfflineApp()||this.isOffline())this.doSaveLocalFile(a,c,f,d);else{var b=!mxClient.IS_IOS||!navigator.standalone;c=new CreateDialog(this,c,mxUtils.bind(this,function(b,c){try{if("_blank"==c)if(mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var k="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(a):"\x26data\x3d"+encodeURIComponent(this.editor.graph.compress(a));(new mxXmlRequest(SAVE_URL,"mime\x3d"+f+k)).simulate(document,
"_blank")}else window.open("data:"+f+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a)));else c==App.MODE_DEVICE?this.doSaveLocalFile(a,b,f,d):null!=b&&0<b.length&&this.pickFolder(c,mxUtils.bind(this,function(k){this.exportFile(a,b,f,d,c,k)}))}catch(l){this.handleError(l)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,b);this.showDialog(c.container,380,280,!0,!0);c.init()}};
-App.prototype.getHtml=function(a,c,f,d,b,e){e=null!=e?e:!0;var g=null,k="https://www.draw.io/js/embed-static.min.js";if(null!=c){var g=e?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;e=Math.floor(g.x/l-c.view.translate.x);l=Math.floor(g.y/l-c.view.translate.y);g=c.background;null==b&&(c=this.getBasenames().join(";"),0<c.length&&(k="https://www.draw.io/embed.js?s\x3d"+c));a.setAttribute("x0",e);a.setAttribute("y0",l)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom",
-"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=b&&(b=b.replace(/&/g,"\x26amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==b?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+
-(null!=b?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==b?null!=f?"\x3ctitle\x3e"+mxUtils.htmlEntities(f)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=b?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+b+"'\"/\x3e\n":"")+"\x3c/head\x3e\n\x3cbody"+(null==b&&null!=g&&g!=mxConstants.NONE?' style\x3d"background-color:'+g+';"\x3e':"\x3e")+'\n\x3cdiv class\x3d"mxgraph" style\x3d"position:relative;overflow:auto;width:100%;"\x3e\n\x3cdiv style\x3d"width:1px;height:1px;overflow:hidden;"\x3e'+
-d+"\x3c/div\x3e\n\x3c/div\x3e\n"+(null==b?'\x3cscript type\x3d"text/javascript" src\x3d"'+k+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+b+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};
-App.prototype.getHtml2=function(a,c,f,d,b){d="https://www.draw.io/js/viewer.min.js";var e="";null!=c&&null==b&&(e=this.getBasenames().join(";"),0<e.length&&(d="https://www.draw.io/embed2.js?s\x3d"+e));null!=b&&(b=b.replace(/&/g,"\x26amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==b?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':
-"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+(null!=b?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==b?null!=f?"\x3ctitle\x3e"+mxUtils.htmlEntities(f)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=b?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+b+"'\"/\x3e\n":"")+'\x3cmeta charset\x3d"utf-8"/\x3e\n\x3c/head\x3e\n\x3cbody\x3e\n\x3cdiv class\x3d"mxgraph" style\x3d"max-width:100%;border:1px solid transparent;" data-mxgraph\x3d"'+
-mxUtils.htmlEntities(JSON.stringify(a))+'"\x3e\x3c/div\x3e\n'+(null==b?'\x3cscript type\x3d"text/javascript" src\x3d"'+d+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+b+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};
-App.prototype.saveData=function(a,c,f,d){this.isLocalFileSave()?this.saveLocalFile(f,a,d):this.saveRequest(f,a,c,mxUtils.bind(this,function(a,d){var g="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(f):"\x26data\x3d"+encodeURIComponent(this.editor.graph.compress(f));return new mxXmlRequest(SAVE_URL,"format\x3d"+c+(null!=a?"\x26filename\x3d"+encodeURIComponent(a):"")+g)}))};
-App.prototype.downloadFile=function(a,c,f,d,b){try{var e=this.getCurrentFile();d=null!=d?d:this.editor.graph.isSelectionEmpty();var g=null!=e&&null!=e.getTitle()?e.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(g)||/(\.html)$/i.test(g)||/(\.svg)$/i.test(g))g=g.substring(0,g.lastIndexOf("."));var k=g+"."+a;if("xml"==a){var l='\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n'+(c?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,b));this.saveData(k,a,l,"text/xml")}else if("html"==
-a)l=this.getHtml2(this.getFileData(!0),this.editor.graph,g),this.saveData(k,a,l,"text/html");else if(("svg"==a||"xmlsvg"==a)&&this.spinner.spin(document.body,mxResources.get("export"))){var n=null,m=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(n)}))});if("svg"==a){var p=this.editor.graph.background;p==mxConstants.NONE&&
-(p=null);var q=this.editor.graph.getSvg(p,null,null,!1,null,d);f&&this.editor.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();m('\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a))})))}else k=g+".svg",n=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();m(a)}),d)}else{var r=this.editor.graph.getGraphBounds(),
-l=this.getFileData(!0,null,null,null,d,"xmlpng"!=a),s="";if(r.width*r.height<=MAX_AREA&&l.length<=MAX_REQUEST_SIZE){var t="0";if("xmlpng"==a&&(t="1",a="png",k=g+"."+a,null!=this.pages&&null!=this.currentPage))for(c=0;c<this.pages.length;c++)if(this.pages[c]==this.currentPage){s="\x26from\x3d"+c;break}this.saveRequest(l,k,a,function(b,c){return new mxXmlRequest(EXPORT_URL,"format\x3d"+a+s+"\x26base64\x3d"+c+"\x26embedXml\x3d"+t+"\x26xml\x3d"+encodeURIComponent(l)+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):
-""))})}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}}catch(u){this.handleError(u)}};App.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};
+App.prototype.saveData=function(a,c,f,d){this.isLocalFileSave()?this.saveLocalFile(f,a,d):this.saveRequest(f,a,c,mxUtils.bind(this,function(a,d){var g="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(f):"\x26data\x3d"+encodeURIComponent(this.editor.graph.compress(f));return new mxXmlRequest(SAVE_URL,"format\x3d"+c+(null!=a?"\x26filename\x3d"+encodeURIComponent(a):"")+g)}))};App.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};
App.prototype.descriptorChanged=function(){var a=this.getCurrentFile();if(null!=a){if(null!=this.fname){this.fnameWrapper.style.display="block";this.fname.innerHTML="";var c=null!=a.getTitle()?a.getTitle():this.defaultFilename;mxUtils.write(this.fname,c);this.fname.setAttribute("title",c+" - "+mxResources.get("rename"))}this.editor.graph.setEnabled(a.isEditable());null==urlParams.rev&&(this.updateDocumentTitle(),a=a.getHash(),0<a.length?window.location.hash=a:0<window.location.hash.length&&(window.location.hash=
-""))}};
-App.prototype.handleError=function(a,c,f){var d=this.spinner.pause(),b=null!=a&&null!=a.error?a.error:a;if(null!=b||null!=c){a=mxResources.get("unknownError");var e=mxResources.get("ok"),g=null;c=null!=c?c:mxResources.get("error");if(null!=b)if("undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&b.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxResources.get("forbidden");else if(404==b.code||404==b.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&
-"undefined"!=typeof gapi.drive.realtime&&b.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxResources.get("fileNotFoundOrDenied");var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),a+=' \x3ca href\x3d"https://drive.google.com/open?id\x3d'+k+'" target\x3d"_blank"\x3e'+mxResources.get("tryOpeningViaThisPage")+"\x3c/a\x3e")}else b.code==App.ERROR_TIMEOUT?(a=mxResources.get("timeout"),null!=b.retry&&(e=mxResources.get("cancel"),g=function(){d();b.retry()})):b.code==App.ERROR_BUSY?
-a=mxResources.get("busy"):null!=b.message?a=b.message:null!=b.response&&null!=b.response.error&&(a=b.response.error);this.showError(c,a,e,f,g)}else null!=f&&f()};App.prototype.showError=function(a,c,f,d,b,e,g){a=new ErrorDialog(this,a,c,f,d,b,e,g);this.showDialog(a.container,340,150,!0,!1);a.init()};App.prototype.alert=function(a,c){var f=new ErrorDialog(this,null,a,mxResources.get("ok"),c);this.showDialog(f.container,340,100,!0,!1);f.init()};
-App.prototype.confirm=function(a,c,f){var d=null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=c&&c()},function(){d();null!=f&&f()})).container,340,90,!0,!1)};App.prototype.toggleChat=function(){var a=this.getCurrentFile();if(null!=a){if(null==a.chatWindow){var c=document.body.offsetWidth-300;a.chatWindow=new ChatWindow(this,mxResources.get("chatWindowTitle"),document.getElementById("geChat"),c,80,250,350,a.realtime);a.chatWindow.window.setVisible(!1)}a.chatWindow.window.setVisible(!a.chatWindow.window.isVisible())}};
-App.prototype.status=function(a){this.editor.setStatus(a)};App.prototype.showAuthDialog=function(a,c,f){var d=this.spinner.pause();this.showDialog((new AuthDialog(this,a,c,mxUtils.bind(this,function(a){try{null!=f&&f(a,function(){d()})}catch(c){this.editor.setStatus(c.message)}}))).container,300,c?180:140,!0,!0,mxUtils.bind(this,function(a){a&&(null==this.getCurrentFile()&&null==this.dialog)&&this.showSplash()}))};
+""))}};App.prototype.toggleChat=function(){var a=this.getCurrentFile();if(null!=a){if(null==a.chatWindow){var c=document.body.offsetWidth-300;a.chatWindow=new ChatWindow(this,mxResources.get("chatWindowTitle"),document.getElementById("geChat"),c,80,250,350,a.realtime);a.chatWindow.window.setVisible(!1)}a.chatWindow.window.setVisible(!a.chatWindow.window.isVisible())}};App.prototype.status=function(a){this.editor.setStatus(a)};
+App.prototype.showAuthDialog=function(a,c,f){var d=this.spinner.pause();this.showDialog((new AuthDialog(this,a,c,mxUtils.bind(this,function(a){try{null!=f&&f(a,function(){d()})}catch(c){this.editor.setStatus(c.message)}}))).container,300,c?180:140,!0,!0,mxUtils.bind(this,function(a){a&&(null==this.getCurrentFile()&&null==this.dialog)&&this.showSplash()}))};
App.prototype.loadUrl=function(a,c,f,d,b){try{var e=d||/(\.png)($|\?)/i.test(a);b=null!=b?b:!0;var g=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200==a.getStatus()){if(null!=c){var b=a.getText();if(e){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var b=Array(a.length),d=0;d<a.length;d++)b[d]=String.fromCharCode(a[d]);b=b.join("")}b="data:image/png;base64,"+
this.base64Encode(b)}c(b)}}else null!=f&&f({code:App.ERROR_UNKNOWN})}),function(){null!=f&&f({code:App.ERROR_UNKNOWN})},e,this.timeout,function(){b&&null!=f&&f({code:App.ERROR_TIMEOUT,retry:g})})});g()}catch(k){null!=f&&f(k)}};
App.prototype.updateHeader=function(){if(null!=this.menubar){this.appIcon=document.createElement("a");this.appIcon.style.display="block";this.appIcon.style.position="absolute";this.appIcon.style.width="40px";this.appIcon.style.backgroundColor="#f18808";this.appIcon.style.height=this.menubarHeight+"px";mxEvent.disableContextMenu(this.appIcon);mxEvent.addListener(this.appIcon,"click",mxUtils.bind(this,function(a){this.appIconClicked(a)}));var a=!mxClient.IS_SVG?"url('"+IMAGE_PATH+"/logo-white.png')":
@@ -8091,11 +8157,11 @@ mxResources.get("open"))}));a.actions.addAction("facebook...",mxUtils.bind(this,
"\x26via\x3ddrawio\x26hashtags\x3dmadewithdrawio\x26url\x3d"+encodeURIComponent("https://imgur.com/"+a))})}));a.actions.addAction("github...",mxUtils.bind(this,function(){a.publishImage(mxUtils.bind(a,a.uploadToGithub))}));this.put("publish",new Menu(mxUtils.bind(this,function(b,c){if(null==document.documentMode||10<=document.documentMode)this.addMenuItems(b,["imgur"],c),this.addMenuItems(b,["twitter"],c),this.addMenuItems(b,["facebook"],c),"undefined"!==typeof XMLHttpRequest&&this.addMenuItems(b,
["github"],c);!navigator.standalone&&!a.isOffline()&&this.addMenuItems(b,["publishLink"],c)})));a.actions.put("offline",new Action(mxResources.get("offline")+"...",function(){window.open("http://www.draw.io/app")}));a.actions.put("chromeApp",new Action(mxResources.get("chromeApp")+"...",function(){window.open("https://chrome.google.com/webstore/detail/drawio-desktop/pebppomjfocnoigkeepgbmcifnnlndla")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();
null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);!navigator.standalone&&!a.isOffline()&&this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));this.put("arrange",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["toFront","toBack","-"],
-b);this.addSubmenu("direction",a,b);this.addMenuItems(a,["turn","-"],b);this.addSubmenu("align",a,b);this.addSubmenu("distribute",a,b);a.addSeparator(b);this.addSubmenu("navigation",a,b);this.addSubmenu("insert",a,b);this.addSubmenu("layout",a,b);this.addMenuItems(a,"- group ungroup removeFromGroup - editGeometry clearWaypoints autosize".split(" "),b)})));var q="horizontalFlow verticalFlow - horizontalTree verticalTree - organic circle - fromText".split(" "),r=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,
+b);this.addSubmenu("direction",a,b);this.addMenuItems(a,["turn","-"],b);this.addSubmenu("align",a,b);this.addSubmenu("distribute",a,b);a.addSeparator(b);this.addSubmenu("navigation",a,b);this.addSubmenu("insert",a,b);this.addSubmenu("layout",a,b);this.addMenuItems(a,"- group ungroup removeFromGroup - editGeometry clearWaypoints autosize".split(" "),b)})));var r="horizontalFlow verticalFlow - horizontalTree verticalTree - organic circle - fromText".split(" "),s=function(b,c,d,e){b.addItem(d,null,mxUtils.bind(this,
function(){if("fromText"==e){var b=new ParseDialog(a,d);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)};a.actions.addAction("insertText",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint(),a=new mxCell("Text",new mxGeometry(a.x,a.y,40,20),"text;html\x3d1;resizable\x3d0;autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;points\x3d[];");
a.vertex=!0;d.startEditingAtCell(d.addCell(a))}},null,null,"Ctrl+Shift+X").isEnabled=b;a.actions.addAction("insertRectangle",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint(),a=new mxCell("",new mxGeometry(a.x,a.y,120,60),"whiteSpace\x3dwrap;html\x3d1;");a.vertex=!0;d.setSelectionCell(d.addCell(a));d.scrollCellToVisible(d.getSelectionCell())}},null,null,"Ctrl+K").isEnabled=b;a.actions.addAction("insertEllipse",
function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint(),a=new mxCell("",new mxGeometry(a.x,a.y,80,80),"ellipse;whiteSpace\x3dwrap;html\x3d1;");a.vertex=!0;d.setSelectionCell(d.addCell(a));d.scrollCellToVisible(d.getSelectionCell())}},null,null,"Ctrl+Shift+K").isEnabled=b;this.put("insert",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"insertText insertRectangle insertEllipse - insertLink insertImage".split(" "),
-b);a.addSeparator(b);for(var c=0;c<q.length;c++)"-"==q[c]?a.addSeparator(b):r(a,b,mxResources.get(q[c]),q[c])})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent(),e=0;if(null!=d){for(var g=0;g<d.length;g++)(function(d){e++;var g=d.mode;g==App.MODE_GOOGLE?g="googleDrive":g==App.MODE_ONEDRIVE&&(g="oneDrive");b.addItem(d.title+" ("+mxResources.get(g)+")",null,function(){a.loadFile(d.id)},c)})(d[g]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},
+b);a.addSeparator(b);for(var c=0;c<r.length;c++)"-"==r[c]?a.addSeparator(b):s(a,b,mxResources.get(r[c]),r[c])})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent(),e=0;if(null!=d){for(var g=0;g<d.length;g++)(function(d){e++;var g=d.mode;g==App.MODE_GOOGLE?g="googleDrive":g==App.MODE_ONEDRIVE&&(g="oneDrive");b.addItem(d.title+" ("+mxResources.get(g)+")",null,function(){a.loadFile(d.id)},c)})(d[g]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},
c)}));this.put("openFrom",new Menu(function(b,c){null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)},c):e&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},c):g&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?
b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickFile(App.MODE_ONEDRIVE)},c):k&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)},c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+
"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))}));this.put("newLibrary",new Menu(function(b,c){null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},
@@ -8113,9 +8179,9 @@ a.isOffline()||this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy
["-","revisionHistory"],c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);(!mxClient.IS_IOS||!navigator.standalone)&&this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))}})();function DiagramPage(a){this.node=a}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,c,f){this.ui=a;this.page=c;this.previous=f}
RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};function MovePage(a,c,f){this.ui=a;this.oldIndex=c;this.newIndex=f}
MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};function SelectPage(a,c){this.ui=a;this.previousPage=this.page=c;this.neverShown=null==this.page.viewState;null!=c&&this.ui.updatePageRoot(c)}
-SelectPage.prototype.execute=function(){if(null!=this.page&&0<=mxUtils.indexOf(this.ui.pages,this.previousPage)){var a=this.ui.currentPage,c=this.ui.editor,f=c.graph,d=c.graph.compress(f.zapGremlins(mxUtils.getXml(c.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=f.getViewState();a.root=f.model.root;f.view.clear(a.root,!0);f.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;f.model.rootChanged(a.root);f.setViewState(a.viewState);c.fireEvent(new mxEventObject("setViewState",
-"change",this));f.gridEnabled=f.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);c.updateGraphComponents();f.view.validate();f.sizeDidChange();this.neverShown&&(this.neverShown=!1,f.selectUnlockedLayer());c.graph.fireEvent(new mxEventObject(mxEvent.ROOT));c.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,c,f,d){SelectPage.call(this,a,f);this.relatedPage=c;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
-ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
+SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,c=this.ui.editor,f=c.graph,d=c.graph.compress(f.zapGremlins(mxUtils.getXml(c.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=f.getViewState();a.root=f.model.root;f.view.clear(a.root,!0);f.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;f.model.rootChanged(a.root);f.setViewState(a.viewState);
+c.fireEvent(new mxEventObject("setViewState","change",this));f.gridEnabled=f.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);c.updateGraphComponents();f.view.validate();f.sizeDidChange();this.neverShown&&(this.neverShown=!1,f.selectUnlockedLayer());c.graph.fireEvent(new mxEventObject(mxEvent.ROOT));c.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,c,f,d){SelectPage.call(this,a,f);this.relatedPage=c;this.index=d;this.previousIndex=null}
+mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,c=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var b=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";b!=this.tabContainer.style.height&&this.refresh(!1)}c.apply(a.view,arguments)});var f=!1,d=null,b=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=d&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),d=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?f||(1==MathJax.Hub.queue.pending&&!this.editor.graph.mathEnabled&&MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){f=!0}))):"undefined"!==typeof Editor.MathJaxClear&&
diff --git a/war/js/atlas-viewer.min.js b/war/js/atlas-viewer.min.js
index 38f82548..5d30b71d 100644
--- a/war/js/atlas-viewer.min.js
+++ b/war/js/atlas-viewer.min.js
@@ -1,12 +1,12 @@
-var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=!1;!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-");c=0.01+100*(c/d);d=Math.max(1-(1-a)/b*(100-c),a);var f=l.substring(0,l.indexOf("Animation")).toLowerCase();return n[e]||(q.insertRule("@"+
-(f&&"-"+f+"-"||"")+"keyframes "+e+"{0%{opacity:"+d+"}"+c+"%{opacity:"+a+"}"+(c+0.01)+"%{opacity:1}"+(c+b)%100+"%{opacity:"+a+"}100%{opacity:"+d+"}}",q.cssRules.length),n[e]=1),e}function d(a,b){var c,d,e=a.style;b=b.charAt(0).toUpperCase()+b.slice(1);for(d=0;d<m.length;d++)if(c=m[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b],d;for(d in c)void 0===a[d]&&(a[d]=
-c[d])}return a}function g(a){this.opts=f(a||{},g.defaults,p)}function k(){function c(b,d){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',d)}q.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:m+" "+m,coordorigin:-l+" "+-l}),{width:m,height:m})}function g(a,k,m){b(p,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~k}),b(e(c("roundrect",{arcsize:d.corners}),{width:l,height:d.width,left:d.radius,
-top:-d.width>>1,filter:m}),c("fill",{color:"string"==typeof d.color?d.color:d.color[a%d.color.length],opacity:d.opacity}),c("stroke",{opacity:0}))))}var k,l=d.length+d.width,m=2*l;k=2*-(d.width+d.length)+"px";var p=e(f(),{position:"absolute",top:k,left:k});if(d.shadow)for(k=1;k<=d.lines;k++)g(k,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(k=1;k<=d.lines;k++)g(k);return b(a,p)};g.prototype.opacity=function(a,b,c,d){a=a.firstChild;d=d.shadow&&
-d.lines||0;a&&b+d<a.childNodes.length&&(a=a.childNodes[b+d],a=a&&a.firstChild,a=a&&a.firstChild,a&&(a.opacity=c))}}var l,m=["webkit","Moz","ms","O"],n={},q=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),p={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};f(g.prototype,
-{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,m=(d.lines-1)*(1-d.direction)/2,p=d.fps,r=p/d.speed,n=(1-d.opacity)/(r*d.trail/100),q=r/d.lines;!function H(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*q)%r*n,d.opacity),c.opacity(f,
-a*d.direction+m,g,d);c.timeout=c.el&&setTimeout(H,~~(1E3/p))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function g(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*m+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var k,
-m=0,p=(f.lines-1)*(1-f.direction)/2;m<f.lines;m++)k=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:l&&c(f.opacity,f.trail,p+m*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(k,e(g("#000","0 0 4px #000"),{top:"2px"})),b(d,b(k,g("string"==typeof f.color?f.color:f.color[m%f.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});
-var r=e(a("group"),{behavior:"url(#default#VML)"});return!d(r,"transform")&&r.adj?k():l=d(r,"animation"),g});(function(){var a=void 0,b=!0,c=null,d=!1,e=["aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkturquoise darkviolet deeppink deepskyblue dimgray dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray snow springgreen steelblue tan teal thistle tomato transparent turquoise violet wheat white whitesmoke yellow yellowgreen".split(" "),
+var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=!1;!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-");c=0.01+100*(c/d);d=Math.max(1-(1-a)/b*(100-c),a);var f=l.substring(0,l.indexOf("Animation")).toLowerCase();return m[e]||(p.insertRule("@"+
+(f&&"-"+f+"-"||"")+"keyframes "+e+"{0%{opacity:"+d+"}"+c+"%{opacity:"+a+"}"+(c+0.01)+"%{opacity:1}"+(c+b)%100+"%{opacity:"+a+"}100%{opacity:"+d+"}}",p.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;b=b.charAt(0).toUpperCase()+b.slice(1);for(d=0;d<n.length;d++)if(c=n[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b],d;for(d in c)void 0===a[d]&&(a[d]=
+c[d])}return a}function g(a){this.opts=f(a||{},g.defaults,q)}function k(){function c(b,d){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',d)}p.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:n+" "+n,coordorigin:-l+" "+-l}),{width:n,height:n})}function g(a,k,n){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~k}),b(e(c("roundrect",{arcsize:d.corners}),{width:l,height:d.width,left:d.radius,
+top:-d.width>>1,filter:n}),c("fill",{color:"string"==typeof d.color?d.color:d.color[a%d.color.length],opacity:d.opacity}),c("stroke",{opacity:0}))))}var k,l=d.length+d.width,n=2*l;k=2*-(d.width+d.length)+"px";var m=e(f(),{position:"absolute",top:k,left:k});if(d.shadow)for(k=1;k<=d.lines;k++)g(k,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(k=1;k<=d.lines;k++)g(k);return b(a,m)};g.prototype.opacity=function(a,b,c,d){a=a.firstChild;d=d.shadow&&
+d.lines||0;a&&b+d<a.childNodes.length&&(a=a.childNodes[b+d],a=a&&a.firstChild,a=a&&a.firstChild,a&&(a.opacity=c))}}var l,n=["webkit","Moz","ms","O"],m={},p=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),q={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};f(g.prototype,
+{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,n=(d.lines-1)*(1-d.direction)/2,m=d.fps,p=m/d.speed,q=(1-d.opacity)/(p*d.trail/100),s=p/d.lines;!function H(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*s)%p*q,d.opacity),c.opacity(f,
+a*d.direction+n,g,d);c.timeout=c.el&&setTimeout(H,~~(1E3/m))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function g(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*n+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var k,
+n=0,m=(f.lines-1)*(1-f.direction)/2;n<f.lines;n++)k=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:l&&c(f.opacity,f.trail,m+n*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(k,e(g("#000","0 0 4px #000"),{top:"2px"})),b(d,b(k,g("string"==typeof f.color?f.color:f.color[n%f.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});
+var s=e(a("group"),{behavior:"url(#default#VML)"});return!d(s,"transform")&&s.adj?k():l=d(s,"animation"),g});(function(){var a=void 0,b=!0,c=null,d=!1,e=["aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkturquoise darkviolet deeppink deepskyblue dimgray dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray snow springgreen steelblue tan teal thistle tomato transparent turquoise violet wheat white whitesmoke yellow yellowgreen".split(" "),
"all-scroll col-resize crosshair default e-resize hand help move n-resize ne-resize no-drop not-allowed nw-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait".split(" "),"armenian decimal decimal-leading-zero disc georgian lower-alpha lower-greek lower-latin lower-roman square upper-alpha upper-latin upper-roman".split(" "),"100 200 300 400 500 600 700 800 900 bold bolder lighter".split(" "),"block-level inline-level table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group".split(" "),
"condensed expanded extra-condensed extra-expanded narrower semi-condensed semi-expanded ultra-condensed ultra-expanded wider".split(" "),"inherit inline inline-block inline-box inline-flex inline-grid inline-list-item inline-stack inline-table run-in".split(" "),"behind center-left center-right far-left far-right left-side leftwards right-side rightwards".split(" "),"large larger small smaller x-large x-small xx-large xx-small".split(" "),"dashed dotted double groove outset ridge solid".split(" "),
"ease ease-in ease-in-out ease-out linear step-end step-start".split(" "),"at closest-corner closest-side ellipse farthest-corner farthest-side".split(" "),"baseline middle sub super text-bottom text-top".split(" "),"caption icon menu message-box small-caption status-bar".split(" "),"fast faster slow slower x-fast x-slow".split(" "),["above","below","higher","level","lower"],["cursive","fantasy","monospace","sans-serif","serif"],["loud","silent","soft","x-loud","x-soft"],["no-repeat","repeat-x","repeat-y",
@@ -35,31 +35,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 k,l;(function(){function a(b){var c=parseInt(b.substring(1),16);return 65535<c?(c-=65536,String.fromCharCode(55296+(c>>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"),p=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(m,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,m=a.length;k<m;++k){var r=l(a[k]),n=r.length,q=r.charCodeAt(0),r=34==q||39==q?b(r.substring(1,n-1),c):47==q&&1<n||"\\"==r||"--\x3e"==r||"\x3c!--"==r||"\ufeff"==
-r||32>=q?" ":/url\(/i.test(r)?"url("+b(r.replace(p,""),d)+")":r;if(f!=r||" "!=r)a[e++]=f=r}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var m=function(){function a(b){b=(""+b).match(p);return!b?c:new g(k(b[1]),k(b[2]),k(b[3]),k(b[4]),k(b[5]),k(b[6]),k(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=l,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,k=e(g);if(d)c.ca(b.V()),k=k&&k.replace(m,"");else if(d=!!g){if(47!==k.charCodeAt(0))var k=e(c.g||"").replace(m,""),l=k.lastIndexOf("/")+1,k=e((l?k.substring(0,l):"")+e(g)).replace(m,"")}else k=k&&k.replace(m,""),k!==g&&c.G(k);d?c.G(k):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,k){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=k}function k(a){return"string"==typeof a&&0<a.length?a:c}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),m=/^(?:\.\.\/)*(?:\.\.$)?/;g.prototype.toString=function(){var a=[];c!==this.j&&a.push(this.j,":");c!==this.k&&(a.push("//"),c!==this.n&&a.push(this.n,"@"),a.push(this.k),c!==this.h&&a.push(":",this.h.toString()));c!==this.g&&a.push(this.g);c!==this.l&&a.push("?",
+"gi"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(n,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,n=a.length;k<n;++k){var p=l(a[k]),q=p.length,s=p.charCodeAt(0),p=34==s||39==s?b(p.substring(1,q-1),c):47==s&&1<q||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
+p||32>=s?" ":/url\(/i.test(p)?"url("+b(p.replace(m,""),d)+")":p;if(f!=p||" "!=p)a[e++]=f=p}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var n=function(){function a(b){b=(""+b).match(m);return!b?c:new g(k(b[1]),k(b[2]),k(b[3]),k(b[4]),k(b[5]),k(b[6]),k(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=l,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,k=e(g);if(d)c.ca(b.V()),k=k&&k.replace(n,"");else if(d=!!g){if(47!==k.charCodeAt(0))var k=e(c.g||"").replace(n,""),l=k.lastIndexOf("/")+1,k=e((l?k.substring(0,l):"")+e(g)).replace(n,"")}else k=k&&k.replace(n,""),k!==g&&c.G(k);d?c.G(k):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,k){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=k}function k(a){return"string"==typeof a&&0<a.length?a:c}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),n=/^(?:\.\.\/)*(?:\.\.$)?/;g.prototype.toString=function(){var a=[];c!==this.j&&a.push(this.j,":");c!==this.k&&(a.push("//"),c!==this.n&&a.push(this.n,"@"),a.push(this.k),c!==this.h&&a.push(":",this.h.toString()));c!==this.g&&a.push(this.g);c!==this.l&&a.push("?",
this.l);c!==this.o&&a.push("#",this.o);return a.join("")};g.prototype.T=function(){return new g(this.j,this.n,this.k,this.h,this.g,this.l,this.o)};g.prototype.W=function(){return this.j&&decodeURIComponent(this.j).toLowerCase()};g.prototype.ga=function(a){this.j=a?a:c};g.prototype.K=function(){return c!==this.j};g.prototype.da=function(a){this.n=a?a:c};g.prototype.X=function(){return c!==this.n};g.prototype.ea=function(a){this.k=a?a:c;this.G(this.g)};g.prototype.Y=function(){return c!==this.k};g.prototype.V=
function(){return this.h&&decodeURIComponent(this.h)};g.prototype.ca=function(a){if(a){a=Number(a);if(a!==(a&65535))throw Error("Bad port number "+a);this.h=""+a}else this.h=c};g.prototype.$=function(){return c!==this.h};g.prototype.U=function(){return this.g&&decodeURIComponent(this.g)};g.prototype.G=function(a){a?(a=""+a,this.g=!this.k||/^\//.test(a)?a:"/"+a):this.g=c};g.prototype.O=function(a){this.l=a?a:c};g.prototype.aa=function(){return c!==this.l};g.prototype.ba=function(a){if("object"===typeof a&&
-!(a instanceof Array)&&(a instanceof Object||"[object Array]"!==Object.prototype.toString.call(a))){var b=[],c=-1,d;for(d in a){var e=a[d];"string"===typeof e&&(b[++c]=d,b[++c]=e)}a=b}for(var b=[],c="",f=0;f<a.length;)d=a[f++],e=a[f++],b.push(c,encodeURIComponent(d.toString())),c="\x26",e&&b.push("\x3d",encodeURIComponent(e.toString()));this.l=b.join("")};g.prototype.fa=function(a){this.o=a?a:c};g.prototype.Z=function(){return c!==this.o};var p=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
-r=/[#\/\?@]/g,n=/[\#\?]/g;g.parse=a;g.create=function(a,e,f,k,l,m,p){a=new g(b(a,r),b(e,r),"string"==typeof f?encodeURIComponent(f):c,0<k?k.toString():c,b(l,n),c,"string"==typeof p?encodeURIComponent(p):c);m&&("string"===typeof m?a.O(m.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):a.ba(m));return a};g.N=f;g.ma=e;g.ha={ua:function(b){return/\.html$/.test(a(b).U())?"text/html":"application/javascript"},N:function(b,c){return b?f(a(b),a(c)).toString():""+c}};return g}();"undefined"!==typeof window&&(window.URI=
-m);var n=a,q=a,p=a,r=a;(function(){function e(a){return"string"===typeof a?'url("'+a.replace(D,g)+'")':'url("about:blank")'}function g(a){return E[a]}function k(a,b){return a?m.ha.N(a,b):b}function t(a,b,d){if(!d)return c;var e=(""+a).match(A);return e&&(!e[1]||F.test(e[1]))?d(a,b):c}function G(a){return a.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var D=/[\n\f\r\"\'()*<>]/g,E={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
-"\x3c":"%3c","\x3e":"%3e"},A=/^(?:([^:/?# ]+):)?/,F=/^(?:https?|mailto|data)$/i;n=function(){var a={};return function R(b,c,d,g,m){b=G(b);var p=f[b];if(!p||"object"!==typeof p)c.length=0;else{for(var r=p.cssPropBits,n=r&80,q=r&1536,s=NaN,H=0,v=0;H<c.length;++H){var A=c[H].toLowerCase(),y=A.charCodeAt(0),F,E,D,I,Q,ha;if(32===y)A="";else if(34===y)A=16===n?d?e(t(k(g,l(c[H].substring(1,A.length-1))),b,d)):"":r&8&&!(n&n-1)?A:"";else if("inherit"!==A){if(Q=p.cssLitGroup){var ea;if(!(ea=p.cssLitMap)){ea=
-{};for(var V=Q.length;0<=--V;)for(var ga=Q[V],ka=ga.length;0<=--ka;)ea[ga[ka]]=a;ea=p.cssLitMap=ea}Q=ea}else Q=a;if(!(ha=Q,ha[G(A)]===a))if(35===y&&/^#(?:[0-9a-f]{3}){1,2}$/.test(A))A=r&2?A:"";else if(48<=y&&57>=y)A=r&1?A:"";else if(F=A.charCodeAt(1),E=A.charCodeAt(2),D=48<=F&&57>=F,I=48<=E&&57>=E,43===y&&(D||46===F&&I))A=r&1?(D?"":"0")+A.substring(1):"";else if(45===y&&(D||46===F&&I))A=r&4?(D?"-":"-0")+A.substring(1):r&1?"0":"";else if(46===y&&D)A=r&1?"0"+A:"";else if('url("'===A.substring(0,5))A=
-d&&r&16?e(t(k(g,c[H].substring(5,A.length-2)),b,d)):"";else if("("===A.charAt(A.length-1))a:{Q=c;ea=H;A=1;V=ea+1;for(y=Q.length;V<y&&A;)ga=Q[V++],A+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!A){A=Q[ea].toLowerCase();y=G(A);Q=Q.splice(ea,V-ea,"");ea=p.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,y.length)==y){Q[0]=Q[Q.length-1]="";R(ea[V],Q,d,g);A=A+Q.join(" ")+")";break a}}A=""}else A=q&&/^-?[a-z_][\w\-]*$/.test(A)&&!/__$/.test(A)?m&&512===q?c[H]+m:1024===q&&f[A]&&"number"===typeof f[A].oa?
-A:"":/^\w+$/.test(A)&&64===n&&r&8?s+1===v?(c[s]=c[s].substring(0,c[s].length-1)+" "+A+'"',""):(s=v,'"'+A+'"'):""}A&&(c[v++]=A)}1===v&&'url("about:blank")'===c[0]&&(v=0);c.length=v}}}();var H=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
-I={};I["\x3e"]=I["+"]=I["~"]=I;q=function(a,e,f){function g(r,n){function q(c,f,g){var k,p,r,n,u,t=b;k="";if(c<f)if(u=a[c],"*"===u)++c,k=u;else if(/^[a-zA-Z]/.test(u)&&(p=m(u.toLowerCase(),[])))"tagName"in p&&(u=p.tagName),++c,k=u;for(n=r=p="";t&&c<f;++c)if(u=a[c],"#"===u.charAt(0))/^#_|__$|[^\w#:\-]/.test(u)?t=d:p+=u+l;else if("."===u)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(u=a[c])&&!/^_|__$/.test(u)?p+="."+u:t=d;else if(c+1<f&&"["===a[c]){++c;var A=a[c++].toLowerCase();u=v.m[k+"::"+A];u!==+u&&(u=v.m["*::"+
-A]);var y;e.ia?(y=e.ia(k,A),"string"!==typeof y&&(t=d,y=A),t&&u!==+u&&(u=v.d.NONE)):(y=A,u!==+u&&(t=d));var z=A="",F=d;/^[~^$*|]?=$/.test(a[c])&&(A=a[c++],z=a[c++],/^[0-9A-Za-z:_\-]+$/.test(z)?z='"'+z+'"':"]"===z&&(z='""',--c),/^"([^\"\\]|\\.)*"$/.test(z)||(t=d),(F="i"===a[c])&&++c);"]"!==a[c]&&(++c,t=d);switch(u){case v.d.CLASSES:case v.d.LOCAL_NAME:case v.d.NONE:break;case v.d.GLOBAL_NAME:case v.d.ID:case v.d.IDREF:("\x3d"===A||"~\x3d"===A||"$\x3d"===A)&&'""'!=z&&!F?z='"'+z.substring(1,z.length-
-1)+l+'"':"|\x3d"===A||""===A||(t=d);break;case v.d.URI:case v.d.URI_FRAGMENT:""!==A&&(t=d);break;default:t=d}t&&(r+="["+y.replace(/[^\w-]/g,"\\$\x26")+A+z+(F?" i]":"]"))}else if(c<f&&":"===a[c])if(u=a[++c],H.test(u))n+=":"+u;else break;else break;c!==f&&(t=d);t&&(c=(k+p).replace(/[^ .*#\w-]/g,"\\$\x26")+r+n+g)&&s.push(c);return t}" "===a[r]&&++r;n-1!==r&&" "===a[n]&&--n;for(var s=[],u=r,t=b,A=r;t&&A<n;++A){var y=a[A];if(I[y]===I||" "===y)q(u,A,y)?u=A+1:t=d}q(u,n,"")||(t=d);return t?(s.length&&(u=
-s.join(""),k!==c&&(u="."+k+" "+u),p.push(u)),b):!f||f(a.slice(r,n))}var k=e.na,l=e.L,m=e.Aa,p=[],r=0,n,q=0,s;for(n=0;n<a.length;++n)if(s=a[n],"("==s||"["==s?(++q,b):")"==s||"]"==s?(q&&--q,b):!(" "==a[n]&&(q||I[a[n-1]]===I||I[a[n+1]]===I)))a[r++]=a[n];a.length=r;r=a.length;for(n=q=0;n<r;++n)if(","===a[n]){if(!g(q,n))return c;q=n+1}return!g(q,r)?c:p};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
-"i");r=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var g=c[f];" "!=g&&(c[e++]=g)}c.length=e;c=c.join(" ");return!c.length?"":!b.test(c)?"not all":a.test(c)?c:"not all , "+c}})();(function(){function e(a){var b=/^\s*[']([^']*)[']\s*$/,d=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,f=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=b.exec(a))||(k=d.exec(a))||(k=f.exec(a))||(k=g.exec(a))?k[1]:c}function f(g,l,m,p,u,H,A){function v(){D=
-E.length&&E[E.length-1]===c}var y=a,F=A||[0],E=[],D=d;s(l,{startStylesheet:function(){y=[]},endStylesheet:function(){},startAtrule:function(a,b){if(D)a=c;else if("@media"===a)y.push("@media"," ",r(b));else if("@keyframes"===a||"@-webkit-keyframes"===a){var d=b[0];1===b.length&&!/__$|[^\w\-]/.test(d)?(y.push(a," ",d+m.L),a="@keyframes"):a=c}else if("@import"===a&&0<b.length)if(a=c,"function"===typeof H){var l=r(b.slice(1));if("not all"!==l){++F[0];var n=[];y.push(n);var q=t(k(g,e(b[0])),function(a){var b=
-f(q,a.qa,m,p,u,H,F);--F[0];a=l?{toString:function(){return"@media "+l+" {"+b.result+"}"}}:b.result;n[0]=a;H(a,!!F[0])},u)}}else window.console&&window.console.log("@import "+b.join(" ")+" elided");D=!a;E.push(a)},endAtrule:function(){E.pop();D||y.push(";");v()},startBlock:function(){D||y.push("{")},endBlock:function(){D||(y.push("}"),D=b)},startRuleset:function(d){if(!D){var e=a;"@keyframes"===E[E.length-1]?(e=d.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
-D=!e,e&&(e=e[0].replace(/ +/g,""))):(d=q(d,m),!d||!d.length?D=b:e=d.join(", "));D||y.push(e,"{")}E.push(c)},endRuleset:function(){E.pop();D||y.push("}");v()},declaration:function(a,c){if(!D){var e=d,f=c.length;2<=f&&"!"===c[f-2]&&"important"===c[f-1].toLowerCase()&&(e=b,c.length-=2);n(a,c,p,g,m.L);c.length&&y.push(a,":",c.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return y.join("")}},va:!!F[0]}}p=function(b,c,d,e){return f(b,c,d,e,a,a).result.toString()}})()})();"undefined"!==
-typeof window&&(window.sanitizeCssProperty=n,window.sanitizeCssSelectorList=q,window.sanitizeStylesheet=p,window.sanitizeMediaQuery=r);var s,t;(function(){function a(b,d,e,f,g){for(var k=d++;d<e&&"{"!==b[d]&&";"!==b[d];)++d;if(d<e&&(g||";"===b[d])){g=k+1;var l=d;g<e&&" "===b[g]&&++g;l>g&&" "===b[l-1]&&--l;f.startAtrule&&f.startAtrule(b[k].toLowerCase(),b.slice(g,l));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,k){++f;for(k.startBlock&&k.startBlock();f<g;){var l=
-b[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?a(b,f,g,k,d):"{"===l?c(b,f,g,k):e(b,f,g,k)}k.endBlock&&k.endBlock();return f}function e(a,c,d,g){var k=c,m=f(a,c,d,b);if(0>m)return m=~m,m===k?m+1:m;var p=a[m];if("{"!==p)return m===k?m+1:m;c=m+1;m>k&&" "===a[m-1]&&--m;for(g.startRuleset&&g.startRuleset(a.slice(k,m));c<d;){p=a[c];if("}"===p){++c;break}c=" "===p?c+1:l(a,c,d,g)}g.endRuleset&&g.endRuleset();return c}function f(a,b,c,d){for(var e,g=[],k=-1;b<c;++b)if(e=a[b].charAt(0),
-"["===e||"("===e)g[++k]=e;else if("]"===e&&"["===g[k]||")"===e&&"("===g[k])--k;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=k&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!m.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var p=f(a,b,c,d);if(0>p)p=~p;else{for(var r=[],n=0,q=b;q<p;++q)b=a[q]," "!==b&&(r[n++]=b);if(p<c){do{b=a[p];
-if(";"===b||"}"===b)break;n=0}while(++p<c);";"===b&&++p}n&&e.declaration&&e.declaration(k.toLowerCase(),r)}return p}s=function(c,d){var f=k(c);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?a(f,g,l,d,b):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var m=/^-?[a-z]/i;t=function(a,b){for(var c=k(a),d=0,e=c.length;d<e;)d=" "!==c[d]?l(c,d,e,b):d+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=s,window.parseCssDeclarations=
+!(a instanceof Array)&&(a instanceof Object||"[object Array]"!==Object.prototype.toString.call(a))){var b=[],c=-1,d;for(d in a){var e=a[d];"string"===typeof e&&(b[++c]=d,b[++c]=e)}a=b}for(var b=[],c="",f=0;f<a.length;)d=a[f++],e=a[f++],b.push(c,encodeURIComponent(d.toString())),c="\x26",e&&b.push("\x3d",encodeURIComponent(e.toString()));this.l=b.join("")};g.prototype.fa=function(a){this.o=a?a:c};g.prototype.Z=function(){return c!==this.o};var m=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
+p=/[#\/\?@]/g,q=/[\#\?]/g;g.parse=a;g.create=function(a,e,f,k,l,n,m){a=new g(b(a,p),b(e,p),"string"==typeof f?encodeURIComponent(f):c,0<k?k.toString():c,b(l,q),c,"string"==typeof m?encodeURIComponent(m):c);n&&("string"===typeof n?a.O(n.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):a.ba(n));return a};g.N=f;g.ma=e;g.ha={ua:function(b){return/\.html$/.test(a(b).U())?"text/html":"application/javascript"},N:function(b,c){return b?f(a(b),a(c)).toString():""+c}};return g}();"undefined"!==typeof window&&(window.URI=
+n);var m=a,p=a,q=a,s=a;(function(){function e(a){return"string"===typeof a?'url("'+a.replace(C,g)+'")':'url("about:blank")'}function g(a){return F[a]}function k(a,b){return a?n.ha.N(a,b):b}function t(a,b,d){if(!d)return c;var e=(""+a).match(D);return e&&(!e[1]||G.test(e[1]))?d(a,b):c}function E(a){return a.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var C=/[\n\f\r\"\'()*<>]/g,F={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
+"\x3c":"%3c","\x3e":"%3e"},D=/^(?:([^:/?# ]+):)?/,G=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function S(b,c,d,g,n){b=E(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var p=m.cssPropBits,q=p&80,s=p&1536,r=NaN,H=0,D=0;H<c.length;++H){var v=c[H].toLowerCase(),G=v.charCodeAt(0),z,F,I,C,Q,ha;if(32===G)v="";else if(34===G)v=16===q?d?e(t(k(g,l(c[H].substring(1,v.length-1))),b,d)):"":p&8&&!(q&q-1)?v:"";else if("inherit"!==v){if(Q=m.cssLitGroup){var ea;if(!(ea=m.cssLitMap)){ea=
+{};for(var V=Q.length;0<=--V;)for(var ga=Q[V],ka=ga.length;0<=--ka;)ea[ga[ka]]=a;ea=m.cssLitMap=ea}Q=ea}else Q=a;if(!(ha=Q,ha[E(v)]===a))if(35===G&&/^#(?:[0-9a-f]{3}){1,2}$/.test(v))v=p&2?v:"";else if(48<=G&&57>=G)v=p&1?v:"";else if(z=v.charCodeAt(1),F=v.charCodeAt(2),I=48<=z&&57>=z,C=48<=F&&57>=F,43===G&&(I||46===z&&C))v=p&1?(I?"":"0")+v.substring(1):"";else if(45===G&&(I||46===z&&C))v=p&4?(I?"-":"-0")+v.substring(1):p&1?"0":"";else if(46===G&&I)v=p&1?"0"+v:"";else if('url("'===v.substring(0,5))v=
+d&&p&16?e(t(k(g,c[H].substring(5,v.length-2)),b,d)):"";else if("("===v.charAt(v.length-1))a:{Q=c;ea=H;v=1;V=ea+1;for(G=Q.length;V<G&&v;)ga=Q[V++],v+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!v){v=Q[ea].toLowerCase();G=E(v);Q=Q.splice(ea,V-ea,"");ea=m.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,G.length)==G){Q[0]=Q[Q.length-1]="";S(ea[V],Q,d,g);v=v+Q.join(" ")+")";break a}}v=""}else v=s&&/^-?[a-z_][\w\-]*$/.test(v)&&!/__$/.test(v)?n&&512===s?c[H]+n:1024===s&&f[v]&&"number"===typeof f[v].oa?
+v:"":/^\w+$/.test(v)&&64===q&&p&8?r+1===D?(c[r]=c[r].substring(0,c[r].length-1)+" "+v+'"',""):(r=D,'"'+v+'"'):""}v&&(c[D++]=v)}1===D&&'url("about:blank")'===c[0]&&(D=0);c.length=D}}}();var H=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
+I={};I["\x3e"]=I["+"]=I["~"]=I;p=function(a,e,f){function g(p,q){function s(c,f,g){var k,m,p,q,t,u=b;k="";if(c<f)if(t=a[c],"*"===t)++c,k=t;else if(/^[a-zA-Z]/.test(t)&&(m=n(t.toLowerCase(),[])))"tagName"in m&&(t=m.tagName),++c,k=t;for(q=p=m="";u&&c<f;++c)if(t=a[c],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?u=d:m+=t+l;else if("."===t)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(t=a[c])&&!/^_|__$/.test(t)?m+="."+t:u=d;else if(c+1<f&&"["===a[c]){++c;var D=a[c++].toLowerCase();t=v.m[k+"::"+D];t!==+t&&(t=v.m["*::"+
+D]);var G;e.ia?(G=e.ia(k,D),"string"!==typeof G&&(u=d,G=D),u&&t!==+t&&(t=v.d.NONE)):(G=D,t!==+t&&(u=d));var x=D="",z=d;/^[~^$*|]?=$/.test(a[c])&&(D=a[c++],x=a[c++],/^[0-9A-Za-z:_\-]+$/.test(x)?x='"'+x+'"':"]"===x&&(x='""',--c),/^"([^\"\\]|\\.)*"$/.test(x)||(u=d),(z="i"===a[c])&&++c);"]"!==a[c]&&(++c,u=d);switch(t){case v.d.CLASSES:case v.d.LOCAL_NAME:case v.d.NONE:break;case v.d.GLOBAL_NAME:case v.d.ID:case v.d.IDREF:("\x3d"===D||"~\x3d"===D||"$\x3d"===D)&&'""'!=x&&!z?x='"'+x.substring(1,x.length-
+1)+l+'"':"|\x3d"===D||""===D||(u=d);break;case v.d.URI:case v.d.URI_FRAGMENT:""!==D&&(u=d);break;default:u=d}u&&(p+="["+G.replace(/[^\w-]/g,"\\$\x26")+D+x+(z?" i]":"]"))}else if(c<f&&":"===a[c])if(t=a[++c],H.test(t))q+=":"+t;else break;else break;c!==f&&(u=d);u&&(c=(k+m).replace(/[^ .*#\w-]/g,"\\$\x26")+p+q+g)&&r.push(c);return u}" "===a[p]&&++p;q-1!==p&&" "===a[q]&&--q;for(var r=[],t=p,u=b,D=p;u&&D<q;++D){var G=a[D];if(I[G]===I||" "===G)s(t,D,G)?t=D+1:u=d}s(t,q,"")||(u=d);return u?(r.length&&(t=
+r.join(""),k!==c&&(t="."+k+" "+t),m.push(t)),b):!f||f(a.slice(p,q))}var k=e.na,l=e.L,n=e.Aa,m=[],p=0,q,s=0,r;for(q=0;q<a.length;++q)if(r=a[q],"("==r||"["==r?(++s,b):")"==r||"]"==r?(s&&--s,b):!(" "==a[q]&&(s||I[a[q-1]]===I||I[a[q+1]]===I)))a[p++]=a[q];a.length=p;p=a.length;for(q=s=0;q<p;++q)if(","===a[q]){if(!g(s,q))return c;s=q+1}return!g(s,p)?c:m};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
+"i");s=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var g=c[f];" "!=g&&(c[e++]=g)}c.length=e;c=c.join(" ");return!c.length?"":!b.test(c)?"not all":a.test(c)?c:"not all , "+c}})();(function(){function e(a){var b=/^\s*[']([^']*)[']\s*$/,d=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,f=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=b.exec(a))||(k=d.exec(a))||(k=f.exec(a))||(k=g.exec(a))?k[1]:c}function f(g,l,n,q,H,u,D){function v(){I=
+F.length&&F[F.length-1]===c}var G=a,z=D||[0],F=[],I=d;r(l,{startStylesheet:function(){G=[]},endStylesheet:function(){},startAtrule:function(a,b){if(I)a=c;else if("@media"===a)G.push("@media"," ",s(b));else if("@keyframes"===a||"@-webkit-keyframes"===a){var d=b[0];1===b.length&&!/__$|[^\w\-]/.test(d)?(G.push(a," ",d+n.L),a="@keyframes"):a=c}else if("@import"===a&&0<b.length)if(a=c,"function"===typeof u){var l=s(b.slice(1));if("not all"!==l){++z[0];var m=[];G.push(m);var p=t(k(g,e(b[0])),function(a){var b=
+f(p,a.qa,n,q,H,u,z);--z[0];a=l?{toString:function(){return"@media "+l+" {"+b.result+"}"}}:b.result;m[0]=a;u(a,!!z[0])},H)}}else window.console&&window.console.log("@import "+b.join(" ")+" elided");I=!a;F.push(a)},endAtrule:function(){F.pop();I||G.push(";");v()},startBlock:function(){I||G.push("{")},endBlock:function(){I||(G.push("}"),I=b)},startRuleset:function(d){if(!I){var e=a;"@keyframes"===F[F.length-1]?(e=d.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
+I=!e,e&&(e=e[0].replace(/ +/g,""))):(d=p(d,n),!d||!d.length?I=b:e=d.join(", "));I||G.push(e,"{")}F.push(c)},endRuleset:function(){F.pop();I||G.push("}");v()},declaration:function(a,c){if(!I){var e=d,f=c.length;2<=f&&"!"===c[f-2]&&"important"===c[f-1].toLowerCase()&&(e=b,c.length-=2);m(a,c,q,g,n.L);c.length&&G.push(a,":",c.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return G.join("")}},va:!!z[0]}}q=function(b,c,d,e){return f(b,c,d,e,a,a).result.toString()}})()})();"undefined"!==
+typeof window&&(window.sanitizeCssProperty=m,window.sanitizeCssSelectorList=p,window.sanitizeStylesheet=q,window.sanitizeMediaQuery=s);var r,t;(function(){function a(b,d,e,f,g){for(var k=d++;d<e&&"{"!==b[d]&&";"!==b[d];)++d;if(d<e&&(g||";"===b[d])){g=k+1;var l=d;g<e&&" "===b[g]&&++g;l>g&&" "===b[l-1]&&--l;f.startAtrule&&f.startAtrule(b[k].toLowerCase(),b.slice(g,l));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,k){++f;for(k.startBlock&&k.startBlock();f<g;){var l=
+b[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?a(b,f,g,k,d):"{"===l?c(b,f,g,k):e(b,f,g,k)}k.endBlock&&k.endBlock();return f}function e(a,c,d,g){var k=c,n=f(a,c,d,b);if(0>n)return n=~n,n===k?n+1:n;var m=a[n];if("{"!==m)return n===k?n+1:n;c=n+1;n>k&&" "===a[n-1]&&--n;for(g.startRuleset&&g.startRuleset(a.slice(k,n));c<d;){m=a[c];if("}"===m){++c;break}c=" "===m?c+1:l(a,c,d,g)}g.endRuleset&&g.endRuleset();return c}function f(a,b,c,d){for(var e,g=[],k=-1;b<c;++b)if(e=a[b].charAt(0),
+"["===e||"("===e)g[++k]=e;else if("]"===e&&"["===g[k]||")"===e&&"("===g[k])--k;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=k&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!n.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var m=f(a,b,c,d);if(0>m)m=~m;else{for(var p=[],q=0,s=b;s<m;++s)b=a[s]," "!==b&&(p[q++]=b);if(m<c){do{b=a[m];
+if(";"===b||"}"===b)break;q=0}while(++m<c);";"===b&&++m}q&&e.declaration&&e.declaration(k.toLowerCase(),p)}return m}r=function(c,d){var f=k(c);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?a(f,g,l,d,b):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var n=/^-?[a-z]/i;t=function(a,b){for(var c=k(a),d=0,e=c.length;d<e;)d=" "!==c[d]?l(c,d,e,b):d+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=r,window.parseCssDeclarations=
t);var v={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};v.atype=v.d;v.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,
"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::ontouchcancel":2,"*::ontouchend":2,"*::ontouchenter":2,"*::ontouchleave":2,"*::ontouchmove":2,"*::ontouchstart":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,"*::tabindex":0,"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,
"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::target":10,"audio::controls":0,"audio::loop":0,"audio::mediagroup":5,"audio::muted":0,"audio::preload":0,"audio::src":1,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,
@@ -80,118 +80,118 @@ li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement
s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",
time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};v.ELEMENT_DOM_INTERFACES=v.Q;v.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};v.ueffects=v.P;v.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};
v.URIEFFECTS=v.J;v.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};v.ltypes=v.M;v.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};v.LOADERTYPES=v.I;"undefined"!==typeof window&&(window.html4=v);e=function(e){function f(a,b){var c;if(Z.hasOwnProperty(b))c=Z[b];else{var d=b.match(J);c=d?String.fromCharCode(parseInt(d[1],10)):(d=b.match(aa))?String.fromCharCode(parseInt(d[1],
-16)):K&&N.test(b)?(K.innerHTML="\x26"+b+";",d=K.textContent,Z[b]=d):"\x26"+b+";"}return c}function g(a){return a.replace(S,f)}function k(a){return(""+a).replace($,"\x26amp;").replace(X,"\x26lt;").replace(Y,"\x26gt;").replace(T,"\x26#34;")}function l(a){return a.replace(P,"\x26amp;$1").replace(X,"\x26lt;").replace(Y,"\x26gt;")}function p(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,e){var f,
-g=/(<\/|<\!--|<[!?]|[&<>])/g;f=a+"";if(ha)f=f.split(g);else{for(var k=[],l=0,m;(m=g.exec(f))!==c;)k.push(f.substring(l,m.index)),k.push(m[0]),l=m.index+m[0].length;k.push(f.substring(l));f=k}n(b,f,0,{r:d,C:d},e)}}function r(a,b,c,d,e){return function(){n(a,b,c,d,e)}}function n(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var k,l,m,p=c.length;d<p;){var t=c[d++],B=c[d];switch(t){case "\x26":ca.test(B)?(a.e&&a.e("\x26"+B,g,V,r(a,c,d,f,g)),d++):a.e&&a.e("\x26amp;",g,V,r(a,c,d,f,g));break;case "\x3c/":if(k=/^([-\w:]+)[^\'\"]*/.exec(B))if(k[0].length===
-B.length&&"\x3e"===c[d+1])d+=2,m=k[1].toLowerCase(),a.t&&a.t(m,g,V,r(a,c,d,f,g));else{var v=c,A=d,y=a,C=g,z=V,Q=f,x=s(v,A);x?(y.t&&y.t(x.name,C,z,r(y,v,A,Q,C)),d=x.next):d=v.length}else a.e&&a.e("\x26lt;/",g,V,r(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(B))if(k[0].length===B.length&&"\x3e"===c[d+1]){d+=2;m=k[1].toLowerCase();a.w&&a.w(m,[],g,V,r(a,c,d,f,g));var D=e.f[m];D&ea&&(d=q(c,{name:m,next:d,c:D},a,g,V,f))}else{var v=c,A=a,y=g,C=V,z=f,U=s(v,d);U?(A.w&&A.w(U.name,U.R,y,C,r(A,
-v,U.next,z,y)),d=U.c&ea?q(v,U,A,y,C,z):U.next):d=v.length}else a.e&&a.e("\x26lt;",g,V,r(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<p&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<p){if(a.A){var G=c.slice(d,l).join("");a.A(G.substr(0,G.length-2),g,V,r(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,r(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(B)){if(!f.r){for(l=d+1;l<p&&"\x3e"!==c[l];l++);l<p?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,r(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
-g,V,r(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<p&&"\x3e"!==c[l];l++);l<p?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,r(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,r(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,r(a,c,d,f,g))}}a.B&&a.B(g)}catch(I){if(I!==V)throw I;}}function q(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var m=ga[b.name],p=b.next,n=b.next+1;n<k&&!("\x3c/"===a[n-1]&&m.test(a[n]));n++);n<k&&
-(n-=1);k=a.slice(p,n).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,r(c,a,n,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,r(c,a,n,g,d));else throw Error("bug");return n}function s(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),m=c+1,p=a.length;m<p&&"\x3e"!==a[m];m++)l+=a[m];if(!(p<=m)){for(var r=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],n=d,l=[l,a[m++]];m<p;m++){if(n){if("\x3e"===a[m])break}else 0<=
-a[m].indexOf(f)&&(n=b);l.push(a[m])}if(p<=m)break;l=l.join("")}else{var n=f[1].toLowerCase(),q;if(f[2]){q=f[3];var t=q.charCodeAt(0);if(34===t||39===t)q=q.substr(1,q.length-2);q=g(q.replace(O,""))}else q="";r.push(n,q);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=r;k.next=m+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return p({startDoc:function(){g=[];l=d},startTag:function(d,f,m){if(!l&&e.f.hasOwnProperty(d)){var p=e.f[d];if(!(p&e.c.FOLDABLE)){var r=b(d,
-f);if(r){if("object"!==typeof r)throw Error("tagPolicy did not return object (old API?)");if("attribs"in r)f=r.attribs;else throw Error("tagPolicy gave no attribs");var n;"tagName"in r?(n=r.tagName,r=e.f[n]):(n=d,r=p);if(p&e.c.OPTIONAL_ENDTAG){var q=g[g.length-1];q&&q.D===d&&(q.v!==n||d!==n)&&m.push("\x3c/",q.v,"\x3e")}p&e.c.EMPTY||g.push({D:d,v:n});m.push("\x3c",n);d=0;for(q=f.length;d<q;d+=2){var s=f[d],t=f[d+1];t!==c&&t!==a&&m.push(" ",s,'\x3d"',k(t),'"')}m.push("\x3e");p&e.c.EMPTY&&!(r&e.c.EMPTY)&&
-m.push("\x3c/",n,"\x3e")}else l=!(p&e.c.EMPTY)}}},endTag:function(a,b){if(l)l=d;else if(e.f.hasOwnProperty(a)){var c=e.f[a];if(!(c&(e.c.EMPTY|e.c.FOLDABLE))){if(c&e.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(e.f[f]&e.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;e.f[k]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;b.push("\x3c/",a,"\x3e")}}}},pcdata:f,rcdata:f,cdata:f,
-endDoc:function(a){for(;g.length;g.length--)a.push("\x3c/",g[g.length-1].v,"\x3e")}})}function v(a,b,d,e,f){if(!f)return c;try{var g=m.parse(""+a);if(g&&(!g.K()||ka.test(g.W()))){var k=f(g,b,d,e);return k?k.toString():c}}catch(l){}return c}function L(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function R(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+
-c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var m=d[l],p=d[l+1],r=p,n=c,q;if((q=b+"::"+m,e.m.hasOwnProperty(q))||(q="*::"+m,e.m.hasOwnProperty(q)))n=e.m[q];if(n!==c)switch(n){case e.d.NONE:break;case e.d.SCRIPT:p=c;k&&L(k,b,m,r,p);break;case e.d.STYLE:if("undefined"===typeof C){p=c;k&&L(k,b,m,r,p);break}var s=[];C(p,{declaration:function(a,b){var d=a.toLowerCase();U(d,b,f?function(a){return v(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&s.push(d+
-": "+b.join(" "))}});p=0<s.length?s.join(" ; "):c;k&&L(k,b,m,r,p);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:p=g?g(p):p;k&&L(k,b,m,r,p);break;case e.d.URI:p=v(p,R(e.J,b,m),R(e.I,b,m),{TYPE:"MARKUP",XML_ATTR:m,XML_TAG:b},f);k&&L(k,b,m,r,p);break;case e.d.URI_FRAGMENT:p&&"#"===p.charAt(0)?(p=p.substring(1),p=g?g(p):p,p!==c&&p!==a&&(p="#"+p)):p=c;k&&L(k,b,m,r,p);break;default:p=c,k&&L(k,b,m,r,p)}else p=c,k&&L(k,b,m,r,p);d[l+1]=p}return d}
-function da(b,c,d){return function(f,g){if(e.f[f]&e.c.UNSAFE)d&&L(d,f,a,a,a);else return{attribs:W(f,g,b,c,d)}}}function B(a,b){var c=[];t(b)(a,c);return c.join("")}var C,U;"undefined"!==typeof window&&(C=window.parseCssDeclarations,U=window.sanitizeCssProperty);var Z={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},J=/^#(\d+)$/,aa=/^#x([0-9A-Fa-f]+)$/,N=/^[A-Za-z][A-za-z0-9]+$/,K="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
-c,O=/\0/g,S=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ca=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,$=/&/g,P=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,Y=/>/g,T=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ha=3==="a,b".split(/(,)/).length,ea=e.c.CDATA|e.c.RCDATA,V={},ga={},ka=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=t;ba.sa=ba.makeSaxParser=p;ba.ta=ba.makeTagPolicy=da;ba.wa=ba.normalizeRCData=l;ba.xa=
-ba.sanitize=function(a,b,c,d){return B(a,da(b,c,d))};ba.ya=ba.sanitizeAttribs=W;ba.za=ba.sanitizeWithPolicy=B;ba.Ba=ba.unescapeEntities=g;return ba}(v);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,k,l,m=0;for(null!=b&&b||(a=Base64._utf8_encode(a));m<a.length;)d=a.charCodeAt(m++),e=a.charCodeAt(m++),f=a.charCodeAt(m++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=
+16)):K&&M.test(b)?(K.innerHTML="\x26"+b+";",d=K.textContent,Z[b]=d):"\x26"+b+";"}return c}function g(a){return a.replace(R,f)}function k(a){return(""+a).replace($,"\x26amp;").replace(X,"\x26lt;").replace(Y,"\x26gt;").replace(T,"\x26#34;")}function l(a){return a.replace(P,"\x26amp;$1").replace(X,"\x26lt;").replace(Y,"\x26gt;")}function m(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,e){var f,
+g=/(<\/|<\!--|<[!?]|[&<>])/g;f=a+"";if(ha)f=f.split(g);else{for(var k=[],l=0,n;(n=g.exec(f))!==c;)k.push(f.substring(l,n.index)),k.push(n[0]),l=n.index+n[0].length;k.push(f.substring(l));f=k}q(b,f,0,{r:d,C:d},e)}}function p(a,b,c,d,e){return function(){q(a,b,c,d,e)}}function q(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var k,l,n,m=c.length;d<m;){var t=c[d++],B=c[d];switch(t){case "\x26":ca.test(B)?(a.e&&a.e("\x26"+B,g,V,p(a,c,d,f,g)),d++):a.e&&a.e("\x26amp;",g,V,p(a,c,d,f,g));break;case "\x3c/":if(k=/^([-\w:]+)[^\'\"]*/.exec(B))if(k[0].length===
+B.length&&"\x3e"===c[d+1])d+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,V,p(a,c,d,f,g));else{var v=c,D=d,A=a,Q=g,x=V,z=f,y=r(v,D);y?(A.t&&A.t(y.name,Q,x,p(A,v,D,z,Q)),d=y.next):d=v.length}else a.e&&a.e("\x26lt;/",g,V,p(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(B))if(k[0].length===B.length&&"\x3e"===c[d+1]){d+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,V,p(a,c,d,f,g));var I=e.f[n];I&ea&&(d=s(c,{name:n,next:d,c:I},a,g,V,f))}else{var v=c,D=a,A=g,Q=V,x=f,U=r(v,d);U?(D.w&&D.w(U.name,U.R,A,Q,p(D,
+v,U.next,x,A)),d=U.c&ea?s(v,U,D,A,Q,x):U.next):d=v.length}else a.e&&a.e("\x26lt;",g,V,p(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<m&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<m){if(a.A){var E=c.slice(d,l).join("");a.A(E.substr(0,E.length-2),g,V,p(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,p(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(B)){if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,p(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
+g,V,p(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,p(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,p(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,p(a,c,d,f,g))}}a.B&&a.B(g)}catch(J){if(J!==V)throw J;}}function s(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var n=ga[b.name],m=b.next,q=b.next+1;q<k&&!("\x3c/"===a[q-1]&&n.test(a[q]));q++);q<k&&
+(q-=1);k=a.slice(m,q).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,p(c,a,q,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,p(c,a,q,g,d));else throw Error("bug");return q}function r(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),n=c+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var p=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],q=d,l=[l,a[n++]];n<m;n++){if(q){if("\x3e"===a[n])break}else 0<=
+a[n].indexOf(f)&&(q=b);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var q=f[1].toLowerCase(),s;if(f[2]){s=f[3];var t=s.charCodeAt(0);if(34===t||39===t)s=s.substr(1,s.length-2);s=g(s.replace(N,""))}else s="";p.push(q,s);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=n+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,f,n){if(!l&&e.f.hasOwnProperty(d)){var m=e.f[d];if(!(m&e.c.FOLDABLE)){var p=b(d,
+f);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)f=p.attribs;else throw Error("tagPolicy gave no attribs");var q;"tagName"in p?(q=p.tagName,p=e.f[q]):(q=d,p=m);if(m&e.c.OPTIONAL_ENDTAG){var s=g[g.length-1];s&&s.D===d&&(s.v!==q||d!==q)&&n.push("\x3c/",s.v,"\x3e")}m&e.c.EMPTY||g.push({D:d,v:q});n.push("\x3c",q);d=0;for(s=f.length;d<s;d+=2){var r=f[d],t=f[d+1];t!==c&&t!==a&&n.push(" ",r,'\x3d"',k(t),'"')}n.push("\x3e");m&e.c.EMPTY&&!(p&e.c.EMPTY)&&
+n.push("\x3c/",q,"\x3e")}else l=!(m&e.c.EMPTY)}}},endTag:function(a,b){if(l)l=d;else if(e.f.hasOwnProperty(a)){var c=e.f[a];if(!(c&(e.c.EMPTY|e.c.FOLDABLE))){if(c&e.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(e.f[f]&e.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;e.f[k]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;b.push("\x3c/",a,"\x3e")}}}},pcdata:f,rcdata:f,cdata:f,
+endDoc:function(a){for(;g.length;g.length--)a.push("\x3c/",g[g.length-1].v,"\x3e")}})}function v(a,b,d,e,f){if(!f)return c;try{var g=n.parse(""+a);if(g&&(!g.K()||ka.test(g.W()))){var k=f(g,b,d,e);return k?k.toString():c}}catch(l){}return c}function L(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function S(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+
+c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var n=d[l],m=d[l+1],p=m,q=c,s;if((s=b+"::"+n,e.m.hasOwnProperty(s))||(s="*::"+n,e.m.hasOwnProperty(s)))q=e.m[s];if(q!==c)switch(q){case e.d.NONE:break;case e.d.SCRIPT:m=c;k&&L(k,b,n,p,m);break;case e.d.STYLE:if("undefined"===typeof A){m=c;k&&L(k,b,n,p,m);break}var r=[];A(m,{declaration:function(a,b){var d=a.toLowerCase();U(d,b,f?function(a){return v(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&r.push(d+
+": "+b.join(" "))}});m=0<r.length?r.join(" ; "):c;k&&L(k,b,n,p,m);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:m=g?g(m):m;k&&L(k,b,n,p,m);break;case e.d.URI:m=v(m,S(e.J,b,n),S(e.I,b,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:b},f);k&&L(k,b,n,p,m);break;case e.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==c&&m!==a&&(m="#"+m)):m=c;k&&L(k,b,n,p,m);break;default:m=c,k&&L(k,b,n,p,m)}else m=c,k&&L(k,b,n,p,m);d[l+1]=m}return d}
+function da(b,c,d){return function(f,g){if(e.f[f]&e.c.UNSAFE)d&&L(d,f,a,a,a);else return{attribs:W(f,g,b,c,d)}}}function B(a,b){var c=[];t(b)(a,c);return c.join("")}var A,U;"undefined"!==typeof window&&(A=window.parseCssDeclarations,U=window.sanitizeCssProperty);var Z={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},J=/^#(\d+)$/,aa=/^#x([0-9A-Fa-f]+)$/,M=/^[A-Za-z][A-za-z0-9]+$/,K="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
+c,N=/\0/g,R=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ca=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,$=/&/g,P=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,Y=/>/g,T=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ha=3==="a,b".split(/(,)/).length,ea=e.c.CDATA|e.c.RCDATA,V={},ga={},ka=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=t;ba.sa=ba.makeSaxParser=m;ba.ta=ba.makeTagPolicy=da;ba.wa=ba.normalizeRCData=l;ba.xa=
+ba.sanitize=function(a,b,c,d){return B(a,da(b,c,d))};ba.ya=ba.sanitizeAttribs=W;ba.za=ba.sanitizeWithPolicy=B;ba.Ba=ba.unescapeEntities=g;return ba}(v);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,k,l,n=0;for(null!=b&&b||(a=Base64._utf8_encode(a));n<a.length;)d=a.charCodeAt(n++),e=a.charCodeAt(n++),f=a.charCodeAt(n++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=
a.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):
-(127<d&&2048>d?b+=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;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(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(k,m){if(!d[k]){if(!c[k]){var n="function"==typeof require&&require;if(!m&&n)return n(k,!0);if(g)return g(k,!0);n=Error("Cannot find module '"+k+"'");throw n.code="MODULE_NOT_FOUND",n;}n=d[k]={exports:{}};
-c[k][0].call(n.exports,function(b){var d=c[k][1][b];return f(d?d:b)},n,n.exports,b,c,d,e)}return d[k].exports}for(var g="function"==typeof require&&require,k=0;k<e.length;k++)f(e[k]);return f}({1:[function(b,c,d){function e(b){if(!(this instanceof e))return new e(b);b=this.options=k.assign({level:r,method:t,chunkSize:16384,windowBits:15,memLevel:8,strategy:s,to:""},b||{});b.raw&&0<b.windowBits?b.windowBits=-b.windowBits:b.gzip&&0<b.windowBits&&16>b.windowBits&&(b.windowBits+=16);this.err=0;this.msg=
-"";this.ended=!1;this.chunks=[];this.strm=new n;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?l.string2buf(b.dictionary):"[object ArrayBuffer]"===q.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"),k=b("./utils/common"),l=b("./utils/strings"),m=b("./zlib/messages"),n=b("./zlib/zstream"),q=Object.prototype.toString,p=0,r=-1,s=0,t=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=l.string2buf(b):"[object ArrayBuffer]"===q.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 k.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(l.buf2binstring(k.shrinkBuf(f.output,f.next_out))):this.onData(k.shrinkBuf(f.output,f.next_out)))}while((0<f.avail_in||0===f.avail_out)&&1!==d);return 4===e?(d=g.deflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===p):2!==e||(this.onEnd(p),f.avail_out=0,!0)};e.prototype.onData=
-function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Deflate=e;d.deflate=f;d.deflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.gzip=function(b,c){return c=c||{},c.gzip=!0,f(b,c)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(b,c,d){function e(b){if(!(this instanceof
-e))return new e(b);var c=this.options=k.assign({chunkSize:16384,windowBits:0,to:""},b||{});c.raw&&0<=c.windowBits&&16>c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15<c.windowBits&&48>c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new q;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==m.Z_OK)throw Error(n[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"),k=b("./utils/common"),l=b("./utils/strings"),m=b("./zlib/constants"),n=b("./zlib/messages"),q=b("./zlib/zstream"),p=b("./zlib/gzheader"),r=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,p,n,q,D=this.strm,E=this.options.chunkSize,A=this.options.dictionary,F=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?m.Z_FINISH:m.Z_NO_FLUSH;
-"string"==typeof b?D.input=l.binstring2buf(b):"[object ArrayBuffer]"===r.call(b)?D.input=new Uint8Array(b):D.input=b;D.next_in=0;D.avail_in=D.input.length;do{if(0===D.avail_out&&(D.output=new k.Buf8(E),D.next_out=0,D.avail_out=E),d=g.inflate(D,m.Z_NO_FLUSH),d===m.Z_NEED_DICT&&A&&(q="string"==typeof A?l.string2buf(A):"[object ArrayBuffer]"===r.call(A)?new Uint8Array(A):A,d=g.inflateSetDictionary(this.strm,q)),d===m.Z_BUF_ERROR&&!0===F&&(d=m.Z_OK,F=!1),d!==m.Z_STREAM_END&&d!==m.Z_OK)return this.onEnd(d),
-this.ended=!0,!1;D.next_out&&(0!==D.avail_out&&d!==m.Z_STREAM_END&&(0!==D.avail_in||e!==m.Z_FINISH&&e!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(D.output,D.next_out),p=D.next_out-f,n=l.buf2string(D.output,f),D.next_out=p,D.avail_out=E-p,p&&k.arraySet(D.output,D.output,f,p,0),this.onData(n)):this.onData(k.shrinkBuf(D.output,D.next_out))));0===D.avail_in&&0===D.avail_out&&(F=!0)}while((0<D.avail_in||0===D.avail_out)&&d!==m.Z_STREAM_END);return d===m.Z_STREAM_END&&(e=m.Z_FINISH),
-e===m.Z_FINISH?(d=g.inflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===m.Z_OK):e!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),D.avail_out=0,!0)};e.prototype.onData=function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===m.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=e;d.inflate=f;d.inflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.ungzip=f},{"./utils/common":3,
+(127<d&&2048>d?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;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(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(k,n){if(!d[k]){if(!c[k]){var m="function"==typeof require&&require;if(!n&&m)return m(k,!0);if(g)return g(k,!0);m=Error("Cannot find module '"+k+"'");throw m.code="MODULE_NOT_FOUND",m;}m=d[k]={exports:{}};
+c[k][0].call(m.exports,function(b){var d=c[k][1][b];return f(d?d:b)},m,m.exports,b,c,d,e)}return d[k].exports}for(var g="function"==typeof require&&require,k=0;k<e.length;k++)f(e[k]);return f}({1:[function(b,c,d){function e(b){if(!(this instanceof e))return new e(b);b=this.options=k.assign({level:s,method:t,chunkSize:16384,windowBits:15,memLevel:8,strategy:r,to:""},b||{});b.raw&&0<b.windowBits?b.windowBits=-b.windowBits:b.gzip&&0<b.windowBits&&16>b.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!==q)throw Error(n[c]);if(b.header&&g.deflateSetHeader(this.strm,b.header),b.dictionary){var d;if(d="string"==typeof b.dictionary?l.string2buf(b.dictionary):"[object ArrayBuffer]"===p.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=g.deflateSetDictionary(this.strm,d),c!==q)throw Error(n[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"),k=b("./utils/common"),l=b("./utils/strings"),n=b("./zlib/messages"),m=b("./zlib/zstream"),p=Object.prototype.toString,q=0,s=-1,r=0,t=8;e.prototype.push=function(b,c){var d,e,f=this.strm,n=this.options.chunkSize;if(this.ended)return!1;e=c===~~c?c:!0===c?4:0;"string"==typeof b?f.input=l.string2buf(b):"[object ArrayBuffer]"===p.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 k.Buf8(n),f.next_out=0,f.avail_out=n),d=g.deflate(f,e),1!==d&&d!==q)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(l.buf2binstring(k.shrinkBuf(f.output,f.next_out))):this.onData(k.shrinkBuf(f.output,f.next_out)))}while((0<f.avail_in||0===f.avail_out)&&1!==d);return 4===e?(d=g.deflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===q):2!==e||(this.onEnd(q),f.avail_out=0,!0)};e.prototype.onData=
+function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===q&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Deflate=e;d.deflate=f;d.deflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.gzip=function(b,c){return c=c||{},c.gzip=!0,f(b,c)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(b,c,d){function e(b){if(!(this instanceof
+e))return new e(b);var c=this.options=k.assign({chunkSize:16384,windowBits:0,to:""},b||{});c.raw&&0<=c.windowBits&&16>c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15<c.windowBits&&48>c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new p;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==n.Z_OK)throw Error(m[b]);
+this.header=new q;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"),k=b("./utils/common"),l=b("./utils/strings"),n=b("./zlib/constants"),m=b("./zlib/messages"),p=b("./zlib/zstream"),q=b("./zlib/gzheader"),s=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,m,p,q,C=this.strm,F=this.options.chunkSize,D=this.options.dictionary,G=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?n.Z_FINISH:n.Z_NO_FLUSH;
+"string"==typeof b?C.input=l.binstring2buf(b):"[object ArrayBuffer]"===s.call(b)?C.input=new Uint8Array(b):C.input=b;C.next_in=0;C.avail_in=C.input.length;do{if(0===C.avail_out&&(C.output=new k.Buf8(F),C.next_out=0,C.avail_out=F),d=g.inflate(C,n.Z_NO_FLUSH),d===n.Z_NEED_DICT&&D&&(q="string"==typeof D?l.string2buf(D):"[object ArrayBuffer]"===s.call(D)?new Uint8Array(D):D,d=g.inflateSetDictionary(this.strm,q)),d===n.Z_BUF_ERROR&&!0===G&&(d=n.Z_OK,G=!1),d!==n.Z_STREAM_END&&d!==n.Z_OK)return this.onEnd(d),
+this.ended=!0,!1;C.next_out&&(0!==C.avail_out&&d!==n.Z_STREAM_END&&(0!==C.avail_in||e!==n.Z_FINISH&&e!==n.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(C.output,C.next_out),m=C.next_out-f,p=l.buf2string(C.output,f),C.next_out=m,C.avail_out=F-m,m&&k.arraySet(C.output,C.output,f,m,0),this.onData(p)):this.onData(k.shrinkBuf(C.output,C.next_out))));0===C.avail_in&&0===C.avail_out&&(G=!0)}while((0<C.avail_in||0===C.avail_out)&&d!==n.Z_STREAM_END);return d===n.Z_STREAM_END&&(e=n.Z_FINISH),
+e===n.Z_FINISH?(d=g.inflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===n.Z_OK):e!==n.Z_SYNC_FLUSH||(this.onEnd(n.Z_OK),C.avail_out=0,!0)};e.prototype.onData=function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===n.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=e;d.inflate=f;d.inflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.ungzip=f},{"./utils/common":3,
"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(b,c,d){b="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;d.assign=function(b){for(var c=Array.prototype.slice.call(arguments,1);c.length;){var d=c.shift();if(d){if("object"!=typeof d)throw new TypeError(d+"must be non-object");for(var e in d)d.hasOwnProperty(e)&&(b[e]=d[e])}}return b};d.shrinkBuf=function(b,c){return b.length===
-c?b:b.subarray?b.subarray(0,c):(b.length=c,b)};var e={arraySet:function(b,c,d,e,f){if(c.subarray&&b.subarray)return void b.set(c.subarray(d,d+e),f);for(var q=0;q<e;q++)b[f+q]=c[d+q]},flattenChunks:function(b){var c,d,e,f,q;c=e=0;for(d=b.length;c<d;c++)e+=b[c].length;q=new Uint8Array(e);c=e=0;for(d=b.length;c<d;c++)f=b[c],q.set(f,e),e+=f.length;return q}},f={arraySet:function(b,c,d,e,f){for(var q=0;q<e;q++)b[f+q]=c[d+q]},flattenChunks:function(b){return[].concat.apply([],b)}};d.setTyped=function(b){b?
-(d.Buf8=Uint8Array,d.Buf16=Uint16Array,d.Buf32=Int32Array,d.assign(d,e)):(d.Buf8=Array,d.Buf16=Array,d.Buf32=Array,d.assign(d,f))};d.setTyped(b)},{}],4:[function(b,c,d){function e(b,c){if(65537>c&&(b.subarray&&k||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[e]);return d}var f=b("./common"),g=!0,k=!0;try{String.fromCharCode.apply(null,[0])}catch(l){g=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(m){k=!1}var n=
-new f.Buf8(256);for(b=0;256>b;b++)n[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;n[254]=n[254]=1;d.string2buf=function(b){var c,d,e,g,k,l=b.length,m=0;for(g=0;g<l;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),m+=128>d?1:2048>d?2:65536>d?3:4;c=new f.Buf8(m);for(g=k=0;k<m;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),128>d?c[k++]=d:2048>
-d?(c[k++]=192|d>>>6,c[k++]=128|63&d):65536>d?(c[k++]=224|d>>>12,c[k++]=128|d>>>6&63,c[k++]=128|63&d):(c[k++]=240|d>>>18,c[k++]=128|d>>>12&63,c[k++]=128|d>>>6&63,c[k++]=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;d<e;d++)c[d]=b.charCodeAt(d);return c};d.buf2string=function(b,c){var d,f,g,k,l=c||b.length,m=Array(2*l);for(d=f=0;d<l;)if(g=b[d++],128>g)m[f++]=g;else if(k=n[g],4<k)m[f++]=65533,d+=k-1;else{for(g&=
-2===k?31:3===k?15:7;1<k&&d<l;)g=g<<6|63&b[d++],k--;1<k?m[f++]=65533:65536>g?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+n[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,k){var l=65535&b|0;b=b>>>16&65535|0;for(var m=0;0!==d;){m=2E3<d?2E3:d;d-=m;do l=l+c[k++]|0,b=b+l|0;while(--m);l%=65521;b%=65521}return l|
+c?b:b.subarray?b.subarray(0,c):(b.length=c,b)};var e={arraySet:function(b,c,d,e,f){if(c.subarray&&b.subarray)return void b.set(c.subarray(d,d+e),f);for(var p=0;p<e;p++)b[f+p]=c[d+p]},flattenChunks:function(b){var c,d,e,f,p;c=e=0;for(d=b.length;c<d;c++)e+=b[c].length;p=new Uint8Array(e);c=e=0;for(d=b.length;c<d;c++)f=b[c],p.set(f,e),e+=f.length;return p}},f={arraySet:function(b,c,d,e,f){for(var p=0;p<e;p++)b[f+p]=c[d+p]},flattenChunks:function(b){return[].concat.apply([],b)}};d.setTyped=function(b){b?
+(d.Buf8=Uint8Array,d.Buf16=Uint16Array,d.Buf32=Int32Array,d.assign(d,e)):(d.Buf8=Array,d.Buf16=Array,d.Buf32=Array,d.assign(d,f))};d.setTyped(b)},{}],4:[function(b,c,d){function e(b,c){if(65537>c&&(b.subarray&&k||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[e]);return d}var f=b("./common"),g=!0,k=!0;try{String.fromCharCode.apply(null,[0])}catch(l){g=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(n){k=!1}var m=
+new f.Buf8(256);for(b=0;256>b;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,k,l=b.length,n=0;for(g=0;g<l;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),n+=128>d?1:2048>d?2:65536>d?3:4;c=new f.Buf8(n);for(g=k=0;k<n;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),128>d?c[k++]=d:2048>
+d?(c[k++]=192|d>>>6,c[k++]=128|63&d):65536>d?(c[k++]=224|d>>>12,c[k++]=128|d>>>6&63,c[k++]=128|63&d):(c[k++]=240|d>>>18,c[k++]=128|d>>>12&63,c[k++]=128|d>>>6&63,c[k++]=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;d<e;d++)c[d]=b.charCodeAt(d);return c};d.buf2string=function(b,c){var d,f,g,k,l=c||b.length,n=Array(2*l);for(d=f=0;d<l;)if(g=b[d++],128>g)n[f++]=g;else if(k=m[g],4<k)n[f++]=65533,d+=k-1;else{for(g&=
+2===k?31:3===k?15:7;1<k&&d<l;)g=g<<6|63&b[d++],k--;1<k?n[f++]=65533:65536>g?n[f++]=g:(g-=65536,n[f++]=55296|g>>10&1023,n[f++]=56320|1023&g)}return e(n,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,k){var l=65535&b|0;b=b>>>16&65535|0;for(var n=0;0!==d;){n=2E3<d?2E3:d;d-=n;do l=l+c[k++]|0,b=b+l|0;while(--n);l%=65521;b%=65521}return l|
b<<16|0}},{}],6:[function(b,c,d){c.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(b,c,d){var e=function(){for(var b,c=[],d=0;256>d;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,l){d=l+d;for(b^=-1;l<d;l++)b=b>>>8^e[255&(b^c[l])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=A[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&&(x.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 k(b,c){G._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 l(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 n(b,c){var d,e,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,m=b.strstart>b.w_size-S?b.strstart-(b.w_size-S):0,p=b.window,n=b.w_mask,r=b.prev,q=b.strstart+O,s=p[g+k-1],H=p[g+k];b.prev_length>=b.good_match&&
-(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,p[d+k]===H&&p[d+k-1]===s&&p[d]===p[g]&&p[++d]===p[g+1]){g+=2;d++;do;while(p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&g<q);if(e=O-(q-g),g=q-O,e>k){if(b.match_start=c,k=e,e>=l)break;s=p[g+k-1];H=p[g+k]}}while((c=r[c&n])>m&&0!==--f);return k<=b.lookahead?k:b.lookahead}function q(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
-g+(g-S)){x.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 k=b.strstart+b.lookahead,l=c.avail_in;if(d=(l>f&&(l=f),0===l?0:(c.avail_in-=l,x.arraySet(e,c.input,c.next_in,l,k),1===c.state.wrap?c.adler=D(c.adler,e,l,k):2===c.state.wrap&&(c.adler=E(c.adler,e,l,k)),c.next_in+=l,c.total_in+=l,l)),
-b.lookahead+=d,b.lookahead+b.insert>=K){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+K-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<K)););}}while(b.lookahead<S&&0!==b.strm.avail_in)}function p(b,c){for(var d,e;;){if(b.lookahead<S){if(q(b),b.lookahead<S&&c===F)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<
-b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-S&&(b.match_length=n(b,d)),b.match_length>=K)if(e=G._tr_tally(b,b.strstart-b.match_start,b.match_length-K),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=K){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
-b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else e=G._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(e&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function r(b,c){for(var d,e,f;;){if(b.lookahead<S){if(q(b),
-b.lookahead<S&&c===F)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=K-1,0!==d&&b.prev_length<b.max_lazy_match&&b.strstart-d<=b.w_size-S&&(b.match_length=n(b,d),5>=b.match_length&&(b.strategy===R||b.match_length===K&&4096<b.strstart-b.match_start)&&(b.match_length=K-1)),b.prev_length>=
-K&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-K;e=G._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-K);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=K-1,b.strstart++,e&&(k(b,!1),0===b.strm.avail_out))return P}else if(b.match_available){if(e=G._tr_tally(b,0,
-b.window[b.strstart-1]),e&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return P}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(G._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function s(b,c,d,e,f){this.good_length=b;this.max_lazy=c;this.nice_length=d;this.max_chain=e;this.func=f}function t(){this.strm=null;this.status=
+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,l){d=l+d;for(b^=-1;l<d;l++)b=b>>>8^e[255&(b^c[l])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=D[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&&(x.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 k(b,c){E._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 l(b,c){b.pending_buf[b.pending++]=c}function n(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,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,p=b.w_mask,q=b.prev,s=b.strstart+N,r=m[g+k-1],H=m[g+k];b.prev_length>=b.good_match&&
+(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,m[d+k]===H&&m[d+k-1]===r&&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]&&g<s);if(e=N-(s-g),g=s-N,e>k){if(b.match_start=c,k=e,e>=l)break;r=m[g+k-1];H=m[g+k]}}while((c=q[c&p])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(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)){x.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 k=b.strstart+b.lookahead,l=c.avail_in;if(d=(l>f&&(l=f),0===l?0:(c.avail_in-=l,x.arraySet(e,c.input,c.next_in,l,k),1===c.state.wrap?c.adler=C(c.adler,e,l,k):2===c.state.wrap&&(c.adler=F(c.adler,e,l,k)),c.next_in+=l,c.total_in+=l,l)),
+b.lookahead+=d,b.lookahead+b.insert>=K){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+K-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<K)););}}while(b.lookahead<R&&0!==b.strm.avail_in)}function q(b,c){for(var d,e;;){if(b.lookahead<R){if(p(b),b.lookahead<R&&c===G)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<
+b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-R&&(b.match_length=m(b,d)),b.match_length>=K)if(e=E._tr_tally(b,b.strstart-b.match_start,b.match_length-K),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=K){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
+b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else e=E._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(e&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function s(b,c){for(var d,e,f;;){if(b.lookahead<R){if(p(b),
+b.lookahead<R&&c===G)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=K-1,0!==d&&b.prev_length<b.max_lazy_match&&b.strstart-d<=b.w_size-R&&(b.match_length=m(b,d),5>=b.match_length&&(b.strategy===S||b.match_length===K&&4096<b.strstart-b.match_start)&&(b.match_length=K-1)),b.prev_length>=
+K&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-K;e=E._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-K);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=K-1,b.strstart++,e&&(k(b,!1),0===b.strm.avail_out))return P}else if(b.match_available){if(e=E._tr_tally(b,0,
+b.window[b.strstart-1]),e&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return P}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(E._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function r(b,c,d,e,f){this.good_length=b;this.max_lazy=c;this.nice_length=d;this.max_chain=e;this.func=f}function t(){this.strm=null;this.status=
0;this.pending_buf=null;this.wrap=this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=B;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=
-this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*aa);this.dyn_dtree=new x.Buf16(2*(2*Z+1));this.bl_tree=new x.Buf16(2*(2*J+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(N+1);this.heap=new x.Buf16(2*U+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*U+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
-this.lit_bufsize=this.l_buf=0}function v(b){var c;return b&&b.state?(b.total_in=b.total_out=0,b.data_type=da,c=b.state,c.pending=0,c.pending_out=0,0>c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?ca:$,b.adler=2===c.wrap?0:1,c.last_flush=F,G._tr_init(c),I):e(b,M)}function u(b){var c=v(b);c===I&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=z[b.level].max_lazy,b.good_match=z[b.level].good_length,b.nice_match=z[b.level].nice_length,b.max_chain_length=z[b.level].max_chain,b.strstart=0,b.block_start=
-0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=K-1,b.match_available=0,b.ins_h=0);return c}function y(b,c,d,f,g,k){if(!b)return M;var l=1;if(c===L&&(c=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>C||d!==B||8>f||15<f||0>c||9<c||0>k||k>W)return e(b,M);8===f&&(f=9);var m=new t;return b.state=m,m.strm=b,m.wrap=l,m.gzhead=null,m.w_bits=f,m.w_size=1<<m.w_bits,m.w_mask=m.w_size-1,m.hash_bits=g+7,m.hash_size=1<<m.hash_bits,m.hash_mask=m.hash_size-1,m.hash_shift=~~((m.hash_bits+K-1)/K),m.window=new x.Buf8(2*
-m.w_size),m.head=new x.Buf16(m.hash_size),m.prev=new x.Buf16(m.w_size),m.lit_bufsize=1<<g+6,m.pending_buf_size=4*m.lit_bufsize,m.pending_buf=new x.Buf8(m.pending_buf_size),m.d_buf=1*m.lit_bufsize,m.l_buf=3*m.lit_bufsize,m.level=c,m.strategy=k,m.method=d,u(b)}var z,x=b("../utils/common"),G=b("./trees"),D=b("./adler32"),E=b("./crc32"),A=b("./messages"),F=0,H=4,I=0,M=-2,L=-1,R=1,W=4,da=2,B=8,C=9,U=286,Z=30,J=19,aa=2*U+1,N=15,K=3,O=258,S=O+K+1,ca=42,$=113,P=1,X=2,Y=3,T=4;z=[new s(0,0,0,0,function(b,c){var d=
-65535;for(d>b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(q(b),0===b.lookahead&&c===F)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-S&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):(b.strstart>b.block_start&&k(b,!1),P)}),new s(4,4,8,
-4,p),new s(4,5,16,8,p),new s(4,6,32,32,p),new s(4,4,16,16,r),new s(8,16,32,32,r),new s(8,16,128,128,r),new s(8,32,128,256,r),new s(32,128,258,1024,r),new s(32,258,258,4096,r)];d.deflateInit=function(b,c){return y(b,c,B,15,8,0)};d.deflateInit2=y;d.deflateReset=u;d.deflateResetKeep=v;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?M:(b.state.gzhead=c,I):M};d.deflate=function(b,c){var d,p,n,r;if(!b||!b.state||5<c||0>c)return b?e(b,M):M;if(p=b.state,!b.output||!b.input&&0!==b.avail_in||
-666===p.status&&c!==H)return e(b,0===b.avail_out?-5:M);if(p.strm=b,d=p.last_flush,p.last_flush=c,p.status===ca)2===p.wrap?(b.adler=0,l(p,31),l(p,139),l(p,8),p.gzhead?(l(p,(p.gzhead.text?1:0)+(p.gzhead.hcrc?2:0)+(p.gzhead.extra?4:0)+(p.gzhead.name?8:0)+(p.gzhead.comment?16:0)),l(p,255&p.gzhead.time),l(p,p.gzhead.time>>8&255),l(p,p.gzhead.time>>16&255),l(p,p.gzhead.time>>24&255),l(p,9===p.level?2:2<=p.strategy||2>p.level?4:0),l(p,255&p.gzhead.os),p.gzhead.extra&&p.gzhead.extra.length&&(l(p,255&p.gzhead.extra.length),
-l(p,p.gzhead.extra.length>>8&255)),p.gzhead.hcrc&&(b.adler=E(b.adler,p.pending_buf,p.pending,0)),p.gzindex=0,p.status=69):(l(p,0),l(p,0),l(p,0),l(p,0),l(p,0),l(p,9===p.level?2:2<=p.strategy||2>p.level?4:0),l(p,3),p.status=$)):(n=B+(p.w_bits-8<<4)<<8,r=-1,r=2<=p.strategy||2>p.level?0:6>p.level?1:6===p.level?2:3,n|=r<<6,0!==p.strstart&&(n|=32),p.status=$,m(p,n+(31-n%31)),0!==p.strstart&&(m(p,b.adler>>>16),m(p,65535&b.adler)),b.adler=1);if(69===p.status)if(p.gzhead.extra){for(n=p.pending;p.gzindex<(65535&
-p.gzhead.extra.length)&&(p.pending!==p.pending_buf_size||(p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n)),g(b),n=p.pending,p.pending!==p.pending_buf_size));)l(p,255&p.gzhead.extra[p.gzindex]),p.gzindex++;p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n));p.gzindex===p.gzhead.extra.length&&(p.gzindex=0,p.status=73)}else p.status=73;if(73===p.status)if(p.gzhead.name){n=p.pending;do{if(p.pending===p.pending_buf_size&&(p.gzhead.hcrc&&p.pending>n&&
-(b.adler=E(b.adler,p.pending_buf,p.pending-n,n)),g(b),n=p.pending,p.pending===p.pending_buf_size)){r=1;break}r=p.gzindex<p.gzhead.name.length?255&p.gzhead.name.charCodeAt(p.gzindex++):0;l(p,r)}while(0!==r);p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n));0===r&&(p.gzindex=0,p.status=91)}else p.status=91;if(91===p.status)if(p.gzhead.comment){n=p.pending;do{if(p.pending===p.pending_buf_size&&(p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n)),g(b),
-n=p.pending,p.pending===p.pending_buf_size)){r=1;break}r=p.gzindex<p.gzhead.comment.length?255&p.gzhead.comment.charCodeAt(p.gzindex++):0;l(p,r)}while(0!==r);p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n));0===r&&(p.status=103)}else p.status=103;if(103===p.status&&(p.gzhead.hcrc?(p.pending+2>p.pending_buf_size&&g(b),p.pending+2<=p.pending_buf_size&&(l(p,255&b.adler),l(p,b.adler>>8&255),b.adler=0,p.status=$)):p.status=$),0!==p.pending){if(g(b),0===b.avail_out)return p.last_flush=
--1,I}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==H)return e(b,-5);if(666===p.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==p.lookahead||c!==F&&666!==p.status){var s;if(2===p.strategy)a:{for(var t;;){if(0===p.lookahead&&(q(p),0===p.lookahead)){if(c===F){s=P;break a}break}if(p.match_length=0,t=G._tr_tally(p,0,p.window[p.strstart]),p.lookahead--,p.strstart++,t&&(k(p,!1),0===p.strm.avail_out)){s=P;break a}}s=(p.insert=0,c===H?(k(p,!0),0===p.strm.avail_out?Y:T):p.last_lit&&
-(k(p,!1),0===p.strm.avail_out)?P:X)}else if(3===p.strategy)a:{var u,A;for(t=p.window;;){if(p.lookahead<=O){if(q(p),p.lookahead<=O&&c===F){s=P;break a}if(0===p.lookahead)break}if(p.match_length=0,p.lookahead>=K&&0<p.strstart&&(A=p.strstart-1,u=t[A],u===t[++A]&&u===t[++A]&&u===t[++A])){d=p.strstart+O;do;while(u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&A<d);p.match_length=O-(d-A);p.match_length>p.lookahead&&(p.match_length=p.lookahead)}if(p.match_length>=
-K?(s=G._tr_tally(p,1,p.match_length-K),p.lookahead-=p.match_length,p.strstart+=p.match_length,p.match_length=0):(s=G._tr_tally(p,0,p.window[p.strstart]),p.lookahead--,p.strstart++),s&&(k(p,!1),0===p.strm.avail_out)){s=P;break a}}s=(p.insert=0,c===H?(k(p,!0),0===p.strm.avail_out?Y:T):p.last_lit&&(k(p,!1),0===p.strm.avail_out)?P:X)}else s=z[p.level].func(p,c);if(s!==Y&&s!==T||(p.status=666),s===P||s===Y)return 0===b.avail_out&&(p.last_flush=-1),I;if(s===X&&(1===c?G._tr_align(p):5!==c&&(G._tr_stored_block(p,
-0,0,!1),3===c&&(f(p.head),0===p.lookahead&&(p.strstart=0,p.block_start=0,p.insert=0))),g(b),0===b.avail_out))return p.last_flush=-1,I}return c!==H?I:0>=p.wrap?1:(2===p.wrap?(l(p,255&b.adler),l(p,b.adler>>8&255),l(p,b.adler>>16&255),l(p,b.adler>>24&255),l(p,255&b.total_in),l(p,b.total_in>>8&255),l(p,b.total_in>>16&255),l(p,b.total_in>>24&255)):(m(p,b.adler>>>16),m(p,65535&b.adler)),g(b),0<p.wrap&&(p.wrap=-p.wrap),0!==p.pending?I:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,
-c!==ca&&69!==c&&73!==c&&91!==c&&103!==c&&c!==$&&666!==c?e(b,M):(b.state=null,c===$?e(b,-3):I)):M};d.deflateSetDictionary=function(b,c){var d,e,g,k,l,p,m;e=c.length;if(!b||!b.state||(d=b.state,k=d.wrap,2===k||1===k&&d.status!==ca||d.lookahead))return M;1===k&&(b.adler=D(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===k&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),l=new x.Buf8(d.w_size),x.arraySet(l,c,e-d.w_size,d.w_size,0),c=l,e=d.w_size);l=b.avail_in;p=b.next_in;m=b.input;b.avail_in=e;b.next_in=
-0;b.input=c;for(q(d);d.lookahead>=K;){e=d.strstart;g=d.lookahead-(K-1);do d.ins_h=(d.ins_h<<d.hash_shift^d.window[e+K-1])&d.hash_mask,d.prev[e&d.w_mask]=d.head[d.ins_h],d.head[d.ins_h]=e,e++;while(--g);d.strstart=e;d.lookahead=K-1;q(d)}return d.strstart+=d.lookahead,d.block_start=d.strstart,d.insert=d.lookahead,d.lookahead=0,d.match_length=d.prev_length=K-1,d.match_available=0,b.next_in=p,b.input=m,b.avail_in=l,d.wrap=k,I};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
-"./crc32":7,"./messages":13,"./trees":14}],9:[function(b,c,d){c.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(b,c,d){c.exports=function(b,c){var d,k,l,m,n,q,p,r,s,t,v,u,y,z,x,G,D,E,A,F,H,I,M,L;d=b.state;k=b.next_in;M=b.input;l=k+(b.avail_in-5);m=b.next_out;L=b.output;n=m-(c-b.avail_out);q=m+(b.avail_out-257);p=d.dmax;r=d.wsize;s=d.whave;t=d.wnext;v=d.window;u=d.hold;y=d.bits;z=d.lencode;
-x=d.distcode;G=(1<<d.lenbits)-1;D=(1<<d.distbits)-1;a:do{15>y&&(u+=M[k++]<<y,y+=8,u+=M[k++]<<y,y+=8);E=z[u&G];b:for(;;){if(A=E>>>24,u>>>=A,y-=A,A=E>>>16&255,0===A)L[m++]=65535&E;else{if(!(16&A)){if(0===(64&A)){E=z[(65535&E)+(u&(1<<A)-1)];continue b}if(32&A){d.mode=12;break a}b.msg="invalid literal/length code";d.mode=30;break a}F=65535&E;(A&=15)&&(y<A&&(u+=M[k++]<<y,y+=8),F+=u&(1<<A)-1,u>>>=A,y-=A);15>y&&(u+=M[k++]<<y,y+=8,u+=M[k++]<<y,y+=8);E=x[u&D];c:for(;;){if(A=E>>>24,u>>>=A,y-=A,A=E>>>16&255,
-!(16&A)){if(0===(64&A)){E=x[(65535&E)+(u&(1<<A)-1)];continue c}b.msg="invalid distance code";d.mode=30;break a}if(H=65535&E,A&=15,y<A&&(u+=M[k++]<<y,y+=8,y<A&&(u+=M[k++]<<y,y+=8)),H+=u&(1<<A)-1,H>p){b.msg="invalid distance too far back";d.mode=30;break a}if(u>>>=A,y-=A,A=m-n,H>A){if(A=H-A,A>s&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(E=0,I=v,0===t){if(E+=r-A,A<F){F-=A;do L[m++]=v[E++];while(--A);E=m-H;I=L}}else if(t<A){if(E+=r+t-A,A-=t,A<F){F-=A;do L[m++]=v[E++];while(--A);
-if(E=0,t<F){A=t;F-=A;do L[m++]=v[E++];while(--A);E=m-H;I=L}}}else if(E+=t-A,A<F){F-=A;do L[m++]=v[E++];while(--A);E=m-H;I=L}for(;2<F;)L[m++]=I[E++],L[m++]=I[E++],L[m++]=I[E++],F-=3;F&&(L[m++]=I[E++],1<F&&(L[m++]=I[E++]))}else{E=m-H;do L[m++]=L[E++],L[m++]=L[E++],L[m++]=L[E++],F-=3;while(2<F);F&&(L[m++]=L[E++],1<F&&(L[m++]=L[E++]))}break}}break}}while(k<l&&m<q);F=y>>3;k-=F;y-=F<<3;b.next_in=k;b.next_out=m;b.avail_in=k<l?5+(l-k):5-(k-l);b.avail_out=m<q?257+(q-m):257-(m-q);d.hold=u&(1<<y)-1;d.bits=y}},
-{}],11:[function(b,c,d){function e(b){return(b>>>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=x,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(G),c.distcode=c.distdyn=new r.Buf32(D),c.sane=1,c.back=-1,y):z}function k(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):z}function l(b,c){var d,e;return b&&b.state?(e=b.state,
-0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15<c)?z:(null!==e.window&&e.wbits!==c&&(e.window=null),e.wrap=d,e.wbits=c,k(b))):z}function m(b,c){var d,e;return b?(e=new f,b.state=e,e.window=null,d=l(b,c),d!==y&&(b.state=null),d):z}function n(b,c,d,e){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new r.Buf8(b.wsize)),e>=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d-
-e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var q,p,r=b("../utils/common"),s=b("./adler32"),t=b("./crc32"),v=b("./inffast"),u=b("./inftrees"),y=0,z=-2,x=1,G=852,D=592,E=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return m(b,15)};d.inflateInit2=m;d.inflate=function(b,c){var d,f,g,k,l,m,D,B,C,U,G,J,aa,N,K,O,S,ca,$,P,X,Y,T=0,Q=new r.Buf8(4),ha=[16,17,
-18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||!b.output||!b.input&&0!==b.avail_in)return z;d=b.state;12===d.mode&&(d.mode=13);l=b.next_out;g=b.output;D=b.avail_out;k=b.next_in;f=b.input;m=b.avail_in;B=d.hold;C=d.bits;U=m;G=D;X=y;a:for(;;)switch(d.mode){case x:if(0===d.wrap){d.mode=13;break}for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(2&d.wrap&&35615===B){d.check=0;Q[0]=255&B;Q[1]=B>>>8&255;d.check=t(d.check,Q,2,0);C=B=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&
-d.wrap)||(((255&B)<<8)+(B>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&B)){b.msg="unknown compression method";d.mode=30;break}if(B>>>=4,C-=4,P=(15&B)+8,0===d.wbits)d.wbits=P;else if(P>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<<P;b.adler=d.check=1;d.mode=512&B?10:12;C=B=0;break;case 2:for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(d.flags=B,8!==(255&d.flags)){b.msg="unknown compression method";d.mode=30;break}if(57344&d.flags){b.msg="unknown header flags set";
-d.mode=30;break}d.head&&(d.head.text=B>>8&1);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));C=B=0;d.mode=3;case 3:for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.head&&(d.head.time=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,Q[2]=B>>>16&255,Q[3]=B>>>24&255,d.check=t(d.check,Q,4,0));C=B=0;d.mode=4;case 4:for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.head&&(d.head.xflags=255&B,d.head.os=B>>8);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));C=B=0;d.mode=
-5;case 5:if(1024&d.flags){for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.length=B;d.head&&(d.head.extra_len=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));C=B=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(J=d.length,J>m&&(J=m),J&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,k,J,P)),512&d.flags&&(d.check=t(d.check,f,J,k)),m-=J,k+=J,d.length-=J),d.length))break a;d.length=0;d.mode=
-7;case 7:if(2048&d.flags){if(0===m)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&J<m);if(512&d.flags&&(d.check=t(d.check,f,J,k)),m-=J,k+=J,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===m)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&J<m);if(512&d.flags&&(d.check=t(d.check,f,J,k)),m-=J,k+=J,P)break a}else d.head&&(d.head.comment=null);d.mode=
-9;case 9:if(512&d.flags){for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B!==(65535&d.check)){b.msg="header crc mismatch";d.mode=30;break}C=B=0}d.head&&(d.head.hcrc=d.flags>>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}b.adler=d.check=e(B);C=B=0;d.mode=11;case 11:if(0===d.havedict)return b.next_out=l,b.avail_out=D,b.next_in=k,b.avail_in=m,d.hold=B,d.bits=C,2;b.adler=d.check=1;d.mode=12;case 12:if(5===c||6===c)break a;case 13:if(d.last){B>>>=
-7&C;C-=7&C;d.mode=27;break}for(;3>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}switch(d.last=1&B,B>>>=1,C-=1,3&B){case 0:d.mode=14;break;case 1:N=d;if(E){O=void 0;q=new r.Buf32(512);p=new r.Buf32(32);for(O=0;144>O;)N.lens[O++]=8;for(;256>O;)N.lens[O++]=9;for(;280>O;)N.lens[O++]=7;for(;288>O;)N.lens[O++]=8;u(1,N.lens,0,288,q,0,N.work,{bits:9});for(O=0;32>O;)N.lens[O++]=5;u(2,N.lens,0,32,p,0,N.work,{bits:5});E=!1}N.lencode=q;N.lenbits=9;N.distcode=p;N.distbits=5;if(d.mode=20,6===c){B>>>=2;C-=2;break a}break;
-case 2:d.mode=17;break;case 3:b.msg="invalid block type",d.mode=30}B>>>=2;C-=2;break;case 14:B>>>=7&C;for(C-=7&C;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if((65535&B)!==(B>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&B,B=0,C=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(J=d.length){if(J>m&&(J=m),J>D&&(J=D),0===J)break a;r.arraySet(g,f,k,J,l);m-=J;k+=J;D-=J;l+=J;d.length-=J;break}d.mode=12;break;case 17:for(;14>C;){if(0===m)break a;m--;B+=f[k++]<<
-C;C+=8}if(d.nlen=(31&B)+257,B>>>=5,C-=5,d.ndist=(31&B)+1,B>>>=5,C-=5,d.ncode=(15&B)+4,B>>>=4,C-=4,286<d.nlen||30<d.ndist){b.msg="too many length or distance symbols";d.mode=30;break}d.have=0;d.mode=18;case 18:for(;d.have<d.ncode;){for(;3>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.lens[ha[d.have++]]=7&B;B>>>=3;C-=3}for(;19>d.have;)d.lens[ha[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,Y={bits:d.lenbits},X=u(0,d.lens,0,19,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid code lengths set";
-d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have<d.nlen+d.ndist;){for(;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,O=65535&T,!(K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(16>O)B>>>=K,C-=K,d.lens[d.have++]=O;else{if(16===O){for(N=K+2;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B>>>=K,C-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];J=3+(3&B);B>>>=2;C-=2}else if(17===O){for(N=K+3;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=K;C-=K;P=0;J=3+(7&B);
-B>>>=3;C-=3}else{for(N=K+7;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=K;C-=K;P=0;J=11+(127&B);B>>>=7;C-=7}if(d.have+J>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;J--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,Y={bits:d.lenbits},X=u(1,d.lens,0,d.nlen,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,
-Y={bits:d.distbits},X=u(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,Y),d.distbits=Y.bits,X){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<=D){b.next_out=l;b.avail_out=D;b.next_in=k;b.avail_in=m;d.hold=B;d.bits=C;v(b,G);l=b.next_out;g=b.output;D=b.avail_out;k=b.next_in;f=b.input;m=b.avail_in;B=d.hold;C=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,N=T>>>16&255,O=65535&T,!(K<=C);){if(0===
-m)break a;m--;B+=f[k++]<<C;C+=8}if(N&&0===(240&N)){S=K;ca=N;for($=O;T=d.lencode[$+((B&(1<<S+ca)-1)>>S)],K=T>>>24,N=T>>>16&255,O=65535&T,!(S+K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=S;C-=S;d.back+=S}if(B>>>=K,C-=K,d.back+=K,d.length=O,0===N){d.mode=26;break}if(32&N){d.back=-1;d.mode=12;break}if(64&N){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&N;d.mode=22;case 22:if(d.extra){for(N=d.extra;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.length+=B&(1<<d.extra)-1;B>>>=d.extra;
-C-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=23;case 23:for(;T=d.distcode[B&(1<<d.distbits)-1],K=T>>>24,N=T>>>16&255,O=65535&T,!(K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(0===(240&N)){S=K;ca=N;for($=O;T=d.distcode[$+((B&(1<<S+ca)-1)>>S)],K=T>>>24,N=T>>>16&255,O=65535&T,!(S+K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=S;C-=S;d.back+=S}if(B>>>=K,C-=K,d.back+=K,64&N){b.msg="invalid distance code";d.mode=30;break}d.offset=O;d.extra=15&N;d.mode=24;case 24:if(d.extra){for(N=d.extra;C<
-N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.offset+=B&(1<<d.extra)-1;B>>>=d.extra;C-=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===D)break a;if(J=G-D,d.offset>J){if(J=d.offset-J,J>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}J>d.wnext?(J-=d.wnext,aa=d.wsize-J):aa=d.wnext-J;J>d.length&&(J=d.length);N=d.window}else N=g,aa=l-d.offset,J=d.length;J>D&&(J=D);D-=J;d.length-=J;do g[l++]=N[aa++];while(--J);
-0===d.length&&(d.mode=21);break;case 26:if(0===D)break a;g[l++]=d.length;D--;d.mode=21;break;case 27:if(d.wrap){for(;32>C;){if(0===m)break a;m--;B|=f[k++]<<C;C+=8}if(G-=D,b.total_out+=G,d.total+=G,G&&(b.adler=d.check=d.flags?t(d.check,g,G,l-G):s(d.check,g,G,l-G)),G=D,(d.flags?B:e(B))!==d.check){b.msg="incorrect data check";d.mode=30;break}C=B=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=
-30;break}C=B=0}d.mode=29;case 29:X=1;break a;case 30:X=-3;break a;case 31:return-4;default:return z}return b.next_out=l,b.avail_out=D,b.next_in=k,b.avail_in=m,d.hold=B,d.bits=C,(d.wsize||G!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&n(b,b.output,b.next_out,G-b.avail_out)?(d.mode=31,-4):(U-=b.avail_in,G-=b.avail_out,b.total_in+=U,b.total_out+=G,d.total+=G,d.wrap&&G&&(b.adler=d.check=d.flags?t(d.check,g,G,b.next_out-G):s(d.check,g,G,b.next_out-G)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:
-0)+(20===d.mode||15===d.mode?256:0),(0===U&&0===G||4===c)&&X===y&&(X=-5),X)};d.inflateEnd=function(b){if(!b||!b.state)return z;var c=b.state;return c.window&&(c.window=null),b.state=null,y};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?z:(d.head=c,c.done=!1,y)):z};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?z:11===d.mode&&(e=1,e=s(e,c,f,0),e!==d.check)?-3:n(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,y)):
-z};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],k=[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],l=[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,s,t,v){var u,y,z,x,G,D,E,A;x=v.bits;for(var F=0,H=0,I=0,M=0,L=0,R=0,W=0,da=u=0,B=0,C=null,U=0,Z=new e.Buf16(16),R=new e.Buf16(16),J=null,aa=0,F=0;15>=F;F++)Z[F]=0;for(H=0;H<p;H++)Z[c[d+H]]++;L=x;for(M=15;1<=M&&0===Z[M];M--);if(L>M&&(L=M),0===M)return r[s++]=20971520,r[s++]=20971520,v.bits=1,0;for(I=1;I<M&&0===Z[I];I++);L<I&&(L=I);for(F=u=1;15>=F;F++)if(u<<=1,u-=Z[F],0>u)return-1;
-if(0<u&&(0===b||1!==M))return-1;R[1]=0;for(F=1;15>F;F++)R[F+1]=R[F]+Z[F];for(H=0;H<p;H++)0!==c[d+H]&&(t[R[c[d+H]]++]=H);if(0===b?(C=J=t,G=19):1===b?(C=f,U-=257,J=g,aa-=257,G=256):(C=k,J=l,G=-1),B=0,H=0,F=I,x=s,R=L,W=0,z=-1,da=1<<L,p=da-1,1===b&&852<da||2===b&&592<da)return 1;for(var N=0;;){N++;D=F-W;t[H]<G?(E=0,A=t[H]):t[H]>G?(E=J[aa+t[H]],A=C[U+t[H]]):(E=96,A=0);u=1<<F-W;I=y=1<<R;do y-=u,r[x+(B>>W)+y]=D<<24|E<<16|A|0;while(0!==y);for(u=1<<F-1;B&u;)u>>=1;if(0!==u?(B&=u-1,B+=u):B=0,H++,0===--Z[F]){if(F===
-M)break;F=c[d+t[H]]}if(F>L&&(B&p)!==z){0===W&&(W=L);x+=I;R=F-W;for(u=1<<R;R+W<M&&(u-=Z[R+W],!(0>=u));)R++,u<<=1;if(da+=1<<R,1===b&&852<da||2===b&&592<da)return 1;z=B&p;r[z]=L<<24|R<<16|x-s|0}}return 0!==B&&(r[x+B]=F-W<<24|4194304),v.bits=L,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=
-b.length;0<=--c;)b[c]=0}function f(b,c,d,e,f){this.static_tree=b;this.extra_bits=c;this.extra_base=d;this.elems=e;this.max_length=f;this.has_stree=b&&b.length}function g(b,c){this.dyn_tree=b;this.max_code=0;this.stat_desc=c}function k(b,c){b.pending_buf[b.pending++]=255&c;b.pending_buf[b.pending++]=c>>>8&255}function l(b,c,d){b.bi_valid>da-d?(b.bi_buf|=c<<b.bi_valid&65535,k(b,b.bi_buf),b.bi_buf=c>>da-b.bi_valid,b.bi_valid+=d-da):(b.bi_buf|=c<<b.bi_valid&65535,b.bi_valid+=d)}function m(b,c,d){l(b,
-d[2*c],d[2*c+1])}function n(b,c){var d=0;do d|=1&b,b>>>=1,d<<=1;while(0<--c);return d>>>1}function q(b,c,d){var e,f=Array(W+1),g=0;for(e=1;e<=W;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]=n(f[e]++,e))}function p(b){var c;for(c=0;c<I;c++)b.dyn_ltree[2*c]=0;for(c=0;c<M;c++)b.dyn_dtree[2*c]=0;for(c=0;c<L;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*B]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function r(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);
-b.bi_buf=0;b.bi_valid=0}function s(b,c,d,e){var f=2*c,g=2*d;return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&s(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!s(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function v(b,c,d){var e,f,g,k,p=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*p]<<8|b.pending_buf[b.d_buf+2*p+1],f=b.pending_buf[b.l_buf+p],p++,0===e?m(b,f,c):(g=$[f],m(b,g+H+1,c),k=J[g],0!==k&&(f-=P[g],l(b,f,k)),
-e--,g=256>e?ca[e]:ca[256+(e>>>7)],m(b,g,d),k=aa[g],0!==k&&(e-=X[g],l(b,e,k)));while(p<b.last_lit)}m(b,B,c)}function u(b,c){var d,e,f,g=c.dyn_tree;e=c.stat_desc.static_tree;var k=c.stat_desc.has_stree,l=c.stat_desc.elems,m=-1;b.heap_len=0;b.heap_max=R;for(d=0;d<l;d++)0!==g[2*d]?(b.heap[++b.heap_len]=m=d,b.depth[d]=0):g[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>m?++m:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=e[2*f+1]);c.max_code=m;for(d=b.heap_len>>1;1<=d;d--)t(b,g,d);f=l;do d=
-b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var p,n,k=c.dyn_tree,l=c.max_code,r=c.stat_desc.static_tree,s=c.stat_desc.has_stree,u=c.stat_desc.extra_bits,B=c.stat_desc.extra_base,C=c.stat_desc.max_length,v=0;for(e=0;e<=W;e++)b.bl_count[e]=0;k[2*b.heap[b.heap_max]+
-1]=0;for(d=b.heap_max+1;d<R;d++)f=b.heap[d],e=k[2*k[2*f+1]+1]+1,e>C&&(e=C,v++),k[2*f+1]=e,f>l||(b.bl_count[e]++,p=0,f>=B&&(p=u[f-B]),n=k[2*f],b.opt_len+=n*(e+p),s&&(b.static_len+=n*(r[2*f+1]+p)));if(0!==v){do{for(e=C-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[C]--;v-=2}while(0<v);for(e=C;0!==e;e--)for(f=b.bl_count[e];0!==f;)p=b.heap[--d],p>l||(k[2*p+1]!==e&&(b.opt_len+=(e-k[2*p+1])*k[2*p],k[2*p+1]=e),f--)}q(g,m,b.bl_count)}function y(b,c,d){var e,f,g=-1,k=c[1],l=0,m=7,
-p=4;0===k&&(m=138,p=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=k,k=c[2*(e+1)+1],++l<m&&f===k||(l<p?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*C]++):10>=l?b.bl_tree[2*U]++:b.bl_tree[2*Z]++,l=0,g=f,0===k?(m=138,p=3):f===k?(m=6,p=3):(m=7,p=4))}function z(b,c,d){var e,f,g=-1,k=c[1],p=0,n=7,r=4;0===k&&(n=138,r=3);for(e=0;e<=d;e++)if(f=k,k=c[2*(e+1)+1],!(++p<n&&f===k)){if(p<r){do m(b,f,b.bl_tree);while(0!==--p)}else 0!==f?(f!==g&&(m(b,f,b.bl_tree),p--),m(b,C,b.bl_tree),l(b,p-3,2)):10>=p?
-(m(b,U,b.bl_tree),l(b,p-3,3)):(m(b,Z,b.bl_tree),l(b,p-11,7));p=0;g=f;0===k?(n=138,r=3):f===k?(n=6,r=3):(n=7,r=4)}}function x(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return E;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return A;for(c=32;c<H;c++)if(0!==b.dyn_ltree[2*c])return A;return E}function G(b,c,d,e){l(b,(F<<1)+(e?1:0),3);r(b);k(b,d);k(b,~d);D.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var D=b("../utils/common"),E=0,A=1,
-F=0,H=256,I=H+1+29,M=30,L=19,R=2*I+1,W=15,da=16,B=256,C=16,U=17,Z=18,J=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],O=Array(2*(I+2));e(O);var S=Array(2*M);e(S);var ca=Array(512);e(ca);var $=Array(256);e($);var P=Array(29);e(P);var X=Array(M);e(X);var Y,T,Q,ha=!1;d._tr_init=function(b){if(!ha){var c,d,e,k=Array(W+1);for(e=
-d=0;28>e;e++){P[e]=d;for(c=0;c<1<<J[e];c++)$[d++]=e}$[d-1]=e;for(e=d=0;16>e;e++){X[e]=d;for(c=0;c<1<<aa[e];c++)ca[d++]=e}for(d>>=7;e<M;e++){X[e]=d<<7;for(c=0;c<1<<aa[e]-7;c++)ca[256+d++]=e}for(c=0;c<=W;c++)k[c]=0;for(c=0;143>=c;)O[2*c+1]=8,c++,k[8]++;for(;255>=c;)O[2*c+1]=9,c++,k[9]++;for(;279>=c;)O[2*c+1]=7,c++,k[7]++;for(;287>=c;)O[2*c+1]=8,c++,k[8]++;q(O,I+1,k);for(c=0;c<M;c++)S[2*c+1]=5,S[2*c]=n(c,5);Y=new f(O,J,H+1,I,W);T=new f(S,aa,0,M,W);Q=new f([],N,0,L,7);ha=!0}b.l_desc=new g(b.dyn_ltree,
-Y);b.d_desc=new g(b.dyn_dtree,T);b.bl_desc=new g(b.bl_tree,Q);b.bi_buf=0;b.bi_valid=0;p(b)};d._tr_stored_block=G;d._tr_flush_block=function(b,c,d,e){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));u(b,b.l_desc);u(b,b.d_desc);y(b,b.dyn_ltree,b.l_desc.max_code);y(b,b.dyn_dtree,b.d_desc.max_code);u(b,b.bl_desc);for(k=L-1;3<=k&&0===b.bl_tree[2*K[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)G(b,c,d,
-e);else if(4===b.strategy||g===f)l(b,2+(e?1:0),3),v(b,O,S);else{l(b,4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;k+=1;l(b,c-257,5);l(b,d-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*K[f]+1],3);z(b,b.dyn_ltree,c-1);z(b,b.dyn_dtree,d-1);v(b,b.dyn_ltree,b.dyn_dtree)}p(b);e&&r(b)};d._tr_tally=function(b,c,d){return b.pending_buf[b.d_buf+2*b.last_lit]=c>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,
-c--,b.dyn_ltree[2*($[d]+H+1)]++,b.dyn_dtree[2*(256>c?ca[c]:ca[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){l(b,2,3);m(b,B,O);16===b.bi_valid?(k(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=
+this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*aa);this.dyn_dtree=new x.Buf16(2*(2*Z+1));this.bl_tree=new x.Buf16(2*(2*J+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(M+1);this.heap=new x.Buf16(2*U+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*U+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
+this.lit_bufsize=this.l_buf=0}function v(b){var c;return b&&b.state?(b.total_in=b.total_out=0,b.data_type=da,c=b.state,c.pending=0,c.pending_out=0,0>c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?ca:$,b.adler=2===c.wrap?0:1,c.last_flush=G,E._tr_init(c),I):e(b,O)}function u(b){var c=v(b);c===I&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=y[b.level].max_lazy,b.good_match=y[b.level].good_length,b.nice_match=y[b.level].nice_length,b.max_chain_length=y[b.level].max_chain,b.strstart=0,b.block_start=
+0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=K-1,b.match_available=0,b.ins_h=0);return c}function z(b,c,d,f,g,k){if(!b)return O;var l=1;if(c===L&&(c=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>A||d!==B||8>f||15<f||0>c||9<c||0>k||k>W)return e(b,O);8===f&&(f=9);var n=new t;return b.state=n,n.strm=b,n.wrap=l,n.gzhead=null,n.w_bits=f,n.w_size=1<<n.w_bits,n.w_mask=n.w_size-1,n.hash_bits=g+7,n.hash_size=1<<n.hash_bits,n.hash_mask=n.hash_size-1,n.hash_shift=~~((n.hash_bits+K-1)/K),n.window=new x.Buf8(2*
+n.w_size),n.head=new x.Buf16(n.hash_size),n.prev=new x.Buf16(n.w_size),n.lit_bufsize=1<<g+6,n.pending_buf_size=4*n.lit_bufsize,n.pending_buf=new x.Buf8(n.pending_buf_size),n.d_buf=1*n.lit_bufsize,n.l_buf=3*n.lit_bufsize,n.level=c,n.strategy=k,n.method=d,u(b)}var y,x=b("../utils/common"),E=b("./trees"),C=b("./adler32"),F=b("./crc32"),D=b("./messages"),G=0,H=4,I=0,O=-2,L=-1,S=1,W=4,da=2,B=8,A=9,U=286,Z=30,J=19,aa=2*U+1,M=15,K=3,N=258,R=N+K+1,ca=42,$=113,P=1,X=2,Y=3,T=4;y=[new r(0,0,0,0,function(b,c){var d=
+65535;for(d>b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&c===G)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-R&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):(b.strstart>b.block_start&&k(b,!1),P)}),new r(4,4,8,
+4,q),new r(4,5,16,8,q),new r(4,6,32,32,q),new r(4,4,16,16,s),new r(8,16,32,32,s),new r(8,16,128,128,s),new r(8,32,128,256,s),new r(32,128,258,1024,s),new r(32,258,258,4096,s)];d.deflateInit=function(b,c){return z(b,c,B,15,8,0)};d.deflateInit2=z;d.deflateReset=u;d.deflateResetKeep=v;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?O:(b.state.gzhead=c,I):O};d.deflate=function(b,c){var d,m,q,s;if(!b||!b.state||5<c||0>c)return b?e(b,O):O;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||
+666===m.status&&c!==H)return e(b,0===b.avail_out?-5:O);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===ca)2===m.wrap?(b.adler=0,l(m,31),l(m,139),l(m,8),m.gzhead?(l(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)),l(m,255&m.gzhead.time),l(m,m.gzhead.time>>8&255),l(m,m.gzhead.time>>16&255),l(m,m.gzhead.time>>24&255),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(l(m,255&m.gzhead.extra.length),
+l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=F(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=$)):(q=B+(m.w_bits-8<<4)<<8,s=-1,s=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,q|=s<<6,0!==m.strstart&&(q|=32),m.status=$,n(m,q+(31-q%31)),0!==m.strstart&&(n(m,b.adler>>>16),n(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(q=m.pending;m.gzindex<(65535&
+m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q)),g(b),q=m.pending,m.pending!==m.pending_buf_size));)l(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){q=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>q&&
+(b.adler=F(b.adler,m.pending_buf,m.pending-q,q)),g(b),q=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q));0===s&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){q=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q)),g(b),
+q=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q));0===s&&(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&&(l(m,255&b.adler),l(m,b.adler>>8&255),b.adler=0,m.status=$)):m.status=$),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=
+-1,I}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==H)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==G&&666!==m.status){var r;if(2===m.strategy)a:{for(var t;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===G){r=P;break a}break}if(m.match_length=0,t=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,t&&(k(m,!1),0===m.strm.avail_out)){r=P;break a}}r=(m.insert=0,c===H?(k(m,!0),0===m.strm.avail_out?Y:T):m.last_lit&&
+(k(m,!1),0===m.strm.avail_out)?P:X)}else if(3===m.strategy)a:{var u,D;for(t=m.window;;){if(m.lookahead<=N){if(p(m),m.lookahead<=N&&c===G){r=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=K&&0<m.strstart&&(D=m.strstart-1,u=t[D],u===t[++D]&&u===t[++D]&&u===t[++D])){d=m.strstart+N;do;while(u===t[++D]&&u===t[++D]&&u===t[++D]&&u===t[++D]&&u===t[++D]&&u===t[++D]&&u===t[++D]&&u===t[++D]&&D<d);m.match_length=N-(d-D);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
+K?(r=E._tr_tally(m,1,m.match_length-K),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(r=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),r&&(k(m,!1),0===m.strm.avail_out)){r=P;break a}}r=(m.insert=0,c===H?(k(m,!0),0===m.strm.avail_out?Y:T):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?P:X)}else r=y[m.level].func(m,c);if(r!==Y&&r!==T||(m.status=666),r===P||r===Y)return 0===b.avail_out&&(m.last_flush=-1),I;if(r===X&&(1===c?E._tr_align(m):5!==c&&(E._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,I}return c!==H?I:0>=m.wrap?1:(2===m.wrap?(l(m,255&b.adler),l(m,b.adler>>8&255),l(m,b.adler>>16&255),l(m,b.adler>>24&255),l(m,255&b.total_in),l(m,b.total_in>>8&255),l(m,b.total_in>>16&255),l(m,b.total_in>>24&255)):(n(m,b.adler>>>16),n(m,65535&b.adler)),g(b),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?I:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,
+c!==ca&&69!==c&&73!==c&&91!==c&&103!==c&&c!==$&&666!==c?e(b,O):(b.state=null,c===$?e(b,-3):I)):O};d.deflateSetDictionary=function(b,c){var d,e,g,k,l,n,m;e=c.length;if(!b||!b.state||(d=b.state,k=d.wrap,2===k||1===k&&d.status!==ca||d.lookahead))return O;1===k&&(b.adler=C(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===k&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),l=new x.Buf8(d.w_size),x.arraySet(l,c,e-d.w_size,d.w_size,0),c=l,e=d.w_size);l=b.avail_in;n=b.next_in;m=b.input;b.avail_in=e;b.next_in=
+0;b.input=c;for(p(d);d.lookahead>=K;){e=d.strstart;g=d.lookahead-(K-1);do d.ins_h=(d.ins_h<<d.hash_shift^d.window[e+K-1])&d.hash_mask,d.prev[e&d.w_mask]=d.head[d.ins_h],d.head[d.ins_h]=e,e++;while(--g);d.strstart=e;d.lookahead=K-1;p(d)}return d.strstart+=d.lookahead,d.block_start=d.strstart,d.insert=d.lookahead,d.lookahead=0,d.match_length=d.prev_length=K-1,d.match_available=0,b.next_in=n,b.input=m,b.avail_in=l,d.wrap=k,I};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
+"./crc32":7,"./messages":13,"./trees":14}],9:[function(b,c,d){c.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(b,c,d){c.exports=function(b,c){var d,k,l,n,m,p,q,s,r,t,v,u,z,y,x,E,C,F,D,G,H,I,O,L;d=b.state;k=b.next_in;O=b.input;l=k+(b.avail_in-5);n=b.next_out;L=b.output;m=n-(c-b.avail_out);p=n+(b.avail_out-257);q=d.dmax;s=d.wsize;r=d.whave;t=d.wnext;v=d.window;u=d.hold;z=d.bits;y=d.lencode;
+x=d.distcode;E=(1<<d.lenbits)-1;C=(1<<d.distbits)-1;a:do{15>z&&(u+=O[k++]<<z,z+=8,u+=O[k++]<<z,z+=8);F=y[u&E];b:for(;;){if(D=F>>>24,u>>>=D,z-=D,D=F>>>16&255,0===D)L[n++]=65535&F;else{if(!(16&D)){if(0===(64&D)){F=y[(65535&F)+(u&(1<<D)-1)];continue b}if(32&D){d.mode=12;break a}b.msg="invalid literal/length code";d.mode=30;break a}G=65535&F;(D&=15)&&(z<D&&(u+=O[k++]<<z,z+=8),G+=u&(1<<D)-1,u>>>=D,z-=D);15>z&&(u+=O[k++]<<z,z+=8,u+=O[k++]<<z,z+=8);F=x[u&C];c:for(;;){if(D=F>>>24,u>>>=D,z-=D,D=F>>>16&255,
+!(16&D)){if(0===(64&D)){F=x[(65535&F)+(u&(1<<D)-1)];continue c}b.msg="invalid distance code";d.mode=30;break a}if(H=65535&F,D&=15,z<D&&(u+=O[k++]<<z,z+=8,z<D&&(u+=O[k++]<<z,z+=8)),H+=u&(1<<D)-1,H>q){b.msg="invalid distance too far back";d.mode=30;break a}if(u>>>=D,z-=D,D=n-m,H>D){if(D=H-D,D>r&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(F=0,I=v,0===t){if(F+=s-D,D<G){G-=D;do L[n++]=v[F++];while(--D);F=n-H;I=L}}else if(t<D){if(F+=s+t-D,D-=t,D<G){G-=D;do L[n++]=v[F++];while(--D);
+if(F=0,t<G){D=t;G-=D;do L[n++]=v[F++];while(--D);F=n-H;I=L}}}else if(F+=t-D,D<G){G-=D;do L[n++]=v[F++];while(--D);F=n-H;I=L}for(;2<G;)L[n++]=I[F++],L[n++]=I[F++],L[n++]=I[F++],G-=3;G&&(L[n++]=I[F++],1<G&&(L[n++]=I[F++]))}else{F=n-H;do L[n++]=L[F++],L[n++]=L[F++],L[n++]=L[F++],G-=3;while(2<G);G&&(L[n++]=L[F++],1<G&&(L[n++]=L[F++]))}break}}break}}while(k<l&&n<p);G=z>>3;k-=G;z-=G<<3;b.next_in=k;b.next_out=n;b.avail_in=k<l?5+(l-k):5-(k-l);b.avail_out=n<p?257+(p-n):257-(n-p);d.hold=u&(1<<z)-1;d.bits=z}},
+{}],11:[function(b,c,d){function e(b){return(b>>>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 s.Buf16(320);this.work=
+new s.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=x,c.last=0,c.havedict=0,c.dmax=32768,c.head=null,c.hold=0,c.bits=0,c.lencode=c.lendyn=new s.Buf32(E),c.distcode=c.distdyn=new s.Buf32(C),c.sane=1,c.back=-1,z):y}function k(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):y}function l(b,c){var d,e;return b&&b.state?(e=b.state,
+0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15<c)?y:(null!==e.window&&e.wbits!==c&&(e.window=null),e.wrap=d,e.wbits=c,k(b))):y}function n(b,c){var d,e;return b?(e=new f,b.state=e,e.window=null,d=l(b,c),d!==z&&(b.state=null),d):y}function m(b,c,d,e){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new s.Buf8(b.wsize)),e>=b.wsize?(s.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),s.arraySet(b.window,c,d-
+e,f,b.wnext),e-=f,e?(s.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var p,q,s=b("../utils/common"),r=b("./adler32"),t=b("./crc32"),v=b("./inffast"),u=b("./inftrees"),z=0,y=-2,x=1,E=852,C=592,F=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return n(b,15)};d.inflateInit2=n;d.inflate=function(b,c){var d,f,g,k,l,n,E,B,A,U,C,J,aa,M,K,N,R,ca,$,P,X,Y,T=0,Q=new s.Buf8(4),ha=[16,17,
+18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||!b.output||!b.input&&0!==b.avail_in)return y;d=b.state;12===d.mode&&(d.mode=13);l=b.next_out;g=b.output;E=b.avail_out;k=b.next_in;f=b.input;n=b.avail_in;B=d.hold;A=d.bits;U=n;C=E;X=z;a:for(;;)switch(d.mode){case x:if(0===d.wrap){d.mode=13;break}for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(2&d.wrap&&35615===B){d.check=0;Q[0]=255&B;Q[1]=B>>>8&255;d.check=t(d.check,Q,2,0);A=B=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&
+d.wrap)||(((255&B)<<8)+(B>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&B)){b.msg="unknown compression method";d.mode=30;break}if(B>>>=4,A-=4,P=(15&B)+8,0===d.wbits)d.wbits=P;else if(P>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<<P;b.adler=d.check=1;d.mode=512&B?10:12;A=B=0;break;case 2:for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(d.flags=B,8!==(255&d.flags)){b.msg="unknown compression method";d.mode=30;break}if(57344&d.flags){b.msg="unknown header flags set";
+d.mode=30;break}d.head&&(d.head.text=B>>8&1);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));A=B=0;d.mode=3;case 3:for(;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.head&&(d.head.time=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,Q[2]=B>>>16&255,Q[3]=B>>>24&255,d.check=t(d.check,Q,4,0));A=B=0;d.mode=4;case 4:for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.head&&(d.head.xflags=255&B,d.head.os=B>>8);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));A=B=0;d.mode=
+5;case 5:if(1024&d.flags){for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.length=B;d.head&&(d.head.extra_len=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));A=B=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(J=d.length,J>n&&(J=n),J&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),s.arraySet(d.head.extra,f,k,J,P)),512&d.flags&&(d.check=t(d.check,f,J,k)),n-=J,k+=J,d.length-=J),d.length))break a;d.length=0;d.mode=
+7;case 7:if(2048&d.flags){if(0===n)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&J<n);if(512&d.flags&&(d.check=t(d.check,f,J,k)),n-=J,k+=J,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===n)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&J<n);if(512&d.flags&&(d.check=t(d.check,f,J,k)),n-=J,k+=J,P)break a}else d.head&&(d.head.comment=null);d.mode=
+9;case 9:if(512&d.flags){for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(B!==(65535&d.check)){b.msg="header crc mismatch";d.mode=30;break}A=B=0}d.head&&(d.head.hcrc=d.flags>>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}b.adler=d.check=e(B);A=B=0;d.mode=11;case 11:if(0===d.havedict)return b.next_out=l,b.avail_out=E,b.next_in=k,b.avail_in=n,d.hold=B,d.bits=A,2;b.adler=d.check=1;d.mode=12;case 12:if(5===c||6===c)break a;case 13:if(d.last){B>>>=
+7&A;A-=7&A;d.mode=27;break}for(;3>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}switch(d.last=1&B,B>>>=1,A-=1,3&B){case 0:d.mode=14;break;case 1:M=d;if(F){N=void 0;p=new s.Buf32(512);q=new s.Buf32(32);for(N=0;144>N;)M.lens[N++]=8;for(;256>N;)M.lens[N++]=9;for(;280>N;)M.lens[N++]=7;for(;288>N;)M.lens[N++]=8;u(1,M.lens,0,288,p,0,M.work,{bits:9});for(N=0;32>N;)M.lens[N++]=5;u(2,M.lens,0,32,q,0,M.work,{bits:5});F=!1}M.lencode=p;M.lenbits=9;M.distcode=q;M.distbits=5;if(d.mode=20,6===c){B>>>=2;A-=2;break a}break;
+case 2:d.mode=17;break;case 3:b.msg="invalid block type",d.mode=30}B>>>=2;A-=2;break;case 14:B>>>=7&A;for(A-=7&A;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if((65535&B)!==(B>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&B,B=0,A=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(J=d.length){if(J>n&&(J=n),J>E&&(J=E),0===J)break a;s.arraySet(g,f,k,J,l);n-=J;k+=J;E-=J;l+=J;d.length-=J;break}d.mode=12;break;case 17:for(;14>A;){if(0===n)break a;n--;B+=f[k++]<<
+A;A+=8}if(d.nlen=(31&B)+257,B>>>=5,A-=5,d.ndist=(31&B)+1,B>>>=5,A-=5,d.ncode=(15&B)+4,B>>>=4,A-=4,286<d.nlen||30<d.ndist){b.msg="too many length or distance symbols";d.mode=30;break}d.have=0;d.mode=18;case 18:for(;d.have<d.ncode;){for(;3>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.lens[ha[d.have++]]=7&B;B>>>=3;A-=3}for(;19>d.have;)d.lens[ha[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,Y={bits:d.lenbits},X=u(0,d.lens,0,19,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid code lengths set";
+d.mode=30;break}d.have=0;d.mode=19;case 19:for(;d.have<d.nlen+d.ndist;){for(;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,N=65535&T,!(K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(16>N)B>>>=K,A-=K,d.lens[d.have++]=N;else{if(16===N){for(M=K+2;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(B>>>=K,A-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];J=3+(3&B);B>>>=2;A-=2}else if(17===N){for(M=K+3;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=K;A-=K;P=0;J=3+(7&B);
+B>>>=3;A-=3}else{for(M=K+7;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=K;A-=K;P=0;J=11+(127&B);B>>>=7;A-=7}if(d.have+J>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;J--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,Y={bits:d.lenbits},X=u(1,d.lens,0,d.nlen,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,
+Y={bits:d.distbits},X=u(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,Y),d.distbits=Y.bits,X){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<=n&&258<=E){b.next_out=l;b.avail_out=E;b.next_in=k;b.avail_in=n;d.hold=B;d.bits=A;v(b,C);l=b.next_out;g=b.output;E=b.avail_out;k=b.next_in;f=b.input;n=b.avail_in;B=d.hold;A=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,M=T>>>16&255,N=65535&T,!(K<=A);){if(0===
+n)break a;n--;B+=f[k++]<<A;A+=8}if(M&&0===(240&M)){R=K;ca=M;for($=N;T=d.lencode[$+((B&(1<<R+ca)-1)>>R)],K=T>>>24,M=T>>>16&255,N=65535&T,!(R+K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=R;A-=R;d.back+=R}if(B>>>=K,A-=K,d.back+=K,d.length=N,0===M){d.mode=26;break}if(32&M){d.back=-1;d.mode=12;break}if(64&M){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&M;d.mode=22;case 22:if(d.extra){for(M=d.extra;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.length+=B&(1<<d.extra)-1;B>>>=d.extra;
+A-=d.extra;d.back+=d.extra}d.was=d.length;d.mode=23;case 23:for(;T=d.distcode[B&(1<<d.distbits)-1],K=T>>>24,M=T>>>16&255,N=65535&T,!(K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(0===(240&M)){R=K;ca=M;for($=N;T=d.distcode[$+((B&(1<<R+ca)-1)>>R)],K=T>>>24,M=T>>>16&255,N=65535&T,!(R+K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=R;A-=R;d.back+=R}if(B>>>=K,A-=K,d.back+=K,64&M){b.msg="invalid distance code";d.mode=30;break}d.offset=N;d.extra=15&M;d.mode=24;case 24:if(d.extra){for(M=d.extra;A<
+M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.offset+=B&(1<<d.extra)-1;B>>>=d.extra;A-=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===E)break a;if(J=C-E,d.offset>J){if(J=d.offset-J,J>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}J>d.wnext?(J-=d.wnext,aa=d.wsize-J):aa=d.wnext-J;J>d.length&&(J=d.length);M=d.window}else M=g,aa=l-d.offset,J=d.length;J>E&&(J=E);E-=J;d.length-=J;do g[l++]=M[aa++];while(--J);
+0===d.length&&(d.mode=21);break;case 26:if(0===E)break a;g[l++]=d.length;E--;d.mode=21;break;case 27:if(d.wrap){for(;32>A;){if(0===n)break a;n--;B|=f[k++]<<A;A+=8}if(C-=E,b.total_out+=C,d.total+=C,C&&(b.adler=d.check=d.flags?t(d.check,g,C,l-C):r(d.check,g,C,l-C)),C=E,(d.flags?B:e(B))!==d.check){b.msg="incorrect data check";d.mode=30;break}A=B=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(B!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=
+30;break}A=B=0}d.mode=29;case 29:X=1;break a;case 30:X=-3;break a;case 31:return-4;default:return y}return b.next_out=l,b.avail_out=E,b.next_in=k,b.avail_in=n,d.hold=B,d.bits=A,(d.wsize||C!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,C-b.avail_out)?(d.mode=31,-4):(U-=b.avail_in,C-=b.avail_out,b.total_in+=U,b.total_out+=C,d.total+=C,d.wrap&&C&&(b.adler=d.check=d.flags?t(d.check,g,C,b.next_out-C):r(d.check,g,C,b.next_out-C)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:
+0)+(20===d.mode||15===d.mode?256:0),(0===U&&0===C||4===c)&&X===z&&(X=-5),X)};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=r(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],k=[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],l=[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,q,s,r,t,v){var u,z,y,x,E,C,F,D;x=v.bits;for(var G=0,H=0,I=0,O=0,L=0,S=0,W=0,da=u=0,B=0,A=null,U=0,Z=new e.Buf16(16),S=new e.Buf16(16),J=null,aa=0,G=0;15>=G;G++)Z[G]=0;for(H=0;H<q;H++)Z[c[d+H]]++;L=x;for(O=15;1<=O&&0===Z[O];O--);if(L>O&&(L=O),0===O)return s[r++]=20971520,s[r++]=20971520,v.bits=1,0;for(I=1;I<O&&0===Z[I];I++);L<I&&(L=I);for(G=u=1;15>=G;G++)if(u<<=1,u-=Z[G],0>u)return-1;
+if(0<u&&(0===b||1!==O))return-1;S[1]=0;for(G=1;15>G;G++)S[G+1]=S[G]+Z[G];for(H=0;H<q;H++)0!==c[d+H]&&(t[S[c[d+H]]++]=H);if(0===b?(A=J=t,E=19):1===b?(A=f,U-=257,J=g,aa-=257,E=256):(A=k,J=l,E=-1),B=0,H=0,G=I,x=r,S=L,W=0,y=-1,da=1<<L,q=da-1,1===b&&852<da||2===b&&592<da)return 1;for(var M=0;;){M++;C=G-W;t[H]<E?(F=0,D=t[H]):t[H]>E?(F=J[aa+t[H]],D=A[U+t[H]]):(F=96,D=0);u=1<<G-W;I=z=1<<S;do z-=u,s[x+(B>>W)+z]=C<<24|F<<16|D|0;while(0!==z);for(u=1<<G-1;B&u;)u>>=1;if(0!==u?(B&=u-1,B+=u):B=0,H++,0===--Z[G]){if(G===
+O)break;G=c[d+t[H]]}if(G>L&&(B&q)!==y){0===W&&(W=L);x+=I;S=G-W;for(u=1<<S;S+W<O&&(u-=Z[S+W],!(0>=u));)S++,u<<=1;if(da+=1<<S,1===b&&852<da||2===b&&592<da)return 1;y=B&q;s[y]=L<<24|S<<16|x-r|0}}return 0!==B&&(s[x+B]=G-W<<24|4194304),v.bits=L,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=
+b.length;0<=--c;)b[c]=0}function f(b,c,d,e,f){this.static_tree=b;this.extra_bits=c;this.extra_base=d;this.elems=e;this.max_length=f;this.has_stree=b&&b.length}function g(b,c){this.dyn_tree=b;this.max_code=0;this.stat_desc=c}function k(b,c){b.pending_buf[b.pending++]=255&c;b.pending_buf[b.pending++]=c>>>8&255}function l(b,c,d){b.bi_valid>da-d?(b.bi_buf|=c<<b.bi_valid&65535,k(b,b.bi_buf),b.bi_buf=c>>da-b.bi_valid,b.bi_valid+=d-da):(b.bi_buf|=c<<b.bi_valid&65535,b.bi_valid+=d)}function n(b,c,d){l(b,
+d[2*c],d[2*c+1])}function m(b,c){var d=0;do d|=1&b,b>>>=1,d<<=1;while(0<--c);return d>>>1}function p(b,c,d){var e,f=Array(W+1),g=0;for(e=1;e<=W;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 q(b){var c;for(c=0;c<I;c++)b.dyn_ltree[2*c]=0;for(c=0;c<O;c++)b.dyn_dtree[2*c]=0;for(c=0;c<L;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*B]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function s(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);
+b.bi_buf=0;b.bi_valid=0}function r(b,c,d,e){var f=2*c,g=2*d;return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&r(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!r(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function v(b,c,d){var e,f,g,k,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?n(b,f,c):(g=$[f],n(b,g+H+1,c),k=J[g],0!==k&&(f-=P[g],l(b,f,k)),
+e--,g=256>e?ca[e]:ca[256+(e>>>7)],n(b,g,d),k=aa[g],0!==k&&(e-=X[g],l(b,e,k)));while(m<b.last_lit)}n(b,B,c)}function u(b,c){var d,e,f,g=c.dyn_tree;e=c.stat_desc.static_tree;var k=c.stat_desc.has_stree,l=c.stat_desc.elems,n=-1;b.heap_len=0;b.heap_max=S;for(d=0;d<l;d++)0!==g[2*d]?(b.heap[++b.heap_len]=n=d,b.depth[d]=0):g[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>n?++n:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=e[2*f+1]);c.max_code=n;for(d=b.heap_len>>1;1<=d;d--)t(b,g,d);f=l;do d=
+b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,q,k=c.dyn_tree,l=c.max_code,s=c.stat_desc.static_tree,r=c.stat_desc.has_stree,B=c.stat_desc.extra_bits,u=c.stat_desc.extra_base,A=c.stat_desc.max_length,v=0;for(e=0;e<=W;e++)b.bl_count[e]=0;k[2*b.heap[b.heap_max]+
+1]=0;for(d=b.heap_max+1;d<S;d++)f=b.heap[d],e=k[2*k[2*f+1]+1]+1,e>A&&(e=A,v++),k[2*f+1]=e,f>l||(b.bl_count[e]++,m=0,f>=u&&(m=B[f-u]),q=k[2*f],b.opt_len+=q*(e+m),r&&(b.static_len+=q*(s[2*f+1]+m)));if(0!==v){do{for(e=A-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[A]--;v-=2}while(0<v);for(e=A;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>l||(k[2*m+1]!==e&&(b.opt_len+=(e-k[2*m+1])*k[2*m],k[2*m+1]=e),f--)}p(g,n,b.bl_count)}function z(b,c,d){var e,f,g=-1,k=c[1],l=0,n=7,
+m=4;0===k&&(n=138,m=3);c[2*(d+1)+1]=65535;for(e=0;e<=d;e++)f=k,k=c[2*(e+1)+1],++l<n&&f===k||(l<m?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*A]++):10>=l?b.bl_tree[2*U]++:b.bl_tree[2*Z]++,l=0,g=f,0===k?(n=138,m=3):f===k?(n=6,m=3):(n=7,m=4))}function y(b,c,d){var e,f,g=-1,k=c[1],m=0,p=7,q=4;0===k&&(p=138,q=3);for(e=0;e<=d;e++)if(f=k,k=c[2*(e+1)+1],!(++m<p&&f===k)){if(m<q){do n(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(n(b,f,b.bl_tree),m--),n(b,A,b.bl_tree),l(b,m-3,2)):10>=m?
+(n(b,U,b.bl_tree),l(b,m-3,3)):(n(b,Z,b.bl_tree),l(b,m-11,7));m=0;g=f;0===k?(p=138,q=3):f===k?(p=6,q=3):(p=7,q=4)}}function x(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return F;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return D;for(c=32;c<H;c++)if(0!==b.dyn_ltree[2*c])return D;return F}function E(b,c,d,e){l(b,(G<<1)+(e?1:0),3);s(b);k(b,d);k(b,~d);C.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var C=b("../utils/common"),F=0,D=1,
+G=0,H=256,I=H+1+29,O=30,L=19,S=2*I+1,W=15,da=16,B=256,A=16,U=17,Z=18,J=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],N=Array(2*(I+2));e(N);var R=Array(2*O);e(R);var ca=Array(512);e(ca);var $=Array(256);e($);var P=Array(29);e(P);var X=Array(O);e(X);var Y,T,Q,ha=!1;d._tr_init=function(b){if(!ha){var c,d,e,k=Array(W+1);for(e=
+d=0;28>e;e++){P[e]=d;for(c=0;c<1<<J[e];c++)$[d++]=e}$[d-1]=e;for(e=d=0;16>e;e++){X[e]=d;for(c=0;c<1<<aa[e];c++)ca[d++]=e}for(d>>=7;e<O;e++){X[e]=d<<7;for(c=0;c<1<<aa[e]-7;c++)ca[256+d++]=e}for(c=0;c<=W;c++)k[c]=0;for(c=0;143>=c;)N[2*c+1]=8,c++,k[8]++;for(;255>=c;)N[2*c+1]=9,c++,k[9]++;for(;279>=c;)N[2*c+1]=7,c++,k[7]++;for(;287>=c;)N[2*c+1]=8,c++,k[8]++;p(N,I+1,k);for(c=0;c<O;c++)R[2*c+1]=5,R[2*c]=m(c,5);Y=new f(N,J,H+1,I,W);T=new f(R,aa,0,O,W);Q=new f([],M,0,L,7);ha=!0}b.l_desc=new g(b.dyn_ltree,
+Y);b.d_desc=new g(b.dyn_dtree,T);b.bl_desc=new g(b.bl_tree,Q);b.bi_buf=0;b.bi_valid=0;q(b)};d._tr_stored_block=E;d._tr_flush_block=function(b,c,d,e){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));u(b,b.l_desc);u(b,b.d_desc);z(b,b.dyn_ltree,b.l_desc.max_code);z(b,b.dyn_dtree,b.d_desc.max_code);u(b,b.bl_desc);for(k=L-1;3<=k&&0===b.bl_tree[2*K[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)E(b,c,d,
+e);else if(4===b.strategy||g===f)l(b,2+(e?1:0),3),v(b,N,R);else{l(b,4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;k+=1;l(b,c-257,5);l(b,d-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*K[f]+1],3);y(b,b.dyn_ltree,c-1);y(b,b.dyn_dtree,d-1);v(b,b.dyn_ltree,b.dyn_dtree)}q(b);e&&s(b)};d._tr_tally=function(b,c,d){return b.pending_buf[b.d_buf+2*b.last_lit]=c>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,
+c--,b.dyn_ltree[2*($[d]+H+1)]++,b.dyn_dtree[2*(256>c?ca[c]:ca[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){l(b,2,3);n(b,B,N);16===b.bi_valid?(k(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=k[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,k,r,s,t=f,v,u=d[a];u&&"object"===typeof u&&"function"===typeof u.toJSON&&(u=u.toJSON(a));"function"===typeof l&&(u=l.call(d,a,u));switch(typeof u){case "string":return b(u);case "number":return isFinite(u)?""+u:"null";case "boolean":case "null":return""+u;
-case "object":if(!u)return"null";f+=g;v=[];if("[object Array]"===Object.prototype.toString.apply(u)){s=u.length;for(e=0;e<s;e+=1)v[e]=c(e,u)||"null";r=0===v.length?"[]":f?"[\n"+f+v.join(",\n"+f)+"\n"+t+"]":"["+v.join(",")+"]";f=t;return r}if(l&&"object"===typeof l){s=l.length;for(e=0;e<s;e+=1)"string"===typeof l[e]&&(k=l[e],(r=c(k,u))&&v.push(b(k)+(f?": ":":")+r))}else for(k in u)Object.prototype.hasOwnProperty.call(u,k)&&(r=c(k,u))&&v.push(b(k)+(f?": ":":")+r);r=0===v.length?"{}":f?"{\n"+f+v.join(",\n"+
-f)+"\n"+t+"}":"{"+v.join(",")+"}";f=t;return r}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+(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=k[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,k,s,r,t=f,v,u=d[a];u&&"object"===typeof u&&"function"===typeof u.toJSON&&(u=u.toJSON(a));"function"===typeof l&&(u=l.call(d,a,u));switch(typeof u){case "string":return b(u);case "number":return isFinite(u)?""+u:"null";case "boolean":case "null":return""+u;
+case "object":if(!u)return"null";f+=g;v=[];if("[object Array]"===Object.prototype.toString.apply(u)){r=u.length;for(e=0;e<r;e+=1)v[e]=c(e,u)||"null";s=0===v.length?"[]":f?"[\n"+f+v.join(",\n"+f)+"\n"+t+"]":"["+v.join(",")+"]";f=t;return s}if(l&&"object"===typeof l){r=l.length;for(e=0;e<r;e+=1)"string"===typeof l[e]&&(k=l[e],(s=c(k,u))&&v.push(b(k)+(f?": ":":")+s))}else for(k in u)Object.prototype.hasOwnProperty.call(u,k)&&(s=c(k,u))&&v.push(b(k)+(f?": ":":")+s);s=0===v.length?"{}":f?"{\n"+f+v.join(",\n"+
+f)+"\n"+t+"}":"{"+v.join(",")+"}";f=t;return s}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,k={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},l;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((l=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
-"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
+"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,k=a[d];if(k&&"object"===typeof k)for(e in k)Object.prototype.hasOwnProperty.call(k,e)&&(f=c(k,e),void 0!==f?k[e]=f:delete k[e]);return b.call(a,d,k)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev?"iconSearch":"https://www.draw.io/iconSearch";window.TEMPLATE_PATH=window.TEMPLATE_PATH||"/templates";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";window.mxLoadResources=window.mxLoadResources||!1;
window.mxLanguage=window.mxLanguage||function(){var a="1"==urlParams.offline?"en":urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).language||null)}catch(c){isLocalStorage=!1}return a}();
window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",ca:"Catal\u00e0",cs:"\u010ce\u0161tina",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Espa\u00f1ol",fil:"Filipino",fr:"Fran\u00e7ais",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Portugu\u00eas (Brasil)",pt:"Portugu\u00eas (Portugal)",ro:"Rom\u00e2n\u0103",fi:"Suomi",sv:"Svenska",vi:"Ti\u1ebfng Vi\u1ec7t",tr:"T\u00fcrk\u00e7e",el:"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
@@ -231,8 +231,8 @@ mxRectangle.prototype.height=null;mxRectangle.prototype.setRect=function(a,b,c,d
mxRectangle.prototype.add=function(a){if(null!=a){var b=Math.min(this.x,a.x),c=Math.min(this.y,a.y),d=Math.max(this.x+this.width,a.x+a.width);a=Math.max(this.y+this.height,a.y+a.height);this.x=b;this.y=c;this.width=d-b;this.height=a-c}};mxRectangle.prototype.intersect=function(a){if(null!=a){var b=this.x+this.width,c=a.x+a.width,d=this.y+this.height,e=a.y+a.height;this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.width=Math.min(b,c)-this.x;this.height=Math.min(d,e)-this.y}};
mxRectangle.prototype.grow=function(a){this.x-=a;this.y-=a;this.width+=2*a;this.height+=2*a};mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)};mxRectangle.prototype.rotate90=function(){var a=(this.width-this.height)/2;this.x+=a;this.y-=a;a=this.width;this.width=this.height;this.height=a};mxRectangle.prototype.equals=function(a){return null!=a&&a.x==this.x&&a.y==this.y&&a.width==this.width&&a.height==this.height};
mxRectangle.fromRectangle=function(a){return new mxRectangle(a.x,a.y,a.width,a.height)};
-var mxEffects={animateChanges:function(a,b,c){var d=0,e=function(){for(var g=!1,k=0;k<b.length;k++){var l=b[k];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var m=a.getView().getState(l.cell||l.child,!1);if(null!=m)if(g=!0,l.constructor!=mxGeometryChange||a.model.isEdge(l.cell))mxUtils.setOpacity(m.shape.node,100*d/10);else{var n=a.getView().scale,q=(l.geometry.x-l.previous.x)*n,p=(l.geometry.y-
-l.previous.y)*n,r=(l.geometry.width-l.previous.width)*n,n=(l.geometry.height-l.previous.height)*n;0==d?(m.x-=q,m.y-=p,m.width-=r,m.height-=n):(m.x+=q/10,m.y+=p/10,m.width+=r/10,m.height+=n/10);a.cellRenderer.redraw(m);mxEffects.cascadeOpacity(a,l.cell,100*d/10)}}}10>d&&g?(d++,window.setTimeout(e,f)):null!=c&&c()},f=30;e()},cascadeOpacity:function(a,b,c){for(var d=a.model.getChildCount(b),e=0;e<d;e++){var f=a.model.getChildAt(b,e),g=a.getView().getState(f);null!=g&&(mxUtils.setOpacity(g.shape.node,
+var mxEffects={animateChanges:function(a,b,c){var d=0,e=function(){for(var g=!1,k=0;k<b.length;k++){var l=b[k];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var n=a.getView().getState(l.cell||l.child,!1);if(null!=n)if(g=!0,l.constructor!=mxGeometryChange||a.model.isEdge(l.cell))mxUtils.setOpacity(n.shape.node,100*d/10);else{var m=a.getView().scale,p=(l.geometry.x-l.previous.x)*m,q=(l.geometry.y-
+l.previous.y)*m,s=(l.geometry.width-l.previous.width)*m,m=(l.geometry.height-l.previous.height)*m;0==d?(n.x-=p,n.y-=q,n.width-=s,n.height-=m):(n.x+=p/10,n.y+=q/10,n.width+=s/10,n.height+=m/10);a.cellRenderer.redraw(n);mxEffects.cascadeOpacity(a,l.cell,100*d/10)}}}10>d&&g?(d++,window.setTimeout(e,f)):null!=c&&c()},f=30;e()},cascadeOpacity:function(a,b,c){for(var d=a.model.getChildCount(b),e=0;e<d;e++){var f=a.model.getChildAt(b,e),g=a.getView().getState(f);null!=g&&(mxUtils.setOpacity(g.shape.node,
c),mxEffects.cascadeOpacity(a,f,c))}b=a.model.getEdges(b);if(null!=b)for(e=0;e<b.length;e++)d=a.getView().getState(b[e]),null!=d&&mxUtils.setOpacity(d.shape.node,c)},fadeOut:function(a,b,c,d,e,f){d=d||40;e=e||30;var g=b||100;mxUtils.setOpacity(a,g);if(f||null==f){var k=function(){g=Math.max(g-d,0);mxUtils.setOpacity(a,g);0<g?window.setTimeout(k,e):(a.style.visibility="hidden",c&&a.parentNode&&a.parentNode.removeChild(a))};window.setTimeout(k,e)}else a.style.visibility="hidden",c&&a.parentNode&&a.parentNode.removeChild(a)}},
mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(a){null!=a.style&&(a.style.cursor="");a=a.childNodes;if(null!=a)for(var b=a.length,c=0;c<b;c+=1)mxUtils.removeCursors(a[c])},getCurrentStyle:function(){return mxClient.IS_IE?function(a){return null!=a?a.currentStyle:null}:function(a){return null!=a?window.getComputedStyle(a,""):null}}(),parseCssNumber:function(a){"thin"==
a?a="2":"medium"==a?a="4":"thick"==a&&(a="6");a=parseFloat(a);isNaN(a)&&(a=0);return a},setPrefixedStyle:function(){var a=null;mxClient.IS_OT?a="O":mxClient.IS_SF||mxClient.IS_GC?a="Webkit":mxClient.IS_MT?a="Moz":mxClient.IS_IE&&9<=document.documentMode&&10>document.documentMode&&(a="ms");return function(b,c,d){b[c]=d;null!=a&&0<c.length&&(c=a+c.substring(0,1).toUpperCase()+c.substring(1),b[c]=d)}}(),hasScrollbars:function(a){a=mxUtils.getCurrentStyle(a);return null!=a&&("scroll"==a.overflow||"auto"==
@@ -255,15 +255,15 @@ b(e))},g)})(a[k],k);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;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;
return!0},equalEntries: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){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=
b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,
-k,l){k-=a;l-=b;if(0===c||0===d)return p;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,q=Math.cos(e*Math.PI/180),p=Math.sin(e*Math.PI/180);e=q*m+p*n;var m=-1*p*m+q*n,n=e*e,r=m*m,s=c*c,t=d*d,v=n/s+r/t;1<v?(c*=Math.sqrt(v),d*=Math.sqrt(v),f=0):(v=1,f===g&&(v=-1),f=v*Math.sqrt((s*t-s*r-t*n)/(s*r+t*n)));n=f*c*m/d;r=-1*f*d*e/c;k=q*n-p*r+k/2;l=p*n+q*r+l/2;s=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=s?s:2*Math.PI+s;s=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=s?s:2*Math.PI+s;0==
-g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(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);n=q*c;q*=d;c*=p;d*=p;for(var u=Math.cos(f),y=Math.sin(f),r=-m*(n*y+d*u),s=-m*(c*y-q*u),p=[],z=0;z<g;++z){f+=e;var u=Math.cos(f),y=Math.sin(f),t=n*u-d*y+k,v=c*u+q*y+l,x=-m*(n*y+d*u),u=-m*(c*y-q*u),y=6*z;p[y]=Number(r+a);p[y+1]=Number(s+b);p[y+2]=Number(t-x+a);p[y+3]=Number(v-u+b);p[y+4]=Number(t+a);p[y+5]=Number(v+b);r=t+x;s=v+u}return p},getBoundingBox:function(a,
+k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(e*Math.PI/180),q=Math.sin(e*Math.PI/180);e=p*n+q*m;var n=-1*q*n+p*m,m=e*e,s=n*n,r=c*c,t=d*d,v=m/r+s/t;1<v?(c*=Math.sqrt(v),d*=Math.sqrt(v),f=0):(v=1,f===g&&(v=-1),f=v*Math.sqrt((r*t-r*s-t*m)/(r*s+t*m)));m=f*c*n/d;s=-1*f*d*e/c;k=p*m-q*s+k/2;l=q*m+p*s+l/2;r=Math.atan2((n-s)/d,(e-m)/c)-Math.atan2(0,1);f=0<=r?r:2*Math.PI+r;r=Math.atan2((-n-s)/d,(-e-m)/c)-Math.atan2((n-s)/d,(e-m)/c);e=0<=r?r:2*Math.PI+r;0==
+g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;n=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=p*c;p*=d;c*=q;d*=q;for(var u=Math.cos(f),z=Math.sin(f),s=-n*(m*z+d*u),r=-n*(c*z-p*u),q=[],y=0;y<g;++y){f+=e;var u=Math.cos(f),z=Math.sin(f),t=m*u-d*z+k,v=c*u+p*z+l,x=-n*(m*z+d*u),u=-n*(c*z-p*u),z=6*y;q[z]=Number(s+a);q[z+1]=Number(r+b);q[z+2]=Number(t-x+a);q[z+3]=Number(v-u+b);q[z+4]=Number(t+a);q[z+5]=Number(v+b);s=t+x;r=v+u}return q},getBoundingBox:function(a,
b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,
g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
c?(a=1,135<=c&&(a=2)):-45>c&&(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(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},rectangleIntersectsSegment:function(a,
-b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!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,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+
-g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,
+b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!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,k=a.y,l=b.x,n=b.y,e=e+l,f=f+n,c=c+
+g,d=d+k;return(e<l||e>g)&&(f<n||f>k)&&(c<g||c>l)&&(d<k||d>n)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,n=a.height,m=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<m&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+m/2,n=m):(g=a.x+m/2,l=m));l=Math.max(e,l*d);n=Math.max(e,n*d);0<f&&(l=Math.min(l,f),n=Math.min(n,f));d=new mxRectangle(g-l/2,k-n/2,l,n);g=mxUtils.toRadians(mxUtils.getValue(a.style,
mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},getOffset:function(a,b){var c=0,d=0;if(null!=b&&b)var e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c=c+e.x,d=d+e.y;e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,
a.body.scrollTop);a=a.defaultView||a.parentWindow;return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a){for(var b=document.body,c=document.documentElement,d=mxUtils.getDocumentScrollOrigin(null!=a?a.ownerDocument:document);null!=a&&a!=b&&
a!=c;)!isNaN(a.scrollLeft)&&!isNaN(a.scrollTop)&&(d.x+=a.scrollLeft,d.y+=a.scrollTop),a=a.parentNode;return d},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return a.replace(RegExp("^["+(b||"\\s")+"]+","g"),"")},rtrim:function(a,b){return a.replace(RegExp("["+(b||"\\s")+"]+$","g"),"")},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&
@@ -276,18 +276,18 @@ b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity\x3d"+b/5+")":mxClien
a.indexOf(";");a=d?b+"\x3d"+c+(0>e?";":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&&0<b.length){a.beginUpdate();try{for(var f=0;f<b.length;f++)if(null!=b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);
a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"\x3d"+c:b+"\x3d0";else{var e=a.indexOf(b+"\x3d");if(0>e)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,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=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 n=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=
-n,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}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,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,n=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=l,f.overlayPane=n,f.setEventsEnabled(k)}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,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return 0.99999*(e*c/b)},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d9"\x3e\x3c![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-
-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="\x3chtml\x3e\x3chead\x3e";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="\x3cstyle\x3e";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'\x3c/style\x3e\x3c/head\x3e\x3cbody style\x3d"margin:0px;"\x3e'+('\x3cdiv style\x3d"position:absolute;overflow:hidden;width:'+
+g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="\x3chtml\x3e\x3chead\x3e";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="\x3cstyle\x3e";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(n){}d=d+'\x3c/style\x3e\x3c/head\x3e\x3cbody style\x3d"margin:0px;"\x3e'+('\x3cdiv style\x3d"position:absolute;overflow:hidden;width:'+
e+"px;height:"+f+'px;"\x3e\x3cdiv style\x3d"position:relative;left:'+k+"px;top:"+l+'px;"\x3e')+a.container.innerHTML;d+="\x3c/div\x3e\x3c/div\x3e\x3c/body\x3e\x3chtml\x3e";b.writeln(d);b.close()}else{b.writeln("\x3chtml\x3e\x3chead\x3e");g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));
b.writeln('\x3c/head\x3e\x3cbody style\x3d"margin:0px;"\x3e\x3c/body\x3e\x3c/html\x3e');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);
null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=
mxUtils.htmlEntities(a,!1).replace(/\n/g,"\x3cbr\x3e").replace(/ /g,"\x26nbsp;");c.appendChild(d);var d=document.body.clientWidth,e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),c=new mxWindow("Popup Window",c,d/2-320,e/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("\x3cpre\x3e"+mxUtils.htmlEntities(a)+"\x3c/pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,
!1).replace(/\n/g,"\x3cbr\x3e").replace(/ /g,"\x26nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode("\u00a0"));
e.appendChild(document.createTextNode("\u00a0"));e.appendChild(document.createTextNode("\u00a0"));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,
-"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==
+"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,n){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=n&&(a.getDropTarget=n);a.getGraphForEvent=function(a){return"function"==
typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:0.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",
DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,
NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",
@@ -334,7 +334,7 @@ mxXmlRequest.prototype.simulate=function(a,b){a=a||document;var c=null;a==docume
1);this.decodeSimulateValues&&(g=decodeURIComponent(g));var l=a.createElement("textarea");l.setAttribute("name",k);mxUtils.write(l,g);d.appendChild(l)}}a.body.appendChild(d);d.submit();a.body.removeChild(d);null!=c&&(window.onbeforeunload=c)};
var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,setCells:function(a){mxClipboard.cells=a},getCells:function(){return mxClipboard.cells},isEmpty:function(){return null==mxClipboard.getCells()},cut:function(a,b){b=mxClipboard.copy(a,b);mxClipboard.insertCount=0;mxClipboard.removeCells(a,b);return b},removeCells:function(a,b){a.removeCells(b)},copy:function(a,b){b=b||a.getSelectionCells();var c=a.getExportableCells(a.model.getTopmostCells(b));mxClipboard.insertCount=1;mxClipboard.setCells(a.cloneCells(c));
return c},paste:function(a){var b=null;if(!mxClipboard.isEmpty()){var b=a.getImportableCells(mxClipboard.getCells()),c=mxClipboard.insertCount*mxClipboard.STEPSIZE,d=a.getDefaultParent(),b=a.importCells(b,c,c,d);mxClipboard.insertCount++;a.setSelectionCells(b)}return b}};
-function mxWindow(a,b,c,d,e,f,g,k,l,m){null!=b&&(g=null!=g?g:!0,this.content=b,this.init(c,d,e,f,m),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(g),this.setTitle(a),(null==k||k)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}mxWindow.prototype=new mxEventSource;mxWindow.prototype.constructor=mxWindow;mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif";
+function mxWindow(a,b,c,d,e,f,g,k,l,n){null!=b&&(g=null!=g?g:!0,this.content=b,this.init(c,d,e,f,n),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(g),this.setTitle(a),(null==k||k)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}mxWindow.prototype=new mxEventSource;mxWindow.prototype.constructor=mxWindow;mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif";
mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif";mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif";mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif";mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif";mxWindow.prototype.visible=!1;mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40);mxWindow.prototype.destroyOnClose=!0;
mxWindow.prototype.contentHeightCorrection=8==document.documentMode||7==document.documentMode?6:2;mxWindow.prototype.title=null;mxWindow.prototype.content=null;
mxWindow.prototype.init=function(a,b,c,d,e){e=null!=e?e:"mxWindow";this.div=document.createElement("div");this.div.className=e;this.div.style.left=a+"px";this.div.style.top=b+"px";this.table=document.createElement("table");this.table.className=e;mxClient.IS_POINTER&&(this.div.style.touchAction="none");null!=c&&(mxClient.IS_QUIRKS||(this.div.style.width=c+"px"),this.table.style.width=c+"px");null!=d&&(mxClient.IS_QUIRKS||(this.div.style.height=d+"px"),this.table.style.height=d+"px");a=document.createElement("tbody");
@@ -419,9 +419,9 @@ mxPopupMenu.prototype.factoryMethod=null;mxPopupMenu.prototype.useLeftButtonForP
mxPopupMenu.prototype.init=function(){this.table=document.createElement("table");this.table.className="mxPopupMenu";this.tbody=document.createElement("tbody");this.table.appendChild(this.tbody);this.div=document.createElement("div");this.div.className="mxPopupMenu";this.div.style.display="inline";this.div.style.zIndex=this.zIndex;this.div.appendChild(this.table);mxEvent.disableContextMenu(this.div)};mxPopupMenu.prototype.isEnabled=function(){return this.enabled};
mxPopupMenu.prototype.setEnabled=function(a){this.enabled=a};mxPopupMenu.prototype.isPopupTrigger=function(a){return a.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(a.getEvent())};
mxPopupMenu.prototype.addItem=function(a,b,c,d,e,f,g){d=d||this;this.itemCount++;d.willAddSeparator&&(d.containsItems&&this.addSeparator(d,!0),d.willAddSeparator=!1);d.containsItems=!0;var k=document.createElement("tr");k.className="mxPopupMenuItem";var l=document.createElement("td");l.className="mxPopupMenuIcon";null!=b?(e=document.createElement("img"),e.src=b,l.appendChild(e)):null!=e&&(b=document.createElement("div"),b.className=e,l.appendChild(b));k.appendChild(l);this.labels&&(l=document.createElement("td"),
-l.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),mxUtils.write(l,a),l.align="left",k.appendChild(l),a=document.createElement("td"),a.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),a.style.paddingRight="6px",a.style.textAlign="right",k.appendChild(a),null==d.div&&this.createSubmenu(d));d.tbody.appendChild(k);if(!1!=g&&!1!=f){var m=null;mxEvent.addGestureListeners(k,mxUtils.bind(this,function(a){this.eventReceiver=k;d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&
-this.hideSubmenu(d),null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));if(mxClient.IS_QUIRKS||8==document.documentMode)m=document.selection.createRange();mxEvent.consume(a)}),mxUtils.bind(this,function(a){d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&this.hideSubmenu(d),this.autoExpand&&null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));k.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(a){if(this.eventReceiver==k){d.activeRow!=k&&this.hideMenu();
-if(null!=m){try{m.select()}catch(b){}m=null}null!=c&&c(a)}this.eventReceiver=null;mxEvent.consume(a)}));mxEvent.addListener(k,"mouseout",mxUtils.bind(this,function(a){k.className="mxPopupMenuItem"}))}return k};mxPopupMenu.prototype.addCheckmark=function(a,b){var c=a.firstChild.nextSibling;c.style.backgroundImage="url('"+b+"')";c.style.backgroundRepeat="no-repeat";c.style.backgroundPosition="2px 50%"};
+l.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),mxUtils.write(l,a),l.align="left",k.appendChild(l),a=document.createElement("td"),a.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),a.style.paddingRight="6px",a.style.textAlign="right",k.appendChild(a),null==d.div&&this.createSubmenu(d));d.tbody.appendChild(k);if(!1!=g&&!1!=f){var n=null;mxEvent.addGestureListeners(k,mxUtils.bind(this,function(a){this.eventReceiver=k;d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&
+this.hideSubmenu(d),null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));if(mxClient.IS_QUIRKS||8==document.documentMode)n=document.selection.createRange();mxEvent.consume(a)}),mxUtils.bind(this,function(a){d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&this.hideSubmenu(d),this.autoExpand&&null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));k.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(a){if(this.eventReceiver==k){d.activeRow!=k&&this.hideMenu();
+if(null!=n){try{n.select()}catch(b){}n=null}null!=c&&c(a)}this.eventReceiver=null;mxEvent.consume(a)}));mxEvent.addListener(k,"mouseout",mxUtils.bind(this,function(a){k.className="mxPopupMenuItem"}))}return k};mxPopupMenu.prototype.addCheckmark=function(a,b){var c=a.firstChild.nextSibling;c.style.backgroundImage="url('"+b+"')";c.style.backgroundRepeat="no-repeat";c.style.backgroundPosition="2px 50%"};
mxPopupMenu.prototype.createSubmenu=function(a){a.table=document.createElement("table");a.table.className="mxPopupMenu";a.tbody=document.createElement("tbody");a.table.appendChild(a.tbody);a.div=document.createElement("div");a.div.className="mxPopupMenu";a.div.style.position="absolute";a.div.style.display="inline";a.div.style.zIndex=this.zIndex;a.div.appendChild(a.table);var b=document.createElement("img");b.setAttribute("src",this.submenuImage);td=a.firstChild.nextSibling.nextSibling;td.appendChild(b)};
mxPopupMenu.prototype.showSubmenu=function(a,b){if(null!=b.div){b.div.style.left=a.div.offsetLeft+b.offsetLeft+b.offsetWidth-1+"px";b.div.style.top=a.div.offsetTop+b.offsetTop+"px";document.body.appendChild(b.div);var c=parseInt(b.div.offsetLeft),d=parseInt(b.div.offsetWidth),e=mxUtils.getDocumentScrollOrigin(document),f=document.documentElement;if(c+d>e.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)}};
@@ -462,7 +462,7 @@ mxXmlCanvas2D.prototype.rotate=function(a,b,c,d,e){var f=this.createElement("rot
mxXmlCanvas2D.prototype.setAlpha=function(a){if(this.compressed){if(this.state.alpha==a)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var b=this.createElement("alpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};mxXmlCanvas2D.prototype.setFillAlpha=function(a){if(this.compressed){if(this.state.fillAlpha==a)return;mxAbstractCanvas2D.prototype.setFillAlpha.apply(this,arguments)}var b=this.createElement("fillalpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setStrokeAlpha=function(a){if(this.compressed){if(this.state.strokeAlpha==a)return;mxAbstractCanvas2D.prototype.setStrokeAlpha.apply(this,arguments)}var b=this.createElement("strokealpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.fillColor==a)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var b=this.createElement("fillcolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)};
-mxXmlCanvas2D.prototype.setGradient=function(a,b,c,d,e,f,g,k,l){if(null!=a&&null!=b){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var m=this.createElement("gradient");m.setAttribute("c1",a);m.setAttribute("c2",b);m.setAttribute("x",this.format(c));m.setAttribute("y",this.format(d));m.setAttribute("w",this.format(e));m.setAttribute("h",this.format(f));null!=g&&m.setAttribute("direction",g);null!=k&&m.setAttribute("alpha1",k);null!=l&&m.setAttribute("alpha2",l);this.root.appendChild(m)}};
+mxXmlCanvas2D.prototype.setGradient=function(a,b,c,d,e,f,g,k,l){if(null!=a&&null!=b){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var n=this.createElement("gradient");n.setAttribute("c1",a);n.setAttribute("c2",b);n.setAttribute("x",this.format(c));n.setAttribute("y",this.format(d));n.setAttribute("w",this.format(e));n.setAttribute("h",this.format(f));null!=g&&n.setAttribute("direction",g);null!=k&&n.setAttribute("alpha1",k);null!=l&&n.setAttribute("alpha2",l);this.root.appendChild(n)}};
mxXmlCanvas2D.prototype.setStrokeColor=function(a){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.strokeColor==a)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var b=this.createElement("strokecolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setStrokeWidth=function(a){if(this.compressed){if(this.state.strokeWidth==a)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var b=this.createElement("strokewidth");b.setAttribute("width",this.format(a));this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setDashed=function(a){if(this.compressed){if(this.state.dashed==a)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var b=this.createElement("dashed");b.setAttribute("dashed",a?"1":"0");this.root.appendChild(b)};mxXmlCanvas2D.prototype.setDashPattern=function(a){if(this.compressed){if(this.state.dashPattern==a)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var b=this.createElement("dashpattern");b.setAttribute("pattern",a);this.root.appendChild(b)};
@@ -485,18 +485,18 @@ mxXmlCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert
mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin"));this.lastY=this.lastX=0};mxXmlCanvas2D.prototype.moveTo=function(a,b){var c=this.createElement("move");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};
mxXmlCanvas2D.prototype.lineTo=function(a,b){var c=this.createElement("line");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};mxXmlCanvas2D.prototype.quadTo=function(a,b,c,d){var e=this.createElement("quad");e.setAttribute("x1",this.format(a));e.setAttribute("y1",this.format(b));e.setAttribute("x2",this.format(c));e.setAttribute("y2",this.format(d));this.root.appendChild(e);this.lastX=c;this.lastY=d};
mxXmlCanvas2D.prototype.curveTo=function(a,b,c,d,e,f){var g=this.createElement("curve");g.setAttribute("x1",this.format(a));g.setAttribute("y1",this.format(b));g.setAttribute("x2",this.format(c));g.setAttribute("y2",this.format(d));g.setAttribute("x3",this.format(e));g.setAttribute("y3",this.format(f));this.root.appendChild(g);this.lastX=e;this.lastY=f};mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))};
-mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,q,p){if(this.textEnabled&&null!=e){mxUtils.isNode(e)&&(e=mxUtils.getOuterHtml(e));var r=this.createElement("text");r.setAttribute("x",this.format(a));r.setAttribute("y",this.format(b));r.setAttribute("w",this.format(c));r.setAttribute("h",this.format(d));r.setAttribute("str",e);null!=f&&r.setAttribute("align",f);null!=g&&r.setAttribute("valign",g);r.setAttribute("wrap",k?"1":"0");null==l&&(l="");r.setAttribute("format",l);null!=m&&r.setAttribute("overflow",
-m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=q&&r.setAttribute("rotation",q);null!=p&&r.setAttribute("dir",p);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
+mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,n,m,p,q){if(this.textEnabled&&null!=e){mxUtils.isNode(e)&&(e=mxUtils.getOuterHtml(e));var s=this.createElement("text");s.setAttribute("x",this.format(a));s.setAttribute("y",this.format(b));s.setAttribute("w",this.format(c));s.setAttribute("h",this.format(d));s.setAttribute("str",e);null!=f&&s.setAttribute("align",f);null!=g&&s.setAttribute("valign",g);s.setAttribute("wrap",k?"1":"0");null==l&&(l="");s.setAttribute("format",l);null!=n&&s.setAttribute("overflow",
+n);null!=m&&s.setAttribute("clip",m?"1":"0");null!=p&&s.setAttribute("rotation",p);null!=q&&s.setAttribute("dir",q);this.root.appendChild(s)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
-mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,q,p){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
+mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,n,m,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&b.setAttribute("font-style","italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.setAttribute("text-decoration","underline"),mxUtils.write(b,this.foAltText),b):null};
mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
-mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,m=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(m);null!=g&&g.ownerSVGElement!=k;)m=f+"-"+l++,g=k.ownerDocument.getElementById(m);else m="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",m),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
+mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,n=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(n);null!=g&&g.ownerSVGElement!=k;)n=f+"-"+l++,g=k.ownerDocument.getElementById(n);else n="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",n),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement("linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");
e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
@@ -510,12 +510,12 @@ mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typ
mxSvgCanvas2D.prototype.createTolerance=function(a){a=a.cloneNode(!0);var b=parseFloat(a.getAttribute("stroke-width")||1)+this.strokeTolerance;a.setAttribute("pointer-events","stroke");a.setAttribute("visibility","hidden");a.removeAttribute("stroke-dasharray");a.setAttribute("stroke-width",b);a.setAttribute("fill","none");a.setAttribute("stroke",mxClient.IS_OT?"none":"white");return a};
mxSvgCanvas2D.prototype.createShadow=function(a){a=a.cloneNode(!0);var b=this.state;"none"!=a.getAttribute("fill")&&(!mxClient.IS_FF||"transparent"!=a.getAttribute("fill"))&&a.setAttribute("fill",b.shadowColor);"none"!=a.getAttribute("stroke")&&a.setAttribute("stroke",b.shadowColor);a.setAttribute("transform","translate("+this.format(b.shadowDx*b.scale)+","+this.format(b.shadowDy*b.scale)+")"+(b.transform||""));a.setAttribute("opacity",b.shadowAlpha);return a};
mxSvgCanvas2D.prototype.setLink=function(a){if(null==a)this.root=this.originalRoot;else{this.originalRoot=this.root;var b=this.createElement("a");null==b.setAttributeNS||this.root.ownerDocument!=document&&null==document.documentMode?b.setAttribute("xlink:href",a):b.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",a);this.root.appendChild(b);this.root=b}};
-mxSvgCanvas2D.prototype.rotate=function(a,b,c,d,e){if(0!=a||b||c){var f=this.state;d+=f.dx;e+=f.dy;d*=f.scale;e*=f.scale;f.transform=f.transform||"";if(b&&c)a+=180;else if(b!=c){var g=b?d:0,k=b?-1:1,l=c?e:0,m=c?-1:1;f.transform+="translate("+this.format(g)+","+this.format(l)+")scale("+this.format(k)+","+this.format(m)+")translate("+this.format(-g)+","+this.format(-l)+")"}if(b?!c:c)a*=-1;0!=a&&(f.transform+="rotate("+this.format(a)+","+this.format(d)+","+this.format(e)+")");f.rotation+=a;f.rotationCx=
+mxSvgCanvas2D.prototype.rotate=function(a,b,c,d,e){if(0!=a||b||c){var f=this.state;d+=f.dx;e+=f.dy;d*=f.scale;e*=f.scale;f.transform=f.transform||"";if(b&&c)a+=180;else if(b!=c){var g=b?d:0,k=b?-1:1,l=c?e:0,n=c?-1:1;f.transform+="translate("+this.format(g)+","+this.format(l)+")scale("+this.format(k)+","+this.format(n)+")translate("+this.format(-g)+","+this.format(-l)+")"}if(b?!c:c)a*=-1;0!=a&&(f.transform+="rotate("+this.format(a)+","+this.format(d)+","+this.format(e)+")");f.rotation+=a;f.rotationCx=
d;f.rotationCy=e}};mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments);this.node=this.createElement("path")};mxSvgCanvas2D.prototype.rect=function(a,b,c,d){var e=this.state,f=this.createElement("rect");f.setAttribute("x",this.format((a+e.dx)*e.scale));f.setAttribute("y",this.format((b+e.dy)*e.scale));f.setAttribute("width",this.format(c*e.scale));f.setAttribute("height",this.format(d*e.scale));this.node=f};
mxSvgCanvas2D.prototype.roundrect=function(a,b,c,d,e,f){this.rect(a,b,c,d);0<e&&this.node.setAttribute("rx",this.format(e*this.state.scale));0<f&&this.node.setAttribute("ry",this.format(f*this.state.scale))};mxSvgCanvas2D.prototype.ellipse=function(a,b,c,d){var e=this.state,f=this.createElement("ellipse");f.setAttribute("cx",Math.round((a+c/2+e.dx)*e.scale));f.setAttribute("cy",Math.round((b+d/2+e.dy)*e.scale));f.setAttribute("rx",c/2*e.scale);f.setAttribute("ry",d/2*e.scale);this.node=f};
-mxSvgCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert(e);f=null!=f?f:!0;g=null!=g?g:!1;k=null!=k?k:!1;var l=this.state;a+=l.dx;b+=l.dy;var m=this.createElement("image");m.setAttribute("x",this.format(a*l.scale));m.setAttribute("y",this.format(b*l.scale));m.setAttribute("width",this.format(c*l.scale));m.setAttribute("height",this.format(d*l.scale));null==m.setAttributeNS?m.setAttribute("xlink:href",e):m.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",e);f||m.setAttribute("preserveAspectRatio",
-"none");(1>l.alpha||1>l.fillAlpha)&&m.setAttribute("opacity",l.alpha*l.fillAlpha);e=this.state.transform||"";if(g||k){var n=f=1,q=0,p=0;g&&(f=-1,q=-c-2*a);k&&(n=-1,p=-d-2*b);e+="scale("+f+","+n+")translate("+q*l.scale+","+p*l.scale+")"}0<e.length&&m.setAttribute("transform",e);this.pointerEvents||m.setAttribute("pointer-events","none");this.root.appendChild(m);this.blockImagePointerEvents&&(m.setAttribute("style","pointer-events:none"),m=this.createElement("rect"),m.setAttribute("visibility","hidden"),
-m.setAttribute("pointer-events","fill"),m.setAttribute("x",this.format(a*l.scale)),m.setAttribute("y",this.format(b*l.scale)),m.setAttribute("width",this.format(c*l.scale)),m.setAttribute("height",this.format(d*l.scale)),this.root.appendChild(m))};
+mxSvgCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert(e);f=null!=f?f:!0;g=null!=g?g:!1;k=null!=k?k:!1;var l=this.state;a+=l.dx;b+=l.dy;var n=this.createElement("image");n.setAttribute("x",this.format(a*l.scale));n.setAttribute("y",this.format(b*l.scale));n.setAttribute("width",this.format(c*l.scale));n.setAttribute("height",this.format(d*l.scale));null==n.setAttributeNS?n.setAttribute("xlink:href",e):n.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",e);f||n.setAttribute("preserveAspectRatio",
+"none");(1>l.alpha||1>l.fillAlpha)&&n.setAttribute("opacity",l.alpha*l.fillAlpha);e=this.state.transform||"";if(g||k){var m=f=1,p=0,q=0;g&&(f=-1,p=-c-2*a);k&&(m=-1,q=-d-2*b);e+="scale("+f+","+m+")translate("+p*l.scale+","+q*l.scale+")"}0<e.length&&n.setAttribute("transform",e);this.pointerEvents||n.setAttribute("pointer-events","none");this.root.appendChild(n);this.blockImagePointerEvents&&(n.setAttribute("style","pointer-events:none"),n=this.createElement("rect"),n.setAttribute("visibility","hidden"),
+n.setAttribute("pointer-events","fill"),n.setAttribute("x",this.format(a*l.scale)),n.setAttribute("y",this.format(b*l.scale)),n.setAttribute("width",this.format(c*l.scale)),n.setAttribute("height",this.format(d*l.scale)),this.root.appendChild(n))};
mxSvgCanvas2D.prototype.convertHtml=function(a){if(this.useDomParser){var b=(new DOMParser).parseFromString(a,"text/html");null!=b&&(a=(new XMLSerializer).serializeToString(b.body),"\x3cbody"==a.substring(0,5)&&(a=a.substring(a.indexOf("\x3e",5)+1)),"\x3c/body\x3e"==a.substring(a.length-7,a.length)&&(a=a.substring(0,a.length-7)))}else{if(null!=document.implementation&&null!=document.implementation.createDocument){var b=document.implementation.createDocument("http://www.w3.org/1999/xhtml","html",null),
c=b.createElement("body");b.documentElement.appendChild(c);var d=document.createElement("div");d.innerHTML=a;for(a=d.firstChild;null!=a;)d=a.nextSibling,c.appendChild(b.adoptNode(a)),a=d;return c.innerHTML}b=document.createElement("textarea");b.innerHTML=a.replace(/&amp;/g,"\x26amp;amp;").replace(/&#60;/g,"\x26amp;lt;").replace(/&#62;/g,"\x26amp;gt;").replace(/&lt;/g,"\x26amp;lt;").replace(/&gt;/g,"\x26amp;gt;").replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;");a=b.value.replace(/&/g,"\x26amp;").replace(/&amp;lt;/g,
"\x26lt;").replace(/&amp;gt;/g,"\x26gt;").replace(/&amp;amp;/g,"\x26amp;").replace(/<br>/g,"\x3cbr /\x3e").replace(/<hr>/g,"\x3chr /\x3e").replace(/(<img[^>]+)>/gm,"$1 /\x3e")}return a};
@@ -523,29 +523,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,k,l,m,n){if(null!=n&&null!=n.firstChild&&null!=n.firstChild.firstChild&&null!=n.firstChild.firstChild.firstChild){n=n.firstChild;var q=n.firstChild,p=q.firstChild;m=null!=m?m:0;var r=this.state;a+=r.dx;b+=r.dy;l?(p.style.maxHeight=Math.round(d)+"px",p.style.maxWidth=Math.round(c)+"px"):"fill"==k?(p.style.width=Math.round(c+1)+"px",p.style.height=Math.round(d+1)+"px"):"width"==k&&(p.style.width=Math.round(c+1)+"px",0<d&&(p.style.maxHeight=Math.round(d)+
-"px"));g&&0<c&&(p.style.width=Math.round(c+1)+"px");var s=0,t=0,t=p;null!=t.firstChild&&"DIV"==t.firstChild.nodeName&&(t=t.firstChild);s=(null!=n.mxCachedOffsetWidth?n.mxCachedOffsetWidth:t.offsetWidth)+2;g&&"fill"!=k&&(l&&(s=Math.min(s,c)),p.style.width=s+"px");s=(null!=n.mxCachedFinalOffsetWidth?n.mxCachedFinalOffsetWidth:t.offsetWidth)+2;t=(null!=n.mxCachedFinalOffsetHeight?n.mxCachedFinalOffsetHeight:t.offsetHeight)-2;l&&(t=Math.min(t,d),s=Math.min(s,c));"width"==k?d=t:"fill"!=k&&(c=s,d=t);l=
-g=0;e==mxConstants.ALIGN_CENTER?g-=c/2:e==mxConstants.ALIGN_RIGHT&&(g-=c);a+=g;f==mxConstants.ALIGN_MIDDLE?l-=d/2:f==mxConstants.ALIGN_BOTTOM&&(l-=d);"fill"!=k&&mxClient.IS_FF&&mxClient.IS_WIN&&(l-=2);b+=l;e=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(e+="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!=m&&(e+="rotate("+m+","+-g+","+
--l+")");n.setAttribute("transform","translate("+Math.round(a)+","+Math.round(b)+")"+e);q.setAttribute("width",Math.round(Math.max(1,c)));q.setAttribute("height",Math.round(Math.max(1,d)))}};
-mxSvgCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,q,p){if(this.textEnabled&&null!=e){q=null!=q?q:0;var r=this.state;a+=r.dx;b+=r.dy;if(this.foEnabled&&"html"==l){var s="vertical-align:top;";n?s+="overflow:hidden;max-height:"+Math.round(d)+"px;max-width:"+Math.round(c)+"px;":"fill"==m?s+="width:"+Math.round(c+1)+"px;height:"+Math.round(d+1)+"px;overflow:hidden;":"width"==m&&(s+="width:"+Math.round(c+1)+"px;",0<d&&(s+="max-height:"+Math.round(d)+"px;overflow:hidden;"));var s=k&&0<c?s+("width:"+
-Math.round(c+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):s+"white-space:nowrap;",t=this.createElement("g");1>r.alpha&&t.setAttribute("opacity",r.alpha);var v=this.createElement("foreignObject");v.setAttribute("style","overflow:visible;");v.setAttribute("pointer-events","all");s=this.createDiv(e,f,g,s,m);if(null!=s){null!=p&&s.setAttribute("dir",p);t.appendChild(v);this.root.appendChild(t);var u=0,y=0;p=u=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var z=
-document.createElement("div");z.style.cssText=s.getAttribute("style");z.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";z.style.position="absolute";z.style.visibility="hidden";y=document.createElement("div");y.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";y.style.wordWrap=mxConstants.WORD_WRAP;y.innerHTML=mxUtils.isNode(e)?e.outerHTML:e;z.appendChild(y);document.body.appendChild(z);8!=document.documentMode&&9!=document.documentMode&&null!=r.fontBorderColor&&(u+=2,p+=2);if(k&&0<
-c){var x=y.offsetWidth;if(!n&&k&&0<c&&this.root.ownerDocument!=document&&"fill"!=m){var G=z.style.whiteSpace;y.style.whiteSpace="nowrap";x<y.offsetWidth&&(z.style.whiteSpace=G)}n&&(x=Math.min(x,c));z.style.width=x+"px";u=y.offsetWidth+u+0;y=y.offsetHeight+p;z.style.display="inline-block";z.style.position="";z.style.visibility="";z.style.width=u+"px";s.setAttribute("style",z.style.cssText)}else u=y.offsetWidth+u,y=y.offsetHeight+p;z.parentNode.removeChild(z);v.appendChild(s)}else this.root.ownerDocument!=
-document?(s.style.visibility="hidden",document.body.appendChild(s)):v.appendChild(s),z=s,null!=z.firstChild&&"DIV"==z.firstChild.nodeName&&(z=z.firstChild,k&&"break-word"==s.style.wordWrap&&(z.style.width="100%")),x=z.offsetWidth,0==x&&s.parentNode==v&&(s.style.visibility="hidden",document.body.appendChild(s),x=z.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!n&&k&&(0<c&&this.root.ownerDocument!=document&&"fill"!=m&&"width"!=m)&&(G=s.style.whiteSpace,s.style.whiteSpace="nowrap",x<z.offsetWidth&&
-(s.style.whiteSpace=G)),u=x+u-1,k&&"fill"!=m&&"width"!=m&&(n&&(u=Math.min(u,c)),s.style.width=u+"px"),u=z.offsetWidth,y=z.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=u,t.mxCachedFinalOffsetHeight=y),y-=p,s.parentNode!=v&&(v.appendChild(s),s.style.visibility="");n&&(y=Math.min(y,d),u=Math.min(u,c));"width"==m?d=y:"fill"!=m&&(c=u,d=y);1>r.alpha&&t.setAttribute("opacity",r.alpha);p=s=0;f==mxConstants.ALIGN_CENTER?s-=c/2:f==mxConstants.ALIGN_RIGHT&&(s-=c);a+=s;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;z=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(z+="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!=q&&(z+="rotate("+q+","+-s+","+-p+")");t.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(b)+this.foOffset)+
-")"+z);v.setAttribute("width",Math.round(Math.max(1,c)));v.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(v,a,b,c,d,e,f,g,k,l,m,n,q),null!=a&&(v.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(v),c.appendChild(a),t.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,k,m,n,q,p)}};
+mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,k,l,n,m){if(null!=m&&null!=m.firstChild&&null!=m.firstChild.firstChild&&null!=m.firstChild.firstChild.firstChild){m=m.firstChild;var p=m.firstChild,q=p.firstChild;n=null!=n?n:0;var s=this.state;a+=s.dx;b+=s.dy;l?(q.style.maxHeight=Math.round(d)+"px",q.style.maxWidth=Math.round(c)+"px"):"fill"==k?(q.style.width=Math.round(c+1)+"px",q.style.height=Math.round(d+1)+"px"):"width"==k&&(q.style.width=Math.round(c+1)+"px",0<d&&(q.style.maxHeight=Math.round(d)+
+"px"));g&&0<c&&(q.style.width=Math.round(c+1)+"px");var r=0,t=0,t=q;null!=t.firstChild&&"DIV"==t.firstChild.nodeName&&(t=t.firstChild);r=(null!=m.mxCachedOffsetWidth?m.mxCachedOffsetWidth:t.offsetWidth)+2;g&&"fill"!=k&&(l&&(r=Math.min(r,c)),q.style.width=r+"px");r=(null!=m.mxCachedFinalOffsetWidth?m.mxCachedFinalOffsetWidth:t.offsetWidth)+2;t=(null!=m.mxCachedFinalOffsetHeight?m.mxCachedFinalOffsetHeight:t.offsetHeight)-2;l&&(t=Math.min(t,d),r=Math.min(r,c));"width"==k?d=t:"fill"!=k&&(c=r,d=t);l=
+g=0;e==mxConstants.ALIGN_CENTER?g-=c/2:e==mxConstants.ALIGN_RIGHT&&(g-=c);a+=g;f==mxConstants.ALIGN_MIDDLE?l-=d/2:f==mxConstants.ALIGN_BOTTOM&&(l-=d);"fill"!=k&&mxClient.IS_FF&&mxClient.IS_WIN&&(l-=2);b+=l;e=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(e+="rotate("+s.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*s.scale,(b+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=b.x-c*s.scale/2,b=b.y-d*s.scale/2):(a*=s.scale,b*=s.scale);0!=n&&(e+="rotate("+n+","+-g+","+
+-l+")");m.setAttribute("transform","translate("+Math.round(a)+","+Math.round(b)+")"+e);p.setAttribute("width",Math.round(Math.max(1,c)));p.setAttribute("height",Math.round(Math.max(1,d)))}};
+mxSvgCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,n,m,p,q){if(this.textEnabled&&null!=e){p=null!=p?p:0;var s=this.state;a+=s.dx;b+=s.dy;if(this.foEnabled&&"html"==l){var r="vertical-align:top;";m?r+="overflow:hidden;max-height:"+Math.round(d)+"px;max-width:"+Math.round(c)+"px;":"fill"==n?r+="width:"+Math.round(c+1)+"px;height:"+Math.round(d+1)+"px;overflow:hidden;":"width"==n&&(r+="width:"+Math.round(c+1)+"px;",0<d&&(r+="max-height:"+Math.round(d)+"px;overflow:hidden;"));var r=k&&0<c?r+("width:"+
+Math.round(c+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):r+"white-space:nowrap;",t=this.createElement("g");1>s.alpha&&t.setAttribute("opacity",s.alpha);var v=this.createElement("foreignObject");v.setAttribute("style","overflow:visible;");v.setAttribute("pointer-events","all");r=this.createDiv(e,f,g,r,n);if(null!=r){null!=q&&r.setAttribute("dir",q);t.appendChild(v);this.root.appendChild(t);var u=0,z=0;q=u=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var y=
+document.createElement("div");y.style.cssText=r.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!=s.fontBorderColor&&(u+=2,q+=2);if(k&&0<
+c){var x=z.offsetWidth;if(!m&&k&&0<c&&this.root.ownerDocument!=document&&"fill"!=n){var E=y.style.whiteSpace;z.style.whiteSpace="nowrap";x<z.offsetWidth&&(y.style.whiteSpace=E)}m&&(x=Math.min(x,c));y.style.width=x+"px";u=z.offsetWidth+u+0;z=z.offsetHeight+q;y.style.display="inline-block";y.style.position="";y.style.visibility="";y.style.width=u+"px";r.setAttribute("style",y.style.cssText)}else u=z.offsetWidth+u,z=z.offsetHeight+q;y.parentNode.removeChild(y);v.appendChild(r)}else this.root.ownerDocument!=
+document?(r.style.visibility="hidden",document.body.appendChild(r)):v.appendChild(r),y=r,null!=y.firstChild&&"DIV"==y.firstChild.nodeName&&(y=y.firstChild,k&&"break-word"==r.style.wordWrap&&(y.style.width="100%")),x=y.offsetWidth,0==x&&r.parentNode==v&&(r.style.visibility="hidden",document.body.appendChild(r),x=y.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!m&&k&&(0<c&&this.root.ownerDocument!=document&&"fill"!=n&&"width"!=n)&&(E=r.style.whiteSpace,r.style.whiteSpace="nowrap",x<y.offsetWidth&&
+(r.style.whiteSpace=E)),u=x+u-1,k&&"fill"!=n&&"width"!=n&&(m&&(u=Math.min(u,c)),r.style.width=u+"px"),u=y.offsetWidth,z=y.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=u,t.mxCachedFinalOffsetHeight=z),z-=q,r.parentNode!=v&&(v.appendChild(r),r.style.visibility="");m&&(z=Math.min(z,d),u=Math.min(u,c));"width"==n?d=z:"fill"!=n&&(c=u,d=z);1>s.alpha&&t.setAttribute("opacity",s.alpha);q=r=0;f==mxConstants.ALIGN_CENTER?r-=c/2:f==mxConstants.ALIGN_RIGHT&&(r-=c);a+=r;g==mxConstants.ALIGN_MIDDLE?
+q-=d/2:g==mxConstants.ALIGN_BOTTOM&&(q-=d);"fill"!=n&&mxClient.IS_FF&&mxClient.IS_WIN&&(q-=2);b+=q;y=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(y+="rotate("+s.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*s.scale,(b+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=b.x-c*s.scale/2,b=b.y-d*s.scale/2):(a*=s.scale,b*=s.scale);0!=p&&(y+="rotate("+p+","+-r+","+-q+")");t.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(b)+this.foOffset)+
+")"+y);v.setAttribute("width",Math.round(Math.max(1,c)));v.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(v,a,b,c,d,e,f,g,k,l,n,m,p),null!=a&&(v.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(v),c.appendChild(a),t.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,k,n,m,p,q)}};
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,k,l,m,n,q){n=null!=n?n:0;k=this.state;var p=k.fontSize,r=this.createElement("g"),s=k.transform||"";this.updateFont(r);0!=n&&(s+="rotate("+n+","+this.format(a*k.scale)+","+this.format(b*k.scale)+")");null!=q&&r.setAttribute("direction",q);m&&0<c&&0<d&&(q=a,n=b,f==mxConstants.ALIGN_CENTER?q-=c/2:f==mxConstants.ALIGN_RIGHT&&(q-=c),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?n-=d/2:g==mxConstants.ALIGN_BOTTOM&&(n-=d)),n=this.createClip(q*k.scale-2,
-n*k.scale-2,c*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(n):this.root.appendChild(n),!mxClient.IS_CHROME_APP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&this.root.ownerDocument==document?(q=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),r.setAttribute("clip-path","url("+q+"#"+n.getAttribute("id")+")")):r.setAttribute("clip-path","url(#"+n.getAttribute("id")+")"));n=f==mxConstants.ALIGN_RIGHT?"end":f==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=n&&r.setAttribute("text-anchor",
-n);(!this.styleEnabled||p!=mxConstants.DEFAULT_FONTSIZE)&&r.setAttribute("font-size",p*k.scale+"px");0<s.length&&r.setAttribute("transform",s);1>k.alpha&&r.setAttribute("opacity",k.alpha);s=e.split("\n");q=Math.round(p*mxConstants.LINE_HEIGHT);var t=p+(s.length-1)*q;n=b+p-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?n-=d/2:(m=(this.matchHtmlAlignment&&m&&0<d?Math.min(t,d):t)/2,n-=m+1):g==mxConstants.ALIGN_BOTTOM&&("fill"==l?n-=d:(m=this.matchHtmlAlignment&&m&&0<d?Math.min(t,d):t,n-=m+2));for(m=0;m<s.length;m++)0<
-s[m].length&&0<mxUtils.trim(s[m]).length&&(p=this.createElement("text"),p.setAttribute("x",this.format(a*k.scale)+this.textOffset),p.setAttribute("y",this.format(n*k.scale)+this.textOffset),mxUtils.write(p,s[m]),r.appendChild(p)),n+=q;this.root.appendChild(r);this.addTextBackground(r,e,a,b,c,"fill"==l?d:t,f,g,l)};
+mxSvgCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,k,l,n,m,p){m=null!=m?m:0;k=this.state;var q=k.fontSize,s=this.createElement("g"),r=k.transform||"";this.updateFont(s);0!=m&&(r+="rotate("+m+","+this.format(a*k.scale)+","+this.format(b*k.scale)+")");null!=p&&s.setAttribute("direction",p);n&&0<c&&0<d&&(p=a,m=b,f==mxConstants.ALIGN_CENTER?p-=c/2:f==mxConstants.ALIGN_RIGHT&&(p-=c),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?m-=d/2:g==mxConstants.ALIGN_BOTTOM&&(m-=d)),m=this.createClip(p*k.scale-2,
+m*k.scale-2,c*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(m):this.root.appendChild(m),!mxClient.IS_CHROME_APP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&this.root.ownerDocument==document?(p=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),s.setAttribute("clip-path","url("+p+"#"+m.getAttribute("id")+")")):s.setAttribute("clip-path","url(#"+m.getAttribute("id")+")"));m=f==mxConstants.ALIGN_RIGHT?"end":f==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=m&&s.setAttribute("text-anchor",
+m);(!this.styleEnabled||q!=mxConstants.DEFAULT_FONTSIZE)&&s.setAttribute("font-size",q*k.scale+"px");0<r.length&&s.setAttribute("transform",r);1>k.alpha&&s.setAttribute("opacity",k.alpha);r=e.split("\n");p=Math.round(q*mxConstants.LINE_HEIGHT);var t=q+(r.length-1)*p;m=b+q-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?m-=d/2:(n=(this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t)/2,m-=n+1):g==mxConstants.ALIGN_BOTTOM&&("fill"==l?m-=d:(n=this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t,m-=n+2));for(n=0;n<r.length;n++)0<
+r[n].length&&0<mxUtils.trim(r[n]).length&&(q=this.createElement("text"),q.setAttribute("x",this.format(a*k.scale)+this.textOffset),q.setAttribute("y",this.format(m*k.scale)+this.textOffset),mxUtils.write(q,r[n]),s.appendChild(q)),m+=p;this.root.appendChild(s);this.addTextBackground(s,e,a,b,c,"fill"==l?d:t,f,g,l)};
mxSvgCanvas2D.prototype.updateFont=function(a){var b=this.state;a.setAttribute("fill",b.fontColor);(!this.styleEnabled||b.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&a.setAttribute("font-family",b.fontFamily);(b.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&a.setAttribute("font-weight","bold");(b.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&a.setAttribute("font-style","italic");(b.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&a.setAttribute("text-decoration",
"underline")};
-mxSvgCanvas2D.prototype.addTextBackground=function(a,b,c,d,e,f,g,k,l){var m=this.state;if(null!=m.fontBackgroundColor||null!=m.fontBorderColor){var n=null;if("fill"==l||"width"==l)g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),n=new mxRectangle((c+1)*m.scale,d*m.scale,(e-2)*m.scale,(f+2)*m.scale);else if(null!=a.getBBox&&this.root.ownerDocument==document)try{var n=a.getBBox(),q=mxClient.IS_IE&&mxClient.IS_SVG,
-n=new mxRectangle(n.x,n.y+(q?0:1),n.width,n.height+(q?1:0))}catch(p){}else n=document.createElement("div"),n.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?m.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,n.style.fontSize=m.fontSize+"px",n.style.fontFamily=m.fontFamily,n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.style.zoom="1",(m.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
-(n.style.fontWeight="bold"),(m.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(n.style.fontStyle="italic"),b=mxUtils.htmlEntities(b,!1),n.innerHTML=b.replace(/\n/g,"\x3cbr/\x3e"),document.body.appendChild(n),e=n.offsetWidth,f=n.offsetHeight,n.parentNode.removeChild(n),g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),n=new mxRectangle((c+1)*m.scale,(d+2)*m.scale,e*m.scale,(f+1)*m.scale);null!=
-n&&(b=this.createElement("rect"),b.setAttribute("fill",m.fontBackgroundColor||"none"),b.setAttribute("stroke",m.fontBorderColor||"none"),b.setAttribute("x",Math.floor(n.x-1)),b.setAttribute("y",Math.floor(n.y-1)),b.setAttribute("width",Math.ceil(n.width+2)),b.setAttribute("height",Math.ceil(n.height)),m=null!=m.fontBorderColor?Math.max(1,this.format(m.scale)):0,b.setAttribute("stroke-width",m),this.root.ownerDocument==document&&1==mxUtils.mod(m,2)&&b.setAttribute("transform","translate(0.5, 0.5)"),
+mxSvgCanvas2D.prototype.addTextBackground=function(a,b,c,d,e,f,g,k,l){var n=this.state;if(null!=n.fontBackgroundColor||null!=n.fontBorderColor){var m=null;if("fill"==l||"width"==l)g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),m=new mxRectangle((c+1)*n.scale,d*n.scale,(e-2)*n.scale,(f+2)*n.scale);else if(null!=a.getBBox&&this.root.ownerDocument==document)try{var m=a.getBBox(),p=mxClient.IS_IE&&mxClient.IS_SVG,
+m=new mxRectangle(m.x,m.y+(p?0:1),m.width,m.height+(p?1:0))}catch(q){}else m=document.createElement("div"),m.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?n.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,m.style.fontSize=n.fontSize+"px",m.style.fontFamily=n.fontFamily,m.style.whiteSpace="nowrap",m.style.position="absolute",m.style.visibility="hidden",m.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",m.style.zoom="1",(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
+(m.style.fontWeight="bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(m.style.fontStyle="italic"),b=mxUtils.htmlEntities(b,!1),m.innerHTML=b.replace(/\n/g,"\x3cbr/\x3e"),document.body.appendChild(m),e=m.offsetWidth,f=m.offsetHeight,m.parentNode.removeChild(m),g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),m=new mxRectangle((c+1)*n.scale,(d+2)*n.scale,e*n.scale,(f+1)*n.scale);null!=
+m&&(b=this.createElement("rect"),b.setAttribute("fill",n.fontBackgroundColor||"none"),b.setAttribute("stroke",n.fontBorderColor||"none"),b.setAttribute("x",Math.floor(m.x-1)),b.setAttribute("y",Math.floor(m.y-1)),b.setAttribute("width",Math.ceil(m.width+2)),b.setAttribute("height",Math.ceil(m.height)),n=null!=n.fontBorderColor?Math.max(1,this.format(n.scale)):0,b.setAttribute("stroke-width",n),this.root.ownerDocument==document&&1==mxUtils.mod(n,2)&&b.setAttribute("transform","translate(0.5, 0.5)"),
a.insertBefore(b,a.firstChild))}};mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)};mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)};mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(a){mxAbstractCanvas2D.call(this);this.root=a};mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D);mxVmlCanvas2D.prototype.node=null;mxVmlCanvas2D.prototype.textEnabled=!0;mxVmlCanvas2D.prototype.moveOp="m";mxVmlCanvas2D.prototype.lineOp="l";
mxVmlCanvas2D.prototype.curveOp="c";mxVmlCanvas2D.prototype.closeOp="x";mxVmlCanvas2D.prototype.rotatedHtmlBackground="";mxVmlCanvas2D.prototype.vmlScale=1;mxVmlCanvas2D.prototype.createElement=function(a){return document.createElement(a)};mxVmlCanvas2D.prototype.createVmlElement=function(a){return this.createElement(mxClient.VML_PREFIX+":"+a)};
mxVmlCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("shape"==c.nodeName)if(null!=this.path&&0<this.path.length)c.path=this.path.join(" ")+" e",c.style.width=this.root.style.width,c.style.height=this.root.style.height,c.coordsize=parseInt(c.style.width)+" "+parseInt(c.style.height);else return;c.strokeweight=this.format(Math.max(1,d.strokeWidth*d.scale/this.vmlScale))+"px";d.shadow&&this.root.appendChild(this.createShadow(c,a&&null!=d.fillColor,b&&null!=d.strokeColor));
@@ -565,26 +565,26 @@ mxVmlCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){var l=null;f?(l=this.cre
mxVmlCanvas2D.prototype.createDiv=function(a,b,c,d){c=this.createElement("div");var e=this.state,f="";null!=e.fontBackgroundColor&&(f+="background-color:"+e.fontBackgroundColor+";");null!=e.fontBorderColor&&(f+="border:1px solid "+e.fontBorderColor+";");mxUtils.isNode(a)?c.appendChild(a):"fill"!=d&&"width"!=d?(d=this.createElement("div"),d.style.cssText=f,d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",d.style.zoom="1",d.style.textDecoration="inherit",d.innerHTML=a,c.appendChild(d)):(c.style.cssText=
f,c.innerHTML=a);a=c.style;a.fontSize=e.fontSize/this.vmlScale+"px";a.fontFamily=e.fontFamily;a.color=e.fontColor;a.verticalAlign="top";a.textAlign=b||"left";a.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?e.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale+"px":mxConstants.LINE_HEIGHT;(e.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a.fontWeight="bold");(e.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a.fontStyle="italic");(e.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
(a.textDecoration="underline");return c};
-mxVmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,q,p){if(this.textEnabled&&null!=e){var r=this.state;if("html"==l){null!=r.rotation&&(b=this.rotatePoint(a,b,r.rotation,r.rotationCx,r.rotationCy),a=b.x,b=b.y);8==document.documentMode&&!mxClient.IS_EM?(a+=r.dx,b+=r.dy,"fill"!=m&&g==mxConstants.ALIGN_TOP&&(b-=1)):(a*=r.scale,b*=r.scale);l=8==document.documentMode&&!mxClient.IS_EM?this.createVmlElement("group"):this.createElement("div");l.style.position="absolute";l.style.display="inline";
-l.style.left=this.format(a)+"px";l.style.top=this.format(b)+"px";l.style.zoom=r.scale;var s=this.createElement("div");s.style.position="relative";s.style.display="inline";var t=mxUtils.getAlignmentAsPoint(f,g),v=t.x,t=t.y;e=this.createDiv(e,f,g,m);f=this.createElement("div");null!=p&&e.setAttribute("dir",p);if(k&&0<c){if(n||(e.style.width=Math.round(c)+"px"),e.style.wordWrap=mxConstants.WORD_WRAP,e.style.whiteSpace="normal","break-word"==e.style.wordWrap){var u=e;null!=u.firstChild&&"DIV"==u.firstChild.nodeName&&
-(u.firstChild.style.width="100%")}}else e.style.whiteSpace="nowrap";q=r.rotation+(q||0);this.rotateHtml&&0!=q?(f.style.display="inline",f.style.zoom="1",f.appendChild(e),8==document.documentMode&&!mxClient.IS_EM&&"DIV"!=this.root.nodeName?(s.appendChild(f),l.appendChild(s)):l.appendChild(f)):8==document.documentMode&&!mxClient.IS_EM?(s.appendChild(e),l.appendChild(s)):(e.style.display="inline",l.appendChild(e));"DIV"!=this.root.nodeName?(p=this.createVmlElement("rect"),p.stroked="false",p.filled=
-"false",p.appendChild(l),this.root.appendChild(p)):this.root.appendChild(l);n?(e.style.overflow="hidden",e.style.width=Math.round(c)+"px",mxClient.IS_QUIRKS||(e.style.maxHeight=Math.round(d)+"px")):"fill"==m?(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.height=Math.max(0,d)+1+"px"):"width"==m&&(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!=q){u=q*(Math.PI/180);q=parseFloat(parseFloat(Math.cos(u)).toFixed(8));
-p=parseFloat(parseFloat(Math.sin(-u)).toFixed(8));u%=2*Math.PI;0>u&&(u+=2*Math.PI);u%=Math.PI;u>Math.PI/2&&(u=Math.PI-u);g=Math.cos(u);var y=Math.sin(u);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",s.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);s=e;null!=s.firstChild&&"DIV"==s.firstChild.nodeName&&(s=s.firstChild);u=s.offsetWidth+3;s=s.offsetHeight;n?(c=Math.min(c,u),
-s=Math.min(s,d)):c=u;k&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(n||"width"==m)&&s>d)s=d,e.style.height=s+"px";d=s;n=(d-d*g+c*-y)/2-p*c*(v+0.5)+q*d*(t+0.5);k=(c-c*g+d*-y)/2+q*c*(v+0.5)+p*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(m=this.createElement("div"),m.style.display="inline-block",m.style.position="absolute",m.style.left=this.format(a+(k-c/2)*r.scale)+"px",m.style.top=this.format(b+(n-d/2)*r.scale)+"px",l.parentNode.appendChild(m),m.appendChild(l)):(r=8==document.documentMode&&
-!mxClient.IS_EM?1:r.scale,l.style.left=this.format(a+(k-c/2)*r)+"px",l.style.top=this.format(b+(n-d/2)*r)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+q+", M12\x3d"+p+", M21\x3d"+-p+", M22\x3d"+q+", 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&&(l.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,s=e.offsetHeight,mxClient.IS_QUIRKS&&n&&s>d&&(s=d,e.style.height=s+"px"),d=s,e.style.visibility="",r.appendChild(e),l.style.left=this.format(a+c*v*this.state.scale)+"px",l.style.top=this.format(b+d*t*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),s.style.left=100*v+
-"%",s.style.top=100*t+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,k,l,m,n,q,p)}};
-mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,k,l,m,n,q,p){k=this.state;a=(a+k.dx)*k.scale;b=(b+k.dy)*k.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=k.fontColor;d.opacity=100*k.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=
+mxVmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,n,m,p,q){if(this.textEnabled&&null!=e){var s=this.state;if("html"==l){null!=s.rotation&&(b=this.rotatePoint(a,b,s.rotation,s.rotationCx,s.rotationCy),a=b.x,b=b.y);8==document.documentMode&&!mxClient.IS_EM?(a+=s.dx,b+=s.dy,"fill"!=n&&g==mxConstants.ALIGN_TOP&&(b-=1)):(a*=s.scale,b*=s.scale);l=8==document.documentMode&&!mxClient.IS_EM?this.createVmlElement("group"):this.createElement("div");l.style.position="absolute";l.style.display="inline";
+l.style.left=this.format(a)+"px";l.style.top=this.format(b)+"px";l.style.zoom=s.scale;var r=this.createElement("div");r.style.position="relative";r.style.display="inline";var t=mxUtils.getAlignmentAsPoint(f,g),v=t.x,t=t.y;e=this.createDiv(e,f,g,n);f=this.createElement("div");null!=q&&e.setAttribute("dir",q);if(k&&0<c){if(m||(e.style.width=Math.round(c)+"px"),e.style.wordWrap=mxConstants.WORD_WRAP,e.style.whiteSpace="normal","break-word"==e.style.wordWrap){var u=e;null!=u.firstChild&&"DIV"==u.firstChild.nodeName&&
+(u.firstChild.style.width="100%")}}else e.style.whiteSpace="nowrap";p=s.rotation+(p||0);this.rotateHtml&&0!=p?(f.style.display="inline",f.style.zoom="1",f.appendChild(e),8==document.documentMode&&!mxClient.IS_EM&&"DIV"!=this.root.nodeName?(r.appendChild(f),l.appendChild(r)):l.appendChild(f)):8==document.documentMode&&!mxClient.IS_EM?(r.appendChild(e),l.appendChild(r)):(e.style.display="inline",l.appendChild(e));"DIV"!=this.root.nodeName?(q=this.createVmlElement("rect"),q.stroked="false",q.filled=
+"false",q.appendChild(l),this.root.appendChild(q)):this.root.appendChild(l);m?(e.style.overflow="hidden",e.style.width=Math.round(c)+"px",mxClient.IS_QUIRKS||(e.style.maxHeight=Math.round(d)+"px")):"fill"==n?(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.height=Math.max(0,d)+1+"px"):"width"==n&&(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!=p){u=p*(Math.PI/180);p=parseFloat(parseFloat(Math.cos(u)).toFixed(8));
+q=parseFloat(parseFloat(Math.sin(-u)).toFixed(8));u%=2*Math.PI;0>u&&(u+=2*Math.PI);u%=Math.PI;u>Math.PI/2&&(u=Math.PI-u);g=Math.cos(u);var z=Math.sin(u);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",r.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);r=e;null!=r.firstChild&&"DIV"==r.firstChild.nodeName&&(r=r.firstChild);u=r.offsetWidth+3;r=r.offsetHeight;m?(c=Math.min(c,u),
+r=Math.min(r,d)):c=u;k&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(m||"width"==n)&&r>d)r=d,e.style.height=r+"px";d=r;m=(d-d*g+c*-z)/2-q*c*(v+0.5)+p*d*(t+0.5);k=(c-c*g+d*-z)/2+p*c*(v+0.5)+q*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(n=this.createElement("div"),n.style.display="inline-block",n.style.position="absolute",n.style.left=this.format(a+(k-c/2)*s.scale)+"px",n.style.top=this.format(b+(m-d/2)*s.scale)+"px",l.parentNode.appendChild(n),n.appendChild(l)):(s=8==document.documentMode&&
+!mxClient.IS_EM?1:s.scale,l.style.left=this.format(a+(k-c/2)*s)+"px",l.style.top=this.format(b+(m-d/2)*s)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+p+", M12\x3d"+q+", M21\x3d"+-q+", M22\x3d"+p+", 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&&(l.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),s=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,r=e.offsetHeight,mxClient.IS_QUIRKS&&m&&r>d&&(r=d,e.style.height=r+"px"),d=r,e.style.visibility="",s.appendChild(e),l.style.left=this.format(a+c*v*this.state.scale)+"px",l.style.top=this.format(b+d*t*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r.style.left=100*v+
+"%",r.style.top=100*t+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,k,l,n,m,p,q)}};
+mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,k,l,n,m,p,q){k=this.state;a=(a+k.dx)*k.scale;b=(b+k.dy)*k.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=k.fontColor;d.opacity=100*k.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=k.fontFamily;d.string=e;d.on="true";f=k.fontSize*k.scale/this.vmlScale;d.style.fontSize=f+"px";(k.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold");(k.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic");(k.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline");e=e.split("\n");k=f+(e.length-1)*f*mxConstants.LINE_HEIGHT;f=e=0;
-g==mxConstants.ALIGN_BOTTOM?f=-k/2:g!=mxConstants.ALIGN_MIDDLE&&(f=k/2);null!=q&&(c.style.rotation=q,g=q*(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)};
+g==mxConstants.ALIGN_BOTTOM?f=-k/2:g!=mxConstants.ALIGN_MIDDLE&&(f=k/2);null!=p&&(c.style.rotation=p,g=p*(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 mxGuide(a,b){this.graph=a;this.setStates(b)}mxGuide.prototype.graph=null;mxGuide.prototype.states=null;mxGuide.prototype.horizontal=!0;mxGuide.prototype.vertical=!0;mxGuide.prototype.guideX=null;mxGuide.prototype.guideY=null;mxGuide.prototype.setStates=function(a){this.states=a};mxGuide.prototype.isEnabledForEvent=function(a){return!0};mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize/2};
mxGuide.prototype.createGuideShape=function(a){a=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);a.isDashed=!0;return a};
-mxGuide.prototype.move=function(a,b,c){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=b){var d=this.graph.getView().translate,e=this.graph.getView().scale,f=b.x,g=b.y,k=!1,l=null,m=null,n=!1,q=null,p=null,r=this.getGuideTolerance(),s=r,t=r,r=a.clone();r.x+=b.x;r.y+=b.y;var v=r.x,u=r.x+r.width,y=r.getCenterX(),z=r.y,x=r.y+r.height,G=r.getCenterY();b=function(b,c){b+=this.graph.panDx;var d=!1;Math.abs(b-y)<s?(f=b-a.getCenterX(),s=Math.abs(b-y),d=!0):Math.abs(b-v)<s?(f=b-a.x,
-s=Math.abs(b-v),d=!0):Math.abs(b-u)<s&&(f=b-a.x-a.width,s=Math.abs(b-u),d=!0);d&&(l=c,m=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||d};for(var r=function(b){b+=this.graph.panDy;var c=!1;Math.abs(b-G)<t?(g=b-a.getCenterY(),t=Math.abs(b-G),c=!0):Math.abs(b-
-z)<t?(g=b-a.y,t=Math.abs(b-z),c=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),c=!0);c&&(q=E,p=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));n=n||c},D=0;D<this.states.length;D++){var E=this.states[D];null!=E&&(this.horizontal&&(b.call(this,E.getCenterX(),
-E),b.call(this,E.x,E),b.call(this,E.x+E.width,E)),this.vertical&&(r.call(this,E.getCenterY(),E),r.call(this,E.y,E),r.call(this,E.y+E.height,E)))}c&&(k||(c=a.x-(this.graph.snap(a.x/e-d.x)+d.x)*e,f=this.graph.snap(f/e)*e-c),n||(d=a.y-(this.graph.snap(a.y/e-d.y)+d.y)*e,g=this.graph.snap(g/e)*e-d));e=this.graph.container;!k&&null!=this.guideX?this.guideX.node.style.visibility="hidden":null!=this.guideX&&(null!=l&&null!=a&&(minY=Math.min(a.y+g-this.graph.panDy,l.y),maxY=Math.max(a.y+a.height+g-this.graph.panDy,
-l.y+l.height)),this.guideX.points=null!=minY&&null!=maxY?[new mxPoint(m,minY),new mxPoint(m,maxY)]:[new mxPoint(m,-this.graph.panDy),new mxPoint(m,e.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(l,!0),this.guideX.node.style.visibility="visible",this.guideX.redraw());!n&&null!=this.guideY?this.guideY.node.style.visibility="hidden":null!=this.guideY&&(null!=q&&null!=a&&(minX=Math.min(a.x+f-this.graph.panDx,q.x),maxX=Math.max(a.x+a.width+f-this.graph.panDx,q.x+q.width)),this.guideY.points=
-null!=minX&&null!=maxX?[new mxPoint(minX,p),new mxPoint(maxX,p)]:[new mxPoint(-this.graph.panDx,p),new mxPoint(e.scrollWidth-3-this.graph.panDx,p)],this.guideY.stroke=this.getGuideColor(q,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw());b=new mxPoint(f,g)}return b};mxGuide.prototype.getGuideColor=function(a,b){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
+mxGuide.prototype.move=function(a,b,c){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=b){var d=this.graph.getView().translate,e=this.graph.getView().scale,f=b.x,g=b.y,k=!1,l=null,n=null,m=!1,p=null,q=null,s=this.getGuideTolerance(),r=s,t=s,s=a.clone();s.x+=b.x;s.y+=b.y;var v=s.x,u=s.x+s.width,z=s.getCenterX(),y=s.y,x=s.y+s.height,E=s.getCenterY();b=function(b,c){b+=this.graph.panDx;var d=!1;Math.abs(b-z)<r?(f=b-a.getCenterX(),r=Math.abs(b-z),d=!0):Math.abs(b-v)<r?(f=b-a.x,
+r=Math.abs(b-v),d=!0):Math.abs(b-u)<r&&(f=b-a.x-a.width,r=Math.abs(b-u),d=!0);d&&(l=c,n=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||d};for(var s=function(b){b+=this.graph.panDy;var c=!1;Math.abs(b-E)<t?(g=b-a.getCenterY(),t=Math.abs(b-E),c=!0):Math.abs(b-
+y)<t?(g=b-a.y,t=Math.abs(b-y),c=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),c=!0);c&&(p=F,q=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));m=m||c},C=0;C<this.states.length;C++){var F=this.states[C];null!=F&&(this.horizontal&&(b.call(this,F.getCenterX(),
+F),b.call(this,F.x,F),b.call(this,F.x+F.width,F)),this.vertical&&(s.call(this,F.getCenterY(),F),s.call(this,F.y,F),s.call(this,F.y+F.height,F)))}c&&(k||(c=a.x-(this.graph.snap(a.x/e-d.x)+d.x)*e,f=this.graph.snap(f/e)*e-c),m||(d=a.y-(this.graph.snap(a.y/e-d.y)+d.y)*e,g=this.graph.snap(g/e)*e-d));e=this.graph.container;!k&&null!=this.guideX?this.guideX.node.style.visibility="hidden":null!=this.guideX&&(null!=l&&null!=a&&(minY=Math.min(a.y+g-this.graph.panDy,l.y),maxY=Math.max(a.y+a.height+g-this.graph.panDy,
+l.y+l.height)),this.guideX.points=null!=minY&&null!=maxY?[new mxPoint(n,minY),new mxPoint(n,maxY)]:[new mxPoint(n,-this.graph.panDy),new mxPoint(n,e.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(l,!0),this.guideX.node.style.visibility="visible",this.guideX.redraw());!m&&null!=this.guideY?this.guideY.node.style.visibility="hidden":null!=this.guideY&&(null!=p&&null!=a&&(minX=Math.min(a.x+f-this.graph.panDx,p.x),maxX=Math.max(a.x+a.width+f-this.graph.panDx,p.x+p.width)),this.guideY.points=
+null!=minX&&null!=maxX?[new mxPoint(minX,q),new mxPoint(maxX,q)]:[new mxPoint(-this.graph.panDx,q),new mxPoint(e.scrollWidth-3-this.graph.panDx,q)],this.guideY.stroke=this.getGuideColor(p,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw());b=new mxPoint(f,g)}return b};mxGuide.prototype.getGuideColor=function(a,b){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
mxGuide.prototype.setVisible=function(a){null!=this.guideX&&(this.guideX.node.style.visibility=a?"visible":"hidden");null!=this.guideY&&(this.guideY.node.style.visibility=a?"visible":"hidden")};mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null);null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)};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;
mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
@@ -593,14 +593,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),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);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,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l),c=c.nextSibling};
mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f){a.begin();for(c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling}else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
-m);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*m,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,b=Number(b)/100,b=Math.min(n*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var q=b.rotation,p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-q:p||b?d+q:d-q}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)q=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=q&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,q.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);e&&("fillstroke"==f||"fill"==f||"stroke"==f)&&a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
+mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,n=d.height,m=Math.min(l,n);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f){a.begin();for(c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling}else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
+n);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*n,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*n);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*n,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*n,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*n);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*n,Number(c.getAttribute("x-axis-rotation")),
+Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*n);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),m=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*n,b=Number(b)/100,b=Math.min(m*b,d*
+b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,m,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*n);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
+else if("text"==f){if(!b.outline){m=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,0,0,m,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
+f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*n,m=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*n,p.drawShape(a,b,g,k,m,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:m,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
+f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(n=0;n<c.length;n++)0<c[n].length&&l.push(Number(c[n])*m);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);e&&("fillstroke"==f||"fill"==f||"stroke"==f)&&a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?0.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
@@ -627,8 +627,8 @@ mxShape.prototype.configureCanvas=function(a,b,c,d,e){var f=null;null!=this.styl
b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke)};mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);a.setShadow(!1);this.paintForeground(a,b,c,d,e)};
mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};mxShape.prototype.paintEdgeShape=function(a,b){};mxShape.prototype.getArcSize=function(a,b){var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(a*c,b*c)};
mxShape.prototype.paintGlassEffect=function(a,b,c,d,e,f){var g=Math.ceil(this.strokewidth/2);a.setGradient("#ffffff","#ffffff",b,c,d,0.6*e,"south",0.9,0.1);a.begin();f+=2*g;this.isRounded?(a.moveTo(b-g+f,c-g),a.quadTo(b-g,c-g,b-g,c-g+f),a.lineTo(b-g,c+0.4*e),a.quadTo(b+0.5*d,c+0.7*e,b+d+g,c+0.4*e),a.lineTo(b+d+g,c-g+f),a.quadTo(b+d+g,c-g,b+d+g-f,c-g)):(a.moveTo(b-g,c-g),a.lineTo(b-g,c+0.4*e),a.quadTo(b+0.5*d,c+0.7*e,b+d+g,c+0.4*e),a.lineTo(b+d+g,c-g));a.close();a.fill()};
-mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b.slice();var g=b[0],g=new mxPoint(f.x+(g.x-f.x)/2,f.y+(g.y-f.y)/2);b.splice(0,0,g)}var k=b[0],g=1;for(a.moveTo(k.x,k.y);g<(e?b.length:b.length-1);){var l=b[mxUtils.mod(g,b.length)],m=k.x-l.x,k=k.y-l.y;if(c&&(0!=m||0!=k)){var n=Math.sqrt(m*m+k*k),m=m*Math.min(d,n/2)/n,k=k*Math.min(d,n/2)/n;a.lineTo(l.x+m,l.y+k);for(k=b[mxUtils.mod(g+1,b.length)];g<b.length-2&&0==Math.round(k.x-l.x)&&0==Math.round(k.y-l.y);)k=b[mxUtils.mod(g+
-2,b.length)],g++;m=k.x-l.x;k=k.y-l.y;n=Math.max(1,Math.sqrt(m*m+k*k));m=m*Math.min(d,n/2)/n;k=k*Math.min(d,n/2)/n;m=l.x+m;k=l.y+k;a.quadTo(l.x,l.y,m,k);l=new mxPoint(m,k)}else a.lineTo(l.x,l.y);k=l;g++}e?a.close():a.lineTo(f.x,f.y)};
+mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b.slice();var g=b[0],g=new mxPoint(f.x+(g.x-f.x)/2,f.y+(g.y-f.y)/2);b.splice(0,0,g)}var k=b[0],g=1;for(a.moveTo(k.x,k.y);g<(e?b.length:b.length-1);){var l=b[mxUtils.mod(g,b.length)],n=k.x-l.x,k=k.y-l.y;if(c&&(0!=n||0!=k)){var m=Math.sqrt(n*n+k*k),n=n*Math.min(d,m/2)/m,k=k*Math.min(d,m/2)/m;a.lineTo(l.x+n,l.y+k);for(k=b[mxUtils.mod(g+1,b.length)];g<b.length-2&&0==Math.round(k.x-l.x)&&0==Math.round(k.y-l.y);)k=b[mxUtils.mod(g+
+2,b.length)],g++;n=k.x-l.x;k=k.y-l.y;m=Math.max(1,Math.sqrt(n*n+k*k));n=n*Math.min(d,m/2)/m;k=k*Math.min(d,m/2)/m;n=l.x+n;k=l.y+k;a.quadTo(l.x,l.y,n,k);l=new mxPoint(n,k)}else a.lineTo(l.x,l.y);k=l;g++}e?a.close():a.lineTo(f.x,f.y)};
mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass};
mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY,
this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.arrowStrokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,
@@ -642,10 +642,10 @@ mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&(t
mxShape.prototype.getShapeRotation=function(){var a=this.getRotation();null!=this.direction&&(this.direction==mxConstants.DIRECTION_NORTH?a+=270:this.direction==mxConstants.DIRECTION_WEST?a+=180:this.direction==mxConstants.DIRECTION_SOUTH&&(a+=90));return a};
mxShape.prototype.createTransparentSvgRectangle=function(a,b,c,d){var e=document.createElementNS(mxConstants.NS_SVG,"rect");e.setAttribute("x",a);e.setAttribute("y",b);e.setAttribute("width",c);e.setAttribute("height",d);e.setAttribute("fill","none");e.setAttribute("stroke","none");e.setAttribute("pointer-events","all");return e};mxShape.prototype.setTransparentBackgroundImage=function(a){a.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"};
mxShape.prototype.releaseSvgGradients=function(a){if(null!=a)for(var b in a){var c=a[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)-1,0==c.mxRefCount&&null!=c.parentNode&&c.parentNode.removeChild(c))}};mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null);this.releaseSvgGradients(this.oldGradients);this.oldGradients=null};
-var mxStencilRegistry={stencils:{},addStencil:function(a,b){mxStencilRegistry.stencils[a]=b},getStencil:function(a){return mxStencilRegistry.stencils[a]}},mxMarker={markers:[],addMarker:function(a,b){mxMarker.markers[a]=b},createMarker:function(a,b,c,d,e,f,g,k,l,m){var n=mxMarker.markers[c];return null!=n?n(a,b,c,d,e,f,g,k,l,m):null}};
-(function(){function a(a){a=null!=a?a:2;return function(b,c,g,k,l,m,n,q,p,r){c=1.118*l*p;q=1.118*m*p;l*=n+p;m*=n+p;var s=k.clone();s.x-=c;s.y-=q;n=g!=mxConstants.ARROW_CLASSIC&&g!=mxConstants.ARROW_CLASSIC_THIN?1:0.75;k.x+=-l*n-c;k.y+=-m*n-q;return function(){b.begin();b.moveTo(s.x,s.y);b.lineTo(s.x-l-m/a,s.y-m+l/a);(g==mxConstants.ARROW_CLASSIC||g==mxConstants.ARROW_CLASSIC_THIN)&&b.lineTo(s.x-3*l/4,s.y-3*m/4);b.lineTo(s.x+m/a-l,s.y-m-l/a);b.close();r?b.fillAndStroke():b.stroke()}}}function b(a){a=
-null!=a?a:2;return function(b,c,g,k,l,m,n,q,p,r){c=1.118*l*p;g=1.118*m*p;l*=n+p;m*=n+p;var s=k.clone();s.x-=c;s.y-=g;k.x+=2*-c;k.y+=2*-g;return function(){b.begin();b.moveTo(s.x-l-m/a,s.y-m+l/a);b.lineTo(s.x,s.y);b.lineTo(s.x+m/a-l,s.y-m-l/a);b.stroke()}}}function c(a,b,c,g,k,l,m,n,q,p){n=c==mxConstants.ARROW_DIAMOND?0.7071:0.9862;b=k*q*n;n*=l*q;k*=m+q;l*=m+q;var r=g.clone();r.x-=b;r.y-=n;g.x+=-k-b;g.y+=-l-n;var s=c==mxConstants.ARROW_DIAMOND?2:3.4;return function(){a.begin();a.moveTo(r.x,r.y);a.lineTo(r.x-
-k/2-l/s,r.y+k/s-l/2);a.lineTo(r.x-k,r.y-l);a.lineTo(r.x-k/2+l/s,r.y-l/2-k/s);a.close();p?a.fillAndStroke():a.stroke()}}mxMarker.addMarker("classic",a(2));mxMarker.addMarker("classicThin",a(3));mxMarker.addMarker("block",a(2));mxMarker.addMarker("blockThin",a(3));mxMarker.addMarker("open",b(2));mxMarker.addMarker("openThin",b(3));mxMarker.addMarker("oval",function(a,b,c,g,k,l,m,n,q,p){var r=m/2,s=g.clone();g.x-=k*r;g.y-=l*r;return function(){a.ellipse(s.x-r,s.y-r,m,m);p?a.fillAndStroke():a.stroke()}});
+var mxStencilRegistry={stencils:{},addStencil:function(a,b){mxStencilRegistry.stencils[a]=b},getStencil:function(a){return mxStencilRegistry.stencils[a]}},mxMarker={markers:[],addMarker:function(a,b){mxMarker.markers[a]=b},createMarker:function(a,b,c,d,e,f,g,k,l,n){var m=mxMarker.markers[c];return null!=m?m(a,b,c,d,e,f,g,k,l,n):null}};
+(function(){function a(a){a=null!=a?a:2;return function(b,c,g,k,l,n,m,p,q,s){c=1.118*l*q;p=1.118*n*q;l*=m+q;n*=m+q;var r=k.clone();r.x-=c;r.y-=p;m=g!=mxConstants.ARROW_CLASSIC&&g!=mxConstants.ARROW_CLASSIC_THIN?1:0.75;k.x+=-l*m-c;k.y+=-n*m-p;return function(){b.begin();b.moveTo(r.x,r.y);b.lineTo(r.x-l-n/a,r.y-n+l/a);(g==mxConstants.ARROW_CLASSIC||g==mxConstants.ARROW_CLASSIC_THIN)&&b.lineTo(r.x-3*l/4,r.y-3*n/4);b.lineTo(r.x+n/a-l,r.y-n-l/a);b.close();s?b.fillAndStroke():b.stroke()}}}function b(a){a=
+null!=a?a:2;return function(b,c,g,k,l,n,m,p,q,s){c=1.118*l*q;g=1.118*n*q;l*=m+q;n*=m+q;var r=k.clone();r.x-=c;r.y-=g;k.x+=2*-c;k.y+=2*-g;return function(){b.begin();b.moveTo(r.x-l-n/a,r.y-n+l/a);b.lineTo(r.x,r.y);b.lineTo(r.x+n/a-l,r.y-n-l/a);b.stroke()}}}function c(a,b,c,g,k,l,n,m,p,q){m=c==mxConstants.ARROW_DIAMOND?0.7071:0.9862;b=k*p*m;m*=l*p;k*=n+p;l*=n+p;var s=g.clone();s.x-=b;s.y-=m;g.x+=-k-b;g.y+=-l-m;var r=c==mxConstants.ARROW_DIAMOND?2:3.4;return function(){a.begin();a.moveTo(s.x,s.y);a.lineTo(s.x-
+k/2-l/r,s.y+k/r-l/2);a.lineTo(s.x-k,s.y-l);a.lineTo(s.x-k/2+l/r,s.y-l/2-k/r);a.close();q?a.fillAndStroke():a.stroke()}}mxMarker.addMarker("classic",a(2));mxMarker.addMarker("classicThin",a(3));mxMarker.addMarker("block",a(2));mxMarker.addMarker("blockThin",a(3));mxMarker.addMarker("open",b(2));mxMarker.addMarker("openThin",b(3));mxMarker.addMarker("oval",function(a,b,c,g,k,l,n,m,p,q){var s=n/2,r=g.clone();g.x-=k*s;g.y-=l*s;return function(){a.ellipse(r.x-s,r.y-s,n,n);q?a.fillAndStroke():a.stroke()}});
mxMarker.addMarker("diamond",c);mxMarker.addMarker("diamondThin",c)})();function mxActor(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxActor,mxShape);mxActor.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();this.redrawPath(a,b,c,d,e);a.fillAndStroke()};
mxActor.prototype.redrawPath=function(a,b,c,d,e){b=d/3;a.moveTo(0,e);a.curveTo(0,3*e/5,0,2*e/5,d/2,2*e/5);a.curveTo(d/2-b,2*e/5,d/2-b,0,d/2,0);a.curveTo(d/2+b,0,d/2+b,2*e/5,d/2,2*e/5);a.curveTo(d,2*e/5,d,3*e/5,d,e);a.close()};function mxCloud(a,b,c,d){mxActor.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
mxCloud.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0.25*d,0.25*e);a.curveTo(0.05*d,0.25*e,0,0.5*e,0.16*d,0.55*e);a.curveTo(0,0.66*e,0.18*d,0.9*e,0.31*d,0.8*e);a.curveTo(0.4*d,e,0.7*d,e,0.8*d,0.8*e);a.curveTo(d,0.8*e,d,0.6*e,0.875*d,0.5*e);a.curveTo(d,0.3*e,0.8*d,0.1*e,0.625*d,0.2*e);a.curveTo(0.5*d,0.05*e,0.3*d,0.05*e,0.25*d,0.25*e);a.close()};function mxRectangleShape(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}
@@ -659,24 +659,24 @@ mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){var f=d/2,g=e/2,k=mxUti
mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,b){null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,b,this.isRounded):this.paintCurvedLine(a,b)};mxPolyline.prototype.paintLine=function(a,b,c){var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,b,c,d,!1);a.stroke()};
mxPolyline.prototype.paintCurvedLine=function(a,b){a.begin();var c=b[0],d=b.length;a.moveTo(c.x,c.y);for(c=1;c<d-2;c++){var e=b[c],f=b[c+1];a.quadTo(e.x,e.y,(e.x+f.x)/2,(e.y+f.y)/2)}e=b[d-2];f=b[d-1];a.quadTo(e.x,e.y,f.x,f.y);a.stroke()};
function mxArrow(a,b,c,d,e,f,g){mxShape.call(this);this.points=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=e?e:mxConstants.ARROW_WIDTH;this.spacing=null!=f?f:mxConstants.ARROW_SPACING;this.endSize=null!=g?g:mxConstants.ARROW_SIZE}mxUtils.extend(mxArrow,mxShape);mxArrow.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=Math.max(this.arrowWidth,this.endSize);a.grow((b/2+this.strokewidth)*this.scale)};
-mxArrow.prototype.paintEdgeShape=function(a,b){var c=mxConstants.ARROW_SPACING,d=mxConstants.ARROW_WIDTH,e=mxConstants.ARROW_SIZE,f=b[0],g=b[b.length-1],k=g.x-f.x,l=g.y-f.y,m=Math.sqrt(k*k+l*l),n=m-2*c-e,k=k/m,l=l/m,m=d*l/3,d=-d*k/3,e=f.x-m/2+c*k,f=f.y-d/2+c*l,q=e+m,p=f+d,r=q+n*k,n=p+n*l,s=r+m,t=n+d,v=s-3*m,u=t-3*d;a.begin();a.moveTo(e,f);a.lineTo(q,p);a.lineTo(r,n);a.lineTo(s,t);a.lineTo(g.x-c*k,g.y-c*l);a.lineTo(v,u);a.lineTo(v+m,u+d);a.close();a.fillAndStroke()};
+mxArrow.prototype.paintEdgeShape=function(a,b){var c=mxConstants.ARROW_SPACING,d=mxConstants.ARROW_WIDTH,e=mxConstants.ARROW_SIZE,f=b[0],g=b[b.length-1],k=g.x-f.x,l=g.y-f.y,n=Math.sqrt(k*k+l*l),m=n-2*c-e,k=k/n,l=l/n,n=d*l/3,d=-d*k/3,e=f.x-n/2+c*k,f=f.y-d/2+c*l,p=e+n,q=f+d,s=p+m*k,m=q+m*l,r=s+n,t=m+d,v=r-3*n,u=t-3*d;a.begin();a.moveTo(e,f);a.lineTo(p,q);a.lineTo(s,m);a.lineTo(r,t);a.lineTo(g.x-c*k,g.y-c*l);a.lineTo(v,u);a.lineTo(v+n,u+d);a.close();a.fillAndStroke()};
function mxArrowConnector(a,b,c,d,e,f,g){mxShape.call(this);this.points=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=e?e:mxConstants.ARROW_WIDTH;this.arrowSpacing=null!=f?f:mxConstants.ARROW_SPACING;this.startSize=mxConstants.ARROW_SIZE/5;this.endSize=mxConstants.ARROW_SIZE/5}mxUtils.extend(mxArrowConnector,mxShape);mxArrowConnector.prototype.useSvgBoundingBox=!0;
mxArrowConnector.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.arrowSpacing=mxConstants.ARROW_SPACING};mxArrowConnector.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.startSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5),this.endSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5))};
mxArrowConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=this.getEdgeWidth();this.isMarkerStart()&&(b=Math.max(b,this.getStartArrowWidth()));this.isMarkerEnd()&&(b=Math.max(b,this.getEndArrowWidth()));a.grow((b/2+this.strokewidth)*this.scale)};
-mxArrowConnector.prototype.paintEdgeShape=function(a,b){var c=this.strokewidth;this.outline&&(c=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));for(var d=this.getStartArrowWidth()+c,e=this.getEndArrowWidth()+c,f=this.outline?this.getEdgeWidth()+c:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),m=g?0:this.arrowSpacing+c/2,n=this.startSize+c,c=this.endSize+c,q=this.isArrowRounded(),p=b[b.length-1],r=1;r<b.length-1&&b[r].x==
-b[0].x&&b[r].y==b[0].y;)r++;var s=b[r].x-b[0].x,r=b[r].y-b[0].y,t=Math.sqrt(s*s+r*r);if(0!=t){var v=s/t,u,y=v,z=r/t,x,G=z,t=f*z,D=-f*v,E=[];q?a.setLineJoin("round"):2<b.length&&a.setMiterLimit(1.42);a.begin();s=v;r=z;if(k&&!g)this.paintMarker(a,b[0].x,b[0].y,v,z,n,d,f,m,!0);else{u=b[0].x+t/2+m*v;x=b[0].y+D/2+m*z;var A=b[0].x-t/2+m*v,F=b[0].y-D/2+m*z;g?(a.moveTo(u,x),E.push(function(){a.lineTo(A,F)})):(a.moveTo(A,F),a.lineTo(u,x))}for(var H=x=u=0,t=0;t<b.length-2;t++)if(D=mxUtils.relativeCcw(b[t].x,
-b[t].y,b[t+1].x,b[t+1].y,b[t+2].x,b[t+2].y),u=b[t+2].x-b[t+1].x,x=b[t+2].y-b[t+1].y,H=Math.sqrt(u*u+x*x),0!=H&&(y=u/H,G=x/H,tmp=Math.max(Math.sqrt((v*y+z*G+1)/2),0.04),u=v+y,x=z+G,H=Math.sqrt(u*u+x*x),0!=H)){u/=H;x/=H;var H=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),H=0!=D&&q?Math.max(0.1,H):Math.max(tmp,0.06),I=b[t+1].x+x*f/2/H,M=b[t+1].y-u*f/2/H;x=b[t+1].x-x*f/2/H;u=b[t+1].y+u*f/2/H;0==D||!q?(a.lineTo(I,M),function(b,c){E.push(function(){a.lineTo(b,c)})}(x,u)):-1==D?(D=x+G*f,H=u-y*f,
-a.lineTo(x+z*f,u-v*f),a.quadTo(I,M,D,H),function(b,c){E.push(function(){a.lineTo(b,c)})}(x,u)):(a.lineTo(I,M),function(b,c){var d=I-z*f,e=M+v*f,g=I-G*f,k=M+y*f;E.push(function(){a.quadTo(b,c,d,e)});E.push(function(){a.lineTo(g,k)})}(x,u));v=y;z=G}t=f*G;D=-f*y;if(l&&!g)this.paintMarker(a,p.x,p.y,-v,-z,c,e,f,m,!1);else{a.lineTo(p.x-m*y+t/2,p.y-m*G+D/2);var L=p.x-m*y-t/2,R=p.y-m*G-D/2;g?(a.moveTo(L,R),E.splice(0,0,function(){a.moveTo(L,R)})):a.lineTo(L,R)}for(t=E.length-1;0<=t;t--)E[t]();g?(a.end(),
-a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);q&&a.setLineJoin("flat");2<b.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,b[0].x,b[0].y,s,r,n,d,f,m,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,p.x,p.y,-v,-z,c,e,f,m,!0),a.stroke(),a.end()))}};
-mxArrowConnector.prototype.paintMarker=function(a,b,c,d,e,f,g,k,l,m){g=k/g;var n=k*e/2;k=-k*d/2;var q=(l+f)*d;f=(l+f)*e;m?a.moveTo(b-n+q,c-k+f):a.lineTo(b-n+q,c-k+f);a.lineTo(b-n/g+q,c-k/g+f);a.lineTo(b+l*d,c+l*e);a.lineTo(b+n/g+q,c+k/g+f);a.lineTo(b+n+q,c+k+f)};mxArrowConnector.prototype.isArrowRounded=function(){return this.isRounded};mxArrowConnector.prototype.getStartArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEndArrowWidth=function(){return mxConstants.ARROW_WIDTH};
+mxArrowConnector.prototype.paintEdgeShape=function(a,b){var c=this.strokewidth;this.outline&&(c=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));for(var d=this.getStartArrowWidth()+c,e=this.getEndArrowWidth()+c,f=this.outline?this.getEdgeWidth()+c:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),n=g?0:this.arrowSpacing+c/2,m=this.startSize+c,c=this.endSize+c,p=this.isArrowRounded(),q=b[b.length-1],s=1;s<b.length-1&&b[s].x==
+b[0].x&&b[s].y==b[0].y;)s++;var r=b[s].x-b[0].x,s=b[s].y-b[0].y,t=Math.sqrt(r*r+s*s);if(0!=t){var v=r/t,u,z=v,y=s/t,x,E=y,t=f*y,C=-f*v,F=[];p?a.setLineJoin("round"):2<b.length&&a.setMiterLimit(1.42);a.begin();r=v;s=y;if(k&&!g)this.paintMarker(a,b[0].x,b[0].y,v,y,m,d,f,n,!0);else{u=b[0].x+t/2+n*v;x=b[0].y+C/2+n*y;var D=b[0].x-t/2+n*v,G=b[0].y-C/2+n*y;g?(a.moveTo(u,x),F.push(function(){a.lineTo(D,G)})):(a.moveTo(D,G),a.lineTo(u,x))}for(var H=x=u=0,t=0;t<b.length-2;t++)if(C=mxUtils.relativeCcw(b[t].x,
+b[t].y,b[t+1].x,b[t+1].y,b[t+2].x,b[t+2].y),u=b[t+2].x-b[t+1].x,x=b[t+2].y-b[t+1].y,H=Math.sqrt(u*u+x*x),0!=H&&(z=u/H,E=x/H,tmp=Math.max(Math.sqrt((v*z+y*E+1)/2),0.04),u=v+z,x=y+E,H=Math.sqrt(u*u+x*x),0!=H)){u/=H;x/=H;var H=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),H=0!=C&&p?Math.max(0.1,H):Math.max(tmp,0.06),I=b[t+1].x+x*f/2/H,O=b[t+1].y-u*f/2/H;x=b[t+1].x-x*f/2/H;u=b[t+1].y+u*f/2/H;0==C||!p?(a.lineTo(I,O),function(b,c){F.push(function(){a.lineTo(b,c)})}(x,u)):-1==C?(C=x+E*f,H=u-z*f,
+a.lineTo(x+y*f,u-v*f),a.quadTo(I,O,C,H),function(b,c){F.push(function(){a.lineTo(b,c)})}(x,u)):(a.lineTo(I,O),function(b,c){var d=I-y*f,e=O+v*f,g=I-E*f,k=O+z*f;F.push(function(){a.quadTo(b,c,d,e)});F.push(function(){a.lineTo(g,k)})}(x,u));v=z;y=E}t=f*E;C=-f*z;if(l&&!g)this.paintMarker(a,q.x,q.y,-v,-y,c,e,f,n,!1);else{a.lineTo(q.x-n*z+t/2,q.y-n*E+C/2);var L=q.x-n*z-t/2,S=q.y-n*E-C/2;g?(a.moveTo(L,S),F.splice(0,0,function(){a.moveTo(L,S)})):a.lineTo(L,S)}for(t=F.length-1;0<=t;t--)F[t]();g?(a.end(),
+a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);p&&a.setLineJoin("flat");2<b.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,b[0].x,b[0].y,r,s,m,d,f,n,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,q.x,q.y,-v,-y,c,e,f,n,!0),a.stroke(),a.end()))}};
+mxArrowConnector.prototype.paintMarker=function(a,b,c,d,e,f,g,k,l,n){g=k/g;var m=k*e/2;k=-k*d/2;var p=(l+f)*d;f=(l+f)*e;n?a.moveTo(b-m+p,c-k+f):a.lineTo(b-m+p,c-k+f);a.lineTo(b-m/g+p,c-k/g+f);a.lineTo(b+l*d,c+l*e);a.lineTo(b+m/g+p,c+k/g+f);a.lineTo(b+m+p,c+k+f)};mxArrowConnector.prototype.isArrowRounded=function(){return this.isRounded};mxArrowConnector.prototype.getStartArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEndArrowWidth=function(){return mxConstants.ARROW_WIDTH};
mxArrowConnector.prototype.getEdgeWidth=function(){return mxConstants.ARROW_WIDTH/3};mxArrowConnector.prototype.isOpenEnded=function(){return!1};mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE};mxArrowConnector.prototype.isMarkerEnd=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE};
-function mxText(a,b,c,d,e,f,g,k,l,m,n,q,p,r,s,t,v,u,y,z,x){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:"";this.valign=null!=d?d:"";this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);this.spacingBottom=this.spacing+parseInt(q||
-0);this.spacingLeft=this.spacing+parseInt(p||0);this.horizontal=null!=r?r:!0;this.background=s;this.border=t;this.wrap=null!=v?v:!1;this.clipped=null!=u?u:!1;this.overflow=null!=y?y:"visible";this.labelPadding=null!=z?z:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
+function mxText(a,b,c,d,e,f,g,k,l,n,m,p,q,s,r,t,v,u,z,y,x){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:"";this.valign=null!=d?d:"";this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(n||0);this.spacingRight=this.spacing+parseInt(m||0);this.spacingBottom=this.spacing+parseInt(p||
+0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=s?s:!0;this.background=r;this.border=t;this.wrap=null!=v?v:!1;this.clipped=null!=u?u:!1;this.overflow=null!=z?z:"visible";this.labelPadding=null!=y?y:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8==document.documentMode&&!mxClient.IS_EM?4:3;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isParseVml=function(){return!1};mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
mxText.prototype.paint=function(a,b){var c=this.scale,d=this.bounds.x/c,e=this.bounds.y/c,f=this.bounds.width/c,c=this.bounds.height/c;this.updateTransform(a,d,e,f,c);this.configureCanvas(a,d,e,f,c);if(b){var g=null!=this.state?this.state.unscaledWidth:null;null!=this.node.firstChild&&this.lastUnscaledWidth!=g&&a.invalidateCachedOffsetSize(this.node);a.updateText(d,e,f,c,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node)}else{var k=(g=mxUtils.isNode(this.value)||
-this.dialect==mxConstants.DIALECT_STRICTHTML)||a instanceof mxVmlCanvas2D?"html":"",l=this.value;!g&&"html"==k&&(l=mxUtils.htmlEntities(l,!1));"html"==k&&!mxUtils.isNode(this.value)&&(l=mxUtils.replaceTrailingNewlines(l,"\x3cdiv\x3e\x3cbr\x3e\x3c/div\x3e"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"\x3cbr/\x3e"):l,m=this.textDirection;m==mxConstants.TEXT_DIRECTION_AUTO&&!g&&(m=this.getAutoDirection());m!=mxConstants.TEXT_DIRECTION_LTR&&m!=mxConstants.TEXT_DIRECTION_RTL&&
-(m=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),m)}this.lastUnscaledWidth=null!=this.state?this.state.unscaledWidth:null};
+this.dialect==mxConstants.DIALECT_STRICTHTML)||a instanceof mxVmlCanvas2D?"html":"",l=this.value;!g&&"html"==k&&(l=mxUtils.htmlEntities(l,!1));"html"==k&&!mxUtils.isNode(this.value)&&(l=mxUtils.replaceTrailingNewlines(l,"\x3cdiv\x3e\x3cbr\x3e\x3c/div\x3e"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"\x3cbr/\x3e"):l,n=this.textDirection;n==mxConstants.TEXT_DIRECTION_AUTO&&!g&&(n=this.getAutoDirection());n!=mxConstants.TEXT_DIRECTION_LTR&&n!=mxConstants.TEXT_DIRECTION_RTL&&
+(n=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),n)}this.lastUnscaledWidth=null!=this.state?this.state.unscaledWidth:null};
mxText.prototype.redraw=function(){if(this.visible&&this.checkBounds()&&this.cacheEnabled&&this.lastValue==this.value&&(mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML))if("DIV"==this.node.nodeName&&(this.isHtmlAllowed()||!mxClient.IS_VML))this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||8>=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};
@@ -699,8 +699,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,k=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 l=Math.round(this.bounds.width/this.scale);this.wrap&&0<l?(g.style.whiteSpace="normal",g.style.wordWrap=mxConstants.WORD_WRAP,e=l,this.clipped&&
(e=Math.min(e,this.bounds.width)),g.style.width=e+"px"):g.style.whiteSpace="nowrap";k=g;null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,this.wrap&&"break-word"==g.style.wordWrap&&(k.style.width="100%"));!this.clipped&&this.wrap&&0<l&&(e=k.offsetWidth+this.textWidthPadding,g.style.width=e+"px");f=k.offsetHeight+2;mxClient.IS_QUIRKS&&null!=this.border&&this.border!=mxConstants.NONE&&(f+=3)}else null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,f=k.offsetHeight);e=k.offsetWidth+
this.textWidthPadding;this.clipped&&(f=Math.min(f,this.bounds.height));l=this.bounds.width/d;g=this.bounds.height/d;"fill"==this.overflow?(f=g,e=l):"width"==this.overflow&&(f=k.scrollHeight,e=l);this.offsetWidth=e;this.offsetHeight=f;mxClient.IS_QUIRKS&&(this.clipped||"width"==this.overflow&&0<g)?(g=Math.min(g,f),a.height=Math.round(g)+"px"):g=f;if("fill"!=this.overflow&&"width"!=this.overflow&&(this.clipped&&(e=Math.min(l,e)),l=e,mxClient.IS_QUIRKS&&this.clipped||this.wrap))a.width=Math.round(l)+
-"px";var g=g*d,l=l*d,m=this.getTextRotation()*(Math.PI/180),e=parseFloat(parseFloat(Math.cos(m)).toFixed(8)),f=parseFloat(parseFloat(Math.sin(-m)).toFixed(8)),m=m%(2*Math.PI);0>m&&(m+=2*Math.PI);m%=Math.PI;m>Math.PI/2&&(m=Math.PI-m);var k=Math.cos(m),n=Math.sin(-m),b=l*-(b+0.5),q=g*-(c+0.5),p=(g-g*k+l*n)/2+f*b-e*q;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&&0<a.filter.length?a.filter+
-(" "+c):c);c=0;"fill"!=this.overflow&&mxClient.IS_QUIRKS&&(c=this.valign==mxConstants.ALIGN_TOP?c-1:this.valign==mxConstants.ALIGN_BOTTOM?c+2:c+1);a.zoom=d;a.left=Math.round(this.bounds.x+((l-l*k+g*n)/2-e*b-f*q)-l/2)+"px";a.top=Math.round(this.bounds.y+p-g/2+c)+"px"};
+"px";var g=g*d,l=l*d,n=this.getTextRotation()*(Math.PI/180),e=parseFloat(parseFloat(Math.cos(n)).toFixed(8)),f=parseFloat(parseFloat(Math.sin(-n)).toFixed(8)),n=n%(2*Math.PI);0>n&&(n+=2*Math.PI);n%=Math.PI;n>Math.PI/2&&(n=Math.PI-n);var k=Math.cos(n),m=Math.sin(-n),b=l*-(b+0.5),p=g*-(c+0.5),q=(g-g*k+l*m)/2+f*b-e*p;0!=n&&(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&&0<a.filter.length?a.filter+
+(" "+c):c);c=0;"fill"!=this.overflow&&mxClient.IS_QUIRKS&&(c=this.valign==mxConstants.ALIGN_TOP?c-1:this.valign==mxConstants.ALIGN_BOTTOM?c+2:c+1);a.zoom=d;a.left=Math.round(this.bounds.x+((l-l*k+g*m)/2-e*b-f*p)-l/2)+"px";a.top=Math.round(this.bounds.y+q-g/2+c)+"px"};
mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var a=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(a=mxUtils.htmlEntities(a,!1));var a=mxUtils.replaceTrailingNewlines(a,"\x3cdiv\x3e\x3cbr\x3e\x3c/div\x3e"),a=this.replaceLinefeeds?a.replace(/\n/g,"\x3cbr/\x3e"):a,b=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,c=null!=this.border&&this.border!=mxConstants.NONE?this.border:
null;if("fill"==this.overflow||"width"==this.overflow)null!=b&&(this.node.style.backgroundColor=b),null!=c&&(this.node.style.border="1px solid "+c);else{var d="";null!=b&&(d+="background-color:"+b+";");null!=c&&(d+="border:1px solid "+c+";");a='\x3cdiv style\x3d"zoom:1;'+d+"display:inline-block;_display:inline;text-decoration:inherit;padding-bottom:1px;padding-right:1px;line-height:"+(mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT)+'"\x3e'+a+"\x3c/div\x3e"}this.node.innerHTML=
a;a=this.node.getElementsByTagName("div");0<a.length&&(b=this.textDirection,b==mxConstants.TEXT_DIRECTION_AUTO&&this.dialect!=mxConstants.DIALECT_STRICTHTML&&(b=this.getAutoDirection()),b==mxConstants.TEXT_DIRECTION_LTR||b==mxConstants.TEXT_DIRECTION_RTL?a[a.length-1].setAttribute("dir",b):a[a.length-1].removeAttribute("dir"))}};
@@ -760,14 +760,14 @@ mxStackLayout.prototype.resizeParentMax=!1;mxStackLayout.prototype.resizeLast=!1
mxStackLayout.prototype.moveCell=function(a,b,c){var d=this.graph.getModel(),e=d.getParent(a),f=this.isHorizontal();if(null!=a&&null!=e){var g=0,k=0,l=d.getChildCount(e);b=f?b:c;g=this.graph.getView().getState(e);null!=g&&(b-=f?g.x:g.y);b/=this.graph.view.scale;for(g=0;g<l;g++)if(c=d.getChildAt(e,g),c!=a&&(c=d.getGeometry(c),null!=c)){c=f?c.x+c.width/2:c.y+c.height/2;if(k<=b&&c>b)break;k=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 k=this.graph.getCellStyle(a),l=mxUtils.getNumber(k,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),k=1==mxUtils.getValue(k,
-mxConstants.STYLE_HORIZONTAL,!0);null!=b&&(l=k?Math.min(l,b.height):Math.min(l,b.width));c==k&&(e-=l);k?g+=l:f+=l}d.beginUpdate();try{for(var l=0,k=null,m=0,n=null,q=d.getChildCount(a),p=0;p<q;p++){var r=d.getChildAt(a,p);if(!this.isVertexIgnored(r)&&this.isVertexMovable(r)){var s=d.getGeometry(r);if(null!=s){s=s.clone();if(null!=this.wrap&&null!=k&&(c&&k.x+k.width+s.width+2*this.spacing>this.wrap||!c&&k.y+k.height+s.height+2*this.spacing>this.wrap))k=null,c?g+=l+this.spacing:f+=l+this.spacing,l=
-0;var l=Math.max(l,c?s.height:s.width),t=0;if(!this.borderCollapse)var v=this.graph.getCellStyle(r),t=mxUtils.getNumber(v,mxConstants.STYLE_STROKEWIDTH,1);null!=k?c?s.x=m+this.spacing+Math.floor(t/2):s.y=m+this.spacing+Math.floor(t/2):this.keepFirstLocation||(c?s.x=f:s.y=g);c?s.y=g:s.x=f;this.fill&&null!=e&&(c?s.height=e:s.width=e);this.setChildGeometry(r,s);n=r;k=s;m=c?k.x+k.width+Math.floor(t/2):k.y+k.height+Math.floor(t/2)}}}this.resizeParent&&null!=b&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,
-b,k):this.resizeLast&&null!=b&&(null!=k&&null!=n)&&(c?k.width=b.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=b.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(n,k))}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&&(l=k?Math.min(l,b.height):Math.min(l,b.width));c==k&&(e-=l);k?g+=l:f+=l}d.beginUpdate();try{for(var l=0,k=null,n=0,m=null,p=d.getChildCount(a),q=0;q<p;q++){var s=d.getChildAt(a,q);if(!this.isVertexIgnored(s)&&this.isVertexMovable(s)){var r=d.getGeometry(s);if(null!=r){r=r.clone();if(null!=this.wrap&&null!=k&&(c&&k.x+k.width+r.width+2*this.spacing>this.wrap||!c&&k.y+k.height+r.height+2*this.spacing>this.wrap))k=null,c?g+=l+this.spacing:f+=l+this.spacing,l=
+0;var l=Math.max(l,c?r.height:r.width),t=0;if(!this.borderCollapse)var v=this.graph.getCellStyle(s),t=mxUtils.getNumber(v,mxConstants.STYLE_STROKEWIDTH,1);null!=k?c?r.x=n+this.spacing+Math.floor(t/2):r.y=n+this.spacing+Math.floor(t/2):this.keepFirstLocation||(c?r.x=f:r.y=g);c?r.y=g:r.x=f;this.fill&&null!=e&&(c?r.height=e:r.width=e);this.setChildGeometry(s,r);m=s;k=r;n=c?k.x+k.width+Math.floor(t/2):k.y+k.height+Math.floor(t/2)}}}this.resizeParent&&null!=b&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,
+b,k):this.resizeLast&&null!=b&&(null!=k&&null!=m)&&(c?k.width=b.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=b.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(m,k))}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;e<g;e++){var k=c.getChildAt(d,e),k=this.getVertexBounds(k);if(null!=k){k=k.x+k.width/2;if(f<b&&k>b)break;f=k}}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;g<f;g++){var k=c.getChildAt(a,g);!this.isVertexIgnored(k)&&this.isVertexMovable(k)&&e.push(k)}f=e.length;if(0<f){var l=this.border,m=this.border,n=b?
-d.height:d.width,n=n-2*this.border;a=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;n-=b?a.height:a.width;l+=a.width;m+=a.height;a=this.border+(f-1)*this.spacing;d=b?(d.width-l-a)/f:(d.height-m-a)/f;if(0<d){c.beginUpdate();try{for(g=0;g<f;g++){var k=e[g],q=c.getGeometry(k);null!=q&&(q=q.clone(),q.x=l,q.y=m,b?(this.resizeVertices&&(q.width=d,q.height=n),l+=d+this.spacing):(this.resizeVertices&&(q.height=d,q.width=n),m+=d+this.spacing),c.setGeometry(k,q))}}finally{c.endUpdate()}}}}};
+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;g<f;g++){var k=c.getChildAt(a,g);!this.isVertexIgnored(k)&&this.isVertexMovable(k)&&e.push(k)}f=e.length;if(0<f){var l=this.border,n=this.border,m=b?
+d.height:d.width,m=m-2*this.border;a=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;m-=b?a.height:a.width;l+=a.width;n+=a.height;a=this.border+(f-1)*this.spacing;d=b?(d.width-l-a)/f:(d.height-n-a)/f;if(0<d){c.beginUpdate();try{for(g=0;g<f;g++){var k=e[g],p=c.getGeometry(k);null!=p&&(p=p.clone(),p.x=l,p.y=n,b?(this.resizeVertices&&(p.width=d,p.height=m),l+=d+this.spacing):(this.resizeVertices&&(p.height=d,p.width=m),n+=d+this.spacing),c.setGeometry(k,p))}}finally{c.endUpdate()}}}}};
function mxCompactTreeLayout(a,b,c){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.invert=null!=c?c:!1}mxCompactTreeLayout.prototype=new mxGraphLayout;mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout;mxCompactTreeLayout.prototype.horizontal=null;mxCompactTreeLayout.prototype.invert=null;mxCompactTreeLayout.prototype.resizeParent=!0;mxCompactTreeLayout.prototype.maintainParentLocation=!1;mxCompactTreeLayout.prototype.groupPadding=10;
mxCompactTreeLayout.prototype.groupPaddingTop=0;mxCompactTreeLayout.prototype.groupPaddingRight=0;mxCompactTreeLayout.prototype.groupPaddingBottom=0;mxCompactTreeLayout.prototype.groupPaddingLeft=0;mxCompactTreeLayout.prototype.parentsChanged=null;mxCompactTreeLayout.prototype.moveTree=!1;mxCompactTreeLayout.prototype.visited=null;mxCompactTreeLayout.prototype.levelDistance=10;mxCompactTreeLayout.prototype.nodeDistance=20;mxCompactTreeLayout.prototype.resetEdges=!0;
mxCompactTreeLayout.prototype.prefHozEdgeSep=5;mxCompactTreeLayout.prototype.prefVertEdgeOff=4;mxCompactTreeLayout.prototype.minEdgeJetty=8;mxCompactTreeLayout.prototype.channelBuffer=4;mxCompactTreeLayout.prototype.edgeRouting=!0;mxCompactTreeLayout.prototype.sortEdges=!1;mxCompactTreeLayout.prototype.alignRanks=!1;mxCompactTreeLayout.prototype.maxRankHeight=null;mxCompactTreeLayout.prototype.root=null;mxCompactTreeLayout.prototype.node=null;
@@ -779,7 +779,7 @@ mxCompactTreeLayout.prototype.moveNode=function(a,b,c){a.x+=b;a.y+=c;this.apply(
mxCompactTreeLayout.prototype.sortOutgoingEdges=function(a,b){var c=new mxDictionary;b.sort(function(b,e){var f=b.getTerminal(b.getTerminal(!1)==a),g=c.get(f);null==g&&(g=mxCellPath.create(f).split(mxCellPath.PATH_SEPARATOR),c.put(f,g));var f=e.getTerminal(e.getTerminal(!1)==a),k=c.get(f);null==k&&(k=mxCellPath.create(f).split(mxCellPath.PATH_SEPARATOR),c.put(f,k));return mxCellPath.compare(g,k)})};
mxCompactTreeLayout.prototype.findRankHeights=function(a,b){if(null==this.maxRankHeight[b]||this.maxRankHeight[b]<a.height)this.maxRankHeight[b]=a.height;for(var c=a.child;null!=c;)this.findRankHeights(c,b+1),c=c.next};mxCompactTreeLayout.prototype.setCellHeights=function(a,b){null!=this.maxRankHeight[b]&&this.maxRankHeight[b]>a.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 k=0;k<f.length;k++){var l=f[k];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null);this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),
-this.setEdgePoints(l,null));var m=g.getState(l),l=null!=m?m.getVisibleTerminal(this.invert):g.getVisibleTerminal(l,this.invert),m=this.dfs(l,b);null!=m&&null!=c.getGeometry(l)&&(null==e?d.child=m:e.next=m,e=m)}}}return d};mxCompactTreeLayout.prototype.layout=function(a){if(null!=a){for(var b=a.child;null!=b;)this.layout(b),b=b.next;null!=a.child?this.attachParent(a,this.join(a)):this.layoutLeaf(a)}};
+this.setEdgePoints(l,null));var n=g.getState(l),l=null!=n?n.getVisibleTerminal(this.invert):g.getVisibleTerminal(l,this.invert),n=this.dfs(l,b);null!=n&&null!=c.getGeometry(l)&&(null==e?d.child=n:e.next=n,e=n)}}}return d};mxCompactTreeLayout.prototype.layout=function(a){if(null!=a){for(var b=a.child;null!=b;)this.layout(b),b=b.next;null!=a.child?this.attachParent(a,this.join(a)):this.layoutLeaf(a)}};
mxCompactTreeLayout.prototype.horizontalLayout=function(a,b,c,d){a.x+=b+a.offsetX;a.y+=c+a.offsetY;d=this.apply(a,d);b=a.child;if(null!=b){d=this.horizontalLayout(b,a.x,a.y,d);c=a.y+b.offsetY;for(var e=b.next;null!=e;)d=this.horizontalLayout(e,a.x+b.offsetX,c,d),c+=e.offsetY,e=e.next}return d};
mxCompactTreeLayout.prototype.verticalLayout=function(a,b,c,d,e){a.x+=c+a.offsetY;a.y+=d+a.offsetX;e=this.apply(a,e);b=a.child;if(null!=b){e=this.verticalLayout(b,a,a.x,a.y,e);c=a.x+b.offsetY;for(d=b.next;null!=d;)e=this.verticalLayout(d,a,c,a.y+b.offsetX,e),c+=d.offsetY,d=d.next}return e};
mxCompactTreeLayout.prototype.attachParent=function(a,b){var c=this.nodeDistance+this.levelDistance,d=(b-a.width)/2-this.nodeDistance,e=d+a.width+2*this.nodeDistance-b;a.child.offsetX=c+a.height;a.child.offsetY=e;a.contour.upperHead=this.createLine(a.height,0,this.createLine(c,e,a.contour.upperHead));a.contour.lowerHead=this.createLine(a.height,0,this.createLine(c,d,a.contour.lowerHead))};
@@ -791,30 +791,30 @@ mxCompactTreeLayout.prototype.createNode=function(a){var b={};b.cell=a;b.x=0;b.y
mxCompactTreeLayout.prototype.apply=function(a,b){var c=this.graph.getModel(),d=a.cell,e=c.getGeometry(d);null!=d&&null!=e&&(this.isVertexMovable(d)&&(e=this.setVertexLocation(d,a.x,a.y),this.resizeParent&&(c=c.getParent(d),d=mxCellPath.create(c),null==this.parentsChanged[d]&&(this.parentsChanged[d]=c))),b=null==b?new mxRectangle(e.x,e.y,e.width,e.height):new mxRectangle(Math.min(b.x,e.x),Math.min(b.y,e.y),Math.max(b.x+b.width,e.x+e.width),Math.max(b.y+b.height,e.y+e.height)));return b};
mxCompactTreeLayout.prototype.createLine=function(a,b,c){var d={};d.dx=a;d.dy=b;d.next=c;return d};mxCompactTreeLayout.prototype.adjustParents=function(){var a=[],b;for(b in this.parentsChanged)a.push(this.parentsChanged[b]);this.arrangeGroups(mxUtils.sortCells(a,!0),this.groupPadding,this.groupPaddingTop,this.groupPaddingRight,this.groupPaddingBottom,this.groupPaddingLeft)};
mxCompactTreeLayout.prototype.localEdgeProcessing=function(a){this.processNodeOutgoing(a);for(a=a.child;null!=a;)this.localEdgeProcessing(a),a=a.next};
-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,k=this.getVertexBounds(c),l=0;l<e.length;l++){for(var m=
-e[l].cell.cell,n=this.getVertexBounds(m),m=this.graph.getEdgesBetween(c,m,!1),q=[],p=0,r=0,s=0;s<m.length;s++)this.horizontal?(p=k.x+k.width,r=k.y+b,q.push(new mxPoint(p,r)),p=k.x+k.width+f,q.push(new mxPoint(p,r)),r=n.y+n.height/2):(p=k.x+b,r=k.y+k.height,q.push(new mxPoint(p,r)),r=k.y+k.height+f,q.push(new mxPoint(p,r)),p=n.x+n.width/2),q.push(new mxPoint(p,r)),this.setEdgePoints(m[s],q);l<d/2?f+=this.prefVertEdgeOff:l>d/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,k=this.getVertexBounds(c),l=0;l<e.length;l++){for(var n=
+e[l].cell.cell,m=this.getVertexBounds(n),n=this.graph.getEdgesBetween(c,n,!1),p=[],q=0,s=0,r=0;r<n.length;r++)this.horizontal?(q=k.x+k.width,s=k.y+b,p.push(new mxPoint(q,s)),q=k.x+k.width+f,p.push(new mxPoint(q,s)),s=m.y+m.height/2):(q=k.x+b,s=k.y+k.height,p.push(new mxPoint(q,s)),s=k.y+k.height+f,p.push(new mxPoint(q,s)),q=m.x+m.width/2),p.push(new mxPoint(q,s)),this.setEdgePoints(n[r],p);l<d/2?f+=this.prefVertEdgeOff:l>d/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.weightedValue<a.weightedValue?-1:b.nudge?1:-1:0};function mxRadialTreeLayout(a){mxCompactTreeLayout.call(this,a,!1)}
mxUtils.extend(mxRadialTreeLayout,mxCompactTreeLayout);mxRadialTreeLayout.prototype.angleOffset=0.5;mxRadialTreeLayout.prototype.rootx=0;mxRadialTreeLayout.prototype.rooty=0;mxRadialTreeLayout.prototype.levelDistance=120;mxRadialTreeLayout.prototype.nodeDistance=10;mxRadialTreeLayout.prototype.autoRadius=!1;mxRadialTreeLayout.prototype.sortEdges=!1;mxRadialTreeLayout.prototype.rowMinX=[];mxRadialTreeLayout.prototype.rowMaxX=[];mxRadialTreeLayout.prototype.rowMinCenX=[];
mxRadialTreeLayout.prototype.rowMaxCenX=[];mxRadialTreeLayout.prototype.rowRadi=[];mxRadialTreeLayout.prototype.row=[];mxRadialTreeLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
mxRadialTreeLayout.prototype.execute=function(a,b){this.parent=a;this.edgeRouting=this.useBoundingBox=!1;mxCompactTreeLayout.prototype.execute.apply(this,arguments);var c=null,d=this.getVertexBounds(this.root);this.centerX=d.x+d.width/2;this.centerY=d.y+d.height/2;for(var e in this.visited){var f=this.getVertexBounds(this.visited[e]),c=null!=c?c:f.clone();c.add(f)}this.calcRowDims([this.node],0);for(var g=0,k=0,c=0;c<this.row.length;c++)e=(this.rowMaxX[c]-this.centerX-this.nodeDistance)/this.rowRadi[c],
-g=Math.max(g,(this.centerX-this.rowMinX[c]-this.nodeDistance)/this.rowRadi[c]),k=Math.max(k,e);for(c=0;c<this.row.length;c++){var l=this.centerX-this.nodeDistance-g*this.rowRadi[c],m=this.centerX+this.nodeDistance+k*this.rowRadi[c]-l;for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),d.theta=2*Math.PI*((f.x+f.width/2-l)/m)}for(c=this.row.length-2;0<=c;c--){f=this.row[c];for(e=0;e<f.length;e++){d=f[e];g=d.child;for(l=k=0;null!=g;)l+=g.theta,k++,g=g.next;0<k&&(g=l/
+g=Math.max(g,(this.centerX-this.rowMinX[c]-this.nodeDistance)/this.rowRadi[c]),k=Math.max(k,e);for(c=0;c<this.row.length;c++){var l=this.centerX-this.nodeDistance-g*this.rowRadi[c],n=this.centerX+this.nodeDistance+k*this.rowRadi[c]-l;for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),d.theta=2*Math.PI*((f.x+f.width/2-l)/n)}for(c=this.row.length-2;0<=c;c--){f=this.row[c];for(e=0;e<f.length;e++){d=f[e];g=d.child;for(l=k=0;null!=g;)l+=g.theta,k++,g=g.next;0<k&&(g=l/
k,g>d.theta&&e<f.length-1?d.theta=Math.min(g,f[e+1].theta-Math.PI/10):g<d.theta&&0<e&&(d.theta=Math.max(g,f[e-1].theta+Math.PI/10)))}}for(c=0;c<this.row.length;c++)for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),this.setVertexLocation(d.cell,this.centerX-f.width/2+this.rowRadi[c]*Math.cos(d.theta),this.centerY-f.height/2+this.rowRadi[c]*Math.sin(d.theta))};
mxRadialTreeLayout.prototype.calcRowDims=function(a,b){if(!(null==a||0==a.length)){this.rowMinX[b]=this.centerX;this.rowMaxX[b]=this.centerX;this.rowMinCenX[b]=this.centerX;this.rowMaxCenX[b]=this.centerX;this.row[b]=[];for(var c=!1,d=0;d<a.length;d++)for(var e=null!=a[d]?a[d].child:null;null!=e;)vertexBounds=this.getVertexBounds(e.cell),this.rowMinX[b]=Math.min(vertexBounds.x,this.rowMinX[b]),this.rowMaxX[b]=Math.max(vertexBounds.x+vertexBounds.width,this.rowMaxX[b]),this.rowMinCenX[b]=Math.min(vertexBounds.x+
vertexBounds.width/2,this.rowMinCenX[b]),this.rowMaxCenX[b]=Math.max(vertexBounds.x+vertexBounds.width/2,this.rowMaxCenX[b]),this.rowRadi[b]=vertexBounds.y-this.getVertexBounds(this.root).y,null!=e.child&&(c=!0),this.row[b].push(e),e=e.next;c&&this.calcRowDims(this.row[b],b+1)}};function mxFastOrganicLayout(a){mxGraphLayout.call(this,a)}mxFastOrganicLayout.prototype=new mxGraphLayout;mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout;mxFastOrganicLayout.prototype.useInputOrigin=!0;
mxFastOrganicLayout.prototype.resetEdges=!0;mxFastOrganicLayout.prototype.disableEdgeStyle=!0;mxFastOrganicLayout.prototype.forceConstant=50;mxFastOrganicLayout.prototype.forceConstantSquared=0;mxFastOrganicLayout.prototype.minDistanceLimit=2;mxFastOrganicLayout.prototype.maxDistanceLimit=500;mxFastOrganicLayout.prototype.minDistanceLimitSquared=4;mxFastOrganicLayout.prototype.initialTemp=200;mxFastOrganicLayout.prototype.temperature=0;mxFastOrganicLayout.prototype.maxIterations=0;
mxFastOrganicLayout.prototype.iteration=0;mxFastOrganicLayout.prototype.allowedToRun=!0;mxFastOrganicLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
mxFastOrganicLayout.prototype.execute=function(a){var b=this.graph.getModel();this.vertexArray=[];for(var c=this.graph.getChildVertices(a),d=0;d<c.length;d++)this.isVertexIgnored(c[d])||this.vertexArray.push(c[d]);var e=this.useInputOrigin?this.graph.getBoundingBoxFromGeometry(this.vertexArray):null,f=this.vertexArray.length;this.indices=[];this.dispX=[];this.dispY=[];this.cellLocation=[];this.isMoveable=[];this.neighbours=[];this.radius=[];this.radiusSquared=[];0.001>this.forceConstant&&(this.forceConstant=
-0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;d<this.vertexArray.length;d++){var g=this.vertexArray[d];this.cellLocation[d]=[];var k=mxObjectIdentity.get(g);this.indices[k]=d;var l=this.getVertexBounds(g),m=l.width,n=l.height,q=l.x,p=l.y;this.cellLocation[d][0]=q+m/2;this.cellLocation[d][1]=p+n/2;this.radius[d]=Math.min(m,n);this.radiusSquared[d]=this.radius[d]*this.radius[d]}b.beginUpdate();try{for(d=0;d<f;d++){this.dispX[d]=0;this.dispY[d]=0;this.isMoveable[d]=this.isVertexMovable(this.vertexArray[d]);
-var r=this.graph.getConnections(this.vertexArray[d],a),c=this.graph.getOpposites(r,this.vertexArray[d]);this.neighbours[d]=[];for(m=0;m<c.length;m++){this.resetEdges&&this.graph.resetEdge(r[m]);this.disableEdgeStyle&&this.setEdgeStyleEnabled(r[m],!1);var k=mxObjectIdentity.get(c[m]),s=this.indices[k];this.neighbours[d][m]=null!=s?s:d}}this.temperature=this.initialTemp;0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(f));for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;
-this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature()}a=c=null;for(d=0;d<this.vertexArray.length;d++)g=this.vertexArray[d],this.isVertexMovable(g)&&(l=this.getVertexBounds(g),null!=l&&(this.cellLocation[d][0]-=l.width/2,this.cellLocation[d][1]-=l.height/2,q=this.graph.snap(this.cellLocation[d][0]),p=this.graph.snap(this.cellLocation[d][1]),this.setVertexLocation(g,q,p),c=null==c?q:Math.min(c,q),a=null==a?p:Math.min(a,p)));d=-(c||0)+1;g=-(a||0)+1;null!=e&&(d+=e.x,
+0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;d<this.vertexArray.length;d++){var g=this.vertexArray[d];this.cellLocation[d]=[];var k=mxObjectIdentity.get(g);this.indices[k]=d;var l=this.getVertexBounds(g),n=l.width,m=l.height,p=l.x,q=l.y;this.cellLocation[d][0]=p+n/2;this.cellLocation[d][1]=q+m/2;this.radius[d]=Math.min(n,m);this.radiusSquared[d]=this.radius[d]*this.radius[d]}b.beginUpdate();try{for(d=0;d<f;d++){this.dispX[d]=0;this.dispY[d]=0;this.isMoveable[d]=this.isVertexMovable(this.vertexArray[d]);
+var s=this.graph.getConnections(this.vertexArray[d],a),c=this.graph.getOpposites(s,this.vertexArray[d]);this.neighbours[d]=[];for(n=0;n<c.length;n++){this.resetEdges&&this.graph.resetEdge(s[n]);this.disableEdgeStyle&&this.setEdgeStyleEnabled(s[n],!1);var k=mxObjectIdentity.get(c[n]),r=this.indices[k];this.neighbours[d][n]=null!=r?r:d}}this.temperature=this.initialTemp;0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(f));for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;
+this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature()}a=c=null;for(d=0;d<this.vertexArray.length;d++)g=this.vertexArray[d],this.isVertexMovable(g)&&(l=this.getVertexBounds(g),null!=l&&(this.cellLocation[d][0]-=l.width/2,this.cellLocation[d][1]-=l.height/2,p=this.graph.snap(this.cellLocation[d][0]),q=this.graph.snap(this.cellLocation[d][1]),this.setVertexLocation(g,p,q),c=null==c?p:Math.min(c,p),a=null==a?q:Math.min(a,q)));d=-(c||0)+1;g=-(a||0)+1;null!=e&&(d+=e.x,
g+=e.y);this.graph.moveCells(this.vertexArray,d,g)}finally{b.endUpdate()}};mxFastOrganicLayout.prototype.calcPositions=function(){for(var a=0;a<this.vertexArray.length;a++)if(this.isMoveable[a]){var b=Math.sqrt(this.dispX[a]*this.dispX[a]+this.dispY[a]*this.dispY[a]);0.001>b&&(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;a<this.vertexArray.length;a++)for(var b=0;b<this.neighbours[a].length;b++){var c=this.neighbours[a][b];if(a!=c&&this.isMoveable[a]&&this.isMoveable[c]){var d=this.cellLocation[a][0]-this.cellLocation[c][0],e=this.cellLocation[a][1]-this.cellLocation[c][1],f=d*d+e*e-this.radiusSquared[a]-this.radiusSquared[c];f<this.minDistanceLimitSquared&&(f=this.minDistanceLimitSquared);var g=Math.sqrt(f),f=f/this.forceConstant,d=d/g*f,e=e/g*f;
this.dispX[a]-=d;this.dispY[a]-=e;this.dispX[c]+=d;this.dispY[c]+=e}}};
mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var a=this.vertexArray.length,b=0;b<a;b++)for(var c=b;c<a;c++){if(!this.allowedToRun)return;if(c!=b&&this.isMoveable[b]&&this.isMoveable[c]){var d=this.cellLocation[b][0]-this.cellLocation[c][0],e=this.cellLocation[b][1]-this.cellLocation[c][1];0==d&&(d=0.01+Math.random());0==e&&(e=0.01+Math.random());var f=Math.sqrt(d*d+e*e),g=f-this.radius[b]-this.radius[c];g>this.maxDistanceLimit||(g<this.minDistanceLimit&&(g=this.minDistanceLimit),g=this.forceConstantSquared/
g,d=d/f*g,e=e/f*g,this.dispX[b]+=d,this.dispY[b]+=e,this.dispX[c]-=d,this.dispY[c]-=e)}}};mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)};function mxCircleLayout(a,b){mxGraphLayout.call(this,a);this.radius=null!=b?b:100}mxCircleLayout.prototype=new mxGraphLayout;mxCircleLayout.prototype.constructor=mxCircleLayout;mxCircleLayout.prototype.radius=null;mxCircleLayout.prototype.moveCircle=!1;
mxCircleLayout.prototype.x0=0;mxCircleLayout.prototype.y0=0;mxCircleLayout.prototype.resetEdges=!0;mxCircleLayout.prototype.disableEdgeStyle=!0;
-mxCircleLayout.prototype.execute=function(a){var b=this.graph.getModel();b.beginUpdate();try{for(var c=0,d=null,e=null,f=[],g=b.getChildCount(a),k=0;k<g;k++){var l=b.getChildAt(a,k);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{f.push(l);var m=this.getVertexBounds(l),d=null==d?m.y:Math.min(d,m.y),e=null==e?m.x:Math.min(e,m.x),c=Math.max(c,Math.max(m.width,m.height))}}var n=this.getRadius(f.length,
-c);this.moveCircle&&(e=this.x0,d=this.y0);this.circle(f,n,e,d)}finally{b.endUpdate()}};mxCircleLayout.prototype.getRadius=function(a,b){return Math.max(a*b/Math.PI,this.radius)};mxCircleLayout.prototype.circle=function(a,b,c,d){for(var e=a.length,f=2*Math.PI/e,g=0;g<e;g++)this.isVertexMovable(a[g])&&this.setVertexLocation(a[g],c+b+b*Math.sin(g*f),d+b+b*Math.cos(g*f))};function mxParallelEdgeLayout(a){mxGraphLayout.call(this,a)}mxParallelEdgeLayout.prototype=new mxGraphLayout;
+mxCircleLayout.prototype.execute=function(a){var b=this.graph.getModel();b.beginUpdate();try{for(var c=0,d=null,e=null,f=[],g=b.getChildCount(a),k=0;k<g;k++){var l=b.getChildAt(a,k);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{f.push(l);var n=this.getVertexBounds(l),d=null==d?n.y:Math.min(d,n.y),e=null==e?n.x:Math.min(e,n.x),c=Math.max(c,Math.max(n.width,n.height))}}var m=this.getRadius(f.length,
+c);this.moveCircle&&(e=this.x0,d=this.y0);this.circle(f,m,e,d)}finally{b.endUpdate()}};mxCircleLayout.prototype.getRadius=function(a,b){return Math.max(a*b/Math.PI,this.radius)};mxCircleLayout.prototype.circle=function(a,b,c,d){for(var e=a.length,f=2*Math.PI/e,g=0;g<e;g++)this.isVertexMovable(a[g])&&this.setVertexLocation(a[g],c+b+b*Math.sin(g*f),d+b+b*Math.cos(g*f))};function mxParallelEdgeLayout(a){mxGraphLayout.call(this,a)}mxParallelEdgeLayout.prototype=new mxGraphLayout;
mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout;mxParallelEdgeLayout.prototype.spacing=20;mxParallelEdgeLayout.prototype.execute=function(a){a=this.findParallels(a);this.graph.model.beginUpdate();try{for(var b in a){var c=a[b];1<c.length&&this.layout(c)}}finally{this.graph.model.endUpdate()}};
mxParallelEdgeLayout.prototype.findParallels=function(a){for(var b=this.graph.getModel(),c=[],d=b.getChildCount(a),e=0;e<d;e++){var f=b.getChildAt(a,e);if(!this.isEdgeIgnored(f)){var g=this.getEdgeId(f);null!=g&&(null==c[g]&&(c[g]=[]),c[g].push(f))}}return c};mxParallelEdgeLayout.prototype.getEdgeId=function(a){var b=this.graph.getView(),c=b.getVisibleTerminal(a,!0);a=b.getVisibleTerminal(a,!1);return null!=c&&null!=a?(c=mxObjectIdentity.get(c),a=mxObjectIdentity.get(a),c>a?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;f<a.length;f++)this.route(a[f],b,c),b+=this.spacing;else if(null!=e&&null!=d){var b=e.x+e.width/2,c=e.y+e.height/2,f=d.x+d.width/2-b,g=d.y+d.height/2-c,d=Math.sqrt(f*f+g*g);if(0<d){e=g*this.spacing/d;d=f*this.spacing/d;b=b+f/2+e*(a.length-1)/
@@ -839,22 +839,22 @@ function mxGraphHierarchyModel(a,b,c,d,e){a.getGraph();this.tightenToSource=e;th
l&&(l=a.getVisibleTerminal(k,!0),l=this.vertexMapper.get(l));null!=l&&c[d]!=l&&(g.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,g)&&l.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<b.length;e++){c[e]=new mxGraphHierarchyNode(b[e]);this.vertexMapper.put(b[e],c[e]);var f=a.getEdges(b[e]);c[e].connectsAsSource=[];for(var g=0;g<f.length;g++){var k=a.getVisibleTerminal(f[g],!1);if(k!=b[e]&&a.graph.model.isVertex(k)&&!a.isVertexIgnored(k)){var l=a.getEdgesBetween(b[e],k,!1),k=a.getEdgesBetween(b[e],k,!0);if(null!=l&&0<l.length&&null==this.edgeMapper.get(l[0])&&2*k.length>=l.length){for(var k=
-new mxGraphHierarchyEdge(l),m=0;m<l.length;m++){var n=l[m];this.edgeMapper.put(n,k);d.resetEdge(n);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(n,!1),a.setOrthogonalEdge(n,!0))}k.source=c[e];0>mxUtils.indexOf(c[e].connectsAsSource,k)&&c[e].connectsAsSource.push(k)}}}c[e].temp[0]=0}};
-mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;b<this.roots.length;b++){var c=this.vertexMapper.get(this.roots[b]);null!=c&&a.push(c)}for(var d=this.vertexMapper.getValues(),b=0;b<d.length;b++)d[b].temp[0]=-1;for(var e=a.slice();0<a.length;){var c=a[0],f,g;f=c.connectsAsTarget;g=c.connectsAsSource;for(var k=!0,l=this.SOURCESCANSTARTRANK,b=0;b<f.length;b++){var m=f[b];if(5270620==m.temp[0])m=m.source,l=Math.min(l,m.temp[0]-1);else{k=!1;break}}if(k){c.temp[0]=
-l;this.maxRank=Math.min(this.maxRank,l);if(null!=g)for(b=0;b<g.length;b++)m=g[b],m.temp[0]=5270620,m=m.target,-1==m.temp[0]&&(a.push(m),m.temp[0]=-2);a.shift()}else if(b=a.shift(),a.push(c),b==c&&1==a.length)break}for(b=0;b<d.length;b++)d[b].temp[0]-=this.maxRank;for(b=0;b<e.length;b++){c=e[b];a=0;f=c.connectsAsSource;for(d=0;d<f.length;d++)m=f[d],m=m.target,c.temp[0]=Math.max(a,m.temp[0]+1),a=c.temp[0]}this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank};
-mxGraphHierarchyModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,m){0==m&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=
+new mxGraphHierarchyEdge(l),n=0;n<l.length;n++){var m=l[n];this.edgeMapper.put(m,k);d.resetEdge(m);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(m,!1),a.setOrthogonalEdge(m,!0))}k.source=c[e];0>mxUtils.indexOf(c[e].connectsAsSource,k)&&c[e].connectsAsSource.push(k)}}}c[e].temp[0]=0}};
+mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;b<this.roots.length;b++){var c=this.vertexMapper.get(this.roots[b]);null!=c&&a.push(c)}for(var d=this.vertexMapper.getValues(),b=0;b<d.length;b++)d[b].temp[0]=-1;for(var e=a.slice();0<a.length;){var c=a[0],f,g;f=c.connectsAsTarget;g=c.connectsAsSource;for(var k=!0,l=this.SOURCESCANSTARTRANK,b=0;b<f.length;b++){var n=f[b];if(5270620==n.temp[0])n=n.source,l=Math.min(l,n.temp[0]-1);else{k=!1;break}}if(k){c.temp[0]=
+l;this.maxRank=Math.min(this.maxRank,l);if(null!=g)for(b=0;b<g.length;b++)n=g[b],n.temp[0]=5270620,n=n.target,-1==n.temp[0]&&(a.push(n),n.temp[0]=-2);a.shift()}else if(b=a.shift(),a.push(c),b==c&&1==a.length)break}for(b=0;b<d.length;b++)d[b].temp[0]-=this.maxRank;for(b=0;b<e.length;b++){c=e[b];a=0;f=c.connectsAsSource;for(d=0;d<f.length;d++)n=f[d],n=n.target,c.temp[0]=Math.max(a,n.temp[0]+1),a=c.temp[0]}this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank};
+mxGraphHierarchyModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,n){0==n&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=
[];d.x=[];d.y=[];for(b=d.minRank+1;b<d.maxRank;b++)a[b].push(d),d.setGeneralPurposeVariable(b,a[b].length-1)}},c,!1,null)};mxGraphHierarchyModel.prototype.visit=function(a,b,c,d){if(null!=b){for(var e=0;e<b.length;e++){var f=b[e];null!=f&&(null==d&&(d={}),c?(f.hashCode=[],f.hashCode[0]=this.dfsCount,f.hashCode[1]=e,this.extendedDfs(null,f,null,a,d,f.hashCode,e,0)):this.dfs(null,f,null,a,d,0))}this.dfsCount++}};
mxGraphHierarchyModel.prototype.dfs=function(a,b,c,d,e,f){if(null!=b){var g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,f,0);a=b.connectsAsSource.slice();for(c=0;c<a.length;c++)g=a[c],this.dfs(b,g.target,g,d,e,f+1)}else d(a,b,c,f,1)}};
mxGraphHierarchyModel.prototype.extendedDfs=function(a,b,c,d,e,f,g,k){if(null!=b){if(null!=a&&(null==b.hashCode||b.hashCode[0]!=a.hashCode[0]))f=a.hashCode.length+1,b.hashCode=a.hashCode.slice(),b.hashCode[f-1]=g;g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,k,0);a=b.connectsAsSource.slice();for(c=0;c<a.length;c++)g=a[c],this.extendedDfs(b,g.target,g,d,e,b.hashCode,c,k+1)}else d(a,b,c,k,1)}};
function mxSwimlaneModel(a,b,c,d,e){a.getGraph();this.tightenToSource=e;this.roots=c;this.parent=d;this.vertexMapper=new mxDictionary;this.edgeMapper=new mxDictionary;this.maxRank=0;c=[];null==b&&(b=this.graph.getChildVertices(d));this.maxRank=this.SOURCESCANSTARTRANK;this.createInternalCells(a,b,c);for(d=0;d<b.length;d++){e=c[d].connectsAsSource;for(var f=0;f<e.length;f++){var g=e[f],k=g.edges;if(null!=k&&0<k.length){var k=k[0],l=a.getVisibleTerminal(k,!1),l=this.vertexMapper.get(l);c[d]==l&&(l=
a.getVisibleTerminal(k,!0),l=this.vertexMapper.get(l));null!=l&&c[d]!=l&&(g.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,g)&&l.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<b.length;f++){c[f]=new mxGraphHierarchyNode(b[f]);this.vertexMapper.put(b[f],c[f]);c[f].swimlaneIndex=-1;for(var g=0;g<e.length;g++)if(d.model.getParent(b[f])==e[g]){c[f].swimlaneIndex=g;break}g=a.getEdges(b[f]);c[f].connectsAsSource=[];for(var k=0;k<g.length;k++){var l=a.getVisibleTerminal(g[k],!1);if(l!=b[f]&&a.graph.model.isVertex(l)&&!a.isVertexIgnored(l)){var m=a.getEdgesBetween(b[f],l,!1),
-l=a.getEdgesBetween(b[f],l,!0);if(null!=m&&0<m.length&&null==this.edgeMapper.get(m[0])&&2*l.length>=m.length){for(var l=new mxGraphHierarchyEdge(m),n=0;n<m.length;n++){var q=m[n];this.edgeMapper.put(q,l);d.resetEdge(q);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(q,!1),a.setOrthogonalEdge(q,!0))}l.source=c[f];0>mxUtils.indexOf(c[f].connectsAsSource,l)&&c[f].connectsAsSource.push(l)}}}c[f].temp[0]=0}};
+mxSwimlaneModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=a.swimlanes,f=0;f<b.length;f++){c[f]=new mxGraphHierarchyNode(b[f]);this.vertexMapper.put(b[f],c[f]);c[f].swimlaneIndex=-1;for(var g=0;g<e.length;g++)if(d.model.getParent(b[f])==e[g]){c[f].swimlaneIndex=g;break}g=a.getEdges(b[f]);c[f].connectsAsSource=[];for(var k=0;k<g.length;k++){var l=a.getVisibleTerminal(g[k],!1);if(l!=b[f]&&a.graph.model.isVertex(l)&&!a.isVertexIgnored(l)){var n=a.getEdgesBetween(b[f],l,!1),
+l=a.getEdgesBetween(b[f],l,!0);if(null!=n&&0<n.length&&null==this.edgeMapper.get(n[0])&&2*l.length>=n.length){for(var l=new mxGraphHierarchyEdge(n),m=0;m<n.length;m++){var p=n[m];this.edgeMapper.put(p,l);d.resetEdge(p);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(p,!1),a.setOrthogonalEdge(p,!0))}l.source=c[f];0>mxUtils.indexOf(c[f].connectsAsSource,l)&&c[f].connectsAsSource.push(l)}}}c[f].temp[0]=0}};
mxSwimlaneModel.prototype.initialRank=function(){this.ranksPerGroup=[];var a=[],b={};if(null!=this.roots)for(var c=0;c<this.roots.length;c++){var d=this.vertexMapper.get(this.roots[c]);this.maxChainDfs(null,d,null,b,0);null!=d&&a.push(d)}d=[];b=[];for(c=this.ranksPerGroup.length-1;0<=c;c--)d[c]=c==this.ranksPerGroup.length-1?0:b[c+1]+1,b[c]=d[c]+this.ranksPerGroup[c];this.maxRank=b[0];d=this.vertexMapper.getValues();for(c=0;c<d.length;c++)d[c].temp[0]=-1;for(a.slice();0<a.length;){var d=a[0],e,f;
e=d.connectsAsTarget;f=d.connectsAsSource;for(var g=!0,k=b[0],c=0;c<e.length;c++){var l=e[c];if(5270620==l.temp[0])l=l.source,k=Math.min(k,l.temp[0]-1);else{g=!1;break}}if(g){k>b[d.swimlaneIndex]&&(k=b[d.swimlaneIndex]);d.temp[0]=k;if(null!=f)for(c=0;c<f.length;c++)l=f[c],l.temp[0]=5270620,l=l.target,-1==l.temp[0]&&(a.push(l),l.temp[0]=-2);a.shift()}else if(c=a.shift(),a.push(d),c==d&&1==a.length)break}};
mxSwimlaneModel.prototype.maxChainDfs=function(a,b,c,d,e){if(null!=b&&(a=mxCellPath.create(b.cell),null==d[a])){d[a]=b;a=b.swimlaneIndex;if(null==this.ranksPerGroup[a]||this.ranksPerGroup[a]<e)this.ranksPerGroup[a]=e;a=b.connectsAsSource.slice();for(c=0;c<a.length;c++){var f=a[c],g=f.target;b.swimlaneIndex<g.swimlaneIndex?this.maxChainDfs(b,g,f,mxUtils.clone(d,null,!0),0):b.swimlaneIndex==g.swimlaneIndex&&this.maxChainDfs(b,g,f,mxUtils.clone(d,null,!0),e+1)}}};
-mxSwimlaneModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,m){0==m&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=[];d.x=
+mxSwimlaneModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,n){0==n&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=[];d.x=
[];d.y=[];for(b=d.minRank+1;b<d.maxRank;b++)a[b].push(d),d.setGeneralPurposeVariable(b,a[b].length-1)}},c,!1,null)};mxSwimlaneModel.prototype.visit=function(a,b,c,d){if(null!=b){for(var e=0;e<b.length;e++){var f=b[e];null!=f&&(null==d&&(d={}),c?(f.hashCode=[],f.hashCode[0]=this.dfsCount,f.hashCode[1]=e,this.extendedDfs(null,f,null,a,d,f.hashCode,e,0)):this.dfs(null,f,null,a,d,0))}this.dfsCount++}};
mxSwimlaneModel.prototype.dfs=function(a,b,c,d,e,f){if(null!=b){var g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,f,0);a=b.connectsAsSource.slice();for(c=0;c<a.length;c++)g=a[c],this.dfs(b,g.target,g,d,e,f+1)}else d(a,b,c,f,1)}};
mxSwimlaneModel.prototype.extendedDfs=function(a,b,c,d,e,f,g,k){if(null!=b){if(null!=a&&(null==b.hashCode||b.hashCode[0]!=a.hashCode[0]))f=a.hashCode.length+1,b.hashCode=a.hashCode.slice(),b.hashCode[f-1]=g;g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,k,0);a=b.connectsAsSource.slice();c=b.connectsAsTarget.slice();for(g=0;g<a.length;g++){f=a[g];var l=f.target;b.swimlaneIndex<=l.swimlaneIndex&&this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}for(g=0;g<c.length;g++)f=c[g],l=f.source,b.swimlaneIndex<l.swimlaneIndex&&
@@ -862,59 +862,59 @@ this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}else d(a,b,c,k,1)}};function mxHier
mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null;mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0;mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0;mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2;
mxMedianHybridCrossingReduction.prototype.execute=function(a){a=this.layout.getModel();this.nestedBestRanks=[];for(var b=0;b<a.ranks.length;b++)this.nestedBestRanks[b]=a.ranks[b].slice();for(var c=0,d=this.calculateCrossings(a),b=0;b<this.maxIterations&&c<this.maxNoImprovementIterations;b++){this.weightedMedian(b,a);this.transpose(b,a);var e=this.calculateCrossings(a);if(e<d){d=e;for(e=c=0;e<this.nestedBestRanks.length;e++)for(var f=a.ranks[e],g=0;g<f.length;g++){var k=f[g];this.nestedBestRanks[e][k.getGeneralPurposeVariable(e)]=
k}}else{c++;for(e=0;e<this.nestedBestRanks.length;e++){f=a.ranks[e];for(g=0;g<f.length;g++)k=f[g],k.setGeneralPurposeVariable(e,g)}}if(0==d)break}c=[];d=[];for(b=0;b<a.maxRank+1;b++)d[b]=[],c[b]=d[b];for(b=0;b<this.nestedBestRanks.length;b++)for(e=0;e<this.nestedBestRanks[b].length;e++)d[b].push(this.nestedBestRanks[b][e]);a.ranks=c};mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(a){for(var b=a.ranks.length,c=0,d=1;d<b;d++)c+=this.calculateRankCrossing(d,a);return c};
-mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(a,b){for(var c=0,d=b.ranks[a],e=b.ranks[a-1],f=[],g=0;g<d.length;g++){for(var k=d[g],l=k.getGeneralPurposeVariable(a),k=k.getPreviousLayerConnectedCells(a),m=[],n=0;n<k.length;n++){var q=k[n].getGeneralPurposeVariable(a-1);m.push(q)}m.sort(function(a,b){return a-b});f[l]=m}d=[];for(g=0;g<f.length;g++)d=d.concat(f[g]);for(f=1;f<e.length;)f<<=1;l=2*f-1;f-=1;e=[];for(g=0;g<l;++g)e[g]=0;for(g=0;g<d.length;g++){l=d[g]+f;for(++e[l];0<
+mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(a,b){for(var c=0,d=b.ranks[a],e=b.ranks[a-1],f=[],g=0;g<d.length;g++){for(var k=d[g],l=k.getGeneralPurposeVariable(a),k=k.getPreviousLayerConnectedCells(a),n=[],m=0;m<k.length;m++){var p=k[m].getGeneralPurposeVariable(a-1);n.push(p)}n.sort(function(a,b){return a-b});f[l]=n}d=[];for(g=0;g<f.length;g++)d=d.concat(f[g]);for(f=1;f<e.length;)f<<=1;l=2*f-1;f-=1;e=[];for(g=0;g<l;++g)e[g]=0;for(g=0;g<d.length;g++){l=d[g]+f;for(++e[l];0<
l;)l%2&&(c+=e[l+1]),l=l-1>>1,++e[l]}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;f<b.ranks.length;f++){for(var g=b.ranks[f],k=[],l=0;l<g.length;l++){var m=g[l],n=m.getGeneralPurposeVariable(f);0>n&&(n=l);k[n]=m}for(var q=null,p=null,r=null,s=null,t=null,v=null,u=null,y=null,l=0;l<g.length-1;l++){if(0==l){for(var u=k[l],m=u.getNextLayerConnectedCells(f),n=u.getPreviousLayerConnectedCells(f),r=[],s=[],z=0;z<m.length;z++)r[z]=m[z].getGeneralPurposeVariable(f+
-1);for(z=0;z<n.length;z++)s[z]=n[z].getGeneralPurposeVariable(f-1)}else m=q,n=p,r=t,s=v,u=y;y=k[l+1];q=y.getNextLayerConnectedCells(f);p=y.getPreviousLayerConnectedCells(f);t=[];v=[];for(z=0;z<q.length;z++)t[z]=q[z].getGeneralPurposeVariable(f+1);for(z=0;z<p.length;z++)v[z]=p[z].getGeneralPurposeVariable(f-1);for(var x=0,G=0,z=0;z<r.length;z++)for(var D=0;D<t.length;D++)r[z]>t[D]&&x++,r[z]<t[D]&&G++;for(z=0;z<s.length;z++)for(D=0;D<v.length;D++)s[z]>v[D]&&x++,s[z]<v[D]&&G++;if(G<x||G==x&&e)q=u.getGeneralPurposeVariable(f),
-u.setGeneralPurposeVariable(f,y.getGeneralPurposeVariable(f)),y.setGeneralPurposeVariable(f,q),q=m,p=n,t=r,v=s,y=u,e||(c=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,b){var c=0==a%2;if(c)for(var d=b.maxRank-1;0<=d;d--)this.medianRank(d,c);else for(d=1;d<b.maxRank;d++)this.medianRank(d,c)};
-mxMedianHybridCrossingReduction.prototype.medianRank=function(a,b){for(var c=this.nestedBestRanks[a].length,d=[],e=[],f=0;f<c;f++){var g=this.nestedBestRanks[a][f],k=new MedianCellSorter;k.cell=g;var l;l=b?g.getNextLayerConnectedCells(a):g.getPreviousLayerConnectedCells(a);var m;m=b?a+1:a-1;null!=l&&0!=l.length?(k.medianValue=this.medianValue(l,m),d.push(k)):e[g.getGeneralPurposeVariable(a)]=!0}d.sort(MedianCellSorter.prototype.compare);for(f=0;f<c;f++)null==e[f]&&(g=d.shift().cell,g.setGeneralPurposeVariable(a,
+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;f<b.ranks.length;f++){for(var g=b.ranks[f],k=[],l=0;l<g.length;l++){var n=g[l],m=n.getGeneralPurposeVariable(f);0>m&&(m=l);k[m]=n}for(var p=null,q=null,s=null,r=null,t=null,v=null,u=null,z=null,l=0;l<g.length-1;l++){if(0==l){for(var u=k[l],n=u.getNextLayerConnectedCells(f),m=u.getPreviousLayerConnectedCells(f),s=[],r=[],y=0;y<n.length;y++)s[y]=n[y].getGeneralPurposeVariable(f+
+1);for(y=0;y<m.length;y++)r[y]=m[y].getGeneralPurposeVariable(f-1)}else n=p,m=q,s=t,r=v,u=z;z=k[l+1];p=z.getNextLayerConnectedCells(f);q=z.getPreviousLayerConnectedCells(f);t=[];v=[];for(y=0;y<p.length;y++)t[y]=p[y].getGeneralPurposeVariable(f+1);for(y=0;y<q.length;y++)v[y]=q[y].getGeneralPurposeVariable(f-1);for(var x=0,E=0,y=0;y<s.length;y++)for(var C=0;C<t.length;C++)s[y]>t[C]&&x++,s[y]<t[C]&&E++;for(y=0;y<r.length;y++)for(C=0;C<v.length;C++)r[y]>v[C]&&x++,r[y]<v[C]&&E++;if(E<x||E==x&&e)p=u.getGeneralPurposeVariable(f),
+u.setGeneralPurposeVariable(f,z.getGeneralPurposeVariable(f)),z.setGeneralPurposeVariable(f,p),p=n,q=m,t=s,v=r,z=u,e||(c=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,b){var c=0==a%2;if(c)for(var d=b.maxRank-1;0<=d;d--)this.medianRank(d,c);else for(d=1;d<b.maxRank;d++)this.medianRank(d,c)};
+mxMedianHybridCrossingReduction.prototype.medianRank=function(a,b){for(var c=this.nestedBestRanks[a].length,d=[],e=[],f=0;f<c;f++){var g=this.nestedBestRanks[a][f],k=new MedianCellSorter;k.cell=g;var l;l=b?g.getNextLayerConnectedCells(a):g.getPreviousLayerConnectedCells(a);var n;n=b?a+1:a-1;null!=l&&0!=l.length?(k.medianValue=this.medianValue(l,n),d.push(k)):e[g.getGeneralPurposeVariable(a)]=!0}d.sort(MedianCellSorter.prototype.compare);for(f=0;f<c;f++)null==e[f]&&(g=d.shift().cell,g.setGeneralPurposeVariable(a,
f))};mxMedianHybridCrossingReduction.prototype.medianValue=function(a,b){for(var c=[],d=0,e=0;e<a.length;e++){var f=a[e];c[d++]=f.getGeneralPurposeVariable(b)}c.sort(function(a,b){return a-b});if(1==d%2)return c[Math.floor(d/2)];if(2==d)return(c[0]+c[1])/2;e=d/2;f=c[e-1]-c[0];d=c[d-1]-c[e];return(c[e-1]*d+c[e]*f)/(f+d)};function MedianCellSorter(){}MedianCellSorter.prototype.medianValue=0;MedianCellSorter.prototype.cell=!1;
MedianCellSorter.prototype.compare=function(a,b){return null!=a&&null!=b?b.medianValue>a.medianValue?-1:b.medianValue<a.medianValue?1:0:0};function mxMinimumCycleRemover(a){this.layout=a}mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage;mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover;mxMinimumCycleRemover.prototype.layout=null;
-mxMinimumCycleRemover.prototype.execute=function(a){a=this.layout.getModel();for(var b={},c=a.vertexMapper.getValues(),d={},e=0;e<c.length;e++)d[c[e].id]=c[e];c=null;if(null!=a.roots)for(var f=a.roots,c=[],e=0;e<f.length;e++)c[e]=a.vertexMapper.get(f[e]);a.visit(function(a,c,e,f,n){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget),c.connectsAsSource.push(e));b[c.id]=c;delete d[c.id]},c,!0,null);e=mxUtils.clone(b,null,
-!0);a.visit(function(a,c,e,f,n){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),c.connectsAsSource.push(e),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget));b[c.id]=c;delete d[c.id]},d,!0,e)};function mxCoordinateAssignment(a,b,c,d,e,f){this.layout=a;this.intraCellSpacing=b;this.interRankCellSpacing=c;this.orientation=d;this.initialX=e;this.parallelEdgeSpacing=f}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage;
+mxMinimumCycleRemover.prototype.execute=function(a){a=this.layout.getModel();for(var b={},c=a.vertexMapper.getValues(),d={},e=0;e<c.length;e++)d[c[e].id]=c[e];c=null;if(null!=a.roots)for(var f=a.roots,c=[],e=0;e<f.length;e++)c[e]=a.vertexMapper.get(f[e]);a.visit(function(a,c,e,f,m){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget),c.connectsAsSource.push(e));b[c.id]=c;delete d[c.id]},c,!0,null);e=mxUtils.clone(b,null,
+!0);a.visit(function(a,c,e,f,m){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),c.connectsAsSource.push(e),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget));b[c.id]=c;delete d[c.id]},d,!0,e)};function mxCoordinateAssignment(a,b,c,d,e,f){this.layout=a;this.intraCellSpacing=b;this.interRankCellSpacing=c;this.orientation=d;this.initialX=e;this.parallelEdgeSpacing=f}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage;
mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment;mxCoordinateAssignment.prototype.layout=null;mxCoordinateAssignment.prototype.intraCellSpacing=30;mxCoordinateAssignment.prototype.interRankCellSpacing=100;mxCoordinateAssignment.prototype.parallelEdgeSpacing=10;mxCoordinateAssignment.prototype.maxIterations=8;mxCoordinateAssignment.prototype.prefHozEdgeSep=5;mxCoordinateAssignment.prototype.prefVertEdgeOff=2;mxCoordinateAssignment.prototype.minEdgeJetty=12;
mxCoordinateAssignment.prototype.channelBuffer=4;mxCoordinateAssignment.prototype.jettyPositions=null;mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH;mxCoordinateAssignment.prototype.initialX=null;mxCoordinateAssignment.prototype.limitX=null;mxCoordinateAssignment.prototype.currentXDelta=null;mxCoordinateAssignment.prototype.widestRank=null;mxCoordinateAssignment.prototype.rankTopY=null;mxCoordinateAssignment.prototype.rankBottomY=null;
mxCoordinateAssignment.prototype.widestRankValue=null;mxCoordinateAssignment.prototype.rankWidths=null;mxCoordinateAssignment.prototype.rankY=null;mxCoordinateAssignment.prototype.fineTuning=!0;mxCoordinateAssignment.prototype.nextLayerConnectedCache=null;mxCoordinateAssignment.prototype.previousLayerConnectedCache=null;mxCoordinateAssignment.prototype.groupPadding=10;
mxCoordinateAssignment.prototype.printStatus=function(){var a=this.layout.getModel();mxLog.show();mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3dCoord assignment debug\x3d\x3d\x3d\x3d\x3d\x3d\x3d");for(var b=0;b<a.ranks.length;b++){mxLog.write("Rank ",b," : ");for(var c=a.ranks[b],d=0;d<c.length;d++)mxLog.write(c[d].getGeneralPurposeVariable(b)," ");mxLog.writeln()}mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d")};
mxCoordinateAssignment.prototype.execute=function(a){this.jettyPositions={};a=this.layout.getModel();this.currentXDelta=0;this.initialCoords(this.layout.getGraph(),a);this.fineTuning&&this.minNode(a);var b=1E8;if(this.fineTuning)for(var c=0;c<this.maxIterations;c++){0!=c&&(this.medianPos(c,a),this.minNode(a));if(this.currentXDelta<b){for(var d=0;d<a.ranks.length;d++)for(var e=a.ranks[d],f=0;f<e.length;f++){var g=e[f];g.setX(d,g.getGeneralPurposeVariable(d))}b=this.currentXDelta}else for(d=0;d<a.ranks.length;d++){e=
a.ranks[d];for(f=0;f<e.length;f++)g=e[f],g.setGeneralPurposeVariable(d,g.getX(d))}this.minPath(this.layout.getGraph(),a);this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),a)};
-mxCoordinateAssignment.prototype.minNode=function(a){for(var b=[],c=new mxDictionary,d=[],e=0;e<=a.maxRank;e++){d[e]=a.ranks[e];for(var f=0;f<d[e].length;f++){var g=d[e][f],k=new WeightedCellSorter(g,e);k.rankIndex=f;k.visited=!0;b.push(k);c.put(g,k)}}a=10*b.length;for(f=0;0<b.length&&f<=a;){var g=b.shift(),e=g.cell,l=g.weightedValue,m=parseInt(g.rankIndex),k=e.getNextLayerConnectedCells(l),n=e.getPreviousLayerConnectedCells(l),q=k.length,p=n.length,r=this.medianXValue(k,l+1),s=this.medianXValue(n,
-l-1),t=q+p,v=e.getGeneralPurposeVariable(l),u=v;0<t&&(u=(r*q+s*p)/t);q=!1;u<v-1?0==m?(e.setGeneralPurposeVariable(l,u),q=!0):(m=d[l][m-1],v=m.getGeneralPurposeVariable(l),v=v+m.width/2+this.intraCellSpacing+e.width/2,v<u?(e.setGeneralPurposeVariable(l,u),q=!0):v<e.getGeneralPurposeVariable(l)-1&&(e.setGeneralPurposeVariable(l,v),q=!0)):u>v+1&&(m==d[l].length-1?(e.setGeneralPurposeVariable(l,u),q=!0):(m=d[l][m+1],v=m.getGeneralPurposeVariable(l),v=v-m.width/2-this.intraCellSpacing-e.width/2,v>u?(e.setGeneralPurposeVariable(l,
-u),q=!0):v>e.getGeneralPurposeVariable(l)+1&&(e.setGeneralPurposeVariable(l,v),q=!0)));if(q){for(e=0;e<k.length;e++)l=k[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l));for(e=0;e<n.length;e++)l=n[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l))}g.visited=!1;f++}};mxCoordinateAssignment.prototype.medianPos=function(a,b){if(0==a%2)for(var c=b.maxRank;0<c;c--)this.rankMedianPosition(c-1,b,c);else for(c=0;c<b.maxRank-1;c++)this.rankMedianPosition(c+1,b,c)};
+mxCoordinateAssignment.prototype.minNode=function(a){for(var b=[],c=new mxDictionary,d=[],e=0;e<=a.maxRank;e++){d[e]=a.ranks[e];for(var f=0;f<d[e].length;f++){var g=d[e][f],k=new WeightedCellSorter(g,e);k.rankIndex=f;k.visited=!0;b.push(k);c.put(g,k)}}a=10*b.length;for(f=0;0<b.length&&f<=a;){var g=b.shift(),e=g.cell,l=g.weightedValue,n=parseInt(g.rankIndex),k=e.getNextLayerConnectedCells(l),m=e.getPreviousLayerConnectedCells(l),p=k.length,q=m.length,s=this.medianXValue(k,l+1),r=this.medianXValue(m,
+l-1),t=p+q,v=e.getGeneralPurposeVariable(l),u=v;0<t&&(u=(s*p+r*q)/t);p=!1;u<v-1?0==n?(e.setGeneralPurposeVariable(l,u),p=!0):(n=d[l][n-1],v=n.getGeneralPurposeVariable(l),v=v+n.width/2+this.intraCellSpacing+e.width/2,v<u?(e.setGeneralPurposeVariable(l,u),p=!0):v<e.getGeneralPurposeVariable(l)-1&&(e.setGeneralPurposeVariable(l,v),p=!0)):u>v+1&&(n==d[l].length-1?(e.setGeneralPurposeVariable(l,u),p=!0):(n=d[l][n+1],v=n.getGeneralPurposeVariable(l),v=v-n.width/2-this.intraCellSpacing-e.width/2,v>u?(e.setGeneralPurposeVariable(l,
+u),p=!0):v>e.getGeneralPurposeVariable(l)+1&&(e.setGeneralPurposeVariable(l,v),p=!0)));if(p){for(e=0;e<k.length;e++)l=k[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l));for(e=0;e<m.length;e++)l=m[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l))}g.visited=!1;f++}};mxCoordinateAssignment.prototype.medianPos=function(a,b){if(0==a%2)for(var c=b.maxRank;0<c;c--)this.rankMedianPosition(c-1,b,c);else for(c=0;c<b.maxRank-1;c++)this.rankMedianPosition(c+1,b,c)};
mxCoordinateAssignment.prototype.rankMedianPosition=function(a,b,c){b=b.ranks[a];for(var d=[],e={},f=0;f<b.length;f++){var g=b[f];d[f]=new WeightedCellSorter;d[f].cell=g;d[f].rankIndex=f;e[g.id]=d[f];var k=null,k=c<a?g.getPreviousLayerConnectedCells(a):g.getNextLayerConnectedCells(a);d[f].weightedValue=this.calculatedWeightedValue(g,k)}d.sort(WeightedCellSorter.prototype.compare);for(f=0;f<d.length;f++){var l=0,g=d[f].cell,l=0,k=c<a?g.getPreviousLayerConnectedCells(a).slice():g.getNextLayerConnectedCells(a).slice();
-null!=k&&(l=k.length,l=0<l?this.medianXValue(k,c):g.getGeneralPurposeVariable(a));for(var m=0,k=-1E8,n=d[f].rankIndex-1;0<=n;){var q=e[b[n].id];if(null!=q){var p=q.cell;q.visited?(k=p.getGeneralPurposeVariable(a)+p.width/2+this.intraCellSpacing+m+g.width/2,n=-1):(m+=p.width+this.intraCellSpacing,n--)}}m=0;p=1E8;for(n=d[f].rankIndex+1;n<d.length;)if(q=e[b[n].id],null!=q){var r=q.cell;q.visited?(p=r.getGeneralPurposeVariable(a)-r.width/2-this.intraCellSpacing-m-g.width/2,n=d.length):(m+=r.width+this.intraCellSpacing,
-n++)}l>=k&&l<=p?g.setGeneralPurposeVariable(a,l):l<k?(g.setGeneralPurposeVariable(a,k),this.currentXDelta+=k-l):l>p&&(g.setGeneralPurposeVariable(a,p),this.currentXDelta+=l-p);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d<b.length;d++){var e=b[d];a.isVertex()&&e.isVertex()?c++:c=a.isEdge()&&e.isEdge()?c+8:c+2}return c};
+null!=k&&(l=k.length,l=0<l?this.medianXValue(k,c):g.getGeneralPurposeVariable(a));for(var n=0,k=-1E8,m=d[f].rankIndex-1;0<=m;){var p=e[b[m].id];if(null!=p){var q=p.cell;p.visited?(k=q.getGeneralPurposeVariable(a)+q.width/2+this.intraCellSpacing+n+g.width/2,m=-1):(n+=q.width+this.intraCellSpacing,m--)}}n=0;q=1E8;for(m=d[f].rankIndex+1;m<d.length;)if(p=e[b[m].id],null!=p){var s=p.cell;p.visited?(q=s.getGeneralPurposeVariable(a)-s.width/2-this.intraCellSpacing-n-g.width/2,m=d.length):(n+=s.width+this.intraCellSpacing,
+m++)}l>=k&&l<=q?g.setGeneralPurposeVariable(a,l):l<k?(g.setGeneralPurposeVariable(a,k),this.currentXDelta+=k-l):l>q&&(g.setGeneralPurposeVariable(a,q),this.currentXDelta+=l-q);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d<b.length;d++){var e=b[d];a.isVertex()&&e.isVertex()?c++:c=a.isEdge()&&e.isEdge()?c+8:c+2}return c};
mxCoordinateAssignment.prototype.medianXValue=function(a,b){if(0==a.length)return 0;for(var c=[],d=0;d<a.length;d++)c[d]=a[d].getGeneralPurposeVariable(b);c.sort(function(a,b){return a-b});if(1==a.length%2)return c[Math.floor(a.length/2)];d=a.length/2;return(c[d-1]+c[d])/2};
mxCoordinateAssignment.prototype.initialCoords=function(a,b){this.calculateWidestRank(a,b);for(var c=this.widestRank;0<=c;c--)c<b.maxRank&&this.rankCoordinates(c,a,b);for(c=this.widestRank+1;c<=b.maxRank;c++)0<c&&this.rankCoordinates(c,a,b)};
mxCoordinateAssignment.prototype.rankCoordinates=function(a,b,c){b=c.ranks[a];c=0;for(var d=this.initialX+(this.widestRankValue-this.rankWidths[a])/2,e=!1,f=0;f<b.length;f++){var g=b[f];if(g.isVertex()){var k=this.layout.getVertexBounds(g.cell);null!=k?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(g.width=k.width,g.height=k.height):(g.width=k.height,g.height=k.width):e=!0;c=Math.max(c,g.height)}else g.isEdge()&&(k=1,null!=g.edges?k=g.edges.length:mxLog.warn("edge.edges is null"),
g.width=(k-1)*this.parallelEdgeSpacing);d+=g.width/2;g.setX(a,d);g.setGeneralPurposeVariable(a,d);d+=g.width/2;d+=this.intraCellSpacing}!0==e&&mxLog.warn("At least one cell has no bounds")};
-mxCoordinateAssignment.prototype.calculateWidestRank=function(a,b){var c=-this.interRankCellSpacing,d=0;this.rankWidths=[];this.rankY=[];for(var e=b.maxRank;0<=e;e--){for(var f=0,g=b.ranks[e],k=this.initialX,l=!1,m=0;m<g.length;m++){var n=g[m];if(n.isVertex()){var q=this.layout.getVertexBounds(n.cell);null!=q?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(n.width=q.width,n.height=q.height):(n.width=q.height,n.height=q.width):l=!0;f=Math.max(f,n.height)}else n.isEdge()&&
-(q=1,null!=n.edges?q=n.edges.length:mxLog.warn("edge.edges is null"),n.width=(q-1)*this.parallelEdgeSpacing);k+=n.width/2;n.setX(e,k);n.setGeneralPurposeVariable(e,k);k+=n.width/2;k+=this.intraCellSpacing;k>this.widestRankValue&&(this.widestRankValue=k,this.widestRank=e);this.rankWidths[e]=k}!0==l&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;k=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+k:c-
-k;for(m=0;m<g.length;m++)g[m].setY(e,c)}};
-mxCoordinateAssignment.prototype.minPath=function(a,b){for(var c=b.edgeMapper.getValues(),d=0;d<c.length;d++){var e=c[d];if(!(1>e.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,k=0,l=e.minRank+2;l<e.maxRank;l++){var m=e.getGeneralPurposeVariable(l);f!=m?(g=!1,f=m):k++}if(!g){for(var g=f=0,m=[],n=[],q=e.getGeneralPurposeVariable(e.minRank+1),l=e.minRank+1;l<e.maxRank-1;l++){var p=e.getX(l+1);q==p?(m[l-e.minRank-1]=q,f++):this.repositionValid(b,e,l+1,q)?(m[l-e.minRank-
-1]=q,f++):q=m[l-e.minRank-1]=p}q=e.getX(l);for(l=e.maxRank-1;l>e.minRank+1;l--)p=e.getX(l-1),q==p?(n[l-e.minRank-2]=q,g++):this.repositionValid(b,e,l-1,q)?(n[l-e.minRank-2]=q,g++):(n[l-e.minRank-2]=e.getX(l-1),q=p);if(g>k||f>k)if(g>=f)for(l=e.maxRank-2;l>e.minRank;l--)e.setX(l,n[l-e.minRank-1]);else if(f>g)for(l=e.minRank+2;l<e.maxRank;l++)e.setX(l,m[l-e.minRank-2])}}}};
+mxCoordinateAssignment.prototype.calculateWidestRank=function(a,b){var c=-this.interRankCellSpacing,d=0;this.rankWidths=[];this.rankY=[];for(var e=b.maxRank;0<=e;e--){for(var f=0,g=b.ranks[e],k=this.initialX,l=!1,n=0;n<g.length;n++){var m=g[n];if(m.isVertex()){var p=this.layout.getVertexBounds(m.cell);null!=p?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(m.width=p.width,m.height=p.height):(m.width=p.height,m.height=p.width):l=!0;f=Math.max(f,m.height)}else m.isEdge()&&
+(p=1,null!=m.edges?p=m.edges.length:mxLog.warn("edge.edges is null"),m.width=(p-1)*this.parallelEdgeSpacing);k+=m.width/2;m.setX(e,k);m.setGeneralPurposeVariable(e,k);k+=m.width/2;k+=this.intraCellSpacing;k>this.widestRankValue&&(this.widestRankValue=k,this.widestRank=e);this.rankWidths[e]=k}!0==l&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;k=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+k:c-
+k;for(n=0;n<g.length;n++)g[n].setY(e,c)}};
+mxCoordinateAssignment.prototype.minPath=function(a,b){for(var c=b.edgeMapper.getValues(),d=0;d<c.length;d++){var e=c[d];if(!(1>e.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,k=0,l=e.minRank+2;l<e.maxRank;l++){var n=e.getGeneralPurposeVariable(l);f!=n?(g=!1,f=n):k++}if(!g){for(var g=f=0,n=[],m=[],p=e.getGeneralPurposeVariable(e.minRank+1),l=e.minRank+1;l<e.maxRank-1;l++){var q=e.getX(l+1);p==q?(n[l-e.minRank-1]=p,f++):this.repositionValid(b,e,l+1,p)?(n[l-e.minRank-
+1]=p,f++):p=n[l-e.minRank-1]=q}p=e.getX(l);for(l=e.maxRank-1;l>e.minRank+1;l--)q=e.getX(l-1),p==q?(m[l-e.minRank-2]=p,g++):this.repositionValid(b,e,l-1,p)?(m[l-e.minRank-2]=p,g++):(m[l-e.minRank-2]=e.getX(l-1),p=q);if(g>k||f>k)if(g>=f)for(l=e.maxRank-2;l>e.minRank;l--)e.setX(l,m[l-e.minRank-1]);else if(f>g)for(l=e.minRank+2;l<e.maxRank;l++)e.setX(l,n[l-e.minRank-2])}}}};
mxCoordinateAssignment.prototype.repositionValid=function(a,b,c,d){a=a.ranks[c];for(var e=-1,f=0;f<a.length;f++)if(b==a[f]){e=f;break}if(0>e)return!1;f=b.getGeneralPurposeVariable(c);if(d<f){if(0==e)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}else if(d>f){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;c<b.ranks.length;c++)this.rankTopY[c]=Number.MAX_VALUE,this.rankBottomY[c]=-Number.MAX_VALUE;for(var d=b.vertexMapper.getValues(),c=0;c<d.length;c++)this.setVertexLocation(d[c]);(this.layout.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.layout.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(b);d=b.edgeMapper.getValues();
for(c=0;c<d.length;c++)this.setEdgePosition(d[c])};
-mxCoordinateAssignment.prototype.localEdgeProcessing=function(a){for(var b=0;b<a.ranks.length;b++)for(var c=a.ranks[b],d=0;d<c.length;d++){var e=c[d];if(e.isVertex())for(var f=e.getPreviousLayerConnectedCells(b),g=b-1,k=0;2>k;k++){if(-1<g&&g<a.ranks.length&&null!=f&&0<f.length){for(var l=[],m=0;m<f.length;m++){var n=new WeightedCellSorter(f[m],f[m].getX(g));l.push(n)}l.sort(WeightedCellSorter.prototype.compare);for(var n=e.x[0]-e.width/2,q=n+e.width,p=f=0,g=[],m=0;m<l.length;m++){var r=l[m].cell,
-s;if(r.isVertex()){s=0==k?e.connectsAsSource:e.connectsAsTarget;for(var t=0;t<s.length;t++)if(s[t].source==r||s[t].target==r)f+=s[t].edges.length,p++,g.push(s[t])}else f+=r.edges.length,p++,g.push(r)}e.width>(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep,q-=this.prefHozEdgeSep);l=(q-n)/f;n+=l/2;q=this.minEdgeJetty-this.prefVertEdgeOff;for(m=p=0;m<g.length;m++){r=g[m].edges.length;s=this.jettyPositions[g[m].ids[0]];null==s&&(s=[],this.jettyPositions[g[m].ids[0]]=s);m<f/2?
-q+=this.prefVertEdgeOff:m>f/2&&(q-=this.prefVertEdgeOff);for(t=0;t<r;t++)s[4*t+2*k]=n,n+=l,s[4*t+2*k+1]=q;p=Math.max(p,q)}}f=e.getNextLayerConnectedCells(b);g=b+1}}};
-mxCoordinateAssignment.prototype.setEdgePosition=function(a){var b=0;if(101207!=a.temp[0]){var c=a.maxRank,d=a.minRank;c==d&&(c=a.source.maxRank,d=a.target.minRank);for(var e=0,f=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,m=0;m<a.edges.length;m++){var n=a.edges[m],q=this.layout.getVisibleTerminal(n,!0),p=[],r=a.isReversed;q!=g&&(r=!r);if(null!=f){var s=r?
-2:0,t=r?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[c]:this.rankBottomY[c],v=f[4*e+1+s];r!=l&&(v=-v);var t=t+v,s=f[4*e+s],u=k.model.getTerminal(n,!0);this.layout.isPort(u)&&k.model.getParent(u)==q&&(s=k.view.getState(u),s=null!=s?s.x:q.geometry.x+a.source.width*u.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(p.push(new mxPoint(s,t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&p.push(new mxPoint(s,t+v))):(p.push(new mxPoint(t,
-s)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&p.push(new mxPoint(t+v,s)))}s=a.x.length-1;t=v=-1;q=a.maxRank-1;for(r&&(s=0,v=a.x.length,t=1,q=a.minRank+1);a.maxRank!=a.minRank&&s!=v;s+=t){var u=a.x[s]+b,y=(this.rankTopY[q]+this.rankBottomY[q+1])/2,z=(this.rankTopY[q-1]+this.rankBottomY[q])/2;if(r)var x=y,y=z,z=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(p.push(new mxPoint(u,y)),p.push(new mxPoint(u,z))):(p.push(new mxPoint(y,u)),p.push(new mxPoint(z,
-u)));this.limitX=Math.max(this.limitX,u);q+=t}null!=f&&(s=r?2:0,t=r?l?this.rankTopY[c]:this.rankBottomY[c]:l?this.rankBottomY[d]:this.rankTopY[d],v=f[4*e+3-s],r!=l&&(v=-v),t-=v,s=f[4*e+2-s],r=k.model.getTerminal(n,!1),q=this.layout.getVisibleTerminal(n,!1),this.layout.isPort(r)&&k.model.getParent(r)==q&&(s=k.view.getState(r),s=null!=s?s.x:q.geometry.x+a.target.width*r.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
-p.push(new mxPoint(s,t-v)),p.push(new mxPoint(s,t))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&p.push(new mxPoint(t-v,s)),p.push(new mxPoint(t,s))));a.isReversed&&this.processReversedEdge(a,n);this.layout.setEdgePoints(n,p);b=0==b?this.parallelEdgeSpacing:0<b?-b:-b+this.parallelEdgeSpacing;e++}a.temp[0]=101207}};
+mxCoordinateAssignment.prototype.localEdgeProcessing=function(a){for(var b=0;b<a.ranks.length;b++)for(var c=a.ranks[b],d=0;d<c.length;d++){var e=c[d];if(e.isVertex())for(var f=e.getPreviousLayerConnectedCells(b),g=b-1,k=0;2>k;k++){if(-1<g&&g<a.ranks.length&&null!=f&&0<f.length){for(var l=[],n=0;n<f.length;n++){var m=new WeightedCellSorter(f[n],f[n].getX(g));l.push(m)}l.sort(WeightedCellSorter.prototype.compare);for(var m=e.x[0]-e.width/2,p=m+e.width,q=f=0,g=[],n=0;n<l.length;n++){var s=l[n].cell,
+r;if(s.isVertex()){r=0==k?e.connectsAsSource:e.connectsAsTarget;for(var t=0;t<r.length;t++)if(r[t].source==s||r[t].target==s)f+=r[t].edges.length,q++,g.push(r[t])}else f+=s.edges.length,q++,g.push(s)}e.width>(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(m+=this.prefHozEdgeSep,p-=this.prefHozEdgeSep);l=(p-m)/f;m+=l/2;p=this.minEdgeJetty-this.prefVertEdgeOff;for(n=q=0;n<g.length;n++){s=g[n].edges.length;r=this.jettyPositions[g[n].ids[0]];null==r&&(r=[],this.jettyPositions[g[n].ids[0]]=r);n<f/2?
+p+=this.prefVertEdgeOff:n>f/2&&(p-=this.prefVertEdgeOff);for(t=0;t<s;t++)r[4*t+2*k]=m,m+=l,r[4*t+2*k+1]=p;q=Math.max(q,p)}}f=e.getNextLayerConnectedCells(b);g=b+1}}};
+mxCoordinateAssignment.prototype.setEdgePosition=function(a){var b=0;if(101207!=a.temp[0]){var c=a.maxRank,d=a.minRank;c==d&&(c=a.source.maxRank,d=a.target.minRank);for(var e=0,f=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,n=0;n<a.edges.length;n++){var m=a.edges[n],p=this.layout.getVisibleTerminal(m,!0),q=[],s=a.isReversed;p!=g&&(s=!s);if(null!=f){var r=s?
+2:0,t=s?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[c]:this.rankBottomY[c],v=f[4*e+1+r];s!=l&&(v=-v);var t=t+v,r=f[4*e+r],u=k.model.getTerminal(m,!0);this.layout.isPort(u)&&k.model.getParent(u)==p&&(r=k.view.getState(u),r=null!=r?r.x:p.geometry.x+a.source.width*u.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(r,t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(r,t+v))):(q.push(new mxPoint(t,
+r)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(t+v,r)))}r=a.x.length-1;t=v=-1;p=a.maxRank-1;for(s&&(r=0,v=a.x.length,t=1,p=a.minRank+1);a.maxRank!=a.minRank&&r!=v;r+=t){var u=a.x[r]+b,z=(this.rankTopY[p]+this.rankBottomY[p+1])/2,y=(this.rankTopY[p-1]+this.rankBottomY[p])/2;if(s)var x=z,z=y,y=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(u,z)),q.push(new mxPoint(u,y))):(q.push(new mxPoint(z,u)),q.push(new mxPoint(y,
+u)));this.limitX=Math.max(this.limitX,u);p+=t}null!=f&&(r=s?2:0,t=s?l?this.rankTopY[c]:this.rankBottomY[c]:l?this.rankBottomY[d]:this.rankTopY[d],v=f[4*e+3-r],s!=l&&(v=-v),t-=v,r=f[4*e+2-r],s=k.model.getTerminal(m,!1),p=this.layout.getVisibleTerminal(m,!1),this.layout.isPort(s)&&k.model.getParent(s)==p&&(r=k.view.getState(s),r=null!=r?r.x:p.geometry.x+a.target.width*s.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
+q.push(new mxPoint(r,t-v)),q.push(new mxPoint(r,t))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(t-v,r)),q.push(new mxPoint(t,r))));a.isReversed&&this.processReversedEdge(a,m);this.layout.setEdgePoints(m,q);b=0==b?this.parallelEdgeSpacing:0<b?-b:-b+this.parallelEdgeSpacing;e++}a.temp[0]=101207}};
mxCoordinateAssignment.prototype.setVertexLocation=function(a){var b=a.cell,c=a.x[0]-a.width/2,d=a.y[0]-a.height/2;this.rankTopY[a.minRank]=Math.min(this.rankTopY[a.minRank],d);this.rankBottomY[a.minRank]=Math.max(this.rankBottomY[a.minRank],d+a.height);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(b,c,d):this.layout.setVertexLocation(b,d,c);this.limitX=Math.max(this.limitX,c+a.width)};
mxCoordinateAssignment.prototype.processReversedEdge=function(a,b){};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.weightedValue<a.weightedValue?1:b.nudge?-1:1:0};
function mxSwimlaneOrdering(a){this.layout=a}mxSwimlaneOrdering.prototype=new mxHierarchicalLayoutStage;mxSwimlaneOrdering.prototype.constructor=mxSwimlaneOrdering;mxSwimlaneOrdering.prototype.layout=null;
-mxSwimlaneOrdering.prototype.execute=function(a){a=this.layout.getModel();var b=mxUtils.clone(a.vertexMapper,null,!0),c=null;if(null!=a.roots)for(var d=a.roots,c=[],e=0;e<d.length;e++)mxCellPath.create(d[e]),c[e]=a.vertexMapper.get(d[e]);a.visit(function(a,c,d,e,m){e=null!=a&&a.swimlaneIndex==c.swimlaneIndex&&c.isAncestor(a);m=null!=a&&null!=d&&a.swimlaneIndex<c.swimlaneIndex&&d.source==c;e?(d.invert(),mxUtils.remove(d,a.connectsAsSource),c.connectsAsSource.push(d),a.connectsAsTarget.push(d),mxUtils.remove(d,
-c.connectsAsTarget)):m&&(d.invert(),mxUtils.remove(d,a.connectsAsTarget),c.connectsAsTarget.push(d),a.connectsAsSource.push(d),mxUtils.remove(d,c.connectsAsSource));a=mxCellPath.create(c.cell);delete b[a]},c,!0,null)};function mxHierarchicalLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxHierarchicalLayout.prototype=new mxGraphLayout;
+mxSwimlaneOrdering.prototype.execute=function(a){a=this.layout.getModel();var b=mxUtils.clone(a.vertexMapper,null,!0),c=null;if(null!=a.roots)for(var d=a.roots,c=[],e=0;e<d.length;e++)mxCellPath.create(d[e]),c[e]=a.vertexMapper.get(d[e]);a.visit(function(a,c,d,e,n){e=null!=a&&a.swimlaneIndex==c.swimlaneIndex&&c.isAncestor(a);n=null!=a&&null!=d&&a.swimlaneIndex<c.swimlaneIndex&&d.source==c;e?(d.invert(),mxUtils.remove(d,a.connectsAsSource),c.connectsAsSource.push(d),a.connectsAsTarget.push(d),mxUtils.remove(d,
+c.connectsAsTarget)):n&&(d.invert(),mxUtils.remove(d,a.connectsAsTarget),c.connectsAsTarget.push(d),a.connectsAsSource.push(d),mxUtils.remove(d,c.connectsAsSource));a=mxCellPath.create(c.cell);delete b[a]},c,!0,null)};function mxHierarchicalLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxHierarchicalLayout.prototype=new mxGraphLayout;
mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout;mxHierarchicalLayout.prototype.roots=null;mxHierarchicalLayout.prototype.resizeParent=!1;mxHierarchicalLayout.prototype.maintainParentLocation=!1;mxHierarchicalLayout.prototype.moveParent=!1;mxHierarchicalLayout.prototype.parentBorder=0;mxHierarchicalLayout.prototype.intraCellSpacing=30;mxHierarchicalLayout.prototype.interRankCellSpacing=100;mxHierarchicalLayout.prototype.interHierarchySpacing=60;
mxHierarchicalLayout.prototype.parallelEdgeSpacing=10;mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH;mxHierarchicalLayout.prototype.fineTuning=!0;mxHierarchicalLayout.prototype.tightenToSource=!0;mxHierarchicalLayout.prototype.disableEdgeStyle=!0;mxHierarchicalLayout.prototype.traverseAncestors=!0;mxHierarchicalLayout.prototype.model=null;mxHierarchicalLayout.prototype.edgesCache=null;mxHierarchicalLayout.prototype.edgeSourceTermCache=null;
mxHierarchicalLayout.prototype.edgesTargetTermCache=null;mxHierarchicalLayout.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE;mxHierarchicalLayout.prototype.getModel=function(){return this.model};
mxHierarchicalLayout.prototype.execute=function(a,b){this.parent=a;var c=this.graph.model;this.edgesCache=new mxDictionary;this.edgeSourceTermCache=new mxDictionary;this.edgesTargetTermCache=new mxDictionary;null!=b&&!(b instanceof Array)&&(b=[b]);if(!(null==b&&null==a)){this.parentY=this.parentX=null;if(a!=this.root&&null!=c.isVertex(a)&&this.maintainParentLocation){var d=this.graph.getCellGeometry(a);null!=d&&(this.parentX=d.x,this.parentY=d.y)}if(null!=b){for(var e=[],f=0;f<b.length;f++)(null!=
a?c.isAncestor(a,b[f]):1)&&c.isVertex(b[f])&&e.push(b[f]);this.roots=e}c.beginUpdate();try{this.run(a),this.resizeParent&&!this.graph.isCellCollapsed(a)&&this.graph.updateGroupBounds([a],this.parentBorder,this.moveParent),null!=this.parentX&&null!=this.parentY&&(d=this.graph.getCellGeometry(a),null!=d&&(d=d.clone(),d.x=this.parentX,d.y=this.parentY,c.setGeometry(a,d)))}finally{c.endUpdate()}}};
-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 k=b[g];if(d.isVertex(k)&&this.graph.isCellVisible(k)){for(var l=this.getEdges(k),m=0,n=0,q=0;q<l.length;q++)this.getVisibleTerminal(l[q],!0)==k?m++:n++;0==n&&0<m&&c.push(k);l=m-n;l>f&&(f=l,e=k)}}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 k=b[g];if(d.isVertex(k)&&this.graph.isCellVisible(k)){for(var l=this.getEdges(k),n=0,m=0,p=0;p<l.length;p++)this.getVisibleTerminal(l[p],!0)==k?n++:m++;0==m&&0<n&&c.push(k);l=n-m;l>f&&(f=l,e=k)}}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;f<e;f++){var g=c.getChildAt(a,f);if(this.isPort(g))b=b.concat(c.getEdges(g,!0,!0));else if(d||!this.graph.isCellVisible(g))b=b.concat(c.getEdges(g,!0,!0))}b=b.concat(c.getEdges(a,!0,!0));c=[];for(f=0;f<b.length;f++)d=this.getVisibleTerminal(b[f],!0),e=this.getVisibleTerminal(b[f],!1),(d==e||d!=e&&(e==a&&(null==
this.parent||this.graph.isValidAncestor(d,this.parent,this.traverseAncestors))||d==a&&(null==this.parent||this.graph.isValidAncestor(e,this.parent,this.traverseAncestors))))&&c.push(b[f]);this.edgesCache.put(a,c);return c};
mxHierarchicalLayout.prototype.getVisibleTerminal=function(a,b){var c=this.edgesTargetTermCache;b&&(c=this.edgeSourceTermCache);var d=c.get(a);if(null!=d)return d;var d=this.graph.view.getState(a),e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b);null==e&&(e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b));null!=e&&(this.isPort(e)&&(e=this.graph.model.getParent(e)),c.put(a,e));return e};
@@ -922,7 +922,7 @@ mxHierarchicalLayout.prototype.run=function(a){var b=[],c=[];if(null==this.roots
0;e<b.length;e++){k=b[e];d=[];for(f in k)d.push(k[f]);this.model=new mxGraphHierarchyModel(this,d,this.roots,a,this.tightenToSource);this.cycleStage(a);this.layeringStage();this.crossingStage(a);c=this.placementStage(c,a)}};
mxHierarchicalLayout.prototype.filterDescendants=function(a,b){var c=this.graph.model;c.isVertex(a)&&a!=this.parent&&this.graph.isCellVisible(a)&&(b[mxObjectIdentity.get(a)]=a);if(this.traverseAncestors||a==this.parent&&this.graph.isCellVisible(a))for(var d=c.getChildCount(a),e=0;e<d;e++){var f=c.getChildAt(a,e);this.isPort(f)||this.filterDescendants(f,b)}};mxHierarchicalLayout.prototype.isPort=function(a){return a.geometry.relative?!0:!1};
mxHierarchicalLayout.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.getVisibleTerminal(d[f],!0),k=this.getVisibleTerminal(d[f],!1);(g==a&&k==b||!c&&g==b&&k==a)&&e.push(d[f])}return e};
-mxHierarchicalLayout.prototype.traverse=function(a,b,c,d,e,f,g){if(null!=a&&null!=d){var k=mxObjectIdentity.get(a);if(null==d[k]&&(null==g||null!=g[k])){null==e[k]&&(e[k]=a);null==d[k]&&(d[k]=a);null!==g&&delete g[k];var l=this.getEdges(a),k=[];for(c=0;c<l.length;c++)k[c]=this.getVisibleTerminal(l[c],!0)==a;for(c=0;c<l.length;c++)if(!b||k[c]){a=this.getVisibleTerminal(l[c],!k[c]);for(var m=1,n=0;n<l.length;n++)if(n!=c){var q=k[n];this.getVisibleTerminal(l[n],!q)==a&&(q?m++:m--)}0<=m&&(e=this.traverse(a,
+mxHierarchicalLayout.prototype.traverse=function(a,b,c,d,e,f,g){if(null!=a&&null!=d){var k=mxObjectIdentity.get(a);if(null==d[k]&&(null==g||null!=g[k])){null==e[k]&&(e[k]=a);null==d[k]&&(d[k]=a);null!==g&&delete g[k];var l=this.getEdges(a),k=[];for(c=0;c<l.length;c++)k[c]=this.getVisibleTerminal(l[c],!0)==a;for(c=0;c<l.length;c++)if(!b||k[c]){a=this.getVisibleTerminal(l[c],!k[c]);for(var n=1,m=0;m<l.length;m++)if(m!=c){var p=k[m];this.getVisibleTerminal(l[m],!p)==a&&(p?n++:n--)}0<=n&&(e=this.traverse(a,
b,l[c],d,e,f,g))}}else if(null==e[k])for(c=0;c<f.length;c++)if(b=f[c],null!=b[k]){for(l in b)e[l]=b[l];f.splice(c,1);break}}return e};mxHierarchicalLayout.prototype.cycleStage=function(a){(new mxMinimumCycleRemover(this)).execute(a)};mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxHierarchicalLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
mxHierarchicalLayout.prototype.placementStage=function(a,b){var c=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,a,this.parallelEdgeSpacing);c.fineTuning=this.fineTuning;c.execute(b);return c.limitX+this.interHierarchySpacing};function mxSwimlaneLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}mxSwimlaneLayout.prototype=new mxGraphLayout;
mxSwimlaneLayout.prototype.constructor=mxSwimlaneLayout;mxSwimlaneLayout.prototype.roots=null;mxSwimlaneLayout.prototype.swimlanes=null;mxSwimlaneLayout.prototype.dummyVertices=null;mxSwimlaneLayout.prototype.dummyVertexWidth=50;mxSwimlaneLayout.prototype.resizeParent=!1;mxSwimlaneLayout.prototype.maintainParentLocation=!1;mxSwimlaneLayout.prototype.moveParent=!1;mxSwimlaneLayout.prototype.parentBorder=30;mxSwimlaneLayout.prototype.intraCellSpacing=30;
@@ -933,7 +933,7 @@ this.graph.getChildCells(b[e]);if(null==f||0==f.length)f=this.graph.insertVertex
mxSwimlaneLayout.prototype.updateGroupBounds=function(){var a=[],b=this.model,c;for(c in b.edgeMapper)for(var d=b.edgeMapper[c],e=0;e<d.edges.length;e++)a.push(d.edges[e]);a=this.graph.getBoundingBoxFromGeometry(a,!0);b=[];for(e=0;e<this.swimlanes.length;e++){var f=this.swimlanes[e];c=this.graph.getCellGeometry(f);if(null!=c){var g=this.graph.getChildCells(f),d=this.graph.isSwimlane(f)?this.graph.getStartSize(f):new mxRectangle,f=this.graph.getBoundingBoxFromGeometry(g);b[e]=f;d=f.y+c.y-d.height-
this.parentBorder;c=f.y+c.y+f.height;null==a?a=new mxRectangle(0,d,0,c-d):(a.y=Math.min(a.y,d),c=Math.max(a.y+a.height,c),a.height=c-a.y)}}for(e=0;e<this.swimlanes.length;e++)if(f=this.swimlanes[e],c=this.graph.getCellGeometry(f),null!=c){var g=this.graph.getChildCells(f),d=this.graph.isSwimlane(f)?this.graph.getStartSize(f):new mxRectangle,k=c.clone(),l=0==e?this.parentBorder:this.interRankCellSpacing/2;k.x+=b[e].x-d.width-l;k.y=k.y+a.y-c.y-this.parentBorder;k.width=b[e].width+d.width+this.interRankCellSpacing/
2+l;k.height=a.height+d.height+2*this.parentBorder;this.graph.model.setGeometry(f,k);this.graph.moveCells(g,-b[e].x+d.width+l,c.y-a.y+this.parentBorder)}};
-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 k=b[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),m=0,n=0,q=0;q<l.length;q++){var p=this.getVisibleTerminal(l[q],!0);p==k?(p=this.getVisibleTerminal(l[q],!1),d.isAncestor(a,p)&&m++):d.isAncestor(a,p)&&n++}0==n&&0<m&&c.push(k);l=m-n;l>f&&(f=l,e=k)}}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 k=b[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),n=0,m=0,p=0;p<l.length;p++){var q=this.getVisibleTerminal(l[p],!0);q==k?(q=this.getVisibleTerminal(l[p],!1),d.isAncestor(a,q)&&n++):d.isAncestor(a,q)&&m++}0==m&&0<n&&c.push(k);l=n-m;l>f&&(f=l,e=k)}}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<e;f++){var g=c.getChildAt(a,f);if(this.isPort(g))b=b.concat(c.getEdges(g,!0,!0));else if(d||!this.graph.isCellVisible(g))b=b.concat(c.getEdges(g,!0,!0))}b=b.concat(c.getEdges(a,!0,!0));c=[];for(f=0;f<b.length;f++)d=this.getVisibleTerminal(b[f],!0),e=this.getVisibleTerminal(b[f],!1),(d==e||d!=e&&(e==a&&(null==this.parent||
this.graph.isValidAncestor(d,this.parent,this.traverseAncestors))||d==a&&(null==this.parent||this.graph.isValidAncestor(e,this.parent,this.traverseAncestors))))&&c.push(b[f]);this.edgesCache.put(a,c);return c};
mxSwimlaneLayout.prototype.getVisibleTerminal=function(a,b){var c=this.edgesTargetTermCache;b&&(c=this.edgeSourceTermCache);var d=c.get(a);if(null!=d)return d;var d=this.graph.view.getState(a),e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b);null==e&&(e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b));null!=e&&(this.isPort(e)&&(e=this.graph.model.getParent(e)),c.put(a,e));return e};
@@ -941,8 +941,8 @@ mxSwimlaneLayout.prototype.run=function(a){var b=[],c=[];if(null!=this.swimlanes
e=!0;for(f in d)if(null!=d[f]){e=!1;break}}}}else for(e=0;e<this.roots.length;e++)l={},b.push(l),this.traverse(this.roots[e],!0,null,c,l,b,null);b=[];for(f in c)b.push(c[f]);this.model=new mxSwimlaneModel(this,b,this.roots,a,this.tightenToSource);this.cycleStage(a);this.layeringStage();this.crossingStage(a);initialX=this.placementStage(0,a)};
mxSwimlaneLayout.prototype.filterDescendants=function(a,b){var c=this.graph.model;c.isVertex(a)&&a!=this.parent&&(c.getParent(a)!=this.parent&&this.graph.isCellVisible(a))&&(b[mxObjectIdentity.get(a)]=a);if(this.traverseAncestors||a==this.parent&&this.graph.isCellVisible(a))for(var d=c.getChildCount(a),e=0;e<d;e++){var f=c.getChildAt(a,e);this.isPort(f)||this.filterDescendants(f,b)}};mxSwimlaneLayout.prototype.isPort=function(a){return a.geometry.relative?!0:!1};
mxSwimlaneLayout.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.getVisibleTerminal(d[f],!0),k=this.getVisibleTerminal(d[f],!1);(g==a&&k==b||!c&&g==b&&k==a)&&e.push(d[f])}return e};
-mxSwimlaneLayout.prototype.traverse=function(a,b,c,d,e,f,g,k){if(null!=a&&null!=d){var l=mxObjectIdentity.get(a);if(null==d[l]&&(null==g||null!=g[l])){null==e[l]&&(e[l]=a);null==d[l]&&(d[l]=a);null!==g&&delete g[l];var m=this.getEdges(a),l=this.graph.model;for(c=0;c<m.length;c++){var n=this.getVisibleTerminal(m[c],!0),q=n==a;q&&(n=this.getVisibleTerminal(m[c],!1));for(var p=0,p=0;p<this.swimlanes.length&&!l.isAncestor(this.swimlanes[p],n);p++);if(!(p>=this.swimlanes.length)&&(p>k||(!b||q)&&p==k))e=
-this.traverse(n,b,m[c],d,e,f,g,p)}}else if(null==e[l])for(c=0;c<f.length;c++)if(a=f[c],null!=a[l]){for(m in a)e[m]=a[m];f.splice(c,1);break}}return e};mxSwimlaneLayout.prototype.cycleStage=function(a){(new mxSwimlaneOrdering(this)).execute(a)};mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxSwimlaneLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
+mxSwimlaneLayout.prototype.traverse=function(a,b,c,d,e,f,g,k){if(null!=a&&null!=d){var l=mxObjectIdentity.get(a);if(null==d[l]&&(null==g||null!=g[l])){null==e[l]&&(e[l]=a);null==d[l]&&(d[l]=a);null!==g&&delete g[l];var n=this.getEdges(a),l=this.graph.model;for(c=0;c<n.length;c++){var m=this.getVisibleTerminal(n[c],!0),p=m==a;p&&(m=this.getVisibleTerminal(n[c],!1));for(var q=0,q=0;q<this.swimlanes.length&&!l.isAncestor(this.swimlanes[q],m);q++);if(!(q>=this.swimlanes.length)&&(q>k||(!b||p)&&q==k))e=
+this.traverse(m,b,n[c],d,e,f,g,q)}}else if(null==e[l])for(c=0;c<f.length;c++)if(a=f[c],null!=a[l]){for(n in a)e[n]=a[n];f.splice(c,1);break}}return e};mxSwimlaneLayout.prototype.cycleStage=function(a){(new mxSwimlaneOrdering(this)).execute(a)};mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxSwimlaneLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
mxSwimlaneLayout.prototype.placementStage=function(a,b){var c=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,a,this.parallelEdgeSpacing);c.fineTuning=this.fineTuning;c.execute(b);return c.limitX+this.interHierarchySpacing};function mxGraphModel(a){this.currentEdit=this.createUndoableEdit();null!=a?this.setRoot(a):this.clear()}mxGraphModel.prototype=new mxEventSource;mxGraphModel.prototype.constructor=mxGraphModel;mxGraphModel.prototype.root=null;
mxGraphModel.prototype.cells=null;mxGraphModel.prototype.maintainEdgeParent=!0;mxGraphModel.prototype.ignoreRelativeEdgeParent=!0;mxGraphModel.prototype.createIds=!0;mxGraphModel.prototype.prefix="";mxGraphModel.prototype.postfix="";mxGraphModel.prototype.nextId=0;mxGraphModel.prototype.currentEdit=null;mxGraphModel.prototype.updateLevel=0;mxGraphModel.prototype.endingUpdate=!1;mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())};mxGraphModel.prototype.isCreateIds=function(){return this.createIds};
mxGraphModel.prototype.setCreateIds=function(a){this.createIds=a};mxGraphModel.prototype.createRoot=function(){var a=new mxCell;a.insert(new mxCell);return a};mxGraphModel.prototype.getCell=function(a){return null!=this.cells?this.cells[a]:null};mxGraphModel.prototype.filterCells=function(a,b){var c=null;if(null!=a)for(var c=[],d=0;d<a.length;d++)b(a[d])&&c.push(a[d]);return c};mxGraphModel.prototype.getDescendants=function(a){return this.filterDescendants(null,a)};
@@ -960,8 +960,8 @@ mxGraphModel.prototype.getChildCells=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:
mxGraphModel.prototype.setTerminal=function(a,b,c){var d=b!=this.getTerminal(a,c);this.execute(new mxTerminalChange(this,a,b,c));this.maintainEdgeParent&&d&&this.updateEdgeParent(a,this.getRoot());return b};mxGraphModel.prototype.setTerminals=function(a,b,c){this.beginUpdate();try{this.setTerminal(a,b,!0),this.setTerminal(a,c,!1)}finally{this.endUpdate()}};
mxGraphModel.prototype.terminalForCellChanged=function(a,b,c){var d=this.getTerminal(a,c);null!=b?b.insertEdge(a,c):null!=d&&d.removeEdge(a,c);return d};mxGraphModel.prototype.getEdgeCount=function(a){return null!=a?a.getEdgeCount():0};mxGraphModel.prototype.getEdgeAt=function(a,b){return null!=a?a.getEdgeAt(b):null};mxGraphModel.prototype.getDirectedEdgeCount=function(a,b,c){for(var d=0,e=this.getEdgeCount(a),f=0;f<e;f++){var g=this.getEdgeAt(a,f);g!=c&&this.getTerminal(g,b)==a&&d++}return d};
mxGraphModel.prototype.getConnections=function(a){return this.getEdges(a,!0,!0,!1)};mxGraphModel.prototype.getIncomingEdges=function(a){return this.getEdges(a,!0,!1,!1)};mxGraphModel.prototype.getOutgoingEdges=function(a){return this.getEdges(a,!1,!0,!1)};
-mxGraphModel.prototype.getEdges=function(a,b,c,d){b=null!=b?b:!0;c=null!=c?c:!0;d=null!=d?d:!0;for(var e=this.getEdgeCount(a),f=[],g=0;g<e;g++){var k=this.getEdgeAt(a,g),l=this.getTerminal(k,!0),m=this.getTerminal(k,!1);(d&&l==m||l!=m&&(b&&m==a||c&&l==a))&&f.push(k)}return f};
-mxGraphModel.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;var d=this.getEdgeCount(a),e=this.getEdgeCount(b),f=a,g=d;e<d&&(g=e,f=b);d=[];for(e=0;e<g;e++){var k=this.getEdgeAt(f,e),l=this.getTerminal(k,!0),m=this.getTerminal(k,!1),n=m==a&&l==b;(l==a&&m==b||!c&&n)&&d.push(k)}return d};
+mxGraphModel.prototype.getEdges=function(a,b,c,d){b=null!=b?b:!0;c=null!=c?c:!0;d=null!=d?d:!0;for(var e=this.getEdgeCount(a),f=[],g=0;g<e;g++){var k=this.getEdgeAt(a,g),l=this.getTerminal(k,!0),n=this.getTerminal(k,!1);(d&&l==n||l!=n&&(b&&n==a||c&&l==a))&&f.push(k)}return f};
+mxGraphModel.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;var d=this.getEdgeCount(a),e=this.getEdgeCount(b),f=a,g=d;e<d&&(g=e,f=b);d=[];for(e=0;e<g;e++){var k=this.getEdgeAt(f,e),l=this.getTerminal(k,!0),n=this.getTerminal(k,!1),m=n==a&&l==b;(l==a&&n==b||!c&&m)&&d.push(k)}return d};
mxGraphModel.prototype.getOpposites=function(a,b,c,d){c=null!=c?c:!0;d=null!=d?d:!0;var e=[];if(null!=a)for(var f=0;f<a.length;f++){var g=this.getTerminal(a[f],!0),k=this.getTerminal(a[f],!1);g==b&&null!=k&&k!=b&&d?e.push(k):k==b&&null!=g&&(g!=b&&c)&&e.push(g)}return e};
mxGraphModel.prototype.getTopmostCells=function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.put(a[d],!0);for(d=0;d<a.length;d++){for(var e=a[d],f=!0,g=this.getParent(e);null!=g;){if(b.get(g)){f=!1;break}g=this.getParent(g)}f&&c.push(e)}return c};mxGraphModel.prototype.isVertex=function(a){return null!=a?a.isVertex():!1};mxGraphModel.prototype.isEdge=function(a){return null!=a?a.isEdge():!1};mxGraphModel.prototype.isConnectable=function(a){return null!=a?a.isConnectable():!1};
mxGraphModel.prototype.getValue=function(a){return null!=a?a.getValue():null};mxGraphModel.prototype.setValue=function(a,b){this.execute(new mxValueChange(this,a,b));return b};mxGraphModel.prototype.valueForCellChanged=function(a,b){return a.valueChanged(b)};mxGraphModel.prototype.getGeometry=function(a){return null!=a?a.getGeometry():null};mxGraphModel.prototype.setGeometry=function(a,b){b!=this.getGeometry(a)&&this.execute(new mxGeometryChange(this,a,b));return b};
@@ -971,7 +971,7 @@ mxGraphModel.prototype.visibleStateForCellChanged=function(a,b){var c=this.isVis
mxGraphModel.prototype.endUpdate=function(){this.updateLevel--;0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT));if(!this.endingUpdate){this.endingUpdate=0==this.updateLevel;this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var a=this.currentEdit;this.currentEdit=this.createUndoableEdit();a.notify();this.fireEvent(new mxEventObject(mxEvent.UNDO,
"edit",a))}}finally{this.endingUpdate=!1}}};mxGraphModel.prototype.createUndoableEdit=function(){var a=new mxUndoableEdit(this,!0);a.notify=function(){a.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",a,"changes",a.changes));a.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",a,"changes",a.changes))};return a};
mxGraphModel.prototype.mergeChildren=function(a,b,c){c=null!=c?c:!0;this.beginUpdate();try{var d={};this.mergeChildrenImpl(a,b,c,d);for(var e in d){var f=d[e],g=this.getTerminal(f,!0);null!=g&&(g=d[mxCellPath.create(g)],this.setTerminal(f,g,!0));g=this.getTerminal(f,!1);null!=g&&(g=d[mxCellPath.create(g)],this.setTerminal(f,g,!1))}}finally{this.endUpdate()}};
-mxGraphModel.prototype.mergeChildrenImpl=function(a,b,c,d){this.beginUpdate();try{for(var e=a.getChildCount(),f=0;f<e;f++){var g=a.getChildAt(f);if("function"==typeof g.getId){var k=g.getId(),l=null!=k&&(!this.isEdge(g)||!c)?this.getCell(k):null;if(null==l){var m=g.clone();m.setId(k);m.setTerminal(g.getTerminal(!0),!0);m.setTerminal(g.getTerminal(!1),!1);l=b.insert(m);this.cellAdded(l)}d[mxCellPath.create(g)]=l;this.mergeChildrenImpl(g,l,c,d)}}}finally{this.endUpdate()}};
+mxGraphModel.prototype.mergeChildrenImpl=function(a,b,c,d){this.beginUpdate();try{for(var e=a.getChildCount(),f=0;f<e;f++){var g=a.getChildAt(f);if("function"==typeof g.getId){var k=g.getId(),l=null!=k&&(!this.isEdge(g)||!c)?this.getCell(k):null;if(null==l){var n=g.clone();n.setId(k);n.setTerminal(g.getTerminal(!0),!0);n.setTerminal(g.getTerminal(!1),!1);l=b.insert(n);this.cellAdded(l)}d[mxCellPath.create(g)]=l;this.mergeChildrenImpl(g,l,c,d)}}}finally{this.endUpdate()}};
mxGraphModel.prototype.getParents=function(a){var b=[];if(null!=a)for(var c=new mxDictionary,d=0;d<a.length;d++){var e=this.getParent(a[d]);null!=e&&!c.get(e)&&(c.put(e,!0),b.push(e))}return b};mxGraphModel.prototype.cloneCell=function(a){return null!=a?this.cloneCells([a],!0)[0]:null};
mxGraphModel.prototype.cloneCells=function(a,b,c){c=null!=c?c:{};for(var d=[],e=0;e<a.length;e++)null!=a[e]?d.push(this.cloneCellImpl(a[e],c,b)):d.push(null);for(e=0;e<d.length;e++)null!=d[e]&&this.restoreClone(d[e],a[e],c);return d};mxGraphModel.prototype.cloneCellImpl=function(a,b,c){var d=this.cellCloned(a);b[mxObjectIdentity.get(a)]=d;if(c){c=this.getChildCount(a);for(var e=0;e<c;e++){var f=this.cloneCellImpl(this.getChildAt(a,e),b,!0);d.insert(f)}}return d};
mxGraphModel.prototype.cellCloned=function(a){return a.clone()};mxGraphModel.prototype.restoreClone=function(a,b,c){var d=this.getTerminal(b,!0);null!=d&&(d=c[mxObjectIdentity.get(d)],null!=d&&d.insertEdge(a,!0));d=this.getTerminal(b,!1);null!=d&&(d=c[mxObjectIdentity.get(d)],null!=d&&d.insertEdge(a,!1));for(var d=this.getChildCount(a),e=0;e<d;e++)this.restoreClone(this.getChildAt(a,e),this.getChildAt(b,e),c)};function mxRootChange(a,b){this.model=a;this.previous=this.root=b}
@@ -1002,46 +1002,46 @@ b);this.relative||(this.x=parseFloat(this.x)*a,this.y=parseFloat(this.y)*b,c&&(b
mxGeometry.prototype.equals=function(a){return mxRectangle.prototype.equals.apply(this,arguments)&&this.relative==a.relative&&(null==this.sourcePoint&&null==a.sourcePoint||null!=this.sourcePoint&&this.sourcePoint.equals(a.sourcePoint))&&(null==this.targetPoint&&null==a.targetPoint||null!=this.targetPoint&&this.targetPoint.equals(a.targetPoint))&&(null==this.points&&null==a.points||null!=this.points&&mxUtils.equalPoints(this.points,a.points))&&(null==this.alternateBounds&&null==a.alternateBounds||
null!=this.alternateBounds&&this.alternateBounds.equals(a.alternateBounds))&&(null==this.offset&&null==a.offset||null!=this.offset&&this.offset.equals(a.offset))};
var mxCellPath={PATH_SEPARATOR:".",create:function(a){var b="";if(null!=a)for(var c=a.getParent();null!=c;)b=c.getIndex(a)+mxCellPath.PATH_SEPARATOR+b,a=c,c=a.getParent();a=b.length;1<a&&(b=b.substring(0,a-1));return b},getParentPath:function(a){if(null!=a){var b=a.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=b)return a.substring(0,b);if(0<a.length)return""}return null},resolve:function(a,b){var c=a;if(null!=b)for(var d=b.split(mxCellPath.PATH_SEPARATOR),e=0;e<d.length;e++)c=c.getChildAt(parseInt(d[e]));
-return c},compare:function(a,b){for(var c=Math.min(a.length,b.length),d=0,e=0;e<c;e++)if(a[e]!=b[e]){0==a[e].length||0==b[e].length?d=a[e]==b[e]?0:a[e]>b[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),k=Math.PI,l=Math.PI/2-f,m=Math.atan2(a.height,a.width);f<-k+m||f>k-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(l)/2):f<m?(g.x=a.x+a.width,g.y=e+a.width*Math.tan(f)/2):(g.y=a.y+a.height,g.x=b+a.height*Math.tan(l)/2);d&&(c.x>=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.x<a.x?g.x=a.x:c.x>a.x+a.width&&(g.x=a.x+a.width),c.y<a.y?g.y=a.y:c.y>a.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,k=a.height/2,l=e+g,m=f+k;b=c.x;c=c.y;var n=parseInt(b-l),q=parseInt(c-m);if(0==n&&0!=q)return new mxPoint(l,
-m+k*q/Math.abs(q));if(0==n&&0==q)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/(k*k)))||0,b<=e&&(a=-a),new mxPoint(l+a,c);if(b>=e&&b<=e+a.width)return a=b-l,a=Math.sqrt(k*k*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,m+a)}e=q/n;m-=e*l;f=g*g*e*e+k*k;a=-2*l*f;k=Math.sqrt(a*a-4*f*(g*g*e*e*l*l+k*k*l*l-g*g*k*k));g=(-a+k)/(2*f);k=(-a-k)/(2*f);l=e*g+m;m=e*k+m;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(l-c,2));b=Math.sqrt(Math.pow(k-b,2)+Math.pow(m-c,2));f=c=0;e<b?(c=
-g,f=l):(c=k,f=m);return new mxPoint(c,f)},RhombusPerimeter:function(a,b,c,d){b=a.x;var e=a.y,f=a.width;a=a.height;var g=b+f/2,k=e+a/2,l=c.x;c=c.y;if(g==l)return k>c?new mxPoint(g,e):new mxPoint(g,e+a);if(k==c)return g>l?new mxPoint(b,k):new mxPoint(b+f,k);var m=g,n=k;d&&(l>=b&&l<=b+f?m=l:c>=e&&c<=e+a&&(n=c));return l<g?c<k?mxUtils.intersection(l,c,m,n,g,e,b,k):mxUtils.intersection(l,c,m,n,g,e+a,b,k):c<k?mxUtils.intersection(l,c,m,n,g,e,b+f,k):mxUtils.intersection(l,c,m,n,g,e+a,b+f,k)},TrianglePerimeter:function(a,
-b,c,d){b=null!=b?b.style[mxConstants.STYLE_DIRECTION]:null;var e=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH,f=a.x,g=a.y,k=a.width;a=a.height;var l=f+k/2,m=g+a/2,n=new mxPoint(f,g),q=new mxPoint(f+k,m),p=new mxPoint(f,g+a);b==mxConstants.DIRECTION_NORTH?(n=p,q=new mxPoint(l,g),p=new mxPoint(f+k,g+a)):b==mxConstants.DIRECTION_SOUTH?(q=new mxPoint(l,g+a),p=new mxPoint(f+k,g)):b==mxConstants.DIRECTION_WEST&&(n=new mxPoint(f+k,g),q=new mxPoint(f,m),p=new mxPoint(f+k,g+a));var r=c.x-
-l,s=c.y-m,r=e?Math.atan2(r,s):Math.atan2(s,r),t=e?Math.atan2(k,a):Math.atan2(a,k),s=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?r>-t&&r<t:r<-Math.PI+t||r>Math.PI-t,t=null;s?t=d&&(e&&c.x>=n.x&&c.x<=p.x||!e&&c.y>=n.y&&c.y<=p.y)?e?new mxPoint(c.x,n.y):new mxPoint(n.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+k/2+a*Math.tan(r)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+k/2-a*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+k,g+a/2+k*Math.tan(r)/2):new mxPoint(f,
-g+a/2-k*Math.tan(r)/2):(d&&(d=new mxPoint(l,m),c.y>=g&&c.y<=g+a?(d.x=e?l:b==mxConstants.DIRECTION_WEST?f+k:f,d.y=c.y):c.x>=f&&c.x<=f+k&&(d.x=c.x,d.y=!e?m:b==mxConstants.DIRECTION_NORTH?g+a:g),l=d.x,m=d.y),t=e&&c.x<=f+k/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,l,m,n.x,n.y,q.x,q.y):mxUtils.intersection(c.x,c.y,l,m,q.x,q.y,p.x,p.y));null==t&&(t=new mxPoint(l,m));return t},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var m=c.x,n=c.y,q=
--Math.atan2(n-a,m-l),p=Math.PI,r=Math.PI/2,s=new mxPoint(l,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;s=new mxPoint;if(m<e&&n<f||m<e&&n>f+k||m>e+g&&n<f||m>e+g&&n>f+k)d=!1;if(d){if(t){if(m==l){if(n<=f)return new mxPoint(l,f);if(n>=f+k)return new mxPoint(l,f+k)}else if(m<e){if(n==f+k/4)return new mxPoint(e,f+k/4);if(n==f+3*k/4)return new mxPoint(e,
-f+3*k/4)}else if(m>e+g){if(n==f+k/4)return new mxPoint(e+g,f+k/4);if(n==f+3*k/4)return new mxPoint(e+g,f+3*k/4)}else if(m==e){if(n<a)return new mxPoint(e,f+k/4);if(n>a)return new mxPoint(e,f+3*k/4)}else if(m==e+g){if(n<a)return new mxPoint(e+g,f+k/4);if(n>a)return new mxPoint(e+g,f+3*k/4)}if(n==f)return new mxPoint(l,f);if(n==f+k)return new mxPoint(l,f+k);m<l?n>f+k/4&&n<f+3*k/4?(b=new mxPoint(e,f),s=new mxPoint(e,f+k)):n<f+k/4?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+
-g,f-Math.floor(0.25*k))):n>f+3*k/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+g,f+Math.floor(1.25*k))):m>l&&(n>f+k/4&&n<f+3*k/4?(b=new mxPoint(e+g,f),s=new mxPoint(e+g,f+k)):n<f+k/4?(b=new mxPoint(e,f-Math.floor(0.25*k)),s=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):n>f+3*k/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e,f+Math.floor(1.25*k))))}else{if(n==a){if(m<=e)return new mxPoint(e,f+k/2);if(m>=e+g)return new mxPoint(e+g,f+k/
-2)}else if(n<f){if(m==e+g/4)return new mxPoint(e+g/4,f);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f)}else if(n>f+k){if(m==e+g/4)return new mxPoint(e+g/4,f+k);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f+k)}else if(n==f){if(m<l)return new mxPoint(e+g/4,f);if(m>l)return new mxPoint(e+3*g/4,f)}else if(n==f+k){if(m<l)return new mxPoint(e+g/4,f+k);if(n>a)return new mxPoint(e+3*g/4,f+k)}if(m==e)return new mxPoint(e,a);if(m==e+g)return new mxPoint(e+g,a);n<a?m>e+g/4&&m<e+3*g/4?(b=new mxPoint(e,f),s=new mxPoint(e+
-g,f)):m<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f+k),s=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):m>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f+k)):n>a&&(m>e+g/4&&m<e+3*g/4?(b=new mxPoint(e,f+k),s=new mxPoint(e+g,f+k)):m<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f),s=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k))):m>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f)))}d=
-l;q=a;m>=e&&m<=e+g?(d=m,q=n<a?f+k:f):n>=f&&n<=f+k&&(q=n,d=m<l?e+g:e);s=mxUtils.intersection(d,q,c.x,c.y,b.x,b.y,s.x,s.y)}else{if(t){m=Math.atan2(k/4,g/2);if(q==m)return new mxPoint(e+g,f+Math.floor(0.25*k));if(q==r)return new mxPoint(e+Math.floor(0.5*g),f);if(q==p-m)return new mxPoint(e,f+Math.floor(0.25*k));if(q==-m)return new mxPoint(e+g,f+Math.floor(0.75*k));if(q==-r)return new mxPoint(e+Math.floor(0.5*g),f+k);if(q==-p+m)return new mxPoint(e,f+Math.floor(0.75*k));q<m&&q>-m?(b=new mxPoint(e+g,f),
-s=new mxPoint(e+g,f+k)):q>m&&q<r?(b=new mxPoint(e,f-Math.floor(0.25*k)),s=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):q>r&&q<p-m?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+g,f-Math.floor(0.25*k))):q>p-m&&q<=p||q<-p+m&&q>=-p?(b=new mxPoint(e,f),s=new mxPoint(e,f+k)):q<-m&&q>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e,f+Math.floor(1.25*k))):q<-r&&q>-p+m&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+g,f+
-Math.floor(1.25*k)))}else{m=Math.atan2(k/2,g/4);if(q==m)return new mxPoint(e+Math.floor(0.75*g),f);if(q==p-m)return new mxPoint(e+Math.floor(0.25*g),f);if(q==p||q==-p)return new mxPoint(e,f+Math.floor(0.5*k));if(0==q)return new mxPoint(e+g,f+Math.floor(0.5*k));if(q==-m)return new mxPoint(e+Math.floor(0.75*g),f+k);if(q==-p+m)return new mxPoint(e+Math.floor(0.25*g),f+k);0<q&&q<m?(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f+k)):q>m&&q<p-m?(b=new mxPoint(e,
-f),s=new mxPoint(e+g,f)):q>p-m&&q<p?(b=new mxPoint(e-Math.floor(0.25*g),f+k),s=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):0>q&&q>-m?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f)):q<-m&&q>-p+m?(b=new mxPoint(e,f+k),s=new mxPoint(e+g,f+k)):q<-p+m&&q>-p&&(b=new mxPoint(e-Math.floor(0.25*g),f),s=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)))}s=mxUtils.intersection(l,a,c.x,c.y,b.x,b.y,s.x,s.y)}return null==s?new mxPoint(l,a):s}};
+return c},compare:function(a,b){for(var c=Math.min(a.length,b.length),d=0,e=0;e<c;e++)if(a[e]!=b[e]){0==a[e].length||0==b[e].length?d=a[e]==b[e]?0:a[e]>b[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),k=Math.PI,l=Math.PI/2-f,n=Math.atan2(a.height,a.width);f<-k+n||f>k-n?(g.x=a.x,g.y=e-a.width*
+Math.tan(f)/2):f<-n?(g.y=a.y,g.x=b-a.height*Math.tan(l)/2):f<n?(g.x=a.x+a.width,g.y=e+a.width*Math.tan(f)/2):(g.y=a.y+a.height,g.x=b+a.height*Math.tan(l)/2);d&&(c.x>=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.x<a.x?g.x=a.x:c.x>a.x+a.width&&(g.x=a.x+a.width),c.y<a.y?g.y=a.y:c.y>a.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,k=a.height/2,l=e+g,n=f+k;b=c.x;c=c.y;var m=parseInt(b-l),p=parseInt(c-n);if(0==m&&0!=p)return new mxPoint(l,
+n+k*p/Math.abs(p));if(0==m&&0==p)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-n,a=Math.sqrt(g*g*(1-a*a/(k*k)))||0,b<=e&&(a=-a),new mxPoint(l+a,c);if(b>=e&&b<=e+a.width)return a=b-l,a=Math.sqrt(k*k*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,n+a)}e=p/m;n-=e*l;f=g*g*e*e+k*k;a=-2*l*f;k=Math.sqrt(a*a-4*f*(g*g*e*e*l*l+k*k*l*l-g*g*k*k));g=(-a+k)/(2*f);k=(-a-k)/(2*f);l=e*g+n;n=e*k+n;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(l-c,2));b=Math.sqrt(Math.pow(k-b,2)+Math.pow(n-c,2));f=c=0;e<b?(c=
+g,f=l):(c=k,f=n);return new mxPoint(c,f)},RhombusPerimeter:function(a,b,c,d){b=a.x;var e=a.y,f=a.width;a=a.height;var g=b+f/2,k=e+a/2,l=c.x;c=c.y;if(g==l)return k>c?new mxPoint(g,e):new mxPoint(g,e+a);if(k==c)return g>l?new mxPoint(b,k):new mxPoint(b+f,k);var n=g,m=k;d&&(l>=b&&l<=b+f?n=l:c>=e&&c<=e+a&&(m=c));return l<g?c<k?mxUtils.intersection(l,c,n,m,g,e,b,k):mxUtils.intersection(l,c,n,m,g,e+a,b,k):c<k?mxUtils.intersection(l,c,n,m,g,e,b+f,k):mxUtils.intersection(l,c,n,m,g,e+a,b+f,k)},TrianglePerimeter:function(a,
+b,c,d){b=null!=b?b.style[mxConstants.STYLE_DIRECTION]:null;var e=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH,f=a.x,g=a.y,k=a.width;a=a.height;var l=f+k/2,n=g+a/2,m=new mxPoint(f,g),p=new mxPoint(f+k,n),q=new mxPoint(f,g+a);b==mxConstants.DIRECTION_NORTH?(m=q,p=new mxPoint(l,g),q=new mxPoint(f+k,g+a)):b==mxConstants.DIRECTION_SOUTH?(p=new mxPoint(l,g+a),q=new mxPoint(f+k,g)):b==mxConstants.DIRECTION_WEST&&(m=new mxPoint(f+k,g),p=new mxPoint(f,n),q=new mxPoint(f+k,g+a));var s=c.x-
+l,r=c.y-n,s=e?Math.atan2(s,r):Math.atan2(r,s),t=e?Math.atan2(k,a):Math.atan2(a,k),r=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?s>-t&&s<t:s<-Math.PI+t||s>Math.PI-t,t=null;r?t=d&&(e&&c.x>=m.x&&c.x<=q.x||!e&&c.y>=m.y&&c.y<=q.y)?e?new mxPoint(c.x,m.y):new mxPoint(m.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+k/2+a*Math.tan(s)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+k/2-a*Math.tan(s)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+k,g+a/2+k*Math.tan(s)/2):new mxPoint(f,
+g+a/2-k*Math.tan(s)/2):(d&&(d=new mxPoint(l,n),c.y>=g&&c.y<=g+a?(d.x=e?l:b==mxConstants.DIRECTION_WEST?f+k:f,d.y=c.y):c.x>=f&&c.x<=f+k&&(d.x=c.x,d.y=!e?n:b==mxConstants.DIRECTION_NORTH?g+a:g),l=d.x,n=d.y),t=e&&c.x<=f+k/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,l,n,m.x,m.y,p.x,p.y):mxUtils.intersection(c.x,c.y,l,n,p.x,p.y,q.x,q.y));null==t&&(t=new mxPoint(l,n));return t},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var n=c.x,m=c.y,p=
+-Math.atan2(m-a,n-l),q=Math.PI,s=Math.PI/2,r=new mxPoint(l,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;r=new mxPoint;if(n<e&&m<f||n<e&&m>f+k||n>e+g&&m<f||n>e+g&&m>f+k)d=!1;if(d){if(t){if(n==l){if(m<=f)return new mxPoint(l,f);if(m>=f+k)return new mxPoint(l,f+k)}else if(n<e){if(m==f+k/4)return new mxPoint(e,f+k/4);if(m==f+3*k/4)return new mxPoint(e,
+f+3*k/4)}else if(n>e+g){if(m==f+k/4)return new mxPoint(e+g,f+k/4);if(m==f+3*k/4)return new mxPoint(e+g,f+3*k/4)}else if(n==e){if(m<a)return new mxPoint(e,f+k/4);if(m>a)return new mxPoint(e,f+3*k/4)}else if(n==e+g){if(m<a)return new mxPoint(e+g,f+k/4);if(m>a)return new mxPoint(e+g,f+3*k/4)}if(m==f)return new mxPoint(l,f);if(m==f+k)return new mxPoint(l,f+k);n<l?m>f+k/4&&m<f+3*k/4?(b=new mxPoint(e,f),r=new mxPoint(e,f+k)):m<f+k/4?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+
+g,f-Math.floor(0.25*k))):m>f+3*k/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+g,f+Math.floor(1.25*k))):n>l&&(m>f+k/4&&m<f+3*k/4?(b=new mxPoint(e+g,f),r=new mxPoint(e+g,f+k)):m<f+k/4?(b=new mxPoint(e,f-Math.floor(0.25*k)),r=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):m>f+3*k/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e,f+Math.floor(1.25*k))))}else{if(m==a){if(n<=e)return new mxPoint(e,f+k/2);if(n>=e+g)return new mxPoint(e+g,f+k/
+2)}else if(m<f){if(n==e+g/4)return new mxPoint(e+g/4,f);if(n==e+3*g/4)return new mxPoint(e+3*g/4,f)}else if(m>f+k){if(n==e+g/4)return new mxPoint(e+g/4,f+k);if(n==e+3*g/4)return new mxPoint(e+3*g/4,f+k)}else if(m==f){if(n<l)return new mxPoint(e+g/4,f);if(n>l)return new mxPoint(e+3*g/4,f)}else if(m==f+k){if(n<l)return new mxPoint(e+g/4,f+k);if(m>a)return new mxPoint(e+3*g/4,f+k)}if(n==e)return new mxPoint(e,a);if(n==e+g)return new mxPoint(e+g,a);m<a?n>e+g/4&&n<e+3*g/4?(b=new mxPoint(e,f),r=new mxPoint(e+
+g,f)):n<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f+k),r=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):n>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f+k)):m>a&&(n>e+g/4&&n<e+3*g/4?(b=new mxPoint(e,f+k),r=new mxPoint(e+g,f+k)):n<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f),r=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k))):n>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f)))}d=
+l;p=a;n>=e&&n<=e+g?(d=n,p=m<a?f+k:f):m>=f&&m<=f+k&&(p=m,d=n<l?e+g:e);r=mxUtils.intersection(d,p,c.x,c.y,b.x,b.y,r.x,r.y)}else{if(t){n=Math.atan2(k/4,g/2);if(p==n)return new mxPoint(e+g,f+Math.floor(0.25*k));if(p==s)return new mxPoint(e+Math.floor(0.5*g),f);if(p==q-n)return new mxPoint(e,f+Math.floor(0.25*k));if(p==-n)return new mxPoint(e+g,f+Math.floor(0.75*k));if(p==-s)return new mxPoint(e+Math.floor(0.5*g),f+k);if(p==-q+n)return new mxPoint(e,f+Math.floor(0.75*k));p<n&&p>-n?(b=new mxPoint(e+g,f),
+r=new mxPoint(e+g,f+k)):p>n&&p<s?(b=new mxPoint(e,f-Math.floor(0.25*k)),r=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):p>s&&p<q-n?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+g,f-Math.floor(0.25*k))):p>q-n&&p<=q||p<-q+n&&p>=-q?(b=new mxPoint(e,f),r=new mxPoint(e,f+k)):p<-n&&p>-s?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e,f+Math.floor(1.25*k))):p<-s&&p>-q+n&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+g,f+
+Math.floor(1.25*k)))}else{n=Math.atan2(k/2,g/4);if(p==n)return new mxPoint(e+Math.floor(0.75*g),f);if(p==q-n)return new mxPoint(e+Math.floor(0.25*g),f);if(p==q||p==-q)return new mxPoint(e,f+Math.floor(0.5*k));if(0==p)return new mxPoint(e+g,f+Math.floor(0.5*k));if(p==-n)return new mxPoint(e+Math.floor(0.75*g),f+k);if(p==-q+n)return new mxPoint(e+Math.floor(0.25*g),f+k);0<p&&p<n?(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f+k)):p>n&&p<q-n?(b=new mxPoint(e,
+f),r=new mxPoint(e+g,f)):p>q-n&&p<q?(b=new mxPoint(e-Math.floor(0.25*g),f+k),r=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):0>p&&p>-n?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f)):p<-n&&p>-q+n?(b=new mxPoint(e,f+k),r=new mxPoint(e+g,f+k)):p<-q+n&&p>-q&&(b=new mxPoint(e-Math.floor(0.25*g),f),r=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)))}r=mxUtils.intersection(l,a,c.x,c.y,b.x,b.y,r.x,r.y)}return null==r?new mxPoint(l,a):r}};
function mxPrintPreview(a,b,c,d,e,f,g,k,l){this.graph=a;this.scale=null!=b?b:1/a.pageScale;this.border=null!=d?d:0;this.pageFormat=mxRectangle.fromRectangle(null!=c?c:a.pageFormat);this.title=null!=k?k:"Printer-friendly version";this.x0=null!=e?e:0;this.y0=null!=f?f:0;this.borderColor=g;this.pageSelector=null!=l?l:!0}mxPrintPreview.prototype.graph=null;mxPrintPreview.prototype.pageFormat=null;mxPrintPreview.prototype.scale=null;mxPrintPreview.prototype.border=0;
mxPrintPreview.prototype.marginTop=0;mxPrintPreview.prototype.marginBottom=0;mxPrintPreview.prototype.x0=0;mxPrintPreview.prototype.y0=0;mxPrintPreview.prototype.autoOrigin=!0;mxPrintPreview.prototype.printOverlays=!1;mxPrintPreview.prototype.printControls=!1;mxPrintPreview.prototype.printBackgroundImage=!1;mxPrintPreview.prototype.backgroundColor="#ffffff";mxPrintPreview.prototype.borderColor=null;mxPrintPreview.prototype.title=null;mxPrintPreview.prototype.pageSelector=null;
mxPrintPreview.prototype.wnd=null;mxPrintPreview.prototype.targetWindow=null;mxPrintPreview.prototype.pageCount=0;mxPrintPreview.prototype.clipping=!0;mxPrintPreview.prototype.getWindow=function(){return this.wnd};
mxPrintPreview.prototype.getDoctype=function(){var a="";5==document.documentMode?a='\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5"\x3e':8==document.documentMode?a='\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d8"\x3e':8<document.documentMode&&(a='\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3dedge"\x3e\x3c![endif]--\x3e');return a};
mxPrintPreview.prototype.appendGraph=function(a,b,c,d,e,f){this.graph=a;this.scale=null!=b?b:1/a.pageScale;this.x0=c;this.y0=d;this.open(null,null,e,f)};
mxPrintPreview.prototype.open=function(a,b,c,d){var e=this.graph.cellRenderer.initializeOverlay,f=null;try{this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(a,b){b.init(a.view.getDrawPane())});this.printControls&&(this.graph.cellRenderer.initControl=function(a,b,c,d){b.dialect=a.view.graph.dialect;b.init(a.view.getDrawPane())});this.wnd=null!=b?b:this.wnd;b=!1;null==this.wnd&&(b=!0,this.wnd=window.open());var g=this.wnd.document;if(b){var k=this.getDoctype();null!=k&&0<k.length&&
-g.writeln(k);mxClient.IS_VML?g.writeln('\x3chtml xmlns:v\x3d"urn:schemas-microsoft-com:vml" xmlns:o\x3d"urn:schemas-microsoft-com:office:office"\x3e'):("CSS1Compat"===document.compatMode&&g.writeln("\x3c!DOCTYPE html\x3e"),g.writeln("\x3chtml\x3e"));g.writeln("\x3chead\x3e");this.writeHead(g,a);g.writeln("\x3c/head\x3e");g.writeln('\x3cbody class\x3d"mxPage"\x3e')}var l=this.graph.getGraphBounds().clone(),m=this.graph.getView().getScale(),n=m/this.scale,q=this.graph.getView().getTranslate();this.autoOrigin||
-(this.x0-=q.x*this.scale,this.y0-=q.y*this.scale,l.width+=l.x,l.height+=l.y,l.x=0,this.border=l.y=0);var p=this.pageFormat.width-2*this.border,r=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;l.width/=n;l.height/=n;var s=Math.max(1,Math.ceil((l.width+this.x0)/p)),t=Math.max(1,Math.ceil((l.height+this.y0)/r));this.pageCount=s*t;var v=mxUtils.bind(this,function(){if(this.pageSelector&&(1<t||1<s)){var a=this.createPageSelector(t,s);g.body.appendChild(a);
+g.writeln(k);mxClient.IS_VML?g.writeln('\x3chtml xmlns:v\x3d"urn:schemas-microsoft-com:vml" xmlns:o\x3d"urn:schemas-microsoft-com:office:office"\x3e'):("CSS1Compat"===document.compatMode&&g.writeln("\x3c!DOCTYPE html\x3e"),g.writeln("\x3chtml\x3e"));g.writeln("\x3chead\x3e");this.writeHead(g,a);g.writeln("\x3c/head\x3e");g.writeln('\x3cbody class\x3d"mxPage"\x3e')}var l=this.graph.getGraphBounds().clone(),n=this.graph.getView().getScale(),m=n/this.scale,p=this.graph.getView().getTranslate();this.autoOrigin||
+(this.x0-=p.x*this.scale,this.y0-=p.y*this.scale,l.width+=l.x,l.height+=l.y,l.x=0,this.border=l.y=0);var q=this.pageFormat.width-2*this.border,s=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;l.width/=m;l.height/=m;var r=Math.max(1,Math.ceil((l.width+this.x0)/q)),t=Math.max(1,Math.ceil((l.height+this.y0)/s));this.pageCount=r*t;var v=mxUtils.bind(this,function(){if(this.pageSelector&&(1<t||1<r)){var a=this.createPageSelector(t,r);g.body.appendChild(a);
if(mxClient.IS_IE&&null==g.documentMode||5==g.documentMode||8==g.documentMode||7==g.documentMode){a.style.position="absolute";var b=function(){a.style.top=(g.body.scrollTop||g.documentElement.scrollTop)+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(a){b()});mxEvent.addListener(this.wnd,"resize",function(a){b()})}}}),u=mxUtils.bind(this,function(a,b){null!=this.borderColor&&(a.style.borderColor=this.borderColor,a.style.borderStyle="solid",a.style.borderWidth="1px");a.style.background=this.backgroundColor;
-if(c||b)a.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(a.outerHTML),a.parentNode.removeChild(a)):(a.parentNode.removeChild(a),g.body.appendChild(a));(c||b)&&this.addPageBreak(g)}),y=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=y)for(var z=0;z<y.length;z++)u(y[z],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),z=0;z<t;z++){var G=z*r/this.scale-this.y0/this.scale+(l.y-q.y*m)/m;for(a=0;a<
-s;a++){if(null==this.wnd)return null;var D=a*p/this.scale-this.x0/this.scale+(l.x-q.x*m)/m,E=z*s+a+1,A=new mxRectangle(D,G,p,r),f=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(a){this.addGraphFragment(-D,-G,this.scale,E,a,A);this.printBackgroundImage&&this.insertBackgroundImage(a,-D,-G)}),E);f.setAttribute("id","mxPage-"+E);u(f,null!=x||z<t-1||a<s-1)}}if(null!=x)for(z=0;z<x.length;z++)u(x[z],z<x.length);b&&!d&&(this.closeDocument(),v());this.wnd.focus()}catch(F){null!=
+if(c||b)a.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(a.outerHTML),a.parentNode.removeChild(a)):(a.parentNode.removeChild(a),g.body.appendChild(a));(c||b)&&this.addPageBreak(g)}),z=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=z)for(var y=0;y<z.length;y++)u(z[y],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),y=0;y<t;y++){var E=y*s/this.scale-this.y0/this.scale+(l.y-p.y*n)/n;for(a=0;a<
+r;a++){if(null==this.wnd)return null;var C=a*q/this.scale-this.x0/this.scale+(l.x-p.x*n)/n,F=y*r+a+1,D=new mxRectangle(C,E,q,s),f=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(a){this.addGraphFragment(-C,-E,this.scale,F,a,D);this.printBackgroundImage&&this.insertBackgroundImage(a,-C,-E)}),F);f.setAttribute("id","mxPage-"+F);u(f,null!=x||y<t-1||a<r-1)}}if(null!=x)for(y=0;y<x.length;y++)u(x[y],y<x.length);b&&!d&&(this.closeDocument(),v());this.wnd.focus()}catch(G){null!=
f&&null!=f.parentNode&&f.parentNode.removeChild(f)}finally{this.graph.cellRenderer.initializeOverlay=e}return this.wnd};mxPrintPreview.prototype.addPageBreak=function(a){var b=a.createElement("hr");b.className="mxPageBreak";a.body.appendChild(b)};mxPrintPreview.prototype.closeDocument=function(){if(null!=this.wnd&&null!=this.wnd.document){var a=this.wnd.document;this.writePostfix(a);a.writeln("\x3c/body\x3e");a.writeln("\x3c/html\x3e");a.close();mxEvent.release(a.body)}};
mxPrintPreview.prototype.writeHead=function(a,b){null!=this.title&&a.writeln("\x3ctitle\x3e"+this.title+"\x3c/title\x3e");mxClient.IS_VML&&a.writeln('\x3cstyle type\x3d"text/css"\x3ev\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}\x3c/style\x3e');mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a);a.writeln('\x3cstyle type\x3d"text/css"\x3e');a.writeln("@media print {");a.writeln(" table.mxPageSelector { display: none; }");a.writeln(" hr.mxPageBreak { display: none; }");
a.writeln("}");a.writeln("@media screen {");a.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }");a.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }");a.writeln(" body.mxPage { background: gray; }");a.writeln("}");null!=b&&a.writeln(b);a.writeln("\x3c/style\x3e")};mxPrintPreview.prototype.writePostfix=function(a){};
-mxPrintPreview.prototype.createPageSelector=function(a,b){var c=this.wnd.document,d=c.createElement("table");d.className="mxPageSelector";d.setAttribute("border","0");for(var e=c.createElement("tbody"),f=0;f<a;f++){for(var g=c.createElement("tr"),k=0;k<b;k++){var l=f*b+k+1,m=c.createElement("td"),n=c.createElement("a");n.setAttribute("href","#mxPage-"+l);mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC&&n.setAttribute("onclick","var page \x3d document.getElementById('mxPage-"+l+"');page.scrollIntoView(true);event.preventDefault();");
-mxUtils.write(n,l,c);m.appendChild(n);g.appendChild(m)}e.appendChild(g)}d.appendChild(e);return d};
-mxPrintPreview.prototype.renderPage=function(a,b,c,d,e,f){f=this.wnd.document;var g=document.createElement("div"),k=null;try{if(0!=c||0!=d){g.style.position="relative";g.style.width=a+"px";g.style.height=b+"px";g.style.pageBreakInside="avoid";var l=document.createElement("div");l.style.position="relative";l.style.top=this.border+"px";l.style.left=this.border+"px";l.style.width=a-2*this.border+"px";l.style.height=b-2*this.border+"px";l.style.overflow="hidden";var m=document.createElement("div");m.style.position=
-"relative";m.style.marginLeft=c+"px";m.style.marginTop=d+"px";8==f.documentMode&&(l.style.position="absolute",m.style.position="absolute");10==f.documentMode&&(m.style.width="100%",m.style.height="100%");l.appendChild(m);g.appendChild(l);document.body.appendChild(g);k=m}else g.style.width=a+"px",g.style.height=b+"px",g.style.overflow="hidden",g.style.pageBreakInside="avoid",8==f.documentMode&&(g.style.position="relative"),l=document.createElement("div"),l.style.width=a-2*this.border+"px",l.style.height=
-b-2*this.border+"px",l.style.overflow="hidden",mxClient.IS_IE&&(null==f.documentMode||5==f.documentMode||8==f.documentMode||7==f.documentMode)?(l.style.marginTop=this.border+"px",l.style.marginLeft=this.border+"px"):(l.style.top=this.border+"px",l.style.left=this.border+"px"),this.graph.dialect==mxConstants.DIALECT_VML&&(l.style.position="absolute"),g.appendChild(l),document.body.appendChild(g),k=l}catch(n){throw g.parentNode.removeChild(g),n;}e(k);return g};
+mxPrintPreview.prototype.createPageSelector=function(a,b){var c=this.wnd.document,d=c.createElement("table");d.className="mxPageSelector";d.setAttribute("border","0");for(var e=c.createElement("tbody"),f=0;f<a;f++){for(var g=c.createElement("tr"),k=0;k<b;k++){var l=f*b+k+1,n=c.createElement("td"),m=c.createElement("a");m.setAttribute("href","#mxPage-"+l);mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC&&m.setAttribute("onclick","var page \x3d document.getElementById('mxPage-"+l+"');page.scrollIntoView(true);event.preventDefault();");
+mxUtils.write(m,l,c);n.appendChild(m);g.appendChild(n)}e.appendChild(g)}d.appendChild(e);return d};
+mxPrintPreview.prototype.renderPage=function(a,b,c,d,e,f){f=this.wnd.document;var g=document.createElement("div"),k=null;try{if(0!=c||0!=d){g.style.position="relative";g.style.width=a+"px";g.style.height=b+"px";g.style.pageBreakInside="avoid";var l=document.createElement("div");l.style.position="relative";l.style.top=this.border+"px";l.style.left=this.border+"px";l.style.width=a-2*this.border+"px";l.style.height=b-2*this.border+"px";l.style.overflow="hidden";var n=document.createElement("div");n.style.position=
+"relative";n.style.marginLeft=c+"px";n.style.marginTop=d+"px";8==f.documentMode&&(l.style.position="absolute",n.style.position="absolute");10==f.documentMode&&(n.style.width="100%",n.style.height="100%");l.appendChild(n);g.appendChild(l);document.body.appendChild(g);k=n}else g.style.width=a+"px",g.style.height=b+"px",g.style.overflow="hidden",g.style.pageBreakInside="avoid",8==f.documentMode&&(g.style.position="relative"),l=document.createElement("div"),l.style.width=a-2*this.border+"px",l.style.height=
+b-2*this.border+"px",l.style.overflow="hidden",mxClient.IS_IE&&(null==f.documentMode||5==f.documentMode||8==f.documentMode||7==f.documentMode)?(l.style.marginTop=this.border+"px",l.style.marginLeft=this.border+"px"):(l.style.top=this.border+"px",l.style.left=this.border+"px"),this.graph.dialect==mxConstants.DIALECT_VML&&(l.style.position="absolute"),g.appendChild(l),document.body.appendChild(g),k=l}catch(m){throw g.parentNode.removeChild(g),m;}e(k);return g};
mxPrintPreview.prototype.getRoot=function(){var a=this.graph.view.currentRoot;null==a&&(a=this.graph.getModel().getRoot());return a};
-mxPrintPreview.prototype.addGraphFragment=function(a,b,c,d,e,f){var g=this.graph.getView();d=this.graph.container;this.graph.container=e;var k=g.getCanvas(),l=g.getBackgroundPane(),m=g.getDrawPane(),n=g.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?g.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?g.createVml():g.createHtml();var q=g.isEventsEnabled();g.setEventsEnabled(!1);var p=this.graph.isEnabled();this.graph.setEnabled(!1);var r=g.getTranslate();g.translate=new mxPoint(a,
-b);var s=this.graph.cellRenderer.redraw,t=g.states;a=g.scale;if(this.clipping){var v=new mxRectangle((f.x+r.x)*a,(f.y+r.y)*a,f.width*a/c,f.height*a/c);this.graph.cellRenderer.redraw=function(a,b,c){if(null!=a){var d=t.get(a.cell);if(null!=d&&(d=g.getBoundingBox(d,!1),null!=d&&!mxUtils.intersects(v,d)))return}s.apply(this,arguments)}}a=null;try{var u=[this.getRoot()];a=new mxTemporaryCellStates(g,c,u)}finally{if(mxClient.IS_IE)g.overlayPane.innerHTML="",g.canvas.style.overflow="hidden",g.canvas.style.position=
+mxPrintPreview.prototype.addGraphFragment=function(a,b,c,d,e,f){var g=this.graph.getView();d=this.graph.container;this.graph.container=e;var k=g.getCanvas(),l=g.getBackgroundPane(),n=g.getDrawPane(),m=g.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?g.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?g.createVml():g.createHtml();var p=g.isEventsEnabled();g.setEventsEnabled(!1);var q=this.graph.isEnabled();this.graph.setEnabled(!1);var s=g.getTranslate();g.translate=new mxPoint(a,
+b);var r=this.graph.cellRenderer.redraw,t=g.states;a=g.scale;if(this.clipping){var v=new mxRectangle((f.x+s.x)*a,(f.y+s.y)*a,f.width*a/c,f.height*a/c);this.graph.cellRenderer.redraw=function(a,b,c){if(null!=a){var d=t.get(a.cell);if(null!=d&&(d=g.getBoundingBox(d,!1),null!=d&&!mxUtils.intersects(v,d)))return}r.apply(this,arguments)}}a=null;try{var u=[this.getRoot()];a=new mxTemporaryCellStates(g,c,u)}finally{if(mxClient.IS_IE)g.overlayPane.innerHTML="",g.canvas.style.overflow="hidden",g.canvas.style.position=
"relative",g.canvas.style.top=this.marginTop+"px",g.canvas.style.width=f.width+"px",g.canvas.style.height=f.height+"px";else for(c=e.firstChild;null!=c;)u=c.nextSibling,b=c.nodeName.toLowerCase(),"svg"==b?(c.style.overflow="hidden",c.style.position="relative",c.style.top=this.marginTop+"px",c.setAttribute("width",f.width),c.setAttribute("height",f.height),c.style.width="",c.style.height=""):"default"!=c.style.cursor&&"div"!=b&&c.parentNode.removeChild(c),c=u;this.printBackgroundImage&&(e=e.getElementsByTagName("svg"),
-0<e.length&&(e[0].style.position="absolute"));g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(p);this.graph.container=d;this.graph.cellRenderer.redraw=s;g.canvas=k;g.backgroundPane=l;g.drawPane=m;g.overlayPane=n;g.translate=r;a.destroy();g.setEventsEnabled(q)}};
+0<e.length&&(e[0].style.position="absolute"));g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(q);this.graph.container=d;this.graph.cellRenderer.redraw=r;g.canvas=k;g.backgroundPane=l;g.drawPane=n;g.overlayPane=m;g.translate=s;a.destroy();g.setEventsEnabled(p)}};
mxPrintPreview.prototype.insertBackgroundImage=function(a,b,c){var d=this.graph.backgroundImage;if(null!=d){var e=document.createElement("img");e.style.position="absolute";e.style.marginLeft=Math.round(b*this.scale)+"px";e.style.marginTop=Math.round(c*this.scale)+"px";e.setAttribute("width",Math.round(this.scale*d.width));e.setAttribute("height",Math.round(this.scale*d.height));e.src=d.src;a.insertBefore(e,a.firstChild)}};mxPrintPreview.prototype.getCoverPages=function(){return null};
mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.prototype.print=function(a){a=this.open(a);null!=a&&a.print()};mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)};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};
@@ -1078,18 +1078,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,k=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,l=(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,n=(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+n,b.y+k,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?n+l:0),b.height-(g==mxConstants.ALIGN_MIDDLE?k+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,k=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*c+f,n=(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+k,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?m+l:0),b.height-(g==mxConstants.ALIGN_MIDDLE?k+n: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),k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(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=k?"bold":"normal";this.textarea.style.fontStyle=l?"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),k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,n=(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=n?"underline":"";this.textarea.style.fontWeight=k?"bold":"normal";this.textarea.style.fontStyle=l?"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<this.textarea.innerHTML.length&&(this.textarea.innerHTML!=this.getEmptyLabelText()||!this.clearOnChange)&&document.execCommand("selectAll",!1,null)}catch(n){}}};mxCellEditor.prototype.isSelectText=function(){return this.selectText};
+0);this.resize();try{this.textarea.focus(),this.isSelectText()&&0<this.textarea.innerHTML.length&&(this.textarea.innerHTML!=this.getEmptyLabelText()||!this.clearOnChange)&&document.execCommand("selectAll",!1,null)}catch(m){}}};mxCellEditor.prototype.isSelectText=function(){return this.selectText};
mxCellEditor.prototype.stopEditing=function(a){if(null!=this.editingCell){null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null);a=!a?this.graph.view.getState(this.editingCell):null;var b=this.initialValue;this.bounds=this.trigger=this.editingCell=this.initialValue=null;this.textarea.blur();null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea);this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.textarea.innerHTML="",
this.clearOnChange=!1);null!=a&&this.textarea.innerHTML!=b&&(b=this.getCurrentValue(a),null!=b&&this.applyValue(a,b));mxEvent.release(this.textarea);this.textarea=null}};mxCellEditor.prototype.isHideLabel=function(a){return!0};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,"left"==this.textarea.style.textAlign?120:40)};
mxCellEditor.prototype.getEditorBounds=function(a){var b=this.graph.getModel().isEdge(a.cell),c=this.graph.getView().scale,d=this.getMinimumSize(a),e=d.width,d=d.height,f=null;if(!b&&a.view.graph.cellRenderer.legacySpacing&&"fill"==a.style[mxConstants.STYLE_OVERFLOW])f=a.shape.getLabelBounds(mxRectangle.fromRectangle(a));else{var g=parseInt(a.style[mxConstants.STYLE_SPACING]||0)*c,k=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+g,f=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||
@@ -1134,8 +1134,8 @@ b==mxConstants.ALIGN_CENTER&&f==mxConstants.ALIGN_MIDDLE&&(e=a.shape.getLabelBou
mxCellRenderer.prototype.rotateLabelBounds=function(a,b){b.y-=a.text.margin.y*b.height;b.x-=a.text.margin.x*b.width;if(!this.legacySpacing||"fill"!=a.style[mxConstants.STYLE_OVERFLOW]&&"width"!=a.style[mxConstants.STYLE_OVERFLOW]){var c=a.view.scale,d=a.text.getSpacing();b.x+=d.x*c;b.y+=d.y*c;var d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),f=mxUtils.getValue(a.style,
mxConstants.STYLE_LABEL_WIDTH,null);b.width=Math.max(0,b.width-(d==mxConstants.ALIGN_CENTER&&null==f?a.text.spacingLeft*c+a.text.spacingRight*c:0));b.height=Math.max(0,b.height-(e==mxConstants.ALIGN_MIDDLE?a.text.spacingTop*c+a.text.spacingBottom*c:0))}e=a.text.getTextRotation();if(0!=e&&null!=a&&a.view.graph.model.isVertex(a.cell)&&(c=a.getCenterX(),d=a.getCenterY(),b.x!=c||b.y!=d))e*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),Math.cos(e),Math.sin(e),new mxPoint(c,d)),b.x=pt.x,b.y=
pt.y};
-mxCellRenderer.prototype.redrawCellOverlays=function(a,b){this.createCellOverlays(a);if(null!=a.overlays){var c=mxUtils.mod(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0),90),d=mxUtils.toRadians(c),e=Math.cos(d),f=Math.sin(d);a.overlays.visit(function(d,k){var l=k.overlay.getBounds(a);if(!a.view.graph.getModel().isEdge(a.cell)&&null!=a.shape&&0!=c){var m=l.getCenterX(),n=l.getCenterY(),n=mxUtils.getRotatedPoint(new mxPoint(m,n),e,f,new mxPoint(a.getCenterX(),a.getCenterY())),m=n.x,n=n.y;l.x=
-Math.round(m-l.width/2);l.y=Math.round(n-l.height/2)}if(b||null==k.bounds||k.scale!=a.view.scale||!k.bounds.equals(l))k.bounds=l,k.scale=a.view.scale,k.redraw()})}};
+mxCellRenderer.prototype.redrawCellOverlays=function(a,b){this.createCellOverlays(a);if(null!=a.overlays){var c=mxUtils.mod(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0),90),d=mxUtils.toRadians(c),e=Math.cos(d),f=Math.sin(d);a.overlays.visit(function(d,k){var l=k.overlay.getBounds(a);if(!a.view.graph.getModel().isEdge(a.cell)&&null!=a.shape&&0!=c){var n=l.getCenterX(),m=l.getCenterY(),m=mxUtils.getRotatedPoint(new mxPoint(n,m),e,f,new mxPoint(a.getCenterX(),a.getCenterY())),n=m.x,m=m.y;l.x=
+Math.round(n-l.width/2);l.y=Math.round(m-l.height/2)}if(b||null==k.bounds||k.scale!=a.view.scale||!k.bounds.equals(l))k.bounds=l,k.scale=a.view.scale,k.redraw()})}};
mxCellRenderer.prototype.redrawControl=function(a,b){var c=a.view.graph.getFoldingImage(a);if(null!=a.control&&null!=c){var c=this.getControlBounds(a,c.width,c.height),d=this.legacyControlPosition?mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0):a.shape.getTextRotation(),e=a.view.scale;if(b||a.control.scale!=e||!a.control.bounds.equals(c)||a.control.rotation!=d)a.control.rotation=d,a.control.bounds=c,a.control.scale=e,a.control.redraw()}};
mxCellRenderer.prototype.getControlBounds=function(a,b,c){if(null!=a.control){var d=a.view.scale,e=a.getCenterX(),f=a.getCenterY();if(!a.view.graph.getModel().isEdge(a.cell)&&(e=a.x+b*d,f=a.y+c*d,null!=a.shape)){var g=a.shape.getShapeRotation();if(this.legacyControlPosition)g=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0);else if(a.shape.isPaintBoundsInverted())var k=(a.width-a.height)/2,e=e+k,f=f-k;0!=g&&(k=mxUtils.toRadians(g),g=Math.cos(k),k=Math.sin(k),f=mxUtils.getRotatedPoint(new mxPoint(e,
f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.graph.getModel().isEdge(a.cell),new mxRectangle(Math.round(e-b/2*d),Math.round(f-c/2*d),Math.round(b*d),Math.round(c*d))}return null};
@@ -1145,34 +1145,34 @@ mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);if(nul
mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&(null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE])&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):null!=a.shape&&!mxUtils.equalEntries(a.shape.style,a.style)&&(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);if(null!=a.shape&&(this.createControl(a),b||null==a.shape.bounds||a.shape.scale!=a.view.scale||null==a.absolutePoints&&!a.shape.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(a.shape.points,a.absolutePoints)))null!=a.absolutePoints?(a.shape.points=
a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?a.shape.redraw():a.shape.updateBoundingBox(),e=!0;return e};mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
-var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
-l.relative?k=0.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=0.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
-f=new mxPoint(a+(k?-d:d),b),m=new mxPoint(g+(l?-d:d),c),k==l?(d=k?Math.min(a,g)-d:Math.max(a,g)+d,e.push(new mxPoint(d,b)),e.push(new mxPoint(d,c))):(f.x<m.x==k?(d=b+(c-b)/2,e.push(f),e.push(new mxPoint(f.x,d)),e.push(new mxPoint(m.x,d))):e.push(f),e.push(m)))},Loop:function(a,b,c,d,e){c=a.absolutePoints;var f=c[c.length-1];if(null!=c[0]&&null!=f){if(null!=d&&0<d.length)for(b=0;b<d.length;b++)c=d[b],c=a.view.transformControlPoint(a,c),e.push(new mxPoint(c.x,c.y))}else if(null!=b){var f=a.view,g=f.graph;
-c=null!=d&&0<d.length?d[0]:null;null!=c&&(c=f.transformControlPoint(a,c),mxUtils.contains(b,c.x,c.y)&&(c=null));var k=d=0,l=0,m=0,g=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,g.gridSize)*f.scale;a=mxUtils.getValue(a.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);a==mxConstants.DIRECTION_NORTH||a==mxConstants.DIRECTION_SOUTH?(d=f.getRoutingCenterX(b),k=g):(l=f.getRoutingCenterY(b),m=g);null==c||c.x<b.x||c.x>b.x+b.width?null!=c?(d=c.x,m=Math.max(Math.abs(l-c.y),m)):a==mxConstants.DIRECTION_NORTH?
-l=b.y-2*k:a==mxConstants.DIRECTION_SOUTH?l=b.y+b.height+2*k:d=a==mxConstants.DIRECTION_EAST?b.x-2*m:b.x+b.width+2*m:null!=c&&(d=f.getRoutingCenterX(b),k=Math.max(Math.abs(d-c.x),m),l=c.y,m=0);e.push(new mxPoint(d-k,l-m));e.push(new mxPoint(d+k,l+m))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0<d.length?d[0]:null,g=!1,k=!1;if(null!=b&&null!=c)if(null!=f)var l=Math.min(b.x,c.x),m=Math.max(b.x+b.width,c.x+c.width),k=Math.min(b.y,c.y),n=Math.max(b.y+b.height,c.y+c.height),f=a.view.transformControlPoint(a,
-f),g=f.y<k||f.y>n,k=f.x<l||f.x>m;else l=Math.max(b.x,c.x),m=Math.min(b.x+b.width,c.x+c.width),(g=l==m)||(k=Math.max(b.y,c.y),n=Math.min(b.y+b.height,c.y+c.height),k=k==n);!k&&(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<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,
+var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],n=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var m=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=m==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
+l.relative?k=0.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=n?(c=new mxCellState,c.x=n.x,c.y=n.y):null!=c&&(m=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=m==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=0.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
+f=new mxPoint(a+(k?-d:d),b),n=new mxPoint(g+(l?-d:d),c),k==l?(d=k?Math.min(a,g)-d:Math.max(a,g)+d,e.push(new mxPoint(d,b)),e.push(new mxPoint(d,c))):(f.x<n.x==k?(d=b+(c-b)/2,e.push(f),e.push(new mxPoint(f.x,d)),e.push(new mxPoint(n.x,d))):e.push(f),e.push(n)))},Loop:function(a,b,c,d,e){c=a.absolutePoints;var f=c[c.length-1];if(null!=c[0]&&null!=f){if(null!=d&&0<d.length)for(b=0;b<d.length;b++)c=d[b],c=a.view.transformControlPoint(a,c),e.push(new mxPoint(c.x,c.y))}else if(null!=b){var f=a.view,g=f.graph;
+c=null!=d&&0<d.length?d[0]:null;null!=c&&(c=f.transformControlPoint(a,c),mxUtils.contains(b,c.x,c.y)&&(c=null));var k=d=0,l=0,n=0,g=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,g.gridSize)*f.scale;a=mxUtils.getValue(a.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);a==mxConstants.DIRECTION_NORTH||a==mxConstants.DIRECTION_SOUTH?(d=f.getRoutingCenterX(b),k=g):(l=f.getRoutingCenterY(b),n=g);null==c||c.x<b.x||c.x>b.x+b.width?null!=c?(d=c.x,n=Math.max(Math.abs(l-c.y),n)):a==mxConstants.DIRECTION_NORTH?
+l=b.y-2*k:a==mxConstants.DIRECTION_SOUTH?l=b.y+b.height+2*k:d=a==mxConstants.DIRECTION_EAST?b.x-2*n:b.x+b.width+2*n:null!=c&&(d=f.getRoutingCenterX(b),k=Math.max(Math.abs(d-c.x),n),l=c.y,n=0);e.push(new mxPoint(d-k,l-n));e.push(new mxPoint(d+k,l+n))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0<d.length?d[0]:null,g=!1,k=!1;if(null!=b&&null!=c)if(null!=f)var l=Math.min(b.x,c.x),n=Math.max(b.x+b.width,c.x+c.width),k=Math.min(b.y,c.y),m=Math.max(b.y+b.height,c.y+c.height),f=a.view.transformControlPoint(a,
+f),g=f.y<k||f.y>m,k=f.x<l||f.x>n;else l=Math.max(b.x,c.x),n=Math.min(b.x+b.width,c.x+c.width),(g=l==n)||(k=Math.max(b.y,c.y),m=Math.min(b.y+b.height,c.y+c.height),k=k==m);!k&&(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<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,
b.x=k.x,b.y=k.y);null!=g&&(c=new mxCellState,c.x=g.x,c.y=g.y);null!=b&&null!=c&&(a=Math.max(b.x,c.x),k=Math.min(b.x+b.width,c.x+c.width),a=null!=d?d.x:Math.round(k+(a-k)/2),k=f.getRoutingCenterY(b),f=f.getRoutingCenterY(c),null!=d&&(d.y>=b.y&&d.y<=b.y+b.height&&(k=d.y),d.y>=c.y&&d.y<=c.y+c.height&&(f=d.y)),!mxUtils.contains(c,a,k)&&!mxUtils.contains(b,a,k)&&e.push(new mxPoint(a,k)),!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<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,b.x=k.x,b.y=k.y);null!=g&&(c=new mxCellState,c.x=g.x,c.y=g.y);null!=b&&null!=c&&(k=Math.max(b.y,c.y),g=Math.min(b.y+b.height,c.y+c.height),a=f.getRoutingCenterX(b),
null!=d&&d.x>=b.x&&d.x<=b.x+b.width&&(a=d.x),k=null!=d?d.y:Math.round(g+(k-g)/2),!mxUtils.contains(c,a,k)&&!mxUtils.contains(b,a,k)&&e.push(new mxPoint(a,k)),a=null!=d&&d.x>=c.x&&d.x<=c.x+c.width?d.x:f.getRoutingCenterX(c),!mxUtils.contains(c,a,k)&&!mxUtils.contains(b,a,k)&&e.push(new mxPoint(a,k)),1==e.length&&(null!=d&&1==e.length?!mxUtils.contains(c,d.x,k)&&!mxUtils.contains(b,d.x,k)&&e.push(new mxPoint(d.x,k)):(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,k)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==l||Math.abs(l.x-a.x)>=k||Math.abs(l.y-a.y)>=k)e.push(a),l=a;return l}var g=a.absolutePoints,k=Math.max(1,a.view.scale),l=0<e.length?e[0]:null,m=!0,n=null,q=g[0];null==q&&null!=b?q=new mxPoint(a.view.getRoutingCenterX(b),a.view.getRoutingCenterY(b)):null!=q&&(q=q.clone());q.x=Math.round(q.x);q.y=Math.round(q.y);var p=g.length-1;if(null!=d&&0<d.length){for(var n=[],r=0;r<d.length;r++){var s=a.view.transformControlPoint(a,d[r]);null!=
-s&&(s.x=Math.round(s.x),s.y=Math.round(s.y),n.push(s))}if(0==n.length)return;d=n;null!=q&&null!=d[0]&&(Math.abs(d[0].x-q.x)<k&&(d[0].x=q.x),Math.abs(d[0].y-q.y)<k&&(d[0].y=q.y));s=g[p];null!=s&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-s.x)<k&&(d[d.length-1].x=s.x),Math.abs(d[d.length-1].y-s.y)<k&&(d[d.length-1].y=s.y));var n=d[0],t=b,v=g[0],u=!1,y=!1,u=n;null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);for(r=0;2>r;r++){var z=null!=v&&v.x==u.x,x=null!=v&&v.y==u.y,G=null!=t&&u.y>=t.y&&
-u.y<=t.y+t.height,t=null!=t&&u.x>=t.x&&u.x<=t.x+t.width,u=x||null==v&&G,y=z||null==v&&t;if(!(0==r&&(u&&y||z&&x))){if(null!=v&&!x&&!z&&(G||t)){m=G?!1:!0;break}if(y||u){m=u;1==r&&(m=0==d.length%2?u:y);break}}t=c;v=g[p];null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);u=d[d.length-1];z&&x&&(d=d.slice(1))}m&&(null!=g[0]&&g[0].y!=n.y||null==g[0]&&null!=b&&(n.y<b.y||n.y>b.y+b.height))?f(new mxPoint(q.x,n.y)):!m&&(null!=g[0]&&g[0].x!=n.x||null==g[0]&&null!=b&&(n.x<b.x||n.x>b.x+b.width))&&f(new mxPoint(n.x,
-q.y));m?q.y=n.y:q.x=n.x;for(r=0;r<d.length;r++)m=!m,n=d[r],m?q.y=n.y:q.x=n.x,f(q.clone())}else n=q,m=!0;q=g[p];null==q&&null!=c&&(q=new mxPoint(a.view.getRoutingCenterX(c),a.view.getRoutingCenterY(c)));null!=q&&(q.x=Math.round(q.x),q.y=Math.round(q.y),null!=n&&(m&&(null!=g[p]&&g[p].y!=n.y||null==g[p]&&null!=c&&(n.y<c.y||n.y>c.y+c.height))?f(new mxPoint(q.x,n.y)):!m&&(null!=g[p]&&g[p].x!=n.x||null==g[p]&&null!=c&&(n.x<c.x||n.x>c.x+c.width))&&f(new mxPoint(n.x,q.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<e.length&&null!=e[e.length-1]&&mxUtils.contains(c,e[e.length-1].x,e[e.length-1].y);)e.splice(e.length-1,1);null!=s&&null!=e[e.length-1]&&(Math.abs(s.x-e[e.length-1].x)<k&&Math.abs(s.y-e[e.length-1].y)<k)&&(e.splice(e.length-1,1),null!=e[e.length-1]&&(Math.abs(e[e.length-1].x-s.x)<k&&(e[e.length-1].x=s.x),Math.abs(e[e.length-1].y-s.y)<k&&(e[e.length-1].y=s.y)))},orthBuffer:10,orthPointsFallback:!0,
+2,k)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==l||Math.abs(l.x-a.x)>=k||Math.abs(l.y-a.y)>=k)e.push(a),l=a;return l}var g=a.absolutePoints,k=Math.max(1,a.view.scale),l=0<e.length?e[0]:null,n=!0,m=null,p=g[0];null==p&&null!=b?p=new mxPoint(a.view.getRoutingCenterX(b),a.view.getRoutingCenterY(b)):null!=p&&(p=p.clone());p.x=Math.round(p.x);p.y=Math.round(p.y);var q=g.length-1;if(null!=d&&0<d.length){for(var m=[],s=0;s<d.length;s++){var r=a.view.transformControlPoint(a,d[s]);null!=
+r&&(r.x=Math.round(r.x),r.y=Math.round(r.y),m.push(r))}if(0==m.length)return;d=m;null!=p&&null!=d[0]&&(Math.abs(d[0].x-p.x)<k&&(d[0].x=p.x),Math.abs(d[0].y-p.y)<k&&(d[0].y=p.y));r=g[q];null!=r&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-r.x)<k&&(d[d.length-1].x=r.x),Math.abs(d[d.length-1].y-r.y)<k&&(d[d.length-1].y=r.y));var m=d[0],t=b,v=g[0],u=!1,z=!1,u=m;null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);for(s=0;2>s;s++){var y=null!=v&&v.x==u.x,x=null!=v&&v.y==u.y,E=null!=t&&u.y>=t.y&&
+u.y<=t.y+t.height,t=null!=t&&u.x>=t.x&&u.x<=t.x+t.width,u=x||null==v&&E,z=y||null==v&&t;if(!(0==s&&(u&&z||y&&x))){if(null!=v&&!x&&!y&&(E||t)){n=E?!1:!0;break}if(z||u){n=u;1==s&&(n=0==d.length%2?u:z);break}}t=c;v=g[q];null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);u=d[d.length-1];y&&x&&(d=d.slice(1))}n&&(null!=g[0]&&g[0].y!=m.y||null==g[0]&&null!=b&&(m.y<b.y||m.y>b.y+b.height))?f(new mxPoint(p.x,m.y)):!n&&(null!=g[0]&&g[0].x!=m.x||null==g[0]&&null!=b&&(m.x<b.x||m.x>b.x+b.width))&&f(new mxPoint(m.x,
+p.y));n?p.y=m.y:p.x=m.x;for(s=0;s<d.length;s++)n=!n,m=d[s],n?p.y=m.y:p.x=m.x,f(p.clone())}else m=p,n=!0;p=g[q];null==p&&null!=c&&(p=new mxPoint(a.view.getRoutingCenterX(c),a.view.getRoutingCenterY(c)));null!=p&&(p.x=Math.round(p.x),p.y=Math.round(p.y),null!=m&&(n&&(null!=g[q]&&g[q].y!=m.y||null==g[q]&&null!=c&&(m.y<c.y||m.y>c.y+c.height))?f(new mxPoint(p.x,m.y)):!n&&(null!=g[q]&&g[q].x!=m.x||null==g[q]&&null!=c&&(m.x<c.x||m.x>c.x+c.width))&&f(new mxPoint(m.x,p.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[q]&&null!=c)for(;1<e.length&&null!=e[e.length-1]&&mxUtils.contains(c,e[e.length-1].x,e[e.length-1].y);)e.splice(e.length-1,1);null!=r&&null!=e[e.length-1]&&(Math.abs(r.x-e[e.length-1].x)<k&&Math.abs(r.y-e[e.length-1].y)<k)&&(e.splice(e.length-1,1),null!=e[e.length-1]&&(Math.abs(e[e.length-1].x-r.x)<k&&(e[e.length-1].x=r.x),Math.abs(e[e.length-1].y-r.y)<k&&(e[e.length-1].y=r.y)))},orthBuffer:10,orthPointsFallback:!0,
dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,
2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,
VERTEX_MASK:3072,getJettySize:function(a,b,c,d,e){b=mxUtils.getValue(a.style,e?mxConstants.STYLE_SOURCE_JETTY_SIZE:mxConstants.STYLE_TARGET_JETTY_SIZE,mxUtils.getValue(a.style,mxConstants.STYLE_JETTY_SIZE,mxEdgeStyle.orthBuffer));"auto"==b&&(mxUtils.getValue(a.style,e?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE?(a=mxUtils.getNumber(a.style,e?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),b=Math.max(2,Math.ceil((a+
-mxEdgeStyle.orthBuffer)/mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):b=2*mxEdgeStyle.orthBuffer);return b},OrthConnector:function(a,b,c,d,e){var f=a.view.graph,g=null==b?!1:f.getModel().isEdge(b.cell),k=null==c?!1:f.getModel().isEdge(c.cell),f=a.absolutePoints,l=f[0],m=f[f.length-1],n=null!=b?b.x:l.x,q=null!=b?b.y:l.y,p=null!=b?b.width:0,r=null!=b?b.height:0,s=null!=c?c.x:m.x,t=null!=c?c.y:m.y,v=null!=c?c.width:0,u=null!=c?c.height:0,f=a.view.scale*mxEdgeStyle.getJettySize(a,b,c,d,!0),y=a.view.scale*
-mxEdgeStyle.getJettySize(a,b,c,d,!1);null!=b&&c==b&&(f=y=Math.max(f,y));var z=y+f,x=!1;if(null!=l&&null!=m)var x=m.x-l.x,G=m.y-l.y,x=x*x+G*G<z*z;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,b,c,d,e);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=b&&(d[0]=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(n,
-q,p,r),x),n=x.x,q=x.y,p=x.width,r=x.height));null!=c&&(d[1]=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(s,t,v,u),x),s=x.x,t=x.y,v=x.width,u=x.height));n=Math.round(10*n)/10;q=Math.round(10*q)/10;p=Math.round(10*p)/10;r=Math.round(10*r)/10;s=Math.round(10*s)/10;t=Math.round(10*t)/10;v=Math.round(10*v)/10;u=Math.round(10*u)/10;a=[0,0];n=[[n,q,p,r],[s,t,v,u]];y=[f,y];for(x=0;2>
-x;x++)mxEdgeStyle.limits[x][1]=n[x][0]-y[x],mxEdgeStyle.limits[x][2]=n[x][1]-y[x],mxEdgeStyle.limits[x][4]=n[x][0]+n[x][2]+y[x],mxEdgeStyle.limits[x][8]=n[x][1]+n[x][3]+y[x];y=n[0][1]+n[0][3]/2;q=n[1][1]+n[1][3]/2;x=n[0][0]+n[0][2]/2-(n[1][0]+n[1][2]/2);G=y-q;y=0;0>x?y=0>G?2:1:0>=G&&(y=3,0==x&&(y=2));q=null;null!=b&&(q=l);b=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=q&&(b[x][0]=(q.x-n[x][0])/n[x][2],1>=Math.abs(q.x-n[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(q.x-n[x][0]-n[x][2])&&(a[x]=
-mxConstants.DIRECTION_MASK_EAST),b[x][1]=(q.y-n[x][1])/n[x][3],1>=Math.abs(q.y-n[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(q.y-n[x][1]-n[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),q=null,null!=c&&(q=m);x=n[0][1]-(n[1][1]+n[1][3]);m=n[0][0]-(n[1][0]+n[1][2]);q=n[1][1]-(n[0][1]+n[0][3]);p=n[1][0]-(n[0][0]+n[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(m-z,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-z,0);mxEdgeStyle.vertexSeperations[4]=Math.max(q-z,0);mxEdgeStyle.vertexSeperations[3]=
-Math.max(p-z,0);z=[];c=[];l=[];c[0]=m>=p?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;l[0]=x>=q?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);l[1]=mxUtils.reversePortConstraints(l[0]);m=m>=p?m:p;q=x>=q?x:q;p=[[0,0],[0,0]];r=!1;for(x=0;2>x;x++)0==a[x]&&(0==(c[x]&d[x])&&(c[x]=mxUtils.reversePortConstraints(c[x])),0==(l[x]&d[x])&&(l[x]=mxUtils.reversePortConstraints(l[x])),p[x][0]=l[x],p[x][1]=c[x]);0<q&&0<m&&(0<(c[0]&d[0])&&
-0<(l[1]&d[1])?(p[0][0]=c[0],p[0][1]=l[0],p[1][0]=l[1],p[1][1]=c[1],r=!0):0<(l[0]&d[0])&&0<(c[1]&d[1])&&(p[0][0]=l[0],p[0][1]=c[0],p[1][0]=c[1],p[1][1]=l[1],r=!0));0<q&&!r&&(p[0][0]=l[0],p[0][1]=c[0],p[1][0]=l[1],p[1][1]=c[1],r=!0);0<m&&!r&&(p[0][0]=c[0],p[0][1]=l[0],p[1][0]=c[1],p[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(p[x][0]&d[x])&&(p[x][0]=p[x][1]),z[x]=p[x][0]&d[x],z[x]|=(p[x][1]&d[x])<<8,z[x]|=(p[1-x][x]&d[x])<<16,z[x]|=(p[1-x][1-x]&d[x])<<24,0==(z[x]&15)&&(z[x]<<=8),0==(z[x]&3840)&&(z[x]=
-z[x]&15|z[x]>>8),0==(z[x]&983040)&&(z[x]=z[x]&65535|(z[x]&251658240)>>8),a[x]=z[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];z=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=y;z-=y;1>d&&(d+=4);1>z&&(z+=4);d=mxEdgeStyle.routePatterns[d-1][z-1];mxEdgeStyle.wayPoints1[0][0]=n[0][0];mxEdgeStyle.wayPoints1[0][1]=n[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=
-f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*n[0][2];mxEdgeStyle.wayPoints1[0][1]+=n[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=n[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*n[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;c=z=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?
-0:1;for(x=0;x<d.length;x++)l=d[x]&15,s=l==mxConstants.DIRECTION_MASK_EAST?3:l,s+=y,4<s&&(s-=4),m=mxEdgeStyle.dirVectors[s-1],l=0<s%2?0:1,l!=z&&(f++,mxEdgeStyle.wayPoints1[f][0]=mxEdgeStyle.wayPoints1[f-1][0],mxEdgeStyle.wayPoints1[f][1]=mxEdgeStyle.wayPoints1[f-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),r=0<(d[x]&mxEdgeStyle.SOURCE_MASK),q=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,q<<=y,15<q&&(q>>=4),p=0<(d[x]&mxEdgeStyle.CENTER_MASK),(r||t)&&9>q?(r=r?0:1,s=p&&0==l?n[r][0]+b[r][0]*n[r][2]:p?n[r][1]+b[r][1]*
-n[r][3]:mxEdgeStyle.limits[r][q],0==l?(q=(s-mxEdgeStyle.wayPoints1[f][0])*m[0],0<q&&(mxEdgeStyle.wayPoints1[f][0]+=m[0]*q)):(q=(s-mxEdgeStyle.wayPoints1[f][1])*m[1],0<q&&(mxEdgeStyle.wayPoints1[f][1]+=m[1]*q))):p&&(mxEdgeStyle.wayPoints1[f][0]+=m[0]*Math.abs(mxEdgeStyle.vertexSeperations[s]/2),mxEdgeStyle.wayPoints1[f][1]+=m[1]*Math.abs(mxEdgeStyle.vertexSeperations[s]/2)),0<f&&mxEdgeStyle.wayPoints1[f][l]==mxEdgeStyle.wayPoints1[f-1][l]?f--:z=l;for(x=0;x<=f&&!(x==f&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
+mxEdgeStyle.orthBuffer)/mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):b=2*mxEdgeStyle.orthBuffer);return b},OrthConnector:function(a,b,c,d,e){var f=a.view.graph,g=null==b?!1:f.getModel().isEdge(b.cell),k=null==c?!1:f.getModel().isEdge(c.cell),f=a.absolutePoints,l=f[0],n=f[f.length-1],m=null!=b?b.x:l.x,p=null!=b?b.y:l.y,q=null!=b?b.width:0,s=null!=b?b.height:0,r=null!=c?c.x:n.x,t=null!=c?c.y:n.y,v=null!=c?c.width:0,u=null!=c?c.height:0,f=a.view.scale*mxEdgeStyle.getJettySize(a,b,c,d,!0),z=a.view.scale*
+mxEdgeStyle.getJettySize(a,b,c,d,!1);null!=b&&c==b&&(f=z=Math.max(f,z));var y=z+f,x=!1;if(null!=l&&null!=n)var x=n.x-l.x,E=n.y-l.y,x=x*x+E*E<y*y;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,b,c,d,e);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=b&&(d[0]=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(m,
+p,q,s),x),m=x.x,p=x.y,q=x.width,s=x.height));null!=c&&(d[1]=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(r,t,v,u),x),r=x.x,t=x.y,v=x.width,u=x.height));m=Math.round(10*m)/10;p=Math.round(10*p)/10;q=Math.round(10*q)/10;s=Math.round(10*s)/10;r=Math.round(10*r)/10;t=Math.round(10*t)/10;v=Math.round(10*v)/10;u=Math.round(10*u)/10;a=[0,0];m=[[m,p,q,s],[r,t,v,u]];z=[f,z];for(x=0;2>
+x;x++)mxEdgeStyle.limits[x][1]=m[x][0]-z[x],mxEdgeStyle.limits[x][2]=m[x][1]-z[x],mxEdgeStyle.limits[x][4]=m[x][0]+m[x][2]+z[x],mxEdgeStyle.limits[x][8]=m[x][1]+m[x][3]+z[x];z=m[0][1]+m[0][3]/2;p=m[1][1]+m[1][3]/2;x=m[0][0]+m[0][2]/2-(m[1][0]+m[1][2]/2);E=z-p;z=0;0>x?z=0>E?2:1:0>=E&&(z=3,0==x&&(z=2));p=null;null!=b&&(p=l);b=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=p&&(b[x][0]=(p.x-m[x][0])/m[x][2],1>=Math.abs(p.x-m[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(p.x-m[x][0]-m[x][2])&&(a[x]=
+mxConstants.DIRECTION_MASK_EAST),b[x][1]=(p.y-m[x][1])/m[x][3],1>=Math.abs(p.y-m[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(p.y-m[x][1]-m[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),p=null,null!=c&&(p=n);x=m[0][1]-(m[1][1]+m[1][3]);n=m[0][0]-(m[1][0]+m[1][2]);p=m[1][1]-(m[0][1]+m[0][3]);q=m[1][0]-(m[0][0]+m[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(p-y,0);mxEdgeStyle.vertexSeperations[3]=
+Math.max(q-y,0);y=[];c=[];l=[];c[0]=n>=q?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;l[0]=x>=p?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);l[1]=mxUtils.reversePortConstraints(l[0]);n=n>=q?n:q;p=x>=p?x:p;q=[[0,0],[0,0]];s=!1;for(x=0;2>x;x++)0==a[x]&&(0==(c[x]&d[x])&&(c[x]=mxUtils.reversePortConstraints(c[x])),0==(l[x]&d[x])&&(l[x]=mxUtils.reversePortConstraints(l[x])),q[x][0]=l[x],q[x][1]=c[x]);0<p&&0<n&&(0<(c[0]&d[0])&&
+0<(l[1]&d[1])?(q[0][0]=c[0],q[0][1]=l[0],q[1][0]=l[1],q[1][1]=c[1],s=!0):0<(l[0]&d[0])&&0<(c[1]&d[1])&&(q[0][0]=l[0],q[0][1]=c[0],q[1][0]=c[1],q[1][1]=l[1],s=!0));0<p&&!s&&(q[0][0]=l[0],q[0][1]=c[0],q[1][0]=l[1],q[1][1]=c[1],s=!0);0<n&&!s&&(q[0][0]=c[0],q[0][1]=l[0],q[1][0]=c[1],q[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(q[x][0]&d[x])&&(q[x][0]=q[x][1]),y[x]=q[x][0]&d[x],y[x]|=(q[x][1]&d[x])<<8,y[x]|=(q[1-x][x]&d[x])<<16,y[x]|=(q[1-x][1-x]&d[x])<<24,0==(y[x]&15)&&(y[x]<<=8),0==(y[x]&3840)&&(y[x]=
+y[x]&15|y[x]>>8),0==(y[x]&983040)&&(y[x]=y[x]&65535|(y[x]&251658240)>>8),a[x]=y[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];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(x=0;x<d.length;x++)l=d[x]&15,r=l==mxConstants.DIRECTION_MASK_EAST?3:l,r+=z,4<r&&(r-=4),n=mxEdgeStyle.dirVectors[r-1],l=0<r%2?0:1,l!=y&&(f++,mxEdgeStyle.wayPoints1[f][0]=mxEdgeStyle.wayPoints1[f-1][0],mxEdgeStyle.wayPoints1[f][1]=mxEdgeStyle.wayPoints1[f-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),s=0<(d[x]&mxEdgeStyle.SOURCE_MASK),p=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,p<<=z,15<p&&(p>>=4),q=0<(d[x]&mxEdgeStyle.CENTER_MASK),(s||t)&&9>p?(s=s?0:1,r=q&&0==l?m[s][0]+b[s][0]*m[s][2]:q?m[s][1]+b[s][1]*
+m[s][3]:mxEdgeStyle.limits[s][p],0==l?(p=(r-mxEdgeStyle.wayPoints1[f][0])*n[0],0<p&&(mxEdgeStyle.wayPoints1[f][0]+=n[0]*p)):(p=(r-mxEdgeStyle.wayPoints1[f][1])*n[1],0<p&&(mxEdgeStyle.wayPoints1[f][1]+=n[1]*p))):q&&(mxEdgeStyle.wayPoints1[f][0]+=n[0]*Math.abs(mxEdgeStyle.vertexSeperations[r]/2),mxEdgeStyle.wayPoints1[f][1]+=n[1]*Math.abs(mxEdgeStyle.vertexSeperations[r]/2)),0<f&&mxEdgeStyle.wayPoints1[f][l]==mxEdgeStyle.wayPoints1[f-1][l]?f--:y=l;for(x=0;x<=f&&!(x==f&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
mxConstants.DIRECTION_MASK_WEST))?0:1)==c?0:1)!=(f+1)%2);x++)e.push(new mxPoint(Math.round(mxEdgeStyle.wayPoints1[x][0]),Math.round(mxEdgeStyle.wayPoints1[x][1])));for(a=1;a<e.length;)null==e[a-1]||null==e[a]||e[a-1].x!=e[a].x||e[a-1].y!=e[a].y?a++:e.splice(a,1)}},getRoutePattern:function(a,b,c,d){var e=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];a=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];e-=b;a-=b;1>e&&(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);
@@ -1223,12 +1223,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,k=f.y,l=c,m=k,n=1;n<b.length;n++){var q=b[n];null!=q&&(e=f.x-q.x,f=f.y-q.y,e=Math.sqrt(e*e+f*f),g.push(e),d+=e,f=q,c=Math.min(f.x,c),k=Math.min(f.y,k),l=Math.max(f.x,l),m=Math.max(f.y,m))}a.length=d;a.segments=g;a.x=c;a.y=k;a.width=Math.max(1,l-c);a.height=
-Math.max(1,m-k)}};
-mxGraphView.prototype.getPoint=function(a,b){var c=a.getCenterX(),d=a.getCenterY();if(null!=a.segments&&(null==b||b.relative)){for(var e=a.absolutePoints.length,f=Math.round(((null!=b?b.x/2:0)+0.5)*a.length),g=a.segments[0],k=0,l=1;f>=Math.round(k+g)&&l<e-1;)k+=g,g=a.segments[l++];e=0==g?0:(f-k)/g;f=a.absolutePoints[l-1];l=a.absolutePoints[l];if(null!=f&&null!=l){k=c=d=0;if(null!=b){var d=b.y,m=b.offset;null!=m&&(c=m.x,k=m.y)}m=l.x-f.x;l=l.y-f.y;c=f.x+m*e+((0==g?0:l/g)*d+c)*this.scale;d=f.y+l*e-((0==
-g?0:m/g)*d-k)*this.scale}}else null!=b&&(m=b.offset,null!=m&&(c+=m.x,d+=m.y));return new mxPoint(c,d)};
-mxGraphView.prototype.getRelativePoint=function(a,b,c){var d=this.graph.getModel().getGeometry(a.cell);if(null!=d){var e=a.absolutePoints.length;if(d.relative&&1<e){for(var d=a.length,f=a.segments,g=a.absolutePoints[0],k=a.absolutePoints[1],l=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),m=0,n=0,q=0,p=2;p<e;p++)n+=f[p-2],k=a.absolutePoints[p],g=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),g<=l&&(l=g,m=p-1,q=n),g=k;e=f[m];g=a.absolutePoints[m];k=a.absolutePoints[m+1];l=k.x;f=k.y;a=g.x-l;m=g.y-f;l=a-(b-l);f=
-m-(c-f);f=l*a+f*m;a=Math.sqrt(0>=f?0:f*f/(a*a+m*m));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,k.x,k.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-q-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,k=f.y,l=c,n=k,m=1;m<b.length;m++){var p=b[m];null!=p&&(e=f.x-p.x,f=f.y-p.y,e=Math.sqrt(e*e+f*f),g.push(e),d+=e,f=p,c=Math.min(f.x,c),k=Math.min(f.y,k),l=Math.max(f.x,l),n=Math.max(f.y,n))}a.length=d;a.segments=g;a.x=c;a.y=k;a.width=Math.max(1,l-c);a.height=
+Math.max(1,n-k)}};
+mxGraphView.prototype.getPoint=function(a,b){var c=a.getCenterX(),d=a.getCenterY();if(null!=a.segments&&(null==b||b.relative)){for(var e=a.absolutePoints.length,f=Math.round(((null!=b?b.x/2:0)+0.5)*a.length),g=a.segments[0],k=0,l=1;f>=Math.round(k+g)&&l<e-1;)k+=g,g=a.segments[l++];e=0==g?0:(f-k)/g;f=a.absolutePoints[l-1];l=a.absolutePoints[l];if(null!=f&&null!=l){k=c=d=0;if(null!=b){var d=b.y,n=b.offset;null!=n&&(c=n.x,k=n.y)}n=l.x-f.x;l=l.y-f.y;c=f.x+n*e+((0==g?0:l/g)*d+c)*this.scale;d=f.y+l*e-((0==
+g?0:n/g)*d-k)*this.scale}}else null!=b&&(n=b.offset,null!=n&&(c+=n.x,d+=n.y));return new mxPoint(c,d)};
+mxGraphView.prototype.getRelativePoint=function(a,b,c){var d=this.graph.getModel().getGeometry(a.cell);if(null!=d){var e=a.absolutePoints.length;if(d.relative&&1<e){for(var d=a.length,f=a.segments,g=a.absolutePoints[0],k=a.absolutePoints[1],l=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),n=0,m=0,p=0,q=2;q<e;q++)m+=f[q-2],k=a.absolutePoints[q],g=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),g<=l&&(l=g,n=q-1,p=m),g=k;e=f[n];g=a.absolutePoints[n];k=a.absolutePoints[n+1];l=k.x;f=k.y;a=g.x-l;n=g.y-f;l=a-(b-l);f=
+n-(c-f);f=l*a+f*n;a=Math.sqrt(0>=f?0:f*f/(a*a+n*n));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,k.x,k.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-p-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&&0<b.length&&null!=a.segments){var c=this.graph.getCellGeometry(a.cell);if(c.relative){var d=this.getPoint(a,c);null!=d&&(a.absoluteOffset=d)}else{var d=b[0],e=b[b.length-1];if(null!=d&&null!=e){var b=e.x-d.x,f=e.y-d.y,g=e=0,c=c.offset;null!=c&&(e=c.x,g=c.y);c=d.y+f/2+g*this.scale;a.absoluteOffset.x=d.x+b/2+e*this.scale;a.absoluteOffset.y=c}}}};
mxGraphView.prototype.getState=function(a,b){b=b||!1;var c=null;if(null!=a&&(c=this.states.get(a),b&&(null==c||this.updateStyle)&&this.graph.isCellVisible(a)))null==c?(c=this.createState(a),this.states.put(a,c)):c.style=this.graph.getCellStyle(a);return c};mxGraphView.prototype.isRendering=function(){return this.rendering};mxGraphView.prototype.setRendering=function(a){this.rendering=a};mxGraphView.prototype.isAllowEval=function(){return this.allowEval};
mxGraphView.prototype.setAllowEval=function(a){this.allowEval=a};mxGraphView.prototype.getStates=function(){return this.states};mxGraphView.prototype.setStates=function(a){this.states=a};mxGraphView.prototype.getCellStates=function(a){if(null==a)return this.states;for(var b=[],c=0;c<a.length;c++){var d=this.getState(a[c]);null!=d&&b.push(d)}return b};
@@ -1290,15 +1290,15 @@ Math.max(e.clientWidth,e.scrollWidth)+d-f,a=this.view.getCanvas();a.style.width=
d-f))}}else this.allowAutoPanning&&!this.panningHandler.isActive()&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(a+this.panDx,b+this.panDy))};mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)};
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));b=this.pageBreaksVisible?Math.ceil(b/d.width):1;c=this.pageBreaksVisible?Math.ceil(c/d.height):1;return new mxRectangle(0,0,b*d.width+2+a.x,c*d.height+2+a.y)};
-mxGraph.prototype.fit=function(a,b,c,d,e,f){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var g=this.getBorderSizes(),k=this.container.offsetWidth-g.x-g.width-1,l=this.container.offsetHeight-g.y-g.height-1,g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var m=this.view.scale,n=g.width/m,q=g.height/m;null!=this.backgroundImage&&(n=Math.max(n,
-this.backgroundImage.width-g.x/m),q=Math.max(q,this.backgroundImage.height-g.y/m));var p=(b?a:2*a)+c,k=k-p,l=l-p;e=e?l/q:f?k/n:Math.min(k/n,l/q);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
-null!=g.x?Math.floor(this.view.translate.x-g.x/m+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/m+a/e+c/2):a);else return e}}return this.view.scale};
+mxGraph.prototype.fit=function(a,b,c,d,e,f){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var g=this.getBorderSizes(),k=this.container.offsetWidth-g.x-g.width-1,l=this.container.offsetHeight-g.y-g.height-1,g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var n=this.view.scale,m=g.width/n,p=g.height/n;null!=this.backgroundImage&&(m=Math.max(m,
+this.backgroundImage.width-g.x/n),p=Math.max(p,this.backgroundImage.height-g.y/n));var q=(b?a:2*a)+c,k=k-q,l=l-q;e=e?l/p:f?k/m:Math.min(k/m,l/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+null!=g.x?Math.floor(this.view.translate.x-g.x/n+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/n+a/e+c/2):a);else return e}}return this.view.scale};
mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
-var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
-l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
+var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,n=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
+l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+n))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
mxGraph.prototype.getCellStyle=function(a){var b=this.model.getStyle(a),c=null,c=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=b&&(c=this.postProcessCellStyle(this.stylesheet.getCellStyle(b,c)));null==c&&(c=mxGraph.prototype.EMPTY_ARRAY);return c};
mxGraph.prototype.postProcessCellStyle=function(a){if(null!=a){var b=a[mxConstants.STYLE_IMAGE],c=this.getImageFromBundles(b);null!=c?a[mxConstants.STYLE_IMAGE]=c:c=b;null!=c&&"data:image/"==c.substring(0,11)&&("data:image/svg+xml,\x3c"==c.substring(0,20)?c=c.substring(0,19)+encodeURIComponent(c.substring(19)):"data:image/svg+xml,%3C"!=c.substring(0,22)&&(b=c.indexOf(","),0<b&&";base64,"!=c.substring(b-7,b+1)&&(c=c.substring(0,b)+";base64,"+c.substring(b+1))),a[mxConstants.STYLE_IMAGE]=c)}return a};
mxGraph.prototype.setCellStyle=function(a,b){b=b||this.getSelectionCells();if(null!=b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setStyle(b[c],a)}finally{this.model.endUpdate()}}};mxGraph.prototype.toggleCellStyle=function(a,b,c){c=c||this.getSelectionCell();return this.toggleCellStyles(a,b,[c])};
@@ -1316,21 +1316,21 @@ this.cellsAdded(c,a,f,null,null,!1,!1);this.cellsMoved(c,-d.x,-d.y,!1,!0);this.c
mxGraph.prototype.getBoundsForGroup=function(a,b,c){b=this.getBoundingBoxFromGeometry(b,!0);null!=b&&(this.isSwimlane(a)&&(a=this.getStartSize(a),b.x-=a.width,b.y-=a.height,b.width+=a.width,b.height+=a.height),null!=c&&(b.x-=c,b.y-=c,b.width+=2*c,b.height+=2*c));return b};mxGraph.prototype.createGroupCell=function(a){a=new mxCell("");a.setVertex(!0);a.setConnectable(!1);return a};
mxGraph.prototype.ungroupCells=function(a){var b=[];if(null==a){a=this.getSelectionCells();for(var c=[],d=0;d<a.length;d++)0<this.model.getChildCount(a[d])&&c.push(a[d]);a=c}if(null!=a&&0<a.length){this.model.beginUpdate();try{for(d=0;d<a.length;d++){var e=this.model.getChildren(a[d]);if(null!=e&&0<e.length){var e=e.slice(),f=this.model.getParent(a[d]),g=this.model.getChildCount(f);this.cellsAdded(e,f,g,null,null,!0);b=b.concat(e)}}this.removeCellsAfterUngroup(a);this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,
"cells",a))}finally{this.model.endUpdate()}}return b};mxGraph.prototype.removeCellsAfterUngroup=function(a){this.cellsRemoved(this.addAllEdges(a))};mxGraph.prototype.removeCellsFromParent=function(a){null==a&&(a=this.getSelectionCells());this.model.beginUpdate();try{var b=this.getDefaultParent(),c=this.model.getChildCount(b);this.cellsAdded(a,b,c,null,null,!0);this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",a))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.updateGroupBounds=function(a,b,c,d,e,f,g){null==a&&(a=this.getSelectionCells());b=null!=b?b:0;c=null!=c?c:!1;d=null!=d?d:0;e=null!=e?e:0;f=null!=f?f:0;g=null!=g?g:0;this.model.beginUpdate();try{for(var k=a.length-1;0<=k;k--){var l=this.getCellGeometry(a[k]);if(null!=l){var m=this.getChildCells(a[k]);if(null!=m&&0<m.length){var n=this.getBoundingBoxFromGeometry(m,!0);if(null!=n&&0<n.width&&0<n.height){var q=0,p=0;if(this.isSwimlane(a[k]))var r=this.getStartSize(a[k]),q=r.width,p=
-r.height;l=l.clone();c&&(l.x=Math.round(l.x+n.x-b-q-g),l.y=Math.round(l.y+n.y-b-p-d));l.width=Math.round(n.width+2*b+q+g+e);l.height=Math.round(n.height+2*b+p+d+f);this.model.setGeometry(a[k],l);this.moveCells(m,b+q-n.x+g,b+p-n.y+d)}}}}}finally{this.model.endUpdate()}return a};
+mxGraph.prototype.updateGroupBounds=function(a,b,c,d,e,f,g){null==a&&(a=this.getSelectionCells());b=null!=b?b:0;c=null!=c?c:!1;d=null!=d?d:0;e=null!=e?e:0;f=null!=f?f:0;g=null!=g?g:0;this.model.beginUpdate();try{for(var k=a.length-1;0<=k;k--){var l=this.getCellGeometry(a[k]);if(null!=l){var n=this.getChildCells(a[k]);if(null!=n&&0<n.length){var m=this.getBoundingBoxFromGeometry(n,!0);if(null!=m&&0<m.width&&0<m.height){var p=0,q=0;if(this.isSwimlane(a[k]))var s=this.getStartSize(a[k]),p=s.width,q=
+s.height;l=l.clone();c&&(l.x=Math.round(l.x+m.x-b-p-g),l.y=Math.round(l.y+m.y-b-q-d));l.width=Math.round(m.width+2*b+p+g+e);l.height=Math.round(m.height+2*b+q+d+f);this.model.setGeometry(a[k],l);this.moveCells(n,b+p-m.x+g,b+q-m.y+d)}}}}}finally{this.model.endUpdate()}return a};
mxGraph.prototype.getBoundingBox=function(a){var b=null;if(null!=a&&0<a.length)for(var c=0;c<a.length;c++)if(this.model.isVertex(a[c])||this.model.isEdge(a[c])){var d=this.view.getBoundingBox(this.view.getState(a[c]),!0);null!=d&&(null==b?b=mxRectangle.fromRectangle(d):b.add(d))}return b};
-mxGraph.prototype.cloneCells=function(a,b,c){b=null!=b?b:!0;var d=null;if(null!=a){for(var e=new mxDictionary,d=[],f=0;f<a.length;f++)e.put(a[f],!0),d.push(a[f]);if(0<d.length)for(var g=this.view.scale,k=this.view.translate,d=this.model.cloneCells(a,!0,c),f=0;f<a.length;f++)if(!b&&this.model.isEdge(d[f])&&null!=this.getEdgeValidationError(d[f],this.model.getTerminal(d[f],!0),this.model.getTerminal(d[f],!1)))d[f]=null;else{var l=this.model.getGeometry(d[f]);if(null!=l){var m=this.view.getState(a[f]),
-n=this.view.getState(this.model.getParent(a[f]));if(null!=m&&null!=n)if(c=n.origin.x,n=n.origin.y,this.model.isEdge(d[f])){for(var m=m.absolutePoints,q=this.model.getTerminal(a[f],!0);null!=q&&!e.get(q);)q=this.model.getParent(q);null==q&&l.setTerminalPoint(new mxPoint(m[0].x/g-k.x,m[0].y/g-k.y),!0);for(q=this.model.getTerminal(a[f],!1);null!=q&&!e.get(q);)q=this.model.getParent(q);null==q&&(q=m.length-1,l.setTerminalPoint(new mxPoint(m[q].x/g-k.x,m[q].y/g-k.y),!1));l=l.points;if(null!=l)for(m=0;m<
-l.length;m++)l[m].x+=c,l[m].y+=n}else l.translate(c,n)}}else d=[]}return d};mxGraph.prototype.insertVertex=function(a,b,c,d,e,f,g,k,l){b=this.createVertex(a,b,c,d,e,f,g,k,l);return this.addCell(b,a)};mxGraph.prototype.createVertex=function(a,b,c,d,e,f,g,k,l){a=new mxGeometry(d,e,f,g);a.relative=null!=l?l:!1;c=new mxCell(c,a,k);c.setId(b);c.setVertex(!0);c.setConnectable(!0);return c};mxGraph.prototype.insertEdge=function(a,b,c,d,e,f){b=this.createEdge(a,b,c,d,e,f);return this.addEdge(b,a,d,e)};
+mxGraph.prototype.cloneCells=function(a,b,c){b=null!=b?b:!0;var d=null;if(null!=a){for(var e=new mxDictionary,d=[],f=0;f<a.length;f++)e.put(a[f],!0),d.push(a[f]);if(0<d.length)for(var g=this.view.scale,k=this.view.translate,d=this.model.cloneCells(a,!0,c),f=0;f<a.length;f++)if(!b&&this.model.isEdge(d[f])&&null!=this.getEdgeValidationError(d[f],this.model.getTerminal(d[f],!0),this.model.getTerminal(d[f],!1)))d[f]=null;else{var l=this.model.getGeometry(d[f]);if(null!=l){var n=this.view.getState(a[f]),
+m=this.view.getState(this.model.getParent(a[f]));if(null!=n&&null!=m)if(c=m.origin.x,m=m.origin.y,this.model.isEdge(d[f])){for(var n=n.absolutePoints,p=this.model.getTerminal(a[f],!0);null!=p&&!e.get(p);)p=this.model.getParent(p);null==p&&l.setTerminalPoint(new mxPoint(n[0].x/g-k.x,n[0].y/g-k.y),!0);for(p=this.model.getTerminal(a[f],!1);null!=p&&!e.get(p);)p=this.model.getParent(p);null==p&&(p=n.length-1,l.setTerminalPoint(new mxPoint(n[p].x/g-k.x,n[p].y/g-k.y),!1));l=l.points;if(null!=l)for(n=0;n<
+l.length;n++)l[n].x+=c,l[n].y+=m}else l.translate(c,m)}}else d=[]}return d};mxGraph.prototype.insertVertex=function(a,b,c,d,e,f,g,k,l){b=this.createVertex(a,b,c,d,e,f,g,k,l);return this.addCell(b,a)};mxGraph.prototype.createVertex=function(a,b,c,d,e,f,g,k,l){a=new mxGeometry(d,e,f,g);a.relative=null!=l?l:!1;c=new mxCell(c,a,k);c.setId(b);c.setVertex(!0);c.setConnectable(!0);return c};mxGraph.prototype.insertEdge=function(a,b,c,d,e,f){b=this.createEdge(a,b,c,d,e,f);return this.addEdge(b,a,d,e)};
mxGraph.prototype.createEdge=function(a,b,c,d,e,f){a=new mxCell(c,new mxGeometry,f);a.setId(b);a.setEdge(!0);a.geometry.relative=!0;return a};mxGraph.prototype.addEdge=function(a,b,c,d,e){return this.addCell(a,b,e,c,d)};mxGraph.prototype.addCell=function(a,b,c,d,e){return this.addCells([a],b,c,d,e)[0]};
mxGraph.prototype.addCells=function(a,b,c,d,e){null==b&&(b=this.getDefaultParent());null==c&&(c=this.model.getChildCount(b));this.model.beginUpdate();try{this.cellsAdded(a,b,c,d,e,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",a,"parent",b,"index",c,"source",d,"target",e))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.cellsAdded=function(a,b,c,d,e,f,g){if(null!=a&&null!=b&&null!=c){this.model.beginUpdate();try{for(var k=f?this.view.getState(b):null,l=null!=k?k.origin:null,m=new mxPoint(0,0),k=0;k<a.length;k++)if(null==a[k])c--;else{var n=this.model.getParent(a[k]);if(null!=l&&a[k]!=b&&b!=n){var q=this.view.getState(n),p=null!=q?q.origin:m,r=this.model.getGeometry(a[k]);if(null!=r){var s=p.x-l.x,t=p.y-l.y,r=r.clone();r.translate(s,t);!r.relative&&this.model.isVertex(a[k])&&!this.isAllowNegativeCoordinates()&&
-(r.x=Math.max(0,r.x),r.y=Math.max(0,r.y));this.model.setGeometry(a[k],r)}}b==n&&c+k>this.model.getChildCount(b)&&c--;this.model.add(b,a[k],c+k);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[k],!0);this.isExtendParentsOnAdd(a[k])&&this.isExtendParent(a[k])&&this.extendParent(a[k]);(null==g||g)&&this.constrainChild(a[k]);null!=d&&this.cellConnected(a[k],d,!0);null!=e&&this.cellConnected(a[k],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 k=f?this.view.getState(b):null,l=null!=k?k.origin:null,n=new mxPoint(0,0),k=0;k<a.length;k++)if(null==a[k])c--;else{var m=this.model.getParent(a[k]);if(null!=l&&a[k]!=b&&b!=m){var p=this.view.getState(m),q=null!=p?p.origin:n,s=this.model.getGeometry(a[k]);if(null!=s){var r=q.x-l.x,t=q.y-l.y,s=s.clone();s.translate(r,t);!s.relative&&this.model.isVertex(a[k])&&!this.isAllowNegativeCoordinates()&&
+(s.x=Math.max(0,s.x),s.y=Math.max(0,s.y));this.model.setGeometry(a[k],s)}}b==m&&c+k>this.model.getChildCount(b)&&c--;this.model.add(b,a[k],c+k);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[k],!0);this.isExtendParentsOnAdd(a[k])&&this.isExtendParent(a[k])&&this.extendParent(a[k]);(null==g||g)&&this.constrainChild(a[k]);null!=d&&this.cellConnected(a[k],d,!0);null!=e&&this.cellConnected(a[k],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;d<c;d++)this.autoSizeCell(this.model.getChildAt(a,d));this.getModel().isVertex(a)&&this.isAutoSizeCell(a)&&this.updateCellSize(a)};
mxGraph.prototype.removeCells=function(a,b){b=null!=b?b:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));b&&(a=this.getDeletableCells(this.addAllEdges(a)));this.model.beginUpdate();try{this.cellsRemoved(a),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",a,"includeEdges",b))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.cellsRemoved=function(a){if(null!=a&&0<a.length){var b=this.view.scale,c=this.view.translate;this.model.beginUpdate();try{for(var d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++){for(var f=this.getAllEdges([a[e]]),g=mxUtils.bind(this,function(d,g){var n=this.model.getGeometry(d);if(null!=n){var q=this.view.getState(d);if(null!=q){for(var p=q.getVisibleTerminal(g),r=!1;null!=p;){if(a[e]==p){r=!0;break}p=this.model.getParent(p)}if(r){var p=c.x,r=c.y,s=this.view.getState(this.model.getParent(d));
-null!=s&&this.model.isVertex(s.cell)&&(p=s.x/b,r=s.y/b);n=n.clone();q=q.absolutePoints;s=g?0:q.length-1;n.setTerminalPoint(new mxPoint(q[s].x/b-p,q[s].y/b-r),g);this.model.setTerminal(f[k],null,g);this.model.setGeometry(f[k],n)}}}}),k=0;k<f.length;k++)d.get(f[k])||(g(f[k],!0),g(f[k],!1));this.model.remove(a[e])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",a))}finally{this.model.endUpdate()}}};
-mxGraph.prototype.splitEdge=function(a,b,c,d,e){d=d||0;e=e||0;var f=this.model.getParent(a),g=this.model.getTerminal(a,!0);this.model.beginUpdate();try{if(null==c){c=this.cloneCells([a])[0];var k=this.view.getState(a),l=this.getCellGeometry(c);if(null!=l&&null!=l.points&&null!=k){var m=this.view.translate,n=this.view.scale,q=mxUtils.findNearestSegment(k,(d+m.x)*n,(e+m.y)*n);l.points=l.points.slice(0,q);l=this.getCellGeometry(a);null!=l&&null!=l.points&&(l=l.clone(),l.points=l.points.slice(q),this.model.setGeometry(a,
+mxGraph.prototype.cellsRemoved=function(a){if(null!=a&&0<a.length){var b=this.view.scale,c=this.view.translate;this.model.beginUpdate();try{for(var d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++){for(var f=this.getAllEdges([a[e]]),g=mxUtils.bind(this,function(d,g){var m=this.model.getGeometry(d);if(null!=m){var p=this.view.getState(d);if(null!=p){for(var q=p.getVisibleTerminal(g),s=!1;null!=q;){if(a[e]==q){s=!0;break}q=this.model.getParent(q)}if(s){var q=c.x,s=c.y,r=this.view.getState(this.model.getParent(d));
+null!=r&&this.model.isVertex(r.cell)&&(q=r.x/b,s=r.y/b);m=m.clone();p=p.absolutePoints;r=g?0:p.length-1;m.setTerminalPoint(new mxPoint(p[r].x/b-q,p[r].y/b-s),g);this.model.setTerminal(f[k],null,g);this.model.setGeometry(f[k],m)}}}}),k=0;k<f.length;k++)d.get(f[k])||(g(f[k],!0),g(f[k],!1));this.model.remove(a[e])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",a))}finally{this.model.endUpdate()}}};
+mxGraph.prototype.splitEdge=function(a,b,c,d,e){d=d||0;e=e||0;var f=this.model.getParent(a),g=this.model.getTerminal(a,!0);this.model.beginUpdate();try{if(null==c){c=this.cloneCells([a])[0];var k=this.view.getState(a),l=this.getCellGeometry(c);if(null!=l&&null!=l.points&&null!=k){var n=this.view.translate,m=this.view.scale,p=mxUtils.findNearestSegment(k,(d+n.x)*m,(e+n.y)*m);l.points=l.points.slice(0,p);l=this.getCellGeometry(a);null!=l&&null!=l.points&&(l=l.clone(),l.points=l.points.slice(p),this.model.setGeometry(a,
l))}}this.cellsMoved(b,d,e,!1,!1);this.cellsAdded(b,f,this.model.getChildCount(f),null,null,!0);this.cellsAdded([c],f,this.model.getChildCount(f),g,b[0],!1);this.cellConnected(a,b[0],!0);this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",a,"cells",b,"newEdge",c,"dx",d,"dy",e))}finally{this.model.endUpdate()}return c};
mxGraph.prototype.toggleCells=function(a,b,c){null==b&&(b=this.getSelectionCells());c&&(b=this.addAllEdges(b));this.model.beginUpdate();try{this.cellsToggled(b,a),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",a,"cells",b,"includeEdges",c))}finally{this.model.endUpdate()}return b};mxGraph.prototype.cellsToggled=function(a,b){if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}}};
mxGraph.prototype.foldCells=function(a,b,c,d,e){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing(!1);this.model.beginUpdate();try{this.cellsFolded(c,a,b,d),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",a,"recurse",b,"cells",c))}finally{this.model.endUpdate()}return c};
@@ -1340,7 +1340,7 @@ mxGraph.prototype.updateAlternateBounds=function(a,b,c){if(null!=a&&null!=b){c=t
0);0!=e&&(a=b.alternateBounds.getCenterX()-b.getCenterX(),c=b.alternateBounds.getCenterY()-b.getCenterY(),d=Math.cos(e),e=Math.sin(e),b.alternateBounds.x+=d*a-e*c-a,b.alternateBounds.y+=e*a+d*c-c)}}};mxGraph.prototype.addAllEdges=function(a){var b=a.slice();return mxUtils.removeDuplicates(b.concat(this.getAllEdges(a)))};
mxGraph.prototype.getAllEdges=function(a){var b=[];if(null!=a)for(var c=0;c<a.length;c++){for(var d=this.model.getEdgeCount(a[c]),e=0;e<d;e++)b.push(this.model.getEdgeAt(a[c],e));d=this.model.getChildren(a[c]);b=b.concat(this.getAllEdges(d))}return b};mxGraph.prototype.updateCellSize=function(a,b){b=null!=b?b:!1;this.model.beginUpdate();try{this.cellSizeUpdated(a,b),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",a,"ignoreChildren",b))}finally{this.model.endUpdate()}return a};
mxGraph.prototype.cellSizeUpdated=function(a,b){if(null!=a){this.model.beginUpdate();try{var c=this.getPreferredSizeForCell(a),d=this.model.getGeometry(a);if(null!=c&&null!=d){var e=this.isCellCollapsed(a),d=d.clone();if(this.isSwimlane(a)){var f=this.view.getState(a),g=null!=f?f.style:this.getCellStyle(a),k=this.model.getStyle(a);null==k&&(k="");mxUtils.getValue(g,mxConstants.STYLE_HORIZONTAL,!0)?(k=mxUtils.setStyle(k,mxConstants.STYLE_STARTSIZE,c.height+8),e&&(d.height=c.height+8),d.width=c.width):
-(k=mxUtils.setStyle(k,mxConstants.STYLE_STARTSIZE,c.width+8),e&&(d.width=c.width+8),d.height=c.height);this.model.setStyle(a,k)}else d.width=c.width,d.height=c.height;if(!b&&!e){var l=this.view.getBounds(this.model.getChildren(a));if(null!=l){var m=this.view.translate,n=this.view.scale,q=(l.y+l.height)/n-d.y-m.y;d.width=Math.max(d.width,(l.x+l.width)/n-d.x-m.x);d.height=Math.max(d.height,q)}}this.cellsResized([a],[d],!1)}}finally{this.model.endUpdate()}}};
+(k=mxUtils.setStyle(k,mxConstants.STYLE_STARTSIZE,c.width+8),e&&(d.width=c.width+8),d.height=c.height);this.model.setStyle(a,k)}else d.width=c.width,d.height=c.height;if(!b&&!e){var l=this.view.getBounds(this.model.getChildren(a));if(null!=l){var n=this.view.translate,m=this.view.scale,p=(l.y+l.height)/m-d.y-n.y;d.width=Math.max(d.width,(l.x+l.width)/m-d.x-n.x);d.height=Math.max(d.height,p)}}this.cellsResized([a],[d],!1)}}finally{this.model.endUpdate()}}};
mxGraph.prototype.getPreferredSizeForCell=function(a){var b=null;if(null!=a){var c=this.view.getState(a)||this.view.createState(a),d=c.style;if(!this.model.isEdge(a)){var e=d[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE;a=b=0;if((null!=this.getImage(c)||null!=d[mxConstants.STYLE_IMAGE])&&d[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_LABEL)d[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(b+=parseFloat(d[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),d[mxConstants.STYLE_ALIGN]!=
mxConstants.ALIGN_CENTER&&(a+=parseFloat(d[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize);b+=2*(d[mxConstants.STYLE_SPACING]||0);b+=d[mxConstants.STYLE_SPACING_LEFT]||0;b+=d[mxConstants.STYLE_SPACING_RIGHT]||0;a+=2*(d[mxConstants.STYLE_SPACING]||0);a+=d[mxConstants.STYLE_SPACING_TOP]||0;a+=d[mxConstants.STYLE_SPACING_BOTTOM]||0;var f=this.getFoldingImage(c);null!=f&&(b+=f.width+8);f=this.cellRenderer.getLabelValue(c);null!=f&&0<f.length?(this.isHtmlLabel(c.cell)||(f=mxUtils.htmlEntities(f)),
f=f.replace(/\n/g,"\x3cbr\x3e"),e=mxUtils.getSizeForString(f,e,d[mxConstants.STYLE_FONTFAMILY]),c=e.width+b,a=e.height+a,mxUtils.getValue(d,mxConstants.STYLE_HORIZONTAL,!0)||(d=a,a=c,c=d),this.gridEnabled&&(c=this.snap(c+this.gridSize/2),a=this.snap(a+this.gridSize/2)),b=new mxRectangle(0,0,c,a)):(d=4*this.gridSize,b=new mxRectangle(0,0,d,d))}}return b};mxGraph.prototype.resizeCell=function(a,b,c){return this.resizeCells([a],[b],c)[0]};
@@ -1348,11 +1348,11 @@ mxGraph.prototype.resizeCells=function(a,b,c){c=null!=c?c:this.isRecursiveResize
mxGraph.prototype.cellsResized=function(a,b,c){c=null!=c?c:!1;if(null!=a&&null!=b&&a.length==b.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++)this.cellResized(a[d],b[d],!1,c),this.isExtendParent(a[d])&&this.extendParent(a[d]),this.constrainChild(a[d]);this.resetEdgesOnResize&&this.resetEdges(a);this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",a,"bounds",b))}finally{this.model.endUpdate()}}};
mxGraph.prototype.cellResized=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e&&(e.x!=b.x||e.y!=b.y||e.width!=b.width||e.height!=b.height)){e=e.clone();!c&&e.relative?(c=e.offset,null!=c&&(c.x+=b.x-e.x,c.y+=b.y-e.y)):(e.x=b.x,e.y=b.y);e.width=b.width;e.height=b.height;!e.relative&&this.model.isVertex(a)&&!this.isAllowNegativeCoordinates()&&(e.x=Math.max(0,e.x),e.y=Math.max(0,e.y));this.model.beginUpdate();try{d&&this.resizeChildCells(a,e),this.model.setGeometry(a,e),this.constrainChildCells(a)}finally{this.model.endUpdate()}}};
mxGraph.prototype.resizeChildCells=function(a,b){for(var c=this.model.getGeometry(a),d=b.width/c.width,c=b.height/c.height,e=this.model.getChildCount(a),f=0;f<e;f++)this.scaleCell(this.model.getChildAt(a,f),d,c,!0)};mxGraph.prototype.constrainChildCells=function(a){for(var b=this.model.getChildCount(a),c=0;c<b;c++)this.constrainChild(this.model.getChildAt(a,c))};
-mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.view.getState(a),f=null!=f?f.style:this.getCellStyle(a),e=e.clone(),g=e.x,k=e.y,l=e.width,m=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=l*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=l);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=m*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=m);this.isCellMovable(a)||(e.x=g,e.y=k);this.isCellResizable(a)||
-(e.width=l,e.height=m);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);if(null!=b&&null!=c&&!this.isCellCollapsed(b)&&(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width<a.x+a.width||c.height<a.y+a.height)))c=c.clone(),c.width=Math.max(c.width,a.x+a.width),c.height=Math.max(c.height,a.y+a.height),this.cellsResized([b],[c],!1)}};
+mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.view.getState(a),f=null!=f?f.style:this.getCellStyle(a),e=e.clone(),g=e.x,k=e.y,l=e.width,n=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=l*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=l);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=n*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=n);this.isCellMovable(a)||(e.x=g,e.y=k);this.isCellResizable(a)||
+(e.width=l,e.height=n);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);if(null!=b&&null!=c&&!this.isCellCollapsed(b)&&(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width<a.x+a.width||c.height<a.y+a.height)))c=c.clone(),c.width=Math.max(c.width,a.x+a.width),c.height=Math.max(c.height,a.y+a.height),this.cellsResized([b],[c],!1)}};
mxGraph.prototype.importCells=function(a,b,c,d,e,f){return this.moveCells(a,b,c,!0,d,e,f)};
-mxGraph.prototype.moveCells=function(a,b,c,d,e,f,g){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:!1;if(null!=a&&(0!=b||0!=c||d||null!=e)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(var m=mxUtils.bind(this,function(a){for(;null!=a;){if(k.get(a))return!0;a=this.model.getParent(a)}return!1}),n=[],l=0;l<a.length;l++){var q=this.getCellGeometry(a[l]),p=this.model.getParent(a[l]);(null==q||!q.relative||!this.model.isEdge(p)||
-!m(this.model.getTerminal(p,!0))&&!m(this.model.getTerminal(p,!1)))&&n.push(a[l])}a=n;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==e&&(e=this.getDefaultParent()));var r=this.isAllowNegativeCoordinates();null!=e&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,b,c,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==e,this.isExtendParentsOnMove()&&null==e);this.setAllowNegativeCoordinates(r);if(null!=e){var s=this.model.getChildCount(e);this.cellsAdded(a,e,s,null,
+mxGraph.prototype.moveCells=function(a,b,c,d,e,f,g){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:!1;if(null!=a&&(0!=b||0!=c||d||null!=e)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(var n=mxUtils.bind(this,function(a){for(;null!=a;){if(k.get(a))return!0;a=this.model.getParent(a)}return!1}),m=[],l=0;l<a.length;l++){var p=this.getCellGeometry(a[l]),q=this.model.getParent(a[l]);(null==p||!p.relative||!this.model.isEdge(q)||
+!n(this.model.getTerminal(q,!0))&&!n(this.model.getTerminal(q,!1)))&&m.push(a[l])}a=m;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==e&&(e=this.getDefaultParent()));var s=this.isAllowNegativeCoordinates();null!=e&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,b,c,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==e,this.isExtendParentsOnMove()&&null==e);this.setAllowNegativeCoordinates(s);if(null!=e){var r=this.model.getChildCount(e);this.cellsAdded(a,e,r,null,
null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",a,"dx",b,"dy",c,"clone",d,"target",e,"event",f))}finally{this.model.endUpdate()}}return a};
mxGraph.prototype.cellsMoved=function(a,b,c,d,e,f){if(null!=a&&(0!=b||0!=c)){f=null!=f?f:!1;this.model.beginUpdate();try{d&&this.disconnectGraph(a);for(var g=0;g<a.length;g++)this.translateCell(a[g],b,c),f&&this.isExtendParent(a[g])?this.extendParent(a[g]):e&&this.constrainChild(a[g]);this.resetEdgesOnMove&&this.resetEdges(a);this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",a,"dx",b,"dy",c,"disconnect",d))}finally{this.model.endUpdate()}}};
mxGraph.prototype.translateCell=function(a,b,c){var d=this.model.getGeometry(a);if(null!=d){b=parseFloat(b);c=parseFloat(c);d=d.clone();d.translate(b,c);!d.relative&&this.model.isVertex(a)&&!this.isAllowNegativeCoordinates()&&(d.x=Math.max(0,parseFloat(d.x)),d.y=Math.max(0,parseFloat(d.y)));if(d.relative&&!this.model.isEdge(a)){var e=this.model.getParent(a),f=0;this.model.isVertex(e)&&(f=this.view.getState(e),e=null!=f?f.style:this.getCellStyle(e),f=mxUtils.getValue(e,mxConstants.STYLE_ROTATION,0));
@@ -1365,18 +1365,18 @@ e.y+e.height&&(g-=d.y+d.height-e.y-e.height-g);d.x<e.x&&(f-=d.x-e.x);d.y<e.y&&(g
mxGraph.prototype.resetEdges=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);this.model.beginUpdate();try{for(c=0;c<a.length;c++){var d=this.model.getEdges(a[c]);if(null!=d)for(var e=0;e<d.length;e++){var f=this.view.getState(d[e]),g=null!=f?f.getVisibleTerminal(!0):this.view.getVisibleTerminal(d[e],!0),k=null!=f?f.getVisibleTerminal(!1):this.view.getVisibleTerminal(d[e],!1);(!b.get(g)||!b.get(k))&&this.resetEdge(d[e])}this.resetEdges(this.model.getChildren(a[c]))}}finally{this.model.endUpdate()}}};
mxGraph.prototype.resetEdge=function(a){var b=this.model.getGeometry(a);null!=b&&null!=b.points&&0<b.points.length&&(b=b.clone(),b.points=[],this.model.setGeometry(a,b));return a};
mxGraph.prototype.getOutlineConstraint=function(a,b,c){if(null!=b.shape){c=this.view.getPerimeterBounds(b);var d=b.style[mxConstants.STYLE_DIRECTION];if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH){c.x+=c.width/2-c.height/2;c.y+=c.height/2-c.width/2;var e=c.width;c.width=c.height;c.height=e}var f=mxUtils.toRadians(b.shape.getShapeRotation());if(0!=f){var e=Math.cos(-f),f=Math.sin(-f),g=new mxPoint(c.getCenterX(),c.getCenterY());a=mxUtils.getRotatedPoint(a,e,f,g)}var g=f=1,k=0,l=
-0;if(this.getModel().isVertex(b.cell)){var m=b.style[mxConstants.STYLE_FLIPH],n=b.style[mxConstants.STYLE_FLIPV];null!=b.shape&&null!=b.shape.stencil&&(m=1==mxUtils.getValue(b.style,"stencilFlipH",0)||m,n=1==mxUtils.getValue(b.style,"stencilFlipV",0)||n);if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH)e=m,m=n,n=e;m&&(f=-1,k=-c.width);n&&(g=-1,l=-c.height)}a=new mxPoint((a.x-c.x)*f-k+c.x,(a.y-c.y)*g-l+c.y);b=Math.round(1E3*(a.x-c.x)/c.width)/1E3;a=Math.round(1E3*(a.y-c.y)/c.height)/
+0;if(this.getModel().isVertex(b.cell)){var n=b.style[mxConstants.STYLE_FLIPH],m=b.style[mxConstants.STYLE_FLIPV];null!=b.shape&&null!=b.shape.stencil&&(n=1==mxUtils.getValue(b.style,"stencilFlipH",0)||n,m=1==mxUtils.getValue(b.style,"stencilFlipV",0)||m);if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH)e=n,n=m,m=e;n&&(f=-1,k=-c.width);m&&(g=-1,l=-c.height)}a=new mxPoint((a.x-c.x)*f-k+c.x,(a.y-c.y)*g-l+c.y);b=Math.round(1E3*(a.x-c.x)/c.width)/1E3;a=Math.round(1E3*(a.y-c.y)/c.height)/
1E3;return new mxConnectionConstraint(new mxPoint(b,a),!1)}return null};mxGraph.prototype.getAllConnectionConstraints=function(a,b){return null!=a&&null!=a.shape&&null!=a.shape.stencil?a.shape.stencil.constraints:null};
mxGraph.prototype.getConnectionConstraint=function(a,b,c){b=null;var d=a.style[c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=d){var e=a.style[c?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=e&&(b=new mxPoint(parseFloat(d),parseFloat(e)))}d=!1;null!=b&&(d=mxUtils.getValue(a.style,c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0));return new mxConnectionConstraint(b,d)};
mxGraph.prototype.setConnectionConstraint=function(a,b,c,d){if(null!=d){this.model.beginUpdate();try{null==d||null==d.point?(this.setCellStyles(c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[a])):null!=d.point&&(this.setCellStyles(c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,d.point.x,[a]),this.setCellStyles(c?
mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,d.point.y,[a]),d.perimeter?this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[a]):this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[a]))}finally{this.model.endUpdate()}}};
-mxGraph.prototype.getConnectionPoint=function(a,b){var c=null;if(null!=a&&null!=b.point){var d=this.view.getPerimeterBounds(a),e=new mxPoint(d.getCenterX(),d.getCenterY()),f=a.style[mxConstants.STYLE_DIRECTION],g=0;null!=f&&(f==mxConstants.DIRECTION_NORTH?g+=270:f==mxConstants.DIRECTION_WEST?g+=180:f==mxConstants.DIRECTION_SOUTH&&(g+=90),(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)&&d.rotate90());if(null!=b.point){var k=c=1,l=0,m=0;if(this.getModel().isVertex(a.cell)){var n=a.style[mxConstants.STYLE_FLIPH],
-q=a.style[mxConstants.STYLE_FLIPV];null!=a.shape&&null!=a.shape.stencil&&(n=1==mxUtils.getValue(a.style,"stencilFlipH",0)||n,q=1==mxUtils.getValue(a.style,"stencilFlipV",0)||q);if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=n,n=q,q=f;n&&(c=-1,l=-d.width);q&&(k=-1,m=-d.height)}c=new mxPoint(d.x+b.point.x*d.width*c-l,d.y+b.point.y*d.height*k-m)}f=a.style[mxConstants.STYLE_ROTATION]||0;b.perimeter?(0!=g&&null!=c&&(k=d=0,90==g?k=1:180==g?d=-1:270==g&&(k=-1),c=mxUtils.getRotatedPoint(c,
+mxGraph.prototype.getConnectionPoint=function(a,b){var c=null;if(null!=a&&null!=b.point){var d=this.view.getPerimeterBounds(a),e=new mxPoint(d.getCenterX(),d.getCenterY()),f=a.style[mxConstants.STYLE_DIRECTION],g=0;null!=f&&(f==mxConstants.DIRECTION_NORTH?g+=270:f==mxConstants.DIRECTION_WEST?g+=180:f==mxConstants.DIRECTION_SOUTH&&(g+=90),(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)&&d.rotate90());if(null!=b.point){var k=c=1,l=0,n=0;if(this.getModel().isVertex(a.cell)){var m=a.style[mxConstants.STYLE_FLIPH],
+p=a.style[mxConstants.STYLE_FLIPV];null!=a.shape&&null!=a.shape.stencil&&(m=1==mxUtils.getValue(a.style,"stencilFlipH",0)||m,p=1==mxUtils.getValue(a.style,"stencilFlipV",0)||p);if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=m,m=p,p=f;m&&(c=-1,l=-d.width);p&&(k=-1,n=-d.height)}c=new mxPoint(d.x+b.point.x*d.width*c-l,d.y+b.point.y*d.height*k-n)}f=a.style[mxConstants.STYLE_ROTATION]||0;b.perimeter?(0!=g&&null!=c&&(k=d=0,90==g?k=1:180==g?d=-1:270==g&&(k=-1),c=mxUtils.getRotatedPoint(c,
d,k,e)),null!=c&&b.perimeter&&(c=this.view.getPerimeterPoint(a,c,!1))):f+=g;0!=f&&null!=c&&(g=mxUtils.toRadians(f),d=Math.cos(g),k=Math.sin(g),c=mxUtils.getRotatedPoint(c,d,k,e))}null!=c&&(c.x=Math.round(c.x),c.y=Math.round(c.y));return c};mxGraph.prototype.connectCell=function(a,b,c,d){this.model.beginUpdate();try{var e=this.model.getTerminal(a,c);this.cellConnected(a,b,c,d);this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",a,"terminal",b,"source",c,"previous",e))}finally{this.model.endUpdate()}return a};
mxGraph.prototype.cellConnected=function(a,b,c,d){if(null!=a){this.model.beginUpdate();try{var e=this.model.getTerminal(a,c);this.setConnectionConstraint(a,b,c,d);this.isPortsEnabled()&&(d=null,this.isPort(b)&&(d=b.getId(),b=this.getTerminalForPort(b,c)),this.setCellStyles(c?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,d,[a]));this.model.setTerminal(a,b,c);this.resetEdgesOnConnect&&this.resetEdge(a);this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",a,"terminal",b,"source",
c,"previous",e))}finally{this.model.endUpdate()}}};
-mxGraph.prototype.disconnectGraph=function(a){if(null!=a){this.model.beginUpdate();try{for(var b=this.view.scale,c=this.view.translate,d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++)if(this.model.isEdge(a[e])){var f=this.model.getGeometry(a[e]);if(null!=f){var g=this.view.getState(a[e]),k=this.view.getState(this.model.getParent(a[e]));if(null!=g&&null!=k){var f=f.clone(),l=-k.origin.x,m=-k.origin.y,n=g.absolutePoints,q=this.model.getTerminal(a[e],!0);if(null!=q&&this.isCellDisconnectable(a[e],
-q,!0)){for(;null!=q&&!d.get(q);)q=this.model.getParent(q);null==q&&(f.setTerminalPoint(new mxPoint(n[0].x/b-c.x+l,n[0].y/b-c.y+m),!0),this.model.setTerminal(a[e],null,!0))}var p=this.model.getTerminal(a[e],!1);if(null!=p&&this.isCellDisconnectable(a[e],p,!1)){for(;null!=p&&!d.get(p);)p=this.model.getParent(p);if(null==p){var r=n.length-1;f.setTerminalPoint(new mxPoint(n[r].x/b-c.x+l,n[r].y/b-c.y+m),!1);this.model.setTerminal(a[e],null,!1)}}this.model.setGeometry(a[e],f)}}}}finally{this.model.endUpdate()}}};
+mxGraph.prototype.disconnectGraph=function(a){if(null!=a){this.model.beginUpdate();try{for(var b=this.view.scale,c=this.view.translate,d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++)if(this.model.isEdge(a[e])){var f=this.model.getGeometry(a[e]);if(null!=f){var g=this.view.getState(a[e]),k=this.view.getState(this.model.getParent(a[e]));if(null!=g&&null!=k){var f=f.clone(),l=-k.origin.x,n=-k.origin.y,m=g.absolutePoints,p=this.model.getTerminal(a[e],!0);if(null!=p&&this.isCellDisconnectable(a[e],
+p,!0)){for(;null!=p&&!d.get(p);)p=this.model.getParent(p);null==p&&(f.setTerminalPoint(new mxPoint(m[0].x/b-c.x+l,m[0].y/b-c.y+n),!0),this.model.setTerminal(a[e],null,!0))}var q=this.model.getTerminal(a[e],!1);if(null!=q&&this.isCellDisconnectable(a[e],q,!1)){for(;null!=q&&!d.get(q);)q=this.model.getParent(q);if(null==q){var s=m.length-1;f.setTerminalPoint(new mxPoint(m[s].x/b-c.x+l,m[s].y/b-c.y+n),!1);this.model.setTerminal(a[e],null,!1)}}this.model.setGeometry(a[e],f)}}}}finally{this.model.endUpdate()}}};
mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot};mxGraph.prototype.getTranslateForRoot=function(a){return null};mxGraph.prototype.isPort=function(a){return!1};mxGraph.prototype.getTerminalForPort=function(a,b){return this.model.getParent(a)};mxGraph.prototype.getChildOffsetForCell=function(a){return null};mxGraph.prototype.enterGroup=function(a){a=a||this.getSelectionCell();null!=a&&this.isValidRoot(a)&&(this.view.setCurrentRoot(a),this.clearSelection())};
mxGraph.prototype.exitGroup=function(){var a=this.model.getRoot(),b=this.getCurrentRoot();if(null!=b){for(var c=this.model.getParent(b);c!=a&&!this.isValidRoot(c)&&this.model.getParent(c)!=a;)c=this.model.getParent(c);c==a||this.model.getParent(c)==a?this.view.setCurrentRoot(null):this.view.setCurrentRoot(c);null!=this.view.getState(b)&&this.setSelectionCell(b)}};mxGraph.prototype.home=function(){var a=this.getCurrentRoot();null!=a&&(this.view.setCurrentRoot(null),null!=this.view.getState(a)&&this.setSelectionCell(a))};
mxGraph.prototype.isValidRoot=function(a){return null!=a};mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()};mxGraph.prototype.getCellBounds=function(a,b,c){var d=[a];b&&(d=d.concat(this.model.getEdges(a)));d=this.view.getBounds(d);if(c){c=this.model.getChildCount(a);for(var e=0;e<c;e++){var f=this.getCellBounds(this.model.getChildAt(a,e),b,!0);null!=d?d.add(f):d=f}}return d};
@@ -1388,8 +1388,8 @@ this.shiftPreview1.parentNode.removeChild(this.shiftPreview1);this.shiftPreview1
"absolute";this.shiftPreview1.style.overflow="visible";this.shiftPreview2=document.createElement("div");this.shiftPreview2.style.position="absolute";this.shiftPreview2.style.overflow="visible";for(var f=this.shiftPreview1,d=this.container.firstChild;null!=d;)e=d.nextSibling,d!=c.parentNode?f.appendChild(d):f=this.shiftPreview2,d=e;null!=this.shiftPreview1.firstChild&&this.container.insertBefore(this.shiftPreview1,c.parentNode);null!=this.shiftPreview2.firstChild&&this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=
a+"px";this.shiftPreview1.style.top=b+"px";this.shiftPreview2.style.left=a+"px";this.shiftPreview2.style.top=b+"px"}else c.style.left=a+"px",c.style.top=b+"px";this.panDx=a;this.panDy=b;this.fireEvent(new mxEventObject(mxEvent.PAN))}};mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)};mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)};
mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))};mxGraph.prototype.zoomTo=function(a,b){this.zoom(a/this.view.scale,b)};
-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,k=this.getGraphBounds(),l=this.view.translate,m=this.view.scale,n=a?f-k.width:0,q=b?g-k.height:0;e?(k.x-=l.x,k.y-=l.y,a=this.container.scrollWidth,b=this.container.scrollHeight,a>f&&(n=0),b>g&&(q=0),this.view.setTranslate(Math.floor(n/2-k.x),Math.floor(q/2-k.y)),this.container.scrollLeft=(a-f)/
-2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(l.x-k.x*m+n*c/m):l.x,b?Math.floor(l.y-k.y*m+q*d/m):l.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,k=this.getGraphBounds(),l=this.view.translate,n=this.view.scale,m=a?f-k.width:0,p=b?g-k.height:0;e?(k.x-=l.x,k.y-=l.y,a=this.container.scrollWidth,b=this.container.scrollHeight,a>f&&(m=0),b>g&&(p=0),this.view.setTranslate(Math.floor(m/2-k.x),Math.floor(p/2-k.y)),this.container.scrollLeft=(a-f)/
+2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(l.x-k.x*n+m*c/n):l.x,b?Math.floor(l.y-k.y*n+p*d/n):l.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(1<a)var f=(a-1)/
(2*c),d=d*-f,e=e*-f;else f=(1/a-1)/(2*this.view.scale),d*=f,e*=f;this.view.scaleAndTranslate(c,this.view.translate.x+d,this.view.translate.y+e)}else{var f=this.view.translate.x,g=this.view.translate.y,k=this.container.scrollLeft,l=this.container.scrollTop;this.view.setScale(c);d&&(e=d=0,b&&(d=this.container.offsetWidth*(a-1)/2,e=this.container.offsetHeight*(a-1)/2),this.container.scrollLeft=(this.view.translate.x-f)*this.view.scale+Math.round(k*a+d),this.container.scrollTop=(this.view.translate.y-
g)*this.view.scale+Math.round(l*a+e))}};
@@ -1446,14 +1446,14 @@ mxGraph.prototype.getCellAt=function(a,b,c,d,e,f){d=null!=d?d:!0;e=null!=e?e:!0;
mxGraph.prototype.intersects=function(a,b,c){if(null!=a){var d=a.absolutePoints;if(null!=d){a=this.tolerance*this.tolerance;for(var e=d[0],f=1;f<d.length;f++){var g=d[f];if(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,b,c)<=a)return!0;e=g}}else if(e=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0),0!=e&&(d=Math.cos(-e),e=Math.sin(-e),f=new mxPoint(a.getCenterX(),a.getCenterY()),e=mxUtils.getRotatedPoint(new mxPoint(b,c),d,e,f),b=e.x,c=e.y),mxUtils.contains(a,b,c))return!0}return!1};
mxGraph.prototype.hitsSwimlaneContent=function(a,b,c){var d=this.getView().getState(a);a=this.getStartSize(a);if(null!=d){var e=this.getView().getScale();b-=d.x;c-=d.y;if(0<a.width&&0<b&&b>a.width*e||0<a.height&&0<c&&c>a.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.length;c++)this.isCellVisible(a[c])&&b.push(a[c]);return b};mxGraph.prototype.getConnections=function(a,b){return this.getEdges(a,b,!0,!0,!1)};mxGraph.prototype.getIncomingEdges=function(a,b){return this.getEdges(a,b,!0,!1,!1)};mxGraph.prototype.getOutgoingEdges=function(a,b){return this.getEdges(a,b,!1,!0,!1)};
-mxGraph.prototype.getEdges=function(a,b,c,d,e,f){c=null!=c?c:!0;d=null!=d?d:!0;e=null!=e?e:!0;f=null!=f?f:!1;for(var g=[],k=this.isCellCollapsed(a),l=this.model.getChildCount(a),m=0;m<l;m++){var n=this.model.getChildAt(a,m);if(k||!this.isCellVisible(n))g=g.concat(this.model.getEdges(n,c,d))}g=g.concat(this.model.getEdges(a,c,d));k=[];for(m=0;m<g.length;m++)n=this.view.getState(g[m]),l=null!=n?n.getVisibleTerminal(!0):this.view.getVisibleTerminal(g[m],!0),n=null!=n?n.getVisibleTerminal(!1):this.view.getVisibleTerminal(g[m],
-!1),(e&&l==n||l!=n&&(c&&n==a&&(null==b||this.isValidAncestor(l,b,f))||d&&l==a&&(null==b||this.isValidAncestor(n,b,f))))&&k.push(g[m]);return k};mxGraph.prototype.isValidAncestor=function(a,b,c){return c?this.model.isAncestor(b,a):this.model.getParent(a)==b};
+mxGraph.prototype.getEdges=function(a,b,c,d,e,f){c=null!=c?c:!0;d=null!=d?d:!0;e=null!=e?e:!0;f=null!=f?f:!1;for(var g=[],k=this.isCellCollapsed(a),l=this.model.getChildCount(a),n=0;n<l;n++){var m=this.model.getChildAt(a,n);if(k||!this.isCellVisible(m))g=g.concat(this.model.getEdges(m,c,d))}g=g.concat(this.model.getEdges(a,c,d));k=[];for(n=0;n<g.length;n++)m=this.view.getState(g[n]),l=null!=m?m.getVisibleTerminal(!0):this.view.getVisibleTerminal(g[n],!0),m=null!=m?m.getVisibleTerminal(!1):this.view.getVisibleTerminal(g[n],
+!1),(e&&l==m||l!=m&&(c&&m==a&&(null==b||this.isValidAncestor(l,b,f))||d&&l==a&&(null==b||this.isValidAncestor(m,b,f))))&&k.push(g[n]);return k};mxGraph.prototype.isValidAncestor=function(a,b,c){return c?this.model.isAncestor(b,a):this.model.getParent(a)==b};
mxGraph.prototype.getOpposites=function(a,b,c,d){c=null!=c?c:!0;d=null!=d?d:!0;var e=[],f=new mxDictionary;if(null!=a)for(var g=0;g<a.length;g++){var k=this.view.getState(a[g]),l=null!=k?k.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[g],!0),k=null!=k?k.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[g],!1);l==b&&null!=k&&k!=b&&d?f.get(k)||(f.put(k,!0),e.push(k)):k==b&&null!=l&&l!=b&&c&&!f.get(l)&&(f.put(l,!0),e.push(l))}return e};
mxGraph.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.view.getState(d[f]),k=null!=g?g.getVisibleTerminal(!0):this.view.getVisibleTerminal(d[f],!0),g=null!=g?g.getVisibleTerminal(!1):this.view.getVisibleTerminal(d[f],!1);(k==a&&g==b||!c&&k==b&&g==a)&&e.push(d[f])}return e};
mxGraph.prototype.getPointForEvent=function(a,b){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=this.view.scale,e=this.view.translate,f=!1!=b?this.gridSize/2:0;c.x=this.snap(c.x/d-e.x-f);c.y=this.snap(c.y/d-e.y-f);return c};
-mxGraph.prototype.getCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var m=g.getChildCount(e),n=0;n<m;n++){var q=g.getChildAt(e,n),p=this.view.getState(q);if(null!=p&&this.isCellVisible(q)){var r=mxUtils.getValue(p.style,mxConstants.STYLE_ROTATION)||0;0!=r&&(p=mxUtils.getBoundingBox(p,r));(g.isEdge(q)||g.isVertex(q))&&p.x>=a&&p.y+p.height<=l&&p.y>=b&&p.x+p.width<=k?f.push(q):this.getCells(a,
-b,c,d,q,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),k=0;k<g;k++){var l=this.model.getChildAt(c,k),m=this.view.getState(l);this.isCellVisible(l)&&null!=m&&(!d||m.x>=a)&&(!e||m.y>=b)&&f.push(l)}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,k=0,l=0;l<f;l++){var m=e.getChildAt(a,l);if(this.model.isVertex(m)&&this.isCellVisible(m)){for(var n=this.getConnections(m,b?a:null),q=0,p=0,r=0;r<n.length;r++)this.view.getVisibleTerminal(n[r],!0)==m?q++:p++;(c&&0==q&&0<p||!c&&0==p&&0<q)&&d.push(m);n=c?p-q:q-p;n>k&&(k=n,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<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var n=g.getChildCount(e),m=0;m<n;m++){var p=g.getChildAt(e,m),q=this.view.getState(p);if(null!=q&&this.isCellVisible(p)){var s=mxUtils.getValue(q.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(q=mxUtils.getBoundingBox(q,s));(g.isEdge(p)||g.isVertex(p))&&q.x>=a&&q.y+q.height<=l&&q.y>=b&&q.x+q.width<=k?f.push(p):this.getCells(a,
+b,c,d,p,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),k=0;k<g;k++){var l=this.model.getChildAt(c,k),n=this.view.getState(l);this.isCellVisible(l)&&null!=n&&(!d||n.x>=a)&&(!e||n.y>=b)&&f.push(l)}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,k=0,l=0;l<f;l++){var n=e.getChildAt(a,l);if(this.model.isVertex(n)&&this.isCellVisible(n)){for(var m=this.getConnections(n,b?a:null),p=0,q=0,s=0;s<m.length;s++)this.view.getVisibleTerminal(m[s],!0)==n?p++:q++;(c&&0==p&&0<q||!c&&0==q&&0<p)&&d.push(n);m=c?q-p:p-q;m>k&&(k=m,g=n)}}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),0<d)for(var f=0;f<d;f++){var g=this.model.getEdgeAt(a,f),k=this.model.getTerminal(g,!0)==a;if(!b||k)k=this.model.getTerminal(g,!k),this.traverse(k,b,c,g,e)}};mxGraph.prototype.isCellSelected=function(a){return this.getSelectionModel().isSelected(a)};mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()};
mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()};mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length};mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]};mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()};mxGraph.prototype.setSelectionCell=function(a){this.getSelectionModel().setCell(a)};mxGraph.prototype.setSelectionCells=function(a){this.getSelectionModel().setCells(a)};
mxGraph.prototype.addSelectionCell=function(a){this.getSelectionModel().addCell(a)};mxGraph.prototype.addSelectionCells=function(a){this.getSelectionModel().addCells(a)};mxGraph.prototype.removeSelectionCell=function(a){this.getSelectionModel().removeCell(a)};mxGraph.prototype.removeSelectionCells=function(a){this.getSelectionModel().removeCells(a)};mxGraph.prototype.selectRegion=function(a,b){var c=this.getCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};
@@ -1506,7 +1506,7 @@ mxOutline.prototype.getTranslateForEvent=function(a){return new mxPoint(a.getX()
mxOutline.prototype.mouseUp=function(a,b){if(this.active){var c=this.getTranslateForEvent(b),d=c.x,c=c.y;if(0<Math.abs(d)||0<Math.abs(c)){if(this.zoom){var c=this.selectionBorder.bounds.width,e=this.source.getView().scale;this.source.zoomTo(Math.max(this.minScale,e-d*e/c),!1)}else if(!this.source.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.source.container))this.source.panGraph(0,0),d/=this.outline.getView().scale,c/=this.outline.getView().scale,e=this.source.getView().translate,this.source.getView().setTranslate(e.x-
d,e.y-c);this.update();b.consume()}this.index=null;this.active=!1}};
mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null);null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null);null!=this.selectionBorder&&(this.selectionBorder.destroy(),
-this.selectionBorder=null);null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)};function mxMultiplicity(a,b,c,d,e,f,g,k,l,m){this.source=a;this.type=b;this.attr=c;this.value=d;this.min=null!=e?e:0;this.max=null!=f?f:"n";this.validNeighbors=g;this.countError=mxResources.get(k)||k;this.typeError=mxResources.get(l)||l;this.validNeighborsAllowed=null!=m?m:!0}mxMultiplicity.prototype.type=null;mxMultiplicity.prototype.attr=null;mxMultiplicity.prototype.value=null;mxMultiplicity.prototype.source=null;
+this.selectionBorder=null);null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)};function mxMultiplicity(a,b,c,d,e,f,g,k,l,n){this.source=a;this.type=b;this.attr=c;this.value=d;this.min=null!=e?e:0;this.max=null!=f?f:"n";this.validNeighbors=g;this.countError=mxResources.get(k)||k;this.typeError=mxResources.get(l)||l;this.validNeighborsAllowed=null!=n?n:!0}mxMultiplicity.prototype.type=null;mxMultiplicity.prototype.attr=null;mxMultiplicity.prototype.value=null;mxMultiplicity.prototype.source=null;
mxMultiplicity.prototype.min=null;mxMultiplicity.prototype.max=null;mxMultiplicity.prototype.validNeighbors=null;mxMultiplicity.prototype.validNeighborsAllowed=!0;mxMultiplicity.prototype.countError=null;mxMultiplicity.prototype.typeError=null;
mxMultiplicity.prototype.check=function(a,b,c,d,e,f){var g="";if(this.source&&this.checkTerminal(a,c,b)||!this.source&&this.checkTerminal(a,d,b)){if(null!=this.countError&&(this.source&&(0==this.max||e>=this.max)||!this.source&&(0==this.max||f>=this.max)))g+=this.countError+"\n";null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(a,b,c,d)||(g+=this.typeError+"\n"))}return 0<g.length?g:null};
mxMultiplicity.prototype.checkNeighbors=function(a,b,c,d){b=a.model.getValue(c);d=a.model.getValue(d);c=!this.validNeighborsAllowed;for(var e=this.validNeighbors,f=0;f<e.length;f++)if(this.source&&this.checkType(a,d,e[f])){c=this.validNeighborsAllowed;break}else if(!this.source&&this.checkType(a,b,e[f])){c=this.validNeighborsAllowed;break}return c};mxMultiplicity.prototype.checkTerminal=function(a,b,c){b=a.model.getValue(b);return this.checkType(a,b,this.type,this.attr,this.value)};
@@ -1526,7 +1526,7 @@ mxSwimlaneManager.prototype.isCellHorizontal=function(a){return this.graph.isSwi
mxSwimlaneManager.prototype.swimlaneAdded=function(a){for(var b=this.getGraph().getModel(),c=b.getParent(a),d=b.getChildCount(c),e=null,f=0;f<d;f++){var g=b.getChildAt(c,f);if(g!=a&&!this.isSwimlaneIgnored(g)&&(e=b.getGeometry(g),null!=e))break}null!=e&&(b=null!=c?this.isCellHorizontal(c):this.horizontal,this.resizeSwimlane(a,e.width,e.height,b))};
mxSwimlaneManager.prototype.cellsResized=function(a){if(null!=a){var b=this.getGraph().getModel();b.beginUpdate();try{for(var c=0;c<a.length;c++)if(!this.isSwimlaneIgnored(a[c])){var d=b.getGeometry(a[c]);if(null!=d){for(var e=new mxRectangle(0,0,d.width,d.height),f=a[c],g=f;null!=g;){var f=g,g=b.getParent(g),k=this.graph.isSwimlane(g)?this.graph.getStartSize(g):new mxRectangle;e.width+=k.width;e.height+=k.height}var l=null!=g?this.isCellHorizontal(g):this.horizontal;this.resizeSwimlane(f,e.width,
e.height,l)}}}finally{b.endUpdate()}}};
-mxSwimlaneManager.prototype.resizeSwimlane=function(a,b,c,d){var e=this.getGraph().getModel();e.beginUpdate();try{var f=this.isCellHorizontal(a);if(!this.isSwimlaneIgnored(a)){var g=e.getGeometry(a);if(null!=g&&(d&&g.height!=c||!d&&g.width!=b))g=g.clone(),d?g.height=c:g.width=b,e.setGeometry(a,g)}var k=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;b-=k.width;c-=k.height;var l=e.getChildCount(a);for(d=0;d<l;d++){var m=e.getChildAt(a,d);this.resizeSwimlane(m,b,c,f)}}finally{e.endUpdate()}};
+mxSwimlaneManager.prototype.resizeSwimlane=function(a,b,c,d){var e=this.getGraph().getModel();e.beginUpdate();try{var f=this.isCellHorizontal(a);if(!this.isSwimlaneIgnored(a)){var g=e.getGeometry(a);if(null!=g&&(d&&g.height!=c||!d&&g.width!=b))g=g.clone(),d?g.height=c:g.width=b,e.setGeometry(a,g)}var k=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;b-=k.width;c-=k.height;var l=e.getChildCount(a);for(d=0;d<l;d++){var n=e.getChildAt(a,d);this.resizeSwimlane(n,b,c,f)}}finally{e.endUpdate()}};
mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)};
function mxTemporaryCellStates(a,b,c,d){b=null!=b?b:1;this.view=a;this.oldValidateCellState=a.validateCellState;this.oldBounds=a.getGraphBounds();this.oldStates=a.getStates();this.oldScale=a.getScale();var e=this;a.validateCellState=function(b,c){return null==b||null==d||d(b)?e.oldValidateCellState.apply(a,arguments):null};a.setStates(new mxDictionary);a.setScale(b);if(null!=c){a.resetValidationState();b=null;for(var f=0;f<c.length;f++){var g=a.getBoundingBox(a.validateCellState(a.validateCell(c[f])));
null==b?b=g:b.add(g)}a.setGraphBounds(b||new mxRectangle)}}mxTemporaryCellStates.prototype.view=null;mxTemporaryCellStates.prototype.oldStates=null;mxTemporaryCellStates.prototype.oldBounds=null;mxTemporaryCellStates.prototype.oldScale=null;mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale);this.view.setStates(this.oldStates);this.view.setGraphBounds(this.oldBounds);this.view.validateCellState=this.oldValidateCellState};
@@ -1641,10 +1641,10 @@ this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.val
mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.cursor&&null!=this.graph.container&&(this.graph.container.style.cursor="");this.destroyIcons();this.marker.reset();this.constraintHandler.reset();this.sourceConstraint=this.error=this.previous=this.edgeState=this.currentPoint=this.originalPoint=null;this.mouseDownCounter=0;this.first=null;this.fireEvent(new mxEventObject(mxEvent.RESET))};
mxConnectionHandler.prototype.drawPreview=function(){this.updatePreview(null==this.error);this.shape.redraw()};mxConnectionHandler.prototype.updatePreview=function(a){this.shape.strokewidth=this.getEdgeWidth(a);this.shape.stroke=this.getEdgeColor(a)};mxConnectionHandler.prototype.getEdgeColor=function(a){return a?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR};mxConnectionHandler.prototype.getEdgeWidth=function(a){return a?3:1};
mxConnectionHandler.prototype.connect=function(a,b,c,d){if(null!=b||this.isCreateTarget(c)||this.graph.allowDanglingEdges){var e=this.graph.getModel(),f=!1,g=null;e.beginUpdate();try{if(null!=a&&null==b&&(!this.graph.isIgnoreTerminalEvent(c)&&this.isCreateTarget(c))&&(b=this.createTargetVertex(c,a),null!=b)){d=this.graph.getDropTarget([b],c,d);f=!0;if(null==d||!this.graph.getModel().isEdge(d)){var k=this.graph.getView().getState(d);if(null!=k){var l=e.getGeometry(b);l.x-=k.origin.x;l.y-=k.origin.y}}else d=
-this.graph.getDefaultParent();this.graph.addCell(b,d)}var m=this.graph.getDefaultParent();null!=a&&null!=b&&(e.getParent(a)==e.getParent(b)&&e.getParent(e.getParent(a))!=e.getRoot())&&(m=e.getParent(a),null!=a.geometry&&a.geometry.relative&&null!=b.geometry&&b.geometry.relative&&(m=e.getParent(m)));var n=k=null;null!=this.edgeState&&(k=this.edgeState.cell.value,n=this.edgeState.cell.style);g=this.insertEdge(m,null,k,a,b,n);if(null!=g){this.graph.setConnectionConstraint(g,a,!0,this.sourceConstraint);
-this.graph.setConnectionConstraint(g,b,!1,this.constraintHandler.currentConstraint);null!=this.edgeState&&e.setGeometry(g,this.edgeState.cell.geometry);e.getParent(a);if(this.isInsertBefore(g,a,b,c,d)){m=null;for(l=a;null!=l.parent&&null!=l.geometry&&l.geometry.relative&&l.parent!=g.parent;)l=this.graph.model.getParent(l);null!=l&&null!=l.parent&&l.parent==g.parent&&(m=l.parent.getIndex(l),l.parent.insert(g,m))}var q=e.getGeometry(g);null==q&&(q=new mxGeometry,q.relative=!0,e.setGeometry(g,q));if(null!=
-this.waypoints&&0<this.waypoints.length){var p=this.graph.view.scale,r=this.graph.view.translate;q.points=[];for(a=0;a<this.waypoints.length;a++){var s=this.waypoints[a];q.points.push(new mxPoint(s.x/p-r.x,s.y/p-r.y))}}if(null==b){var t=this.graph.view.translate,p=this.graph.view.scale,s=null!=this.originalPoint?new mxPoint(this.originalPoint.x/p-t.x,this.originalPoint.y/p-t.y):new mxPoint(this.currentPoint.x/p-t.x,this.currentPoint.y/p-t.y);s.x-=this.graph.panDx/this.graph.view.scale;s.y-=this.graph.panDy/
-this.graph.view.scale;q.setTerminalPoint(s,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",g,"terminal",b,"event",c,"target",d,"terminalInserted",f))}}catch(v){mxLog.show(),mxLog.debug(v.message)}finally{e.endUpdate()}this.select&&this.selectCells(g,f?b:null)}};mxConnectionHandler.prototype.selectCells=function(a,b){this.graph.setSelectionCell(a)};
+this.graph.getDefaultParent();this.graph.addCell(b,d)}var n=this.graph.getDefaultParent();null!=a&&null!=b&&(e.getParent(a)==e.getParent(b)&&e.getParent(e.getParent(a))!=e.getRoot())&&(n=e.getParent(a),null!=a.geometry&&a.geometry.relative&&null!=b.geometry&&b.geometry.relative&&(n=e.getParent(n)));var m=k=null;null!=this.edgeState&&(k=this.edgeState.cell.value,m=this.edgeState.cell.style);g=this.insertEdge(n,null,k,a,b,m);if(null!=g){this.graph.setConnectionConstraint(g,a,!0,this.sourceConstraint);
+this.graph.setConnectionConstraint(g,b,!1,this.constraintHandler.currentConstraint);null!=this.edgeState&&e.setGeometry(g,this.edgeState.cell.geometry);e.getParent(a);if(this.isInsertBefore(g,a,b,c,d)){n=null;for(l=a;null!=l.parent&&null!=l.geometry&&l.geometry.relative&&l.parent!=g.parent;)l=this.graph.model.getParent(l);null!=l&&null!=l.parent&&l.parent==g.parent&&(n=l.parent.getIndex(l),l.parent.insert(g,n))}var p=e.getGeometry(g);null==p&&(p=new mxGeometry,p.relative=!0,e.setGeometry(g,p));if(null!=
+this.waypoints&&0<this.waypoints.length){var q=this.graph.view.scale,s=this.graph.view.translate;p.points=[];for(a=0;a<this.waypoints.length;a++){var r=this.waypoints[a];p.points.push(new mxPoint(r.x/q-s.x,r.y/q-s.y))}}if(null==b){var t=this.graph.view.translate,q=this.graph.view.scale,r=null!=this.originalPoint?new mxPoint(this.originalPoint.x/q-t.x,this.originalPoint.y/q-t.y):new mxPoint(this.currentPoint.x/q-t.x,this.currentPoint.y/q-t.y);r.x-=this.graph.panDx/this.graph.view.scale;r.y-=this.graph.panDy/
+this.graph.view.scale;p.setTerminalPoint(r,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",g,"terminal",b,"event",c,"target",d,"terminalInserted",f))}}catch(v){mxLog.show(),mxLog.debug(v.message)}finally{e.endUpdate()}this.select&&this.selectCells(g,f?b:null)}};mxConnectionHandler.prototype.selectCells=function(a,b){this.graph.setSelectionCell(a)};
mxConnectionHandler.prototype.insertEdge=function(a,b,c,d,e,f){if(null==this.factoryMethod)return this.graph.insertEdge(a,b,c,d,e,f);b=this.createEdge(c,d,e,f);return this.graph.addEdge(b,a,d,e)};
mxConnectionHandler.prototype.createTargetVertex=function(a,b){for(var c=this.graph.getCellGeometry(b);null!=c&&c.relative;)b=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);var d=this.graph.cloneCells([b])[0],c=this.graph.getModel().getGeometry(d);if(null!=c){var e=this.graph.view.translate,f=this.graph.view.scale,g=new mxPoint(this.currentPoint.x/f-e.x,this.currentPoint.y/f-e.y);c.x=Math.round(g.x-c.width/2-this.graph.panDx/f);c.y=Math.round(g.y-c.height/2-this.graph.panDy/f);
g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(b);if(null!=k){var l=k.x/f-e.x,e=k.y/f-e.y;Math.abs(l-c.x)<=g&&(c.x=Math.round(l));Math.abs(e-c.y)<=g&&(c.y=Math.round(e))}}}return d};mxConnectionHandler.prototype.getAlignmentTolerance=function(a){return this.graph.isGridEnabled()?this.graph.gridSize/2:this.graph.tolerance};
@@ -1658,9 +1658,9 @@ mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
mxConstraintHandler.prototype.getCellForEvent=function(a,b){var c=a.getCell();if(null==c&&null!=b&&(a.getGraphX()!=b.x||a.getGraphY()!=b.y))c=this.graph.getCellAt(b.x,b.y);if(null!=c&&!this.graph.isCellConnectable(c)){var d=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(c=d)}return c};
mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!this.isEventIgnored(a)){null==this.mouseleaveHandler&&null!=this.graph.container&&(this.mouseleaveHandler=mxUtils.bind(this,function(){this.reset()}),mxEvent.addListener(this.graph.container,"mouseleave",this.resetHandler));var e=this.getTolerance(a),f=null!=d?d.x:a.getGraphX(),g=null!=d?d.y:a.getGraphY(),f=new mxRectangle(f-e,g-e,2*e,2*e),e=new mxRectangle(a.getGraphX()-e,a.getGraphY()-e,2*e,2*e),k=this.graph.view.getState(this.getCellForEvent(a,
-d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),m=0;m<this.focusIcons.length;m++){var n=
-g-this.focusIcons[m].bounds.getCenterX(),q=l-this.focusIcons[m].bounds.getCenterY(),n=n*n+q*q;if((this.intersects(this.focusIcons[m],e,b,c)||null!=d&&this.intersects(this.focusIcons[m],f,b,c))&&(null==a||n<a)){this.currentConstraint=this.constraints[m];this.currentPoint=this.focusPoints[m];a=n;n=this.focusIcons[m].bounds.clone();n.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(n.grow(1),n.width-=1,n.height-=1);if(null==this.focusHighlight){q=this.createHighlightShape();q.dialect=this.graph.dialect==
-mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;q.pointerEvents=!1;q.init(this.graph.getView().getOverlayPane());this.focusHighlight=q;var p=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(q.node,this.graph,p)}this.focusHighlight.bounds=n;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),n=0;n<this.focusIcons.length;n++){var m=
+g-this.focusIcons[n].bounds.getCenterX(),p=l-this.focusIcons[n].bounds.getCenterY(),m=m*m+p*p;if((this.intersects(this.focusIcons[n],e,b,c)||null!=d&&this.intersects(this.focusIcons[n],f,b,c))&&(null==a||m<a)){this.currentConstraint=this.constraints[n];this.currentPoint=this.focusPoints[n];a=m;m=this.focusIcons[n].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
+mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var q=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,q)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
0;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(f.node,
"dragstart",function(a){mxEvent.consume(a);return!1});null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -1715,7 +1715,7 @@ mxVertexHandler.prototype.mouseMove=function(a,b){!b.isConsumed()&&null!=this.in
mxVertexHandler.prototype.moveLabel=function(a){var b=new mxPoint(a.getGraphX(),a.getGraphY()),c=this.graph.view.translate,d=this.graph.view.scale;this.graph.isGridEnabledEvent(a.getEvent())&&(b.x=(this.graph.snap(b.x/d-c.x)+c.x)*d,b.y=(this.graph.snap(b.y/d-c.y)+c.y)*d);this.moveSizerTo(this.sizers[null!=this.rotationShape?this.sizers.length-2:this.sizers.length-1],b.x,b.y)};
mxVertexHandler.prototype.rotateVertex=function(a){var b=new mxPoint(a.getGraphX(),a.getGraphY()),c=this.state.x+this.state.width/2-b.x,d=this.state.y+this.state.height/2-b.y;this.currentAlpha=0!=c?180*Math.atan(d/c)/Math.PI+90:0>d?180:0;0<c&&(this.currentAlpha-=180);this.rotationRaster&&this.graph.isGridEnabledEvent(a.getEvent())?(c=b.x-this.state.getCenterX(),d=b.y-this.state.getCenterY(),a=3*Math.abs(Math.sqrt(c*c+d*d)-20),a=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(a))))),this.currentAlpha=
Math.round(this.currentAlpha/a)*a):this.currentAlpha=this.roundAngle(this.currentAlpha);this.selectionBorder.rotation=this.currentAlpha;this.selectionBorder.redraw();this.livePreview&&this.redrawHandles()};
-mxVertexHandler.prototype.resizeVertex=function(a){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),d=new mxPoint(a.getGraphX(),a.getGraphY()),e=this.graph.view.translate,f=this.graph.view.scale,g=Math.cos(-c),k=Math.sin(-c),l=d.x-this.startX,d=d.y-this.startY,m=k*l+g*d,l=g*l-k*d,d=m,g=this.graph.getCellGeometry(this.state.cell);this.unscaledBounds=this.union(g,l/f,d/f,this.index,this.graph.isGridEnabledEvent(a.getEvent()),
+mxVertexHandler.prototype.resizeVertex=function(a){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),d=new mxPoint(a.getGraphX(),a.getGraphY()),e=this.graph.view.translate,f=this.graph.view.scale,g=Math.cos(-c),k=Math.sin(-c),l=d.x-this.startX,d=d.y-this.startY,n=k*l+g*d,l=g*l-k*d,d=n,g=this.graph.getCellGeometry(this.state.cell);this.unscaledBounds=this.union(g,l/f,d/f,this.index,this.graph.isGridEnabledEvent(a.getEvent()),
1,new mxPoint(0,0),this.isConstrainedEvent(a),this.isCenteredEvent(this.state,a));g.relative||(k=this.graph.getMaximumGraphBounds(),null!=k&&null!=this.parentState&&(k=mxRectangle.fromRectangle(k),k.x-=(this.parentState.x-e.x*f)/f,k.y-=(this.parentState.y-e.y*f)/f),this.graph.isConstrainChild(this.state.cell)&&(l=this.graph.getCellContainmentArea(this.state.cell),null!=l&&(d=this.graph.getOverlap(this.state.cell),0<d&&(l=mxRectangle.fromRectangle(l),l.x-=l.width*d,l.y-=l.height*d,l.width+=2*l.width*
d,l.height+=2*l.height*d),null==k?k=l:(k=mxRectangle.fromRectangle(k),k.intersect(l)))),null!=k&&(this.unscaledBounds.x<k.x&&(this.unscaledBounds.width-=k.x-this.unscaledBounds.x,this.unscaledBounds.x=k.x),this.unscaledBounds.y<k.y&&(this.unscaledBounds.height-=k.y-this.unscaledBounds.y,this.unscaledBounds.y=k.y),this.unscaledBounds.x+this.unscaledBounds.width>k.x+k.width&&(this.unscaledBounds.width-=this.unscaledBounds.x+this.unscaledBounds.width-k.x-k.width),this.unscaledBounds.y+this.unscaledBounds.height>
k.y+k.height&&(this.unscaledBounds.height-=this.unscaledBounds.y+this.unscaledBounds.height-k.y-k.height)));this.bounds=new mxRectangle((null!=this.parentState?this.parentState.x:e.x*f)+this.unscaledBounds.x*f,(null!=this.parentState?this.parentState.y:e.y*f)+this.unscaledBounds.y*f,this.unscaledBounds.width*f,this.unscaledBounds.height*f);g.relative&&null!=this.parentState&&(this.bounds.x+=this.state.x-this.parentState.x,this.bounds.y+=this.state.y-this.parentState.y);g=Math.cos(c);k=Math.sin(c);
@@ -1724,7 +1724,7 @@ c=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY());l=c.x-b.x;d=c.y
mxVertexHandler.prototype.updateLivePreview=function(a){var b=this.graph.view.scale,c=this.graph.view.translate;a=this.state.clone();this.state.x=this.bounds.x;this.state.y=this.bounds.y;this.state.origin=new mxPoint(this.state.x/b-c.x,this.state.y/b-c.y);this.state.width=this.bounds.width;this.state.height=this.bounds.height;this.state.unscaledWidth=null;b=this.state.absoluteOffset;new mxPoint(b.x,b.y);this.state.absoluteOffset.x=0;this.state.absoluteOffset.y=0;b=this.graph.getCellGeometry(this.state.cell);
null!=b&&(c=b.offset||this.EMPTY_POINT,null!=c&&!b.relative&&(this.state.absoluteOffset.x=this.state.view.scale*c.x,this.state.absoluteOffset.y=this.state.view.scale*c.y),this.state.view.updateVertexLabelOffset(this.state));this.state.view.graph.cellRenderer.redraw(this.state,!0);this.state.view.invalidate(this.state.cell);this.state.invalid=!1;this.state.view.validate();this.redrawHandles();this.state.setState(a)};
mxVertexHandler.prototype.mouseUp=function(a,b){if(null!=this.index&&null!=this.state){var c=new mxPoint(b.getGraphX(),b.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index<=mxEvent.CUSTOM_HANDLE)null!=this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].execute();else if(this.index==mxEvent.ROTATION_HANDLE)if(null!=this.currentAlpha){var d=this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0);0!=d&&this.rotateCell(this.state.cell,d)}else this.rotateClick();
-else{var e=this.graph.isGridEnabledEvent(b.getEvent()),f=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(-f),k=Math.sin(-f),l=c.x-this.startX,m=c.y-this.startY,c=k*l+g*m,l=g*l-k*m,m=c,n=this.graph.view.scale,q=this.isRecursiveResize(this.state,b);this.resizeCell(this.state.cell,this.roundLength(l/n),this.roundLength(m/n),this.index,e,this.isConstrainedEvent(b),q)}}finally{this.graph.getModel().endUpdate()}b.consume();this.reset()}};
+else{var e=this.graph.isGridEnabledEvent(b.getEvent()),f=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(-f),k=Math.sin(-f),l=c.x-this.startX,n=c.y-this.startY,c=k*l+g*n,l=g*l-k*n,n=c,m=this.graph.view.scale,p=this.isRecursiveResize(this.state,b);this.resizeCell(this.state.cell,this.roundLength(l/m),this.roundLength(n/m),this.index,e,this.isConstrainedEvent(b),p)}}finally{this.graph.getModel().endUpdate()}b.consume();this.reset()}};
mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveResize(this.state)};mxVertexHandler.prototype.rotateClick=function(){};
mxVertexHandler.prototype.rotateCell=function(a,b,c){if(0!=b){var d=this.graph.getModel();if(d.isVertex(a)||d.isEdge(a)){if(!d.isEdge(a)){var e=this.graph.view.getState(a),e=null!=e?e.style:this.graph.getCellStyle(a);null!=e&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(e[mxConstants.STYLE_ROTATION]||0)+b,[a])}e=this.graph.getCellGeometry(a);if(null!=e){var f=this.graph.getCellGeometry(c);null!=f&&!d.isEdge(c)&&(e=e.clone(),e.rotate(b,new mxPoint(f.width/2,f.height/2)),d.setGeometry(a,e));
if(d.isVertex(a)&&!e.relative||d.isEdge(a)){c=d.getChildCount(a);for(e=0;e<c;e++)this.rotateCell(d.getChildAt(a,e),b,a)}}}}};
@@ -1732,17 +1732,17 @@ mxVertexHandler.prototype.reset=function(){null!=this.sizers&&null!=this.index&&
this.customHandles.length;a++)this.customHandles[a].reset();null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview());this.removeHint();this.redrawHandles();this.unscaledBounds=this.edgeHandlers=null};
mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){e=this.graph.model.getGeometry(a);null!=e&&(d==mxEvent.LABEL_HANDLE?(c=this.graph.view.scale,b=Math.round((this.labelShape.bounds.getCenterX()-this.startX)/c),c=Math.round((this.labelShape.bounds.getCenterY()-this.startY)/c),e=e.clone(),null==e.offset?e.offset=new mxPoint(b,c):(e.offset.x+=b,e.offset.y+=c),this.graph.model.setGeometry(a,e)):null!=this.unscaledBounds&&(c=this.graph.view.scale,(0!=this.childOffsetX||0!=this.childOffsetY)&&
this.moveChildren(a,Math.round(this.childOffsetX/c),Math.round(this.childOffsetY/c)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
-mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var m=a.width,n=a.height,q=a.x-g.x*f,p=q+m;a=a.y-g.y*f;var r=a+n,s=q+m/2,t=a+n/2;4<d?(r+=c,e&&(r=this.graph.snap(r/f)*f)):3>d&&(a+=c,e&&(a=this.graph.snap(a/f)*f));if(0==d||3==d||5==d)q+=b,e&&(q=this.graph.snap(q/f)*f);else if(2==d||4==d||7==d)p+=b,e&&(p=this.graph.snap(p/
-f)*f);e=p-q;c=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(q=p-e,a=r-c)));l&&(e+=e-m,c+=c-n,q+=s-(q+e/2),a+=t-(a+c/2));0>e&&(q+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(q+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));
+mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var n=a.width,m=a.height,p=a.x-g.x*f,q=p+n;a=a.y-g.y*f;var s=a+m,r=p+n/2,t=a+m/2;4<d?(s+=c,e&&(s=this.graph.snap(s/f)*f)):3>d&&(a+=c,e&&(a=this.graph.snap(a/f)*f));if(0==d||3==d||5==d)p+=b,e&&(p=this.graph.snap(p/f)*f);else if(2==d||4==d||7==d)q+=b,e&&(q=this.graph.snap(q/
+f)*f);e=q-p;c=s-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=q-e,a=s-c)));l&&(e+=e-n,c+=c-m,p+=r-(p+e/2),a+=t-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));
return d};mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.redrawHandles();this.drawPreview()};
mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;if(null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]&&(this.bounds.width<2*this.sizers[0].bounds.width+2*b||this.bounds.height<2*this.sizers[0].bounds.height+2*b))b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b;return a};
mxVertexHandler.prototype.redrawHandles=function(){var a=this.tolerance;this.verticalOffset=this.horizontalOffset=0;var b=this.bounds;if(null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]){if(null==this.index&&this.manageSizers&&8<=this.sizers.length){var c=this.getHandlePadding();this.horizontalOffset=c.x;this.verticalOffset=c.y;if(0!=this.horizontalOffset||0!=this.verticalOffset)b=new mxRectangle(b.x,b.y,b.width,b.height),b.x-=this.horizontalOffset/2,b.width+=this.horizontalOffset,b.y-=
this.verticalOffset/2,b.height+=this.verticalOffset;8<=this.sizers.length&&(b.width<2*this.sizers[0].bounds.width+2*a||b.height<2*this.sizers[0].bounds.height+2*a?(this.sizers[0].node.style.display="none",this.sizers[2].node.style.display="none",this.sizers[5].node.style.display="none",this.sizers[7].node.style.display="none"):(this.sizers[0].node.style.display="",this.sizers[2].node.style.display="",this.sizers[5].node.style.display="",this.sizers[7].node.style.display=""))}a=b.x+b.width;c=b.y+b.height;
-if(this.singleSizer)this.moveSizerTo(this.sizers[0],a,c);else{var d=b.x+b.width/2,e=b.y+b.height/2;if(8<=this.sizers.length){var f="nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),m=new mxPoint(b.getCenterX(),b.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),k,l,m);this.moveSizerTo(this.sizers[0],n.x,n.y);this.sizers[0].setCursor(f[mxUtils.mod(0+
-g,f.length)]);n.x=d;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[1],n.x,n.y);this.sizers[1].setCursor(f[mxUtils.mod(1+g,f.length)]);n.x=a;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[2],n.x,n.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);n.x=b.x;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[3],n.x,n.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);n.x=a;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[4],
-n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);this.moveSizerTo(this.sizers[8],
-d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(b.x+
-b.width/2,b.y+this.rotationHandleVSpacing),k,l,m),null!=this.rotationShape.node&&this.moveSizerTo(this.rotationShape,n.x,n.y));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)this.customHandles[b].redraw();this.updateParentHighlight()};
+if(this.singleSizer)this.moveSizerTo(this.sizers[0],a,c);else{var d=b.x+b.width/2,e=b.y+b.height/2;if(8<=this.sizers.length){var f="nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),n=new mxPoint(b.getCenterX(),b.getCenterY()),m=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),k,l,n);this.moveSizerTo(this.sizers[0],m.x,m.y);this.sizers[0].setCursor(f[mxUtils.mod(0+
+g,f.length)]);m.x=d;m.y=b.y;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[1],m.x,m.y);this.sizers[1].setCursor(f[mxUtils.mod(1+g,f.length)]);m.x=a;m.y=b.y;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[2],m.x,m.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);m.x=b.x;m.y=e;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[3],m.x,m.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);m.x=a;m.y=e;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[4],
+m.x,m.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);m.x=b.x;m.y=c;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[5],m.x,m.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);m.x=d;m.y=c;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[6],m.x,m.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);m.x=a;m.y=c;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[7],m.x,m.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);this.moveSizerTo(this.sizers[8],
+d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),n=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),m=mxUtils.getRotatedPoint(new mxPoint(b.x+
+b.width/2,b.y+this.rotationHandleVSpacing),k,l,n),null!=this.rotationShape.node&&this.moveSizerTo(this.rotationShape,m.x,m.y));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)this.customHandles[b].redraw();this.updateParentHighlight()};
mxVertexHandler.prototype.updateParentHighlight=function(){if(null!=this.selectionBorder)if(null!=this.parentHighlight){var a=this.graph.model.getParent(this.state.cell);if(this.graph.model.isVertex(a)){var a=this.graph.view.getState(a),b=this.parentHighlight.bounds;if(null!=a&&(b.x!=a.x||b.y!=a.y||b.width!=a.width||b.height!=a.height))this.parentHighlight.bounds=a,this.parentHighlight.redraw()}else this.parentHighlight.destroy(),this.parentHighlight=null}else this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))))};
mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw());this.selectionBorder.bounds=this.bounds;this.selectionBorder.redraw();null!=this.parentHighlight&&this.parentHighlight.redraw()};
@@ -1785,10 +1785,10 @@ mxEvent.VIRTUAL_HANDLE?c.splice(mxEvent.VIRTUAL_HANDLE-this.index,1):c.splice(th
this.state.getVisibleTerminalState(!1);if(null!=k&&(l=this.graph.getConnectionConstraint(this.state,k,!1),null==l||null==this.graph.getConnectionPoint(k,l)))g[g.length-1]=new mxPoint(k.view.getRoutingCenterX(k),k.view.getRoutingCenterY(k));l=this.index;0<l&&l<g.length-1&&mxUtils.ptSegDistSq(g[l-1].x,g[l-1].y,g[l+1].x,g[l+1].y,a.x,a.y)<f&&(c.splice(l-1,1),e=c)}}null==e&&this.index>mxEvent.VIRTUAL_HANDLE&&(c[this.index-1]=d)}else this.graph.resetEdgesOnConnect&&(c=null);return null!=e?e:c};
mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){var b=mxUtils.getOffset(this.graph.container),c=a.getEvent(),d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),e=document.documentElement,f=this.currentPoint.x-this.graph.container.scrollLeft+b.x-((window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)),b=this.currentPoint.y-this.graph.container.scrollTop+b.y-((window.pageYOffset||e.scrollTop)-(e.clientTop||0));return this.outlineConnect&&!mxEvent.isShiftDown(a.getEvent())&&(a.isSource(this.marker.highlight.shape)||
mxEvent.isAltDown(a.getEvent())&&null!=a.getState()||this.marker.highlight.isHighlightAt(d,c)||(f!=d||b!=c)&&null==a.getState()&&this.marker.highlight.isHighlightAt(f,b))};
-mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d,e){var f=this.isSource?c:this.state.getVisibleTerminalState(!0),g=this.isTarget?c:this.state.getVisibleTerminalState(!1),k=this.graph.getConnectionConstraint(a,f,!0),l=this.graph.getConnectionConstraint(a,g,!1),m=this.constraintHandler.currentConstraint;null==m&&e&&(null!=c?(d.isSource(this.marker.highlight.shape)&&(b=new mxPoint(d.getGraphX(),d.getGraphY())),m=this.graph.getOutlineConstraint(b,c,d),this.constraintHandler.setFocus(d,c,this.isSource),
-this.constraintHandler.currentConstraint=m,this.constraintHandler.currentPoint=b):m=new mxConnectionConstraint);if(this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape){var n=this.graph.view.scale;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=e?mxConstants.OUTLINE_HIGHLIGHT_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/n/n,this.marker.highlight.repaint()):
-this.marker.hasValidState()&&(this.marker.highlight.shape.stroke=this.marker.getValidState()==d.getState()?mxConstants.DEFAULT_VALID_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/n/n,this.marker.highlight.repaint())}this.isSource?k=m:this.isTarget&&(l=m);if(this.isSource||this.isTarget)null!=m&&null!=m.point?(a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X]=m.point.x,a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]=
-m.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X],delete a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]);a.setVisibleTerminalState(f,!0);a.setVisibleTerminalState(g,!1);(!this.isSource||null!=f)&&a.view.updateFixedTerminalPoint(a,f,!0,k);(!this.isTarget||null!=g)&&a.view.updateFixedTerminalPoint(a,g,!1,l);if((this.isSource||this.isTarget)&&null==c)a.setAbsoluteTerminalPoint(b,this.isSource),null==this.marker.getMarkedState()&&(this.error=
+mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d,e){var f=this.isSource?c:this.state.getVisibleTerminalState(!0),g=this.isTarget?c:this.state.getVisibleTerminalState(!1),k=this.graph.getConnectionConstraint(a,f,!0),l=this.graph.getConnectionConstraint(a,g,!1),n=this.constraintHandler.currentConstraint;null==n&&e&&(null!=c?(d.isSource(this.marker.highlight.shape)&&(b=new mxPoint(d.getGraphX(),d.getGraphY())),n=this.graph.getOutlineConstraint(b,c,d),this.constraintHandler.setFocus(d,c,this.isSource),
+this.constraintHandler.currentConstraint=n,this.constraintHandler.currentPoint=b):n=new mxConnectionConstraint);if(this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape){var m=this.graph.view.scale;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=e?mxConstants.OUTLINE_HIGHLIGHT_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/m/m,this.marker.highlight.repaint()):
+this.marker.hasValidState()&&(this.marker.highlight.shape.stroke=this.marker.getValidState()==d.getState()?mxConstants.DEFAULT_VALID_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/m/m,this.marker.highlight.repaint())}this.isSource?k=n:this.isTarget&&(l=n);if(this.isSource||this.isTarget)null!=n&&null!=n.point?(a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X]=n.point.x,a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]=
+n.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X],delete a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]);a.setVisibleTerminalState(f,!0);a.setVisibleTerminalState(g,!1);(!this.isSource||null!=f)&&a.view.updateFixedTerminalPoint(a,f,!0,k);(!this.isTarget||null!=g)&&a.view.updateFixedTerminalPoint(a,g,!1,l);if((this.isSource||this.isTarget)&&null==c)a.setAbsoluteTerminalPoint(b,this.isSource),null==this.marker.getMarkedState()&&(this.error=
this.graph.allowDanglingEdges?null:"");a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)};
mxEdgeHandler.prototype.mouseMove=function(a,b){if(null!=this.index&&null!=this.marker){this.currentPoint=this.getPointForEvent(b);this.error=null;!this.graph.isIgnoreTerminalEvent(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())&&null!=this.snapPoint&&(Math.abs(this.snapPoint.x-this.currentPoint.x)<Math.abs(this.snapPoint.y-this.currentPoint.y)?this.currentPoint.x=this.snapPoint.x:this.currentPoint.y=this.snapPoint.y);if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE)null!=
this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(b);else if(this.isLabel)this.label.x=this.currentPoint.x,this.label.y=this.currentPoint.y;else{this.points=this.getPreviewPoints(this.currentPoint,b);var c=this.isSource||this.isTarget?this.getPreviewTerminalState(b):null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint)this.currentPoint=this.constraintHandler.currentPoint.clone();
@@ -1832,10 +1832,10 @@ d=d.height;c=new mxRectangle(Math.round(e.x-c/2),Math.round(e.y-d/2),c,d);this.m
function mxEdgeSegmentHandler(a){mxEdgeHandler.call(this,a)}mxUtils.extend(mxEdgeSegmentHandler,mxElbowEdgeHandler);mxEdgeSegmentHandler.prototype.getCurrentPoints=function(){var a=this.state.absolutePoints;if(null!=a&&(2==a.length||3==a.length&&(a[0].x==a[1].x&&a[1].x==a[2].x||a[0].y==a[1].y&&a[1].y==a[2].y)))var b=a[0].x+(a[a.length-1].x-a[0].x)/2,c=a[0].y+(a[a.length-1].y-a[0].y)/2,a=[a[0],new mxPoint(b,c),new mxPoint(b,c),a[a.length-1]];return a};
mxEdgeSegmentHandler.prototype.getPreviewPoints=function(a){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);var b=this.getCurrentPoints(),c=this.convertPoint(b[0].clone(),!1);a=this.convertPoint(a.clone(),!1);for(var d=[],e=1;e<b.length;e++){var f=this.convertPoint(b[e].clone(),!1);e==this.index&&(0==Math.round(c.x-f.x)&&(c.x=a.x,f.x=a.x),0==Math.round(c.y-f.y)&&(c.y=a.y,f.y=a.y));e<b.length-1&&d.push(f);c=f}if(1==d.length){var b=this.state.getVisibleTerminalState(!0),
c=this.state.getVisibleTerminalState(!1),f=this.state.view.getScale(),g=this.state.view.getTranslate(),e=d[0].x*f+g.x,f=d[0].y*f+g.y;if(null!=b&&mxUtils.contains(b,e,f)||null!=c&&mxUtils.contains(c,e,f))d=[a,a]}return d};
-mxEdgeSegmentHandler.prototype.updatePreviewState=function(a,b,c,d){mxEdgeHandler.prototype.updatePreviewState.apply(this,arguments);if(!this.isSource&&!this.isTarget){b=this.convertPoint(b.clone(),!1);for(var e=a.absolutePoints,f=e[0],g=e[1],k=[],l=2;l<e.length;l++){var m=e[l];(0!=Math.round(f.x-g.x)||0!=Math.round(g.x-m.x))&&(0!=Math.round(f.y-g.y)||0!=Math.round(g.y-m.y))&&k.push(this.convertPoint(g.clone(),!1));f=g;g=m}f=this.state.getVisibleTerminalState(!0);g=this.state.getVisibleTerminalState(!1);
-l=this.state.absolutePoints;if(0==k.length&&(0==Math.round(e[0].x-e[e.length-1].x)||0==Math.round(e[0].y-e[e.length-1].y)))k=[b,b];else if(5==e.length&&2==k.length&&null!=f&&null!=g&&null!=l&&0==Math.round(l[0].x-l[l.length-1].x)){var k=this.graph.getView(),l=k.getScale(),m=k.getTranslate(),e=k.getRoutingCenterY(f)/l-m.y,n=this.graph.getConnectionConstraint(a,f,!0);null!=n&&(n=this.graph.getConnectionPoint(f,n),null!=n&&(this.convertPoint(n,!1),e=n.y));k=k.getRoutingCenterY(g)/l-m.y;if(l=this.graph.getConnectionConstraint(a,
-g,!1))n=this.graph.getConnectionPoint(g,l),null!=n&&(this.convertPoint(n,!1),k=n.y);k=[new mxPoint(b.x,e),new mxPoint(b.x,k)]}this.points=k;a.view.updateFixedTerminalPoints(a,f,g);a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)}};
-mxEdgeSegmentHandler.prototype.connect=function(a,b,c,d,e){for(var f=this.abspoints,g=f[0],k=f[1],l=[],m=2;m<f.length;m++){var n=f[m];(0!=Math.round(g.x-k.x)||0!=Math.round(k.x-n.x))&&(0!=Math.round(g.y-k.y)||0!=Math.round(k.y-n.y))&&l.push(this.convertPoint(k.clone(),!1));g=k;k=n}f=this.graph.getModel();f.beginUpdate();try{var q=f.getGeometry(a);null!=q&&(q=q.clone(),q.points=l,f.setGeometry(a,q));a=mxEdgeHandler.prototype.connect.apply(this,arguments)}finally{f.endUpdate()}return a};
+mxEdgeSegmentHandler.prototype.updatePreviewState=function(a,b,c,d){mxEdgeHandler.prototype.updatePreviewState.apply(this,arguments);if(!this.isSource&&!this.isTarget){b=this.convertPoint(b.clone(),!1);for(var e=a.absolutePoints,f=e[0],g=e[1],k=[],l=2;l<e.length;l++){var n=e[l];(0!=Math.round(f.x-g.x)||0!=Math.round(g.x-n.x))&&(0!=Math.round(f.y-g.y)||0!=Math.round(g.y-n.y))&&k.push(this.convertPoint(g.clone(),!1));f=g;g=n}f=this.state.getVisibleTerminalState(!0);g=this.state.getVisibleTerminalState(!1);
+l=this.state.absolutePoints;if(0==k.length&&(0==Math.round(e[0].x-e[e.length-1].x)||0==Math.round(e[0].y-e[e.length-1].y)))k=[b,b];else if(5==e.length&&2==k.length&&null!=f&&null!=g&&null!=l&&0==Math.round(l[0].x-l[l.length-1].x)){var k=this.graph.getView(),l=k.getScale(),n=k.getTranslate(),e=k.getRoutingCenterY(f)/l-n.y,m=this.graph.getConnectionConstraint(a,f,!0);null!=m&&(m=this.graph.getConnectionPoint(f,m),null!=m&&(this.convertPoint(m,!1),e=m.y));k=k.getRoutingCenterY(g)/l-n.y;if(l=this.graph.getConnectionConstraint(a,
+g,!1))m=this.graph.getConnectionPoint(g,l),null!=m&&(this.convertPoint(m,!1),k=m.y);k=[new mxPoint(b.x,e),new mxPoint(b.x,k)]}this.points=k;a.view.updateFixedTerminalPoints(a,f,g);a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)}};
+mxEdgeSegmentHandler.prototype.connect=function(a,b,c,d,e){for(var f=this.abspoints,g=f[0],k=f[1],l=[],n=2;n<f.length;n++){var m=f[n];(0!=Math.round(g.x-k.x)||0!=Math.round(k.x-m.x))&&(0!=Math.round(g.y-k.y)||0!=Math.round(k.y-m.y))&&l.push(this.convertPoint(k.clone(),!1));g=k;k=m}f=this.graph.getModel();f.beginUpdate();try{var p=f.getGeometry(a);null!=p&&(p=p.clone(),p.points=l,f.setGeometry(a,p));a=mxEdgeHandler.prototype.connect.apply(this,arguments)}finally{f.endUpdate()}return a};
mxEdgeSegmentHandler.prototype.getTooltipForNode=function(a){return null};mxEdgeSegmentHandler.prototype.start=function(a,b,c){mxEdgeHandler.prototype.start.apply(this,arguments);null!=this.bends[c]&&!this.isSource&&!this.isTarget&&mxUtils.setOpacity(this.bends[c].node,100)};
mxEdgeSegmentHandler.prototype.createBends=function(){var a=[],b=this.createHandleShape(0);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);var c=this.getCurrentPoints();if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var d=0;d<c.length-1;d++){b=this.createVirtualBend();a.push(b);var e=0==Math.round(c[d].x-c[d+1].x);0==Math.round(c[d].y-c[d+1].y)&&d<c.length-2&&(e=0==Math.round(c[d].x-c[d+2].x));b.setCursor(e?"col-resize":"row-resize");
this.points.push(new mxPoint(0,0))}}b=this.createHandleShape(c.length);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);return a};mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh();mxEdgeHandler.prototype.redraw.apply(this,arguments)};
@@ -1869,8 +1869,8 @@ mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener
function mxDefaultKeyHandler(a){if(null!=a){this.editor=a;this.handler=new mxKeyHandler(a.graph);var b=this.handler.escape;this.handler.escape=function(c){b.apply(this,arguments);a.hideProperties();a.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",c))}}}mxDefaultKeyHandler.prototype.editor=null;mxDefaultKeyHandler.prototype.handler=null;
mxDefaultKeyHandler.prototype.bindAction=function(a,b,c){var d=mxUtils.bind(this,function(){this.editor.execute(b)});c?this.handler.bindControlKey(a,d):this.handler.bindKey(a,d)};mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy();this.handler=null};function mxDefaultPopupMenu(a){this.config=a}mxDefaultPopupMenu.prototype.imageBasePath=null;mxDefaultPopupMenu.prototype.config=null;
mxDefaultPopupMenu.prototype.createMenu=function(a,b,c,d){if(null!=this.config){var e=this.createConditions(a,c,d);this.addItems(a,b,c,d,e,this.config.firstChild,null)}};
-mxDefaultPopupMenu.prototype.addItems=function(a,b,c,d,e,f,g){for(var k=!1;null!=f;){if("add"==f.nodeName){var l=f.getAttribute("if");if(null==l||e[l]){var l=f.getAttribute("as"),l=mxResources.get(l)||l,m=mxUtils.eval(mxUtils.getTextContent(f)),n=f.getAttribute("action"),q=f.getAttribute("icon"),p=f.getAttribute("iconCls"),r=f.getAttribute("enabled-if"),r=null==r||e[r];k&&(b.addSeparator(g),k=!1);null!=q&&this.imageBasePath&&(q=this.imageBasePath+q);l=this.addAction(b,a,l,q,m,n,c,g,p,r);this.addItems(a,
-b,c,d,e,f.firstChild,l)}}else"separator"==f.nodeName&&(k=!0);f=f.nextSibling}};mxDefaultPopupMenu.prototype.addAction=function(a,b,c,d,e,f,g,k,l,m){return a.addItem(c,d,function(a){"function"==typeof e&&e.call(b,b,g,a);null!=f&&b.execute(f,g,a)},k,l,m)};
+mxDefaultPopupMenu.prototype.addItems=function(a,b,c,d,e,f,g){for(var k=!1;null!=f;){if("add"==f.nodeName){var l=f.getAttribute("if");if(null==l||e[l]){var l=f.getAttribute("as"),l=mxResources.get(l)||l,n=mxUtils.eval(mxUtils.getTextContent(f)),m=f.getAttribute("action"),p=f.getAttribute("icon"),q=f.getAttribute("iconCls"),s=f.getAttribute("enabled-if"),s=null==s||e[s];k&&(b.addSeparator(g),k=!1);null!=p&&this.imageBasePath&&(p=this.imageBasePath+p);l=this.addAction(b,a,l,p,n,m,c,g,q,s);this.addItems(a,
+b,c,d,e,f.firstChild,l)}}else"separator"==f.nodeName&&(k=!0);f=f.nextSibling}};mxDefaultPopupMenu.prototype.addAction=function(a,b,c,d,e,f,g,k,l,n){return a.addItem(c,d,function(a){"function"==typeof e&&e.call(b,b,g,a);null!=f&&b.execute(f,g,a)},k,l,n)};
mxDefaultPopupMenu.prototype.createConditions=function(a,b,c){var d=a.graph.getModel(),e=d.getChildCount(b),f=[];f.nocell=null==b;f.ncells=1<a.graph.getSelectionCount();f.notRoot=d.getRoot()!=d.getParent(a.graph.getDefaultParent());f.cell=null!=b;d=null!=b&&1==a.graph.getSelectionCount();f.nonEmpty=d&&0<e;f.expandable=d&&a.graph.isCellFoldable(b,!1);f.collapsable=d&&a.graph.isCellFoldable(b,!0);f.validRoot=d&&a.graph.isValidRoot(b);f.emptyValidRoot=f.validRoot&&0==e;f.swimlane=d&&a.graph.isSwimlane(b);
e=this.config.getElementsByTagName("condition");for(d=0;d<e.length;d++){var g=mxUtils.eval(mxUtils.getTextContent(e[d])),k=e[d].getAttribute("name");null!=k&&"function"==typeof g&&(f[k]=g(a,b,c))}return f};function mxDefaultToolbar(a,b){this.editor=b;null!=a&&null!=b&&this.init(a)}mxDefaultToolbar.prototype.editor=null;mxDefaultToolbar.prototype.toolbar=null;mxDefaultToolbar.prototype.resetHandler=null;mxDefaultToolbar.prototype.spacing=4;mxDefaultToolbar.prototype.connectOnDrop=!1;
mxDefaultToolbar.prototype.init=function(a){null!=a&&(this.toolbar=new mxToolbar(a),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(a,c){var d=c.getProperty("function");this.editor.insertFunction=null!=d?mxUtils.bind(this,function(){d.apply(this,arguments);this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,
@@ -1879,8 +1879,8 @@ mxDefaultToolbar.prototype.addActionOption=function(a,b,c){var d=mxUtils.bind(th
mxDefaultToolbar.prototype.addPrototype=function(a,b,c,d,e,f){var g=mxUtils.bind(this,function(){return"function"==typeof c?c():null!=c?this.editor.graph.cloneCells([c])[0]:null}),k=mxUtils.bind(this,function(a,b){"function"==typeof e?e(this.editor,g(),a,b):this.drop(g(),a,b);this.toolbar.resetMode();mxEvent.consume(a)});a=this.toolbar.addMode(a,b,k,d,null,f);this.installDropHandler(a,function(a,b,c){k(b,c)});return a};
mxDefaultToolbar.prototype.drop=function(a,b,c){var d=this.editor.graph,e=d.getModel();if(null==c||e.isEdge(c)||!this.connectOnDrop||!d.isCellConnectable(c)){for(;null!=c&&!d.isValidDropTarget(c,[a],b);)c=e.getParent(c);this.insert(a,b,c)}else this.connect(a,b,c)};
mxDefaultToolbar.prototype.insert=function(a,b,c){var d=this.editor.graph;if(d.canImportCell(a)){var e=mxEvent.getClientX(b),f=mxEvent.getClientY(b),e=mxUtils.convertPoint(d.container,e,f);return d.isSplitEnabled()&&d.isSplitTarget(c,[a],b)?d.splitEdge(c,[a],null,e.x,e.y):this.editor.addVertex(c,a,e.x,e.y)}return null};
-mxDefaultToolbar.prototype.connect=function(a,b,c){b=this.editor.graph;var d=b.getModel();if(null!=c&&b.isCellConnectable(a)&&b.isEdgeValid(null,c,a)){var e=null;d.beginUpdate();try{var f=d.getGeometry(c),g=d.getGeometry(a).clone();g.x=f.x+(f.width-g.width)/2;g.y=f.y+(f.height-g.height)/2;var k=this.spacing*b.gridSize,l=20*d.getDirectedEdgeCount(c,!0);this.editor.horizontalFlow?g.x+=(g.width+f.width)/2+k+l:g.y+=(g.height+f.height)/2+k+l;a.setGeometry(g);var m=d.getParent(c);b.addCell(a,m);b.constrainChild(a);
-e=this.editor.createEdge(c,a);if(null==d.getGeometry(e)){var n=new mxGeometry;n.relative=!0;d.setGeometry(e,n)}b.addEdge(e,m,c,a)}finally{d.endUpdate()}b.setSelectionCells([a,e]);b.scrollCellToVisible(a)}};
+mxDefaultToolbar.prototype.connect=function(a,b,c){b=this.editor.graph;var d=b.getModel();if(null!=c&&b.isCellConnectable(a)&&b.isEdgeValid(null,c,a)){var e=null;d.beginUpdate();try{var f=d.getGeometry(c),g=d.getGeometry(a).clone();g.x=f.x+(f.width-g.width)/2;g.y=f.y+(f.height-g.height)/2;var k=this.spacing*b.gridSize,l=20*d.getDirectedEdgeCount(c,!0);this.editor.horizontalFlow?g.x+=(g.width+f.width)/2+k+l:g.y+=(g.height+f.height)/2+k+l;a.setGeometry(g);var n=d.getParent(c);b.addCell(a,n);b.constrainChild(a);
+e=this.editor.createEdge(c,a);if(null==d.getGeometry(e)){var m=new mxGeometry;m.relative=!0;d.setGeometry(e,m)}b.addEdge(e,n,c,a)}finally{d.endUpdate()}b.setSelectionCells([a,e]);b.scrollCellToVisible(a)}};
mxDefaultToolbar.prototype.installDropHandler=function(a,b){var c=document.createElement("img");c.setAttribute("src",a.getAttribute("src"));var d=mxUtils.bind(this,function(e){c.style.width=2*a.offsetWidth+"px";c.style.height=2*a.offsetHeight+"px";mxUtils.makeDraggable(a,this.editor.graph,b,c);mxEvent.removeListener(c,"load",d)});mxClient.IS_IE?d():mxEvent.addListener(c,"load",d)};
mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)};
function mxEditor(a){this.actions=[];this.addActions();if(null!=document.body){this.cycleAttributeValues=[];this.popupHandler=new mxDefaultPopupMenu;this.undoManager=new mxUndoManager;this.graph=this.createGraph();this.toolbar=this.createToolbar();this.keyHandler=new mxDefaultKeyHandler(this);this.configure(a);this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName;if(null!=this.onInit)this.onInit();mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}}
@@ -1922,9 +1922,9 @@ mxEditor.prototype.postDiagram=function(a,b){this.escapePostData&&(b=encodeURICo
mxEditor.prototype.swapStyles=function(a,b){var c=this.graph.getStylesheet().styles[b];this.graph.getView().getStylesheet().putCellStyle(b,this.graph.getStylesheet().styles[a]);this.graph.getStylesheet().putCellStyle(a,c);this.graph.refresh()};
mxEditor.prototype.showProperties=function(a){a=a||this.graph.getSelectionCell();null==a&&(a=this.graph.getCurrentRoot(),null==a&&(a=this.graph.getModel().getRoot()));if(null!=a){this.graph.stopEditing(!0);var b=mxUtils.getOffset(this.graph.container),c=b.x+10,b=b.y;if(null!=this.properties&&!this.movePropertiesDialog)c=this.properties.getX(),b=this.properties.getY();else{var d=this.graph.getCellBounds(a);null!=d&&(c+=d.x+Math.min(200,d.width),b+=d.y)}this.hideProperties();a=this.createProperties(a);
null!=a&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,a,c,b,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}};mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties};
-mxEditor.prototype.createProperties=function(a){var b=this.graph.getModel(),c=b.getValue(a);if(mxUtils.isNode(c)){var d=new mxForm("properties");d.addText("ID",a.getId()).setAttribute("readonly","true");var e=null,f=null,g=null,k=null,l=null;b.isVertex(a)&&(e=b.getGeometry(a),null!=e&&(f=d.addText("top",e.y),g=d.addText("left",e.x),k=d.addText("width",e.width),l=d.addText("height",e.height)));for(var m=b.getStyle(a),n=d.addText("Style",m||""),q=c.attributes,p=[],c=0;c<q.length;c++)p[c]=d.addTextarea(q[c].nodeName,
-q[c].value,"label"==q[c].nodeName?4:2);c=mxUtils.bind(this,function(){this.hideProperties();b.beginUpdate();try{null!=e&&(e=e.clone(),e.x=parseFloat(g.value),e.y=parseFloat(f.value),e.width=parseFloat(k.value),e.height=parseFloat(l.value),b.setGeometry(a,e));0<n.value.length?b.setStyle(a,n.value):b.setStyle(a,null);for(var c=0;c<q.length;c++){var d=new mxCellAttributeChange(a,q[c].nodeName,p[c].value);b.execute(d)}this.graph.isAutoSizeCell(a)&&this.graph.updateCellSize(a)}finally{b.endUpdate()}});
-m=mxUtils.bind(this,function(){this.hideProperties()});d.addButtons(c,m);return d.table}return null};mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)};
+mxEditor.prototype.createProperties=function(a){var b=this.graph.getModel(),c=b.getValue(a);if(mxUtils.isNode(c)){var d=new mxForm("properties");d.addText("ID",a.getId()).setAttribute("readonly","true");var e=null,f=null,g=null,k=null,l=null;b.isVertex(a)&&(e=b.getGeometry(a),null!=e&&(f=d.addText("top",e.y),g=d.addText("left",e.x),k=d.addText("width",e.width),l=d.addText("height",e.height)));for(var n=b.getStyle(a),m=d.addText("Style",n||""),p=c.attributes,q=[],c=0;c<p.length;c++)q[c]=d.addTextarea(p[c].nodeName,
+p[c].value,"label"==p[c].nodeName?4:2);c=mxUtils.bind(this,function(){this.hideProperties();b.beginUpdate();try{null!=e&&(e=e.clone(),e.x=parseFloat(g.value),e.y=parseFloat(f.value),e.width=parseFloat(k.value),e.height=parseFloat(l.value),b.setGeometry(a,e));0<m.value.length?b.setStyle(a,m.value):b.setStyle(a,null);for(var c=0;c<p.length;c++){var d=new mxCellAttributeChange(a,p[c].nodeName,q[c].value);b.execute(d)}this.graph.isAutoSizeCell(a)&&this.graph.updateCellSize(a)}finally{b.endUpdate()}});
+n=mxUtils.bind(this,function(){this.hideProperties()});d.addButtons(c,n);return d.table}return null};mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)};
mxEditor.prototype.showTasks=function(){if(null==this.tasks){var a=document.createElement("div");a.style.padding="4px";a.style.paddingLeft="20px";var b=document.body.clientWidth,b=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,a,b-220,this.tasksTop,200);b.setClosable(!0);b.destroyOnClose=!1;var c=mxUtils.bind(this,function(b){mxEvent.release(a);a.innerHTML="";this.createTasks(a)});this.graph.getModel().addListener(mxEvent.CHANGE,c);this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
c);this.graph.addListener(mxEvent.ROOT,c);null!=this.tasksWindowImage&&b.setImage(this.tasksWindowImage);this.tasks=b;this.createTasks(a)}this.tasks.setVisible(!0)};mxEditor.prototype.refreshTasks=function(a){null!=this.tasks&&(a=this.tasks.content,mxEvent.release(a),a.innerHTML="",this.createTasks(a))};mxEditor.prototype.createTasks=function(a){};
mxEditor.prototype.showHelp=function(a){if(null==this.help){var b=document.createElement("iframe");b.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp);b.setAttribute("height","100%");b.setAttribute("width","100%");b.setAttribute("frameBorder","0");b.style.backgroundColor="white";a=document.body.clientWidth;var c=document.body.clientHeight||document.documentElement.clientHeight,d=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,b,(a-this.helpWidth)/2,(c-this.helpHeight)/
@@ -1934,7 +1934,7 @@ b.destroyOnClose=!1;b.addListener(mxEvent.RESIZE_END,function(){c.update()});thi
mxEditor.prototype.createPopupMenu=function(a,b,c){this.popupHandler.createMenu(this,a,b,c)};mxEditor.prototype.createEdge=function(a,b){var c=null;if(null!=this.defaultEdge)c=this.graph.getModel().cloneCell(this.defaultEdge);else{c=new mxCell("");c.setEdge(!0);var d=new mxGeometry;d.relative=!0;c.setGeometry(d)}d=this.getEdgeStyle();null!=d&&c.setStyle(d);return c};mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle};
mxEditor.prototype.consumeCycleAttribute=function(a){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(a)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null};mxEditor.prototype.cycleAttribute=function(a){if(null!=this.cycleAttributeName){var b=this.consumeCycleAttribute(a);null!=b&&a.setStyle(a.getStyle()+";"+this.cycleAttributeName+"\x3d"+b)}};
mxEditor.prototype.addVertex=function(a,b,c,d){for(var e=this.graph.getModel();null!=a&&!this.graph.isValidDropTarget(a);)a=e.getParent(a);a=null!=a?a:this.graph.getSwimlaneAt(c,d);var f=this.graph.getView().scale,g=e.getGeometry(b),k=e.getGeometry(a);if(this.graph.isSwimlane(b)&&!this.graph.swimlaneNesting)a=null;else{if(null==a&&this.swimlaneRequired)return null;if(null!=a&&null!=k){var l=this.graph.getView().getState(a);if(null!=l){if(c-=l.origin.x*f,d-=l.origin.y*f,this.graph.isConstrainedMoving){var k=
-g.width,m=g.height,n=l.x+l.width;c+k>n&&(c-=c+k-n);n=l.y+l.height;d+m>n&&(d-=d+m-n)}}else null!=k&&(c-=k.x*f,d-=k.y*f)}}g=g.clone();g.x=this.graph.snap(c/f-this.graph.getView().translate.x-this.graph.gridSize/2);g.y=this.graph.snap(d/f-this.graph.getView().translate.y-this.graph.gridSize/2);b.setGeometry(g);null==a&&(a=this.graph.getDefaultParent());this.cycleAttribute(b);this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",b,"parent",a));e.beginUpdate();try{b=this.graph.addCell(b,
+g.width,n=g.height,m=l.x+l.width;c+k>m&&(c-=c+k-m);m=l.y+l.height;d+n>m&&(d-=d+n-m)}}else null!=k&&(c-=k.x*f,d-=k.y*f)}}g=g.clone();g.x=this.graph.snap(c/f-this.graph.getView().translate.x-this.graph.gridSize/2);g.y=this.graph.snap(d/f-this.graph.getView().translate.y-this.graph.gridSize/2);b.setGeometry(g);null==a&&(a=this.graph.getDefaultParent());this.cycleAttribute(b);this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",b,"parent",a));e.beginUpdate();try{b=this.graph.addCell(b,
a),null!=b&&(this.graph.constrainChild(b),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",b)))}finally{e.endUpdate()}null!=b&&(this.graph.setSelectionCell(b),this.graph.scrollCellToVisible(b),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",b)));return b};
mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};
var mxCodecRegistry={codecs:[],aliases:[],register:function(a){if(null!=a){var b=a.getName();mxCodecRegistry.codecs[b]=a;var c=mxUtils.getFunctionName(a.template.constructor);c!=b&&mxCodecRegistry.addAlias(c,b)}return a},addAlias:function(a,b){mxCodecRegistry.aliases[a]=b},getCodec:function(a){var b=null;if(null!=a){var b=mxUtils.getFunctionName(a),c=mxCodecRegistry.aliases[b];null!=c&&(b=c);b=mxCodecRegistry.codecs[b];if(null==b)try{b=new mxObjectCodec(new a),mxCodecRegistry.register(b)}catch(d){}}return b}};
@@ -1966,22 +1966,22 @@ mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxChildChange,["
var e=c.firstChild;d.child=a.decodeCell(e,!1);d=e.nextSibling;e.parentNode.removeChild(e);for(e=d;null!=e;){d=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getAttribute("id");null==a.lookup(f)&&a.decodeCell(e)}e.parentNode.removeChild(e);e=d}}else e=c.getAttribute("child"),d.child=a.getObject(e);return c};a.afterDecode=function(a,c,d){d.child.parent=d.previous;d.previous=d.parent;d.previousIndex=d.index;return d};return a}());
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);a.afterDecode=function(a,c,d){d.previous=d.terminal;return d};return a}());var mxGenericChangeCodec=function(a,b){var c=new mxObjectCodec(a,["model","previous"],["cell"]);c.afterDecode=function(a,c,f){mxUtils.isNode(f.cell)&&(f.cell=a.decodeCell(f.cell,!1));f.previous=f[b];return f};return c};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value"));
mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style"));mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry"));mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed"));mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible"));mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value"));mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))}());
-mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxGraphView);a.encode=function(a,c){return this.encodeCell(a,c,c.graph.getModel().getRoot())};a.encodeCell=function(a,c,d){var e=c.graph.getModel(),f=c.getState(d),g=e.getParent(d);if(null==g||null!=f){var k=e.getChildCount(d),l=c.graph.getCellGeometry(d),m=null;g==e.getRoot()?m="layer":null==g?m="graph":e.isEdge(d)?m="edge":0<k&&null!=l?m="group":e.isVertex(d)&&(m="vertex");if(null!=m){var n=a.document.createElement(m);null!=c.graph.getLabel(d)&&
-(n.setAttribute("label",c.graph.getLabel(d)),c.graph.isHtmlLabel(d)&&n.setAttribute("html",!0));if(null==g){var q=c.getGraphBounds();null!=q&&(n.setAttribute("x",Math.round(q.x)),n.setAttribute("y",Math.round(q.y)),n.setAttribute("width",Math.round(q.width)),n.setAttribute("height",Math.round(q.height)));n.setAttribute("scale",c.scale)}else if(null!=f&&null!=l){for(q in f.style)g=f.style[q],"function"==typeof g&&"object"==typeof g&&(g=mxStyleRegistry.getName(g)),null!=g&&"function"!=typeof g&&"object"!=
-typeof g&&n.setAttribute(q,g);g=f.absolutePoints;if(null!=g&&0<g.length){l=Math.round(g[0].x)+","+Math.round(g[0].y);for(q=1;q<g.length;q++)l+=" "+Math.round(g[q].x)+","+Math.round(g[q].y);n.setAttribute("points",l)}else n.setAttribute("x",Math.round(f.x)),n.setAttribute("y",Math.round(f.y)),n.setAttribute("width",Math.round(f.width)),n.setAttribute("height",Math.round(f.height));q=f.absoluteOffset;null!=q&&(0!=q.x&&n.setAttribute("dx",Math.round(q.x)),0!=q.y&&n.setAttribute("dy",Math.round(q.y)))}for(q=
-0;q<k;q++)f=this.encodeCell(a,c,e.getChildAt(d,q)),null!=f&&n.appendChild(f)}}return n};return a}());
-var mxStylesheetCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxStylesheet);a.encode=function(a,c){var d=a.document.createElement(this.getName()),e;for(e in c.styles){var f=c.styles[e],g=a.document.createElement("add");if(null!=e){g.setAttribute("as",e);for(var k in f){var l=this.getStringValue(k,f[k]);if(null!=l){var m=a.document.createElement("add");m.setAttribute("value",l);m.setAttribute("as",k);g.appendChild(m)}}0<g.childNodes.length&&d.appendChild(g)}}return d};a.getStringValue=
+mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxGraphView);a.encode=function(a,c){return this.encodeCell(a,c,c.graph.getModel().getRoot())};a.encodeCell=function(a,c,d){var e=c.graph.getModel(),f=c.getState(d),g=e.getParent(d);if(null==g||null!=f){var k=e.getChildCount(d),l=c.graph.getCellGeometry(d),n=null;g==e.getRoot()?n="layer":null==g?n="graph":e.isEdge(d)?n="edge":0<k&&null!=l?n="group":e.isVertex(d)&&(n="vertex");if(null!=n){var m=a.document.createElement(n);null!=c.graph.getLabel(d)&&
+(m.setAttribute("label",c.graph.getLabel(d)),c.graph.isHtmlLabel(d)&&m.setAttribute("html",!0));if(null==g){var p=c.getGraphBounds();null!=p&&(m.setAttribute("x",Math.round(p.x)),m.setAttribute("y",Math.round(p.y)),m.setAttribute("width",Math.round(p.width)),m.setAttribute("height",Math.round(p.height)));m.setAttribute("scale",c.scale)}else if(null!=f&&null!=l){for(p in f.style)g=f.style[p],"function"==typeof g&&"object"==typeof g&&(g=mxStyleRegistry.getName(g)),null!=g&&"function"!=typeof g&&"object"!=
+typeof g&&m.setAttribute(p,g);g=f.absolutePoints;if(null!=g&&0<g.length){l=Math.round(g[0].x)+","+Math.round(g[0].y);for(p=1;p<g.length;p++)l+=" "+Math.round(g[p].x)+","+Math.round(g[p].y);m.setAttribute("points",l)}else m.setAttribute("x",Math.round(f.x)),m.setAttribute("y",Math.round(f.y)),m.setAttribute("width",Math.round(f.width)),m.setAttribute("height",Math.round(f.height));p=f.absoluteOffset;null!=p&&(0!=p.x&&m.setAttribute("dx",Math.round(p.x)),0!=p.y&&m.setAttribute("dy",Math.round(p.y)))}for(p=
+0;p<k;p++)f=this.encodeCell(a,c,e.getChildAt(d,p)),null!=f&&m.appendChild(f)}}return m};return a}());
+var mxStylesheetCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxStylesheet);a.encode=function(a,c){var d=a.document.createElement(this.getName()),e;for(e in c.styles){var f=c.styles[e],g=a.document.createElement("add");if(null!=e){g.setAttribute("as",e);for(var k in f){var l=this.getStringValue(k,f[k]);if(null!=l){var n=a.document.createElement("add");n.setAttribute("value",l);n.setAttribute("as",k);g.appendChild(n)}}0<g.childNodes.length&&d.appendChild(g)}}return d};a.getStringValue=
function(a,c){var d=typeof c;"function"==d?c=mxStyleRegistry.getName(style[j]):"object"==d&&(c=null);return c};a.decode=function(a,c,d){d=d||new this.template.constructor;var e=c.getAttribute("id");null!=e&&(a.objects[e]=d);for(c=c.firstChild;null!=c;){if(!this.processInclude(a,c,d)&&"add"==c.nodeName&&(e=c.getAttribute("as"),null!=e)){var f=c.getAttribute("extend"),g=null!=f?mxUtils.clone(d.styles[f]):null;null==g&&(null!=f&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+f+" not found to extend"),
-g={});for(f=c.firstChild;null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT){var k=f.getAttribute("as");if("add"==f.nodeName){var l=mxUtils.getTextContent(f),m=null;null!=l&&0<l.length&&mxStylesheetCodec.allowEval?m=mxUtils.eval(l):(m=f.getAttribute("value"),mxUtils.isNumeric(m)&&(m=parseFloat(m)));null!=m&&(g[k]=m)}else"remove"==f.nodeName&&delete g[k]}f=f.nextSibling}d.putCellStyle(e,g)}c=c.nextSibling}return d};return a}());mxStylesheetCodec.allowEval=!0;
+g={});for(f=c.firstChild;null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT){var k=f.getAttribute("as");if("add"==f.nodeName){var l=mxUtils.getTextContent(f),n=null;null!=l&&0<l.length&&mxStylesheetCodec.allowEval?n=mxUtils.eval(l):(n=f.getAttribute("value"),mxUtils.isNumeric(n)&&(n=parseFloat(n)));null!=n&&(g[k]=n)}else"remove"==f.nodeName&&delete g[k]}f=f.nextSibling}d.putCellStyle(e,g)}c=c.nextSibling}return d};return a}());mxStylesheetCodec.allowEval=!0;
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultKeyHandler);a.encode=function(a,c){return null};a.decode=function(a,c,d){if(null!=d)for(c=c.firstChild;null!=c;){if(!this.processInclude(a,c,d)&&"add"==c.nodeName){var e=c.getAttribute("as"),f=c.getAttribute("action"),g=c.getAttribute("control");d.bindAction(e,f,g)}c=c.nextSibling}return d};return a}());
var mxDefaultToolbarCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultToolbar);a.encode=function(a,c){return null};a.decode=function(a,c,d){if(null!=d){var e=d.editor;for(c=c.firstChild;null!=c;){if(c.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(a,c,d))if("separator"==c.nodeName)d.addSeparator();else if("br"==c.nodeName)d.toolbar.addBreak();else if("hr"==c.nodeName)d.toolbar.addLine();else if("add"==c.nodeName){var f=c.getAttribute("as"),f=mxResources.get(f)||
-f,g=c.getAttribute("icon"),k=c.getAttribute("pressedIcon"),l=c.getAttribute("action"),m=c.getAttribute("mode"),n=c.getAttribute("template"),q="0"!=c.getAttribute("toggle"),p=mxUtils.getTextContent(c),r=null;if(null!=l)r=d.addItem(f,g,l,k);else if(null!=m)var s=mxDefaultToolbarCodec.allowEval?mxUtils.eval(p):null,r=d.addMode(f,g,m,k,s);else if(null!=n||null!=p&&0<p.length)r=e.templates[n],n=c.getAttribute("style"),null!=r&&null!=n&&(r=e.graph.cloneCells([r])[0],r.setStyle(n)),n=null,null!=p&&0<p.length&&
-mxDefaultToolbarCodec.allowEval&&(n=mxUtils.eval(p)),r=d.addPrototype(f,g,r,k,n,q);else if(k=mxUtils.getChildNodes(c),0<k.length)if(null==g){n=d.addActionCombo(f);for(f=0;f<k.length;f++)q=k[f],"separator"==q.nodeName?d.addOption(n,"---"):"add"==q.nodeName&&(g=q.getAttribute("as"),q=q.getAttribute("action"),d.addActionOption(n,g,q))}else{var t=null,v=d.addPrototype(f,g,function(){var a=e.templates[t.value];if(null!=a){var a=a.clone(),b=t.options[t.selectedIndex].cellStyle;null!=b&&a.setStyle(b);return a}mxLog.warn("Template "+
-a+" not found");return null},null,null,q),t=d.addCombo();mxEvent.addListener(t,"change",function(){d.toolbar.selectMode(v,function(a){a=mxUtils.convertPoint(e.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a));return e.addVertex(null,s(),a.x,a.y)});d.toolbar.noReset=!1});for(f=0;f<k.length;f++)q=k[f],"separator"==q.nodeName?d.addOption(t,"---"):"add"==q.nodeName&&(g=q.getAttribute("as"),p=q.getAttribute("template"),d.addOption(t,g,p||n).cellStyle=q.getAttribute("style"))}null!=r&&(n=c.getAttribute("id"),
-null!=n&&0<n.length&&r.setAttribute("id",n))}c=c.nextSibling}}return d};return a}());mxDefaultToolbarCodec.allowEval=!0;mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultPopupMenu);a.encode=function(a,c){return null};a.decode=function(a,c,d){var e=c.getElementsByTagName("include")[0];null!=e?this.processInclude(a,e,d):null!=d&&(d.config=c);return d};return a}());
+f,g=c.getAttribute("icon"),k=c.getAttribute("pressedIcon"),l=c.getAttribute("action"),n=c.getAttribute("mode"),m=c.getAttribute("template"),p="0"!=c.getAttribute("toggle"),q=mxUtils.getTextContent(c),s=null;if(null!=l)s=d.addItem(f,g,l,k);else if(null!=n)var r=mxDefaultToolbarCodec.allowEval?mxUtils.eval(q):null,s=d.addMode(f,g,n,k,r);else if(null!=m||null!=q&&0<q.length)s=e.templates[m],m=c.getAttribute("style"),null!=s&&null!=m&&(s=e.graph.cloneCells([s])[0],s.setStyle(m)),m=null,null!=q&&0<q.length&&
+mxDefaultToolbarCodec.allowEval&&(m=mxUtils.eval(q)),s=d.addPrototype(f,g,s,k,m,p);else if(k=mxUtils.getChildNodes(c),0<k.length)if(null==g){m=d.addActionCombo(f);for(f=0;f<k.length;f++)p=k[f],"separator"==p.nodeName?d.addOption(m,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),p=p.getAttribute("action"),d.addActionOption(m,g,p))}else{var t=null,v=d.addPrototype(f,g,function(){var a=e.templates[t.value];if(null!=a){var a=a.clone(),b=t.options[t.selectedIndex].cellStyle;null!=b&&a.setStyle(b);return a}mxLog.warn("Template "+
+a+" not found");return null},null,null,p),t=d.addCombo();mxEvent.addListener(t,"change",function(){d.toolbar.selectMode(v,function(a){a=mxUtils.convertPoint(e.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a));return e.addVertex(null,r(),a.x,a.y)});d.toolbar.noReset=!1});for(f=0;f<k.length;f++)p=k[f],"separator"==p.nodeName?d.addOption(t,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),q=p.getAttribute("template"),d.addOption(t,g,q||m).cellStyle=p.getAttribute("style"))}null!=s&&(m=c.getAttribute("id"),
+null!=m&&0<m.length&&s.setAttribute("id",m))}c=c.nextSibling}}return d};return a}());mxDefaultToolbarCodec.allowEval=!0;mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultPopupMenu);a.encode=function(a,c){return null};a.decode=function(a,c,d){var e=c.getElementsByTagName("include")[0];null!=e?this.processInclude(a,e,d):null!=d&&(d.config=c);return d};return a}());
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));a.afterDecode=function(a,c,d){a=c.getAttribute("defaultEdge");null!=a&&(c.removeAttribute("defaultEdge"),d.defaultEdge=d.templates[a]);a=c.getAttribute("defaultGroup");null!=a&&(c.removeAttribute("defaultGroup"),d.defaultGroup=d.templates[a]);return d};a.decodeChild=function(a,c,d){if("Array"==c.nodeName){if("templates"==c.getAttribute("as")){this.decodeTemplates(a,
-c,d);return}}else if("ui"==c.nodeName){this.decodeUi(a,c,d);return}mxObjectCodec.prototype.decodeChild.apply(this,arguments)};a.decodeUi=function(a,c,d){for(a=c.firstChild;null!=a;){if("add"==a.nodeName){c=a.getAttribute("as");var e=a.getAttribute("element"),f=a.getAttribute("style"),g=null;if(null!=e)g=document.getElementById(e),null!=g&&null!=f&&(g.style.cssText+=";"+f);else{var e=parseInt(a.getAttribute("x")),k=parseInt(a.getAttribute("y")),l=a.getAttribute("width"),m=a.getAttribute("height"),
-g=document.createElement("div");g.style.cssText=f;(new mxWindow(mxResources.get(c)||c,g,e,k,l,m,!1,!0)).setVisible(!0)}"graph"==c?d.setGraphContainer(g):"toolbar"==c?d.setToolbarContainer(g):"title"==c?d.setTitleContainer(g):"status"==c?d.setStatusContainer(g):"map"==c&&d.setMapContainer(g)}else"resource"==a.nodeName?mxResources.add(a.getAttribute("basename")):"stylesheet"==a.nodeName&&mxClient.link("stylesheet",a.getAttribute("name"));a=a.nextSibling}};a.decodeTemplates=function(a,c,d){null==d.templates&&
+c,d);return}}else if("ui"==c.nodeName){this.decodeUi(a,c,d);return}mxObjectCodec.prototype.decodeChild.apply(this,arguments)};a.decodeUi=function(a,c,d){for(a=c.firstChild;null!=a;){if("add"==a.nodeName){c=a.getAttribute("as");var e=a.getAttribute("element"),f=a.getAttribute("style"),g=null;if(null!=e)g=document.getElementById(e),null!=g&&null!=f&&(g.style.cssText+=";"+f);else{var e=parseInt(a.getAttribute("x")),k=parseInt(a.getAttribute("y")),l=a.getAttribute("width"),n=a.getAttribute("height"),
+g=document.createElement("div");g.style.cssText=f;(new mxWindow(mxResources.get(c)||c,g,e,k,l,n,!1,!0)).setVisible(!0)}"graph"==c?d.setGraphContainer(g):"toolbar"==c?d.setToolbarContainer(g):"title"==c?d.setTitleContainer(g):"status"==c?d.setStatusContainer(g):"map"==c&&d.setMapContainer(g)}else"resource"==a.nodeName?mxResources.add(a.getAttribute("basename")):"stylesheet"==a.nodeName&&mxClient.link("stylesheet",a.getAttribute("name"));a=a.nextSibling}};a.decodeTemplates=function(a,c,d){null==d.templates&&
(d.templates=[]);c=mxUtils.getChildNodes(c);for(var e=0;e<c.length;e++){for(var f=c[e].getAttribute("as"),g=c[e].firstChild;null!=g&&1!=g.nodeType;)g=g.nextSibling;null!=g&&(d.templates[f]=a.decodeCell(g))}};return a}());Editor=function(a,b,c,d){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,c);this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=function(){return this.status};
this.graphChangeListener=function(){this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter);)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();
Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
@@ -2024,12 +2024,12 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
"geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],e=1;e<this.gridSteps;e++){var f=e*b;d.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+" "+c)}return'\x3csvg width\x3d"'+c+'" height\x3d"'+
c+'" xmlns\x3d"'+mxConstants.NS_SVG+'"\x3e\x3cdefs\x3e\x3cpattern id\x3d"grid" width\x3d"'+c+'" height\x3d"'+c+'" patternUnits\x3d"userSpaceOnUse"\x3e\x3cpath d\x3d"'+d.join(" ")+'" fill\x3d"none" stroke\x3d"'+a+'" opacity\x3d"0.2" stroke-width\x3d"1"/\x3e\x3cpath d\x3d"M '+c+" 0 L 0 0 0 "+c+'" fill\x3d"none" stroke\x3d"'+a+'" stroke-width\x3d"1"/\x3e\x3c/pattern\x3e\x3c/defs\x3e\x3crect width\x3d"100%" height\x3d"100%" fill\x3d"url(#grid)"/\x3e\x3c/svg\x3e'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=
function(b,c){a.apply(this,arguments);if(null!=this.shiftPreview1){var d=this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,f=this.pageFormat,g=d*this.pageScale,
-s=this.view.getBackgroundPageBounds();b=s.width;c=s.height;var t=new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),v=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(c/t.height)-1:0,u=a?Math.ceil(b/t.width)-1:0,y=s.x+b,z=s.y+c;null==this.horizontalPageBreaks&&0<v&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<u&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?v:u,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?
-[new mxPoint(Math.round(s.x),Math.round(s.y+(c+1)*t.height)),new mxPoint(Math.round(y),Math.round(s.y+(c+1)*t.height))]:[new mxPoint(Math.round(s.x+(c+1)*t.width),Math.round(s.y)),new mxPoint(Math.round(s.x+(c+1)*t.width),Math.round(z))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-
+r=this.view.getBackgroundPageBounds();b=r.width;c=r.height;var t=new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),v=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(c/t.height)-1:0,u=a?Math.ceil(b/t.width)-1:0,z=r.x+b,y=r.y+c;null==this.horizontalPageBreaks&&0<v&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<u&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?v:u,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?
+[new mxPoint(Math.round(r.x),Math.round(r.y+(c+1)*t.height)),new mxPoint(Math.round(z),Math.round(r.y+(c+1)*t.height))]:[new mxPoint(Math.round(r.x+(c+1)*t.width),Math.round(r.y)),new mxPoint(Math.round(r.x+(c+1)*t.width),Math.round(y))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-
b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,c,d){for(var e=0;e<c.length;e++)if(this.graph.getModel().isVertex(c[e])){var f=this.graph.getCellGeometry(c[e]);if(null!=f&&f.relative)return!1}return b.apply(this,arguments)};var c=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=c.apply(this,arguments);a.intersects=
mxUtils.bind(this,function(b,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff","#cacaca")};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=a.width/this.scale,e=a.height/this.scale,f=this.graph.pageFormat,g=this.graph.pageScale,
-a=f.width*g,f=f.height*g,g=Math.floor(Math.min(0,b)/a),s=Math.floor(Math.min(0,c)/f),b=Math.ceil(Math.max(1,b+d)/a),c=Math.ceil(Math.max(1,c+e)/f);return new mxRectangle(this.scale*(this.translate.x+g*a),this.scale*(this.translate.y+s*f),this.scale*(b-g)*a,this.scale*(c-s)*f)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);if(this.dialect!=mxConstants.DIALECT_SVG&&null!=this.view.backgroundPageShape&&(!this.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.container)))this.view.backgroundPageShape.node.style.marginLeft=
-a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px"};var e=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,f,g){var r=e.apply(this,arguments);null!=g&&!g&&mxEvent.addListener(r,"mousedown",function(a){mxEvent.consume(a)});return r};var f=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=f.apply(this,arguments),e=b.getParent(d);
+a=f.width*g,f=f.height*g,g=Math.floor(Math.min(0,b)/a),r=Math.floor(Math.min(0,c)/f),b=Math.ceil(Math.max(1,b+d)/a),c=Math.ceil(Math.max(1,c+e)/f);return new mxRectangle(this.scale*(this.translate.x+g*a),this.scale*(this.translate.y+r*f),this.scale*(b-g)*a,this.scale*(c-r)*f)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);if(this.dialect!=mxConstants.DIALECT_SVG&&null!=this.view.backgroundPageShape&&(!this.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.container)))this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px"};var e=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,f,g){var s=e.apply(this,arguments);null!=g&&!g&&mxEvent.addListener(s,"mousedown",function(a){mxEvent.consume(a)});return s};var f=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=f.apply(this,arguments),e=b.getParent(d);
if(null==c||c!=d&&c!=e)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(e)&&b.isVertex(e)&&!this.graph.isContainer(e);)d=e,e=this.graph.getModel().getParent(d);return d};var g=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=g.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);var c=this.graph.view.getState(b);if(!(null!=c&&a.isSource(c.control)))for(var c=this.graph.getModel(),d=c.getParent(b);!this.graph.isCellSelected(d)&&c.isVertex(d);)b=d,d=c.getParent(b);this.graph.selectCellForEvent(b,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a);b.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&&
(a=c),c=b.getParent(c);return a}})();EditorUi=function(a,b,c){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=c;mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs\x3d":(new Image).src=mxPopupMenu.prototype.submenuImage;!mxClient.IS_SVG&&null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src);
@@ -2039,16 +2039,16 @@ b,this.toolbarContainer.onmousedown=b,this.diagramContainer.onselectstart=b,this
c.parentNode}})};this.hoverIcons=this.createHoverIcons();mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var e=!1,f=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=
function(a,b){return e||f.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32==a.which?(e=!0,this.hoverIcons.reset(),d.container.style.cursor="move",!d.isEditing()&&mxEvent.getSource(a)==d.container&&mxEvent.consume(a)):!mxEvent.isConsumed(a)&&27==a.keyCode&&this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";e=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);
var g=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return g.apply(this,arguments)||e||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var k=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return k.apply(this,arguments)||13==a.keyCode&&(mxEvent.isControlDown(a)||
-mxClient.IS_MAC&&mxEvent.isMetaDown(a))};var l=!1,m=null,n=null,q=null,p=mxUtils.bind(this,function(){if(l!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var c=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=c}a=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==q)this.toolbar.createTextToolbar();else{for(var e=0;e<q.length;e++)this.toolbar.container.appendChild(q[e]);this.toolbar.fontMenu=
-m;this.toolbar.sizeMenu=n}l=d.cellEditor.isContentEditing();m=a;n=c;q=b}}),r=this,s=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){s.apply(this,arguments);p();if(d.cellEditor.isContentEditing()){var a=!1,b=function(){a||(a=!0,window.setTimeout(function(){for(var b=d.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;if(null!=b&&(b=mxUtils.getCurrentStyle(b),null!=b&&null!=r.toolbar)){var c=b.fontFamily;"'"==c.charAt(0)&&(c=c.substring(1));"'"==c.charAt(c.length-
-1)&&(c=c.substring(0,c.length-1));r.toolbar.setFontName(c);r.toolbar.setFontSize(parseInt(b.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",b);mxEvent.addListener(d.cellEditor.textarea,"touchend",b);mxEvent.addListener(d.cellEditor.textarea,"mouseup",b);mxEvent.addListener(d.cellEditor.textarea,"keyup",b);b()}};var t=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,b){t.apply(this,arguments);p()};d.container.setAttribute("tabindex","0");d.container.style.cursor=
+mxClient.IS_MAC&&mxEvent.isMetaDown(a))};var l=!1,n=null,m=null,p=null,q=mxUtils.bind(this,function(){if(l!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var c=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=c}a=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var e=0;e<p.length;e++)this.toolbar.container.appendChild(p[e]);this.toolbar.fontMenu=
+n;this.toolbar.sizeMenu=m}l=d.cellEditor.isContentEditing();n=a;m=c;p=b}}),s=this,r=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){r.apply(this,arguments);q();if(d.cellEditor.isContentEditing()){var a=!1,b=function(){a||(a=!0,window.setTimeout(function(){for(var b=d.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;if(null!=b&&(b=mxUtils.getCurrentStyle(b),null!=b&&null!=s.toolbar)){var c=b.fontFamily;"'"==c.charAt(0)&&(c=c.substring(1));"'"==c.charAt(c.length-
+1)&&(c=c.substring(0,c.length-1));s.toolbar.setFontName(c);s.toolbar.setFontSize(parseInt(b.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",b);mxEvent.addListener(d.cellEditor.textarea,"touchend",b);mxEvent.addListener(d.cellEditor.textarea,"mouseup",b);mxEvent.addListener(d.cellEditor.textarea,"keyup",b);b()}};var t=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,b){t.apply(this,arguments);q()};d.container.setAttribute("tabindex","0");d.container.style.cursor=
"default";window.self===window.top&&null!=d.container.parentNode&&d.container.focus();var v=d.fireMouseEvent;d.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(a){var b=d.view.getState(a);if(null!=b){a=a.clone();a.style="";a=d.getCellStyle(a);var c=[],e=[],f;for(f in b.style)a[f]!=b.style[f]&&(c.push(b.style[f]),e.push(f));f=d.getModel().getStyle(b.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],p=l.indexOf("\x3d");
-0<=p&&(f=l.substring(0,p),l=l.substring(p+1),null!=a[f]&&"none"==l&&(c.push(l),e.push(f)))}d.getModel().isEdge(b.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",c,"cells",[b.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=d.defaultEdgeStyle;d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var z=["fontFamily","fontSize","fontColor"],x="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),
-G=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],z,["align"],["html"]];for(a=0;a<G.length;a++)for(b=0;b<G[a].length;b++)u.push(G[a][b]);for(a=0;a<y.length;a++)u.push(y[a]);var D=function(a,b){d.getModel().beginUpdate();try{if(b)for(var c=d.getModel().isEdge(k),e=c?d.currentEdgeStyle:d.currentVertexStyle,c=["fontSize","fontFamily","fontColor"],f=0;f<c.length;f++){var g=e[c[f]];null!=g&&d.setCellStyles(c[f],
-g,a)}else for(g=0;g<a.length;g++){for(var k=a[g],l=d.getModel().getStyle(k),p=null!=l?l.split(";"):[],m=u.slice(),f=0;f<p.length;f++){var r=p[f],n=r.indexOf("\x3d");if(0<=n){var s=r.substring(0,n),q=mxUtils.indexOf(m,s);0<=q&&m.splice(q,1);for(var t=0;t<G.length;t++){var v=G[t];if(0<=mxUtils.indexOf(v,s))for(var z=0;z<v.length;z++){var x=mxUtils.indexOf(m,v[z]);0<=x&&m.splice(x,1)}}}}e=(c=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<m.length;f++){var s=m[f],D=e[s];if(null!=
-D&&("shape"!=s||c))(!c||0>mxUtils.indexOf(y,s))&&d.setCellStyles(s,D,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(a,b){D(b.getProperty("cells"))});d.addListener("textInserted",function(a,b){D(b.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));D(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),
-e=!1,f=!1;if(0<c.length)for(var g=0;g<c.length&&!(e=d.getModel().isVertex(c[g])||e,(f=d.getModel().isEdge(c[g])||f)&&e);g++);else f=e=!0;for(var c=b.getProperty("keys"),k=b.getProperty("values"),g=0;g<c.length;g++){var l=0<=mxUtils.indexOf(z,c[g]);if("strokeColor"!=c[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(y,c[g]))f||0<=mxUtils.indexOf(x,c[g])?null==k[g]?delete d.currentEdgeStyle[c[g]]:d.currentEdgeStyle[c[g]]=k[g]:e&&0<=mxUtils.indexOf(u,c[g])&&(null==k[g]?delete d.currentVertexStyle[c[g]]:
+this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(a){var b=d.view.getState(a);if(null!=b){a=a.clone();a.style="";a=d.getCellStyle(a);var c=[],e=[],f;for(f in b.style)a[f]!=b.style[f]&&(c.push(b.style[f]),e.push(f));f=d.getModel().getStyle(b.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],n=l.indexOf("\x3d");
+0<=n&&(f=l.substring(0,n),l=l.substring(n+1),null!=a[f]&&"none"==l&&(c.push(l),e.push(f)))}d.getModel().isEdge(b.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",c,"cells",[b.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=d.defaultEdgeStyle;d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var y=["fontFamily","fontSize","fontColor"],x="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),
+E=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],y,["align"],["html"]];for(a=0;a<E.length;a++)for(b=0;b<E[a].length;b++)u.push(E[a][b]);for(a=0;a<z.length;a++)u.push(z[a]);var C=function(a,b){d.getModel().beginUpdate();try{if(b)for(var c=d.getModel().isEdge(k),e=c?d.currentEdgeStyle:d.currentVertexStyle,c=["fontSize","fontFamily","fontColor"],f=0;f<c.length;f++){var g=e[c[f]];null!=g&&d.setCellStyles(c[f],
+g,a)}else for(g=0;g<a.length;g++){for(var k=a[g],l=d.getModel().getStyle(k),n=null!=l?l.split(";"):[],m=u.slice(),f=0;f<n.length;f++){var p=n[f],q=p.indexOf("\x3d");if(0<=q){var s=p.substring(0,q),r=mxUtils.indexOf(m,s);0<=r&&m.splice(r,1);for(var t=0;t<E.length;t++){var v=E[t];if(0<=mxUtils.indexOf(v,s))for(var x=0;x<v.length;x++){var y=mxUtils.indexOf(m,v[x]);0<=y&&m.splice(y,1)}}}}e=(c=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<m.length;f++){var s=m[f],C=e[s];if(null!=
+C&&("shape"!=s||c))(!c||0>mxUtils.indexOf(z,s))&&d.setCellStyles(s,C,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(a,b){C(b.getProperty("cells"))});d.addListener("textInserted",function(a,b){C(b.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));C(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),
+e=!1,f=!1;if(0<c.length)for(var g=0;g<c.length&&!(e=d.getModel().isVertex(c[g])||e,(f=d.getModel().isEdge(c[g])||f)&&e);g++);else f=e=!0;for(var c=b.getProperty("keys"),k=b.getProperty("values"),g=0;g<c.length;g++){var l=0<=mxUtils.indexOf(y,c[g]);if("strokeColor"!=c[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(z,c[g]))f||0<=mxUtils.indexOf(x,c[g])?null==k[g]?delete d.currentEdgeStyle[c[g]]:d.currentEdgeStyle[c[g]]=k[g]:e&&0<=mxUtils.indexOf(u,c[g])&&(null==k[g]?delete d.currentVertexStyle[c[g]]:
d.currentVertexStyle[c[g]]=k[g]);else if(0<=mxUtils.indexOf(u,c[g])){if(e||l)null==k[g]?delete d.currentVertexStyle[c[g]]:d.currentVertexStyle[c[g]]=k[g];if(f||l||0<=mxUtils.indexOf(x,c[g]))null==k[g]?delete d.currentEdgeStyle[c[g]]:d.currentEdgeStyle[c[g]]=k[g]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
"orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
@@ -2075,18 +2075,18 @@ c);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",
"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var d=mxUtils.bind(this,function(){var b=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=b?parseInt(b["margin-bottom"]||0):0)+(null!=this.tabContainer?
20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",d);d();var e=0,d=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=c&&d.setAttribute("title",c);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d}),f=d(mxUtils.bind(this,
function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")||"Previous Page"),g=document.createElement("div");g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontFamily="Helvetica,Arial";g.style.marginTop="8px";g.style.color="#ffffff";this.chromelessToolbar.appendChild(g);var k=d(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")||
-"Next Page"),l=mxUtils.bind(this,function(){null!=this.pages&&(1<this.pages.length&&null!=this.currentPage)&&(g.innerHTML="",mxUtils.write(g,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});f.style.paddingLeft="0px";f.style.paddingRight="4px";k.style.paddingLeft="4px";k.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(k.style.display="",f.style.display="",g.style.display="inline-block"):(k.style.display=
-"none",f.style.display="none",g.style.display="none");l()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",l);d(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,(mxResources.get("zoomOut")||"Zoom Out")+" (Alt+Mousewheel)");d(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,(mxResources.get("zoomIn")||"Zoom In")+" (Alt+Mousewheel)");d(mxUtils.bind(this,
-function(c){a.lightbox?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),b(!1)):b(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit")||"Fit");var n=null,q=null,p=mxUtils.bind(this,function(a){null!=n&&(window.clearTimeout(n),fadeThead=null);null!=q&&(window.clearTimeout(q),fadeThead2=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;q=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";
-q=null}),600)}),a||200)}),r=mxUtils.bind(this,function(a){null!=n&&(window.clearTimeout(n),fadeThead=null);null!=q&&(window.clearTimeout(q),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var s=d(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
-"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=s.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
-mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")||"Layers"),t=a.getModel();t.addListener(mxEvent.CHANGE,function(){s.style.display=1<t.getChildCount(t.root)?
+"Next Page"),l=mxUtils.bind(this,function(){null!=this.pages&&(1<this.pages.length&&null!=this.currentPage)&&(g.innerHTML="",mxUtils.write(g,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});f.style.paddingLeft="0px";f.style.paddingRight="4px";k.style.paddingLeft="4px";k.style.paddingRight="0px";var n=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(k.style.display="",f.style.display="",g.style.display="inline-block"):(k.style.display=
+"none",f.style.display="none",g.style.display="none");l()});this.editor.addListener("resetGraphView",n);this.editor.addListener("pageSelected",l);d(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,(mxResources.get("zoomOut")||"Zoom Out")+" (Alt+Mousewheel)");d(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,(mxResources.get("zoomIn")||"Zoom In")+" (Alt+Mousewheel)");d(mxUtils.bind(this,
+function(c){a.lightbox?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),b(!1)):b(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit")||"Fit");var m=null,p=null,q=mxUtils.bind(this,function(a){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);m=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);m=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";
+p=null}),600)}),a||200)}),s=mxUtils.bind(this,function(a){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var r=d(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
+"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=r.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
+mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")||"Layers"),t=a.getModel();t.addListener(mxEvent.CHANGE,function(){r.style.display=1<t.getChildCount(t.root)?
"":"none"})}null!=this.editor.editButtonLink&&d(mxUtils.bind(this,function(a){"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml(),null,!0):window.open(this.editor.editButtonLink,"editWindow");mxEvent.consume(a)}),Editor.editLargeImage,mxResources.get("openInNewWindow")||"Open in New Window");a.lightbox&&this.container!=document.body&&d(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,(mxResources.get("close")||
-"Close")+" (Escape)");this.chromelessToolbar.style.display="none";a.container.appendChild(this.chromelessToolbar);this.chromelessToolbar.style.marginLeft=-(24*e+10)+"px";this.addChromelessClickHandler();mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||r(30),p())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,
-"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?p():r(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?p():r(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||r(30)}));var v=a.getTolerance(),u=this;a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<v&&Math.abs(this.scrollTop-a.container.scrollTop)<v&&(Math.abs(this.startX-c.getGraphX())<v&&Math.abs(this.startY-c.getGraphY())<v)&&(0<parseFloat(u.chromelessToolbar.style.opacity||0)?p():r(30))}})}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=
-this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}y.apply(this,arguments)};var z=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),f=Math.ceil(2*c.y+b.height*d.height),g=a.minimumGraphSize;
-if(null==g||g.width!=e||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,e,f);e=c.x-b.x*d.width;c=c.y-b.y*d.height;!this.autoTranslate&&(this.view.translate.x!=e||this.view.translate.y!=c)?(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1):z.apply(this,arguments)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=
+"Close")+" (Escape)");this.chromelessToolbar.style.display="none";a.container.appendChild(this.chromelessToolbar);this.chromelessToolbar.style.marginLeft=-(24*e+10)+"px";this.addChromelessClickHandler();mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||s(30),q())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,
+"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?q():s(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?q():s(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||s(30)}));var v=a.getTolerance(),u=this;a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
+this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<v&&Math.abs(this.scrollTop-a.container.scrollTop)<v&&(Math.abs(this.startX-c.getGraphX())<v&&Math.abs(this.startY-c.getGraphY())<v)&&(0<parseFloat(u.chromelessToolbar.style.opacity||0)?q():s(30))}})}else if(this.editor.extendCanvas){var z=a.view.validate;a.view.validate=function(){if(null!=
+this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}z.apply(this,arguments)};var y=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),f=Math.ceil(2*c.y+b.height*d.height),g=a.minimumGraphSize;
+if(null==g||g.width!=e||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,e,f);e=c.x-b.x*d.width;c=c.y-b.y*d.height;!this.autoTranslate&&(this.view.translate.x!=e||this.view.translate.y!=c)?(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1):y.apply(this,arguments)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=
1;var x=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?0.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+0.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale):0.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale-0.01)/this.view.scale:(this.cumulativeZoomFactor/=
this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(0.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){this.zoom(this.cumulativeZoomFactor);null!=b&&b(!1);if(null!=x&&mxUtils.hasScrollbars(a.container)){var c=mxUtils.getOffset(a.container),d=a.container.offsetHeight/2-x.y+c.y;a.container.scrollLeft-=(a.container.offsetWidth/
2-x.x+c.x)*(this.cumulativeZoomFactor-1);a.container.scrollTop-=d*(this.cumulativeZoomFactor-1)}this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),20)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(b,c){if((mxEvent.isAltDown(b)||mxEvent.isControlDown(b)&&!mxClient.IS_MAC||a.panningHandler.isActive())&&(null==this.dialogs||0==this.dialogs.length))for(var d=mxEvent.getSource(b);null!=d;){if(d==a.container){x=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));a.lazyZoom(c);mxEvent.consume(b);
@@ -2111,7 +2111,7 @@ EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),c=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});c.addListener(mxEvent.ADD,d);c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);c.addListener(mxEvent.CLEAR,d);var e=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){e.apply(this,arguments);d()};var f=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(a,b){f.apply(this,arguments);d()};d()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),c=!1,d=!1,e=a.getSelectionCells();if(null!=e)for(var f=0;f<e.length;f++){var g=e[f];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(c=!0);if(d&&c)break}e="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(f=
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),c=!1,d=!1,e=a.getSelectionCells();if(null!=e)for(var f=0;f<e.length;f++){var g=e[f];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(c=!0);if(d&&c)break}e="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(f=
0;f<e.length;f++)this.actions.get(e[f]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("clearWaypoints").setEnabled(d);this.actions.get("rotation").setEnabled(c);this.actions.get("wordWrap").setEnabled(c);this.actions.get("autosize").setEnabled(c);this.actions.get("collapsible").setEnabled(c);d=c&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<
a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(c&&1==a.getSelectionCount()&&
(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b);this.actions.get("editLink").setEnabled(1==
@@ -2132,8 +2132,8 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,c,d){function e(a){if(null!=g){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,k+(b?e.x-g.x:g.y-e.y)-c));mxEvent.consume(a);k!=n()&&(l=!0,m=null)}}function f(a){e(a);g=k=null}var g=null,k=null,l=!0,m=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var n=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+c-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){g=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));k=n();l=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!l){var b=null!=m?m-c:0;m=n();d(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,e,f);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,e,f)})};EditorUi.prototype.showDialog=function(a,b,c,d,e,f){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,c,d,e,f);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,b,c,d){function e(a){if(null!=g){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,k+(b?e.x-g.x:g.y-e.y)-c));mxEvent.consume(a);k!=m()&&(l=!0,n=null)}}function f(a){e(a);g=k=null}var g=null,k=null,l=!0,n=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+c-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){g=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));k=m();l=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!l){var b=null!=n?n-c:0;n=m();d(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,e,f);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,e,f)})};EditorUi.prototype.showDialog=function(a,b,c,d,e,f){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,c,d,e,f);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
EditorUi.prototype.pickColor=function(a,b){var c=this.editor.graph,d=c.cellEditor.saveSelection(),e=new ColorDialog(this,a||"none",function(a){c.cellEditor.restoreSelection(d);b(a)},function(){c.cellEditor.restoreSelection(d)});this.showDialog(e.container,220,430,!0,!1);e.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
@@ -2150,9 +2150,9 @@ EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.gra
EditorUi.prototype.createKeyHandler=function(a){function b(a,b,c){g.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(b=null!=b?b:1,c){d.getModel().beginUpdate();try{for(var e=d.getSelectionCells(),f=0;f<e.length;f++)if(d.getModel().isVertex(e[f])&&d.isCellResizable(e[f])){var g=d.getCellGeometry(e[f]);null!=g&&(g=g.clone(),37==a?g.width=Math.max(0,g.width-b):38==a?g.height=Math.max(0,g.height-b):39==a?g.width+=b:40==a&&(g.height+=b),d.getModel().setGeometry(e[f],g))}}finally{d.getModel().endUpdate()}}else e=
d.getSelectionCell(),f=d.model.getParent(e),g=null,1==d.getSelectionCount()&&(d.model.isVertex(e)&&null!=d.layoutManager&&!d.isCellLocked(e))&&(g=d.layoutManager.getLayout(f)),null!=g&&g.constructor==mxStackLayout?(g=f.getIndex(e),37==a||38==a?d.model.add(f,e,Math.max(0,g-1)):(39==a||40==a)&&d.model.add(f,e,Math.min(d.model.getChildCount(f),g+1))):(f=e=0,37==a?e=-b:38==a?f=-b:39==a?e=b:40==a&&(f=b),d.moveCells(d.getMovableCells(d.getSelectionCells()),e,f))});null!=k&&window.clearTimeout(k);k=window.setTimeout(function(){if(0<
g.length){d.getModel().beginUpdate();try{for(var a=0;a<g.length;a++)g[a]();g=[]}finally{d.getModel().endUpdate()}d.scrollCellToVisible(d.getSelectionCell())}},200)}var c=this,d=this.editor.graph,e=new mxKeyHandler(d),f=e.isEventIgnored;e.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
-!mxClient.IS_SF)&&f.apply(this,arguments)};e.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};e.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var g=[],k=null,l={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},m=e.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?
+!mxClient.IS_SF)&&f.apply(this,arguments)};e.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};e.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var g=[],k=null,l={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},n=e.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?
function(){d.selectParentCell()}:function(){d.selectChildCell()};if(null!=l[a.keyCode]&&!d.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var b=d.connectVertex(d.getSelectionCell(),l[a.keyCode],d.defaultEdgeLength,a,!0);null!=b&&0<b.length&&(1==b.length&&d.model.isEdge(b[0])?d.setSelectionCell(d.model.getTerminal(b[0],!1)):d.setSelectionCell(b[b.length-1]),null!=c.hoverIcons&&c.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?
-function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return m.apply(this,arguments)};e.bindAction=mxUtils.bind(this,function(a,b,c,d){var f=this.actions.get(c);null!=f&&(c=function(){f.isEnabled()&&f.funct()},b?d?e.bindControlShiftKey(a,c):e.bindControlKey(a,c):d?e.bindShiftKey(a,c):e.bindKey(a,c))});var n=e.escape;e.escape=function(a){n.apply(this,arguments)};e.enter=function(){};e.bindControlShiftKey(36,function(){d.exitGroup()});
+function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return n.apply(this,arguments)};e.bindAction=mxUtils.bind(this,function(a,b,c,d){var f=this.actions.get(c);null!=f&&(c=function(){f.isEnabled()&&f.funct()},b?d?e.bindControlShiftKey(a,c):e.bindControlKey(a,c):d?e.bindShiftKey(a,c):e.bindKey(a,c))});var m=e.escape;e.escape=function(a){m.apply(this,arguments)};e.enter=function(){};e.bindControlShiftKey(36,function(){d.exitGroup()});
e.bindControlShiftKey(35,function(){d.enterGroup()});e.bindKey(36,function(){d.home()});e.bindKey(35,function(){d.refresh()});e.bindAction(107,!0,"zoomIn");e.bindAction(109,!0,"zoomOut");e.bindAction(80,!0,"print");e.bindAction(79,!0,"outline",!0);e.bindAction(112,!1,"about");this.editor.chromeless||(e.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),e.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),e.bindControlKey(13,function(){d.isEnabled()&&d.setSelectionCells(d.duplicateCells(d.getSelectionCells(),
!1))}),e.bindAction(8,!1,"delete"),e.bindAction(8,!0,"deleteAll"),e.bindAction(46,!1,"delete"),e.bindAction(46,!0,"deleteAll"),e.bindAction(72,!0,"resetView"),e.bindAction(72,!0,"fitWindow",!0),e.bindAction(74,!0,"fitPage"),e.bindAction(74,!0,"fitTwoPages",!0),e.bindAction(48,!0,"customZoom"),e.bindAction(82,!0,"turn"),e.bindAction(82,!0,"clearDefaultStyle",!0),e.bindAction(83,!0,"save"),e.bindAction(83,!0,"saveAs",!0),e.bindAction(65,!0,"selectAll"),e.bindAction(65,!0,"selectNone",!0),e.bindAction(73,
!0,"selectVertices",!0),e.bindAction(69,!0,"selectEdges",!0),e.bindAction(69,!0,"editStyle"),e.bindAction(66,!0,"bold"),e.bindAction(66,!0,"toBack",!0),e.bindAction(70,!0,"toFront",!0),e.bindAction(68,!0,"duplicate"),e.bindAction(68,!0,"setAsDefaultStyle",!0),e.bindAction(90,!0,"undo"),e.bindAction(89,!0,"autosize",!0),e.bindAction(88,!0,"cut"),e.bindAction(67,!0,"copy"),e.bindAction(81,!0,"connectionArrows"),e.bindAction(81,!0,"connectionPoints",!0),e.bindAction(86,!0,"paste"),e.bindAction(71,!0,
@@ -2162,26 +2162,26 @@ EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),
(mxEvent.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,
"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0);mxConstants.SHADOW_OPACITY=0.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();
mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs\x3d":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
-Graph=function(a,b,c,d,e){mxGraph.call(this,a,b,c,d);this.themes=e||this.defaultThemes;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var f=null,g=null,k=null,l=null,m=!1;
-this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var c=b.getProperty("event");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(f=new mxPoint(c.getGraphX(),c.getGraphY()),m=this.isCellSelected(d.cell),k=d,g=c,null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY())?l=mxEvent.LABEL_HANDLE:
+Graph=function(a,b,c,d,e){mxGraph.call(this,a,b,c,d);this.themes=e||this.defaultThemes;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var f=null,g=null,k=null,l=null,n=!1;
+this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var c=b.getProperty("event");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(f=new mxPoint(c.getGraphX(),c.getGraphY()),n=this.isCellSelected(d.cell),k=d,g=c,null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY())?l=mxEvent.LABEL_HANDLE:
(d=this.selectionCellsHandler.getHandler(d.cell),null!=d&&(null!=d.bends&&0<d.bends.length)&&(l=d.getHandleForEvent(c))))}}}));this.addMouseListener({mouseDown:function(a,b){},mouseMove:mxUtils.bind(this,function(a,b){if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(b.getEvent())&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent())){var c=this.tolerance;if(null!=f&&null!=k&&null!=g){var d=k;if(Math.abs(f.x-b.getGraphX())>c*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&&0<e.bends.length){var p=e.getHandleForEvent(g),r=this.view.getEdgeStyle(d),c=r==mxEdgeStyle.EntityRelation;!m&&l==mxEvent.LABEL_HANDLE&&(p=l);if(!c||0==p||p==e.bends.length-1||p==mxEvent.LABEL_HANDLE){if(p==mxEvent.LABEL_HANDLE||0==p||null!=d.visibleSourceState||p==e.bends.length-1||null!=d.visibleTargetState){if(!c&&p!=mxEvent.LABEL_HANDLE){c=
-d.absolutePoints;if(null!=c&&(null==r&&null==p||r==mxEdgeStyle.OrthConnector))p=l,null==p&&(p=new mxRectangle(f.x,f.y),p.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(p,c[0].x,c[0].y)?p=0:mxUtils.contains(p,c[c.length-1].x,c[c.length-1].y)?p=e.bends.length-1:null!=r&&(2==c.length||3==c.length&&(0==Math.round(c[0].x-c[1].x)&&0==Math.round(c[1].x-c[2].x)||0==Math.round(c[0].y-c[1].y)&&0==Math.round(c[1].y-c[2].y)))?p=2:(p=mxUtils.findNearestSegment(d,f.x,f.y),p=null==r?mxEvent.VIRTUAL_HANDLE-
-p:p+1));null==p&&(p=mxEvent.VIRTUAL_HANDLE)}e.start(b.getGraphX(),b.getGraphX(),p);l=f=g=k=null;m=!1;b.consume();this.graphHandler.reset()}}else if(c&&(null!=d.visibleSourceState||null!=d.visibleTargetState))this.graphHandler.reset(),b.consume()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){e=null;c=d.absolutePoints;if(null!=c)if(p=new mxRectangle(b.getGraphX(),b.getGraphY()),p.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
-b.getGraphX(),b.getGraphY()))e="move";else if(mxUtils.contains(p,c[0].x,c[0].y)||mxUtils.contains(p,c[c.length-1].x,c[c.length-1].y))e="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)r=this.view.getEdgeStyle(d),e="crosshair",r!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(r=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),r<c.length-1&&0<=r&&(e=0==Math.round(c[r].x-c[r+1].x)?"col-resize":"row-resize"));null!=e&&d.setCursor(e)}}}),mouseUp:mxUtils.bind(this,function(a,
+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&&0<e.bends.length){var m=e.getHandleForEvent(g),p=this.view.getEdgeStyle(d),c=p==mxEdgeStyle.EntityRelation;!n&&l==mxEvent.LABEL_HANDLE&&(m=l);if(!c||0==m||m==e.bends.length-1||m==mxEvent.LABEL_HANDLE){if(m==mxEvent.LABEL_HANDLE||0==m||null!=d.visibleSourceState||m==e.bends.length-1||null!=d.visibleTargetState){if(!c&&m!=mxEvent.LABEL_HANDLE){c=
+d.absolutePoints;if(null!=c&&(null==p&&null==m||p==mxEdgeStyle.OrthConnector))m=l,null==m&&(m=new mxRectangle(f.x,f.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,c[0].x,c[0].y)?m=0:mxUtils.contains(m,c[c.length-1].x,c[c.length-1].y)?m=e.bends.length-1:null!=p&&(2==c.length||3==c.length&&(0==Math.round(c[0].x-c[1].x)&&0==Math.round(c[1].x-c[2].x)||0==Math.round(c[0].y-c[1].y)&&0==Math.round(c[1].y-c[2].y)))?m=2:(m=mxUtils.findNearestSegment(d,f.x,f.y),m=null==p?mxEvent.VIRTUAL_HANDLE-
+m:m+1));null==m&&(m=mxEvent.VIRTUAL_HANDLE)}e.start(b.getGraphX(),b.getGraphX(),m);l=f=g=k=null;n=!1;b.consume();this.graphHandler.reset()}}else if(c&&(null!=d.visibleSourceState||null!=d.visibleTargetState))this.graphHandler.reset(),b.consume()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){e=null;c=d.absolutePoints;if(null!=c)if(m=new mxRectangle(b.getGraphX(),b.getGraphY()),m.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
+b.getGraphX(),b.getGraphY()))e="move";else if(mxUtils.contains(m,c[0].x,c[0].y)||mxUtils.contains(m,c[c.length-1].x,c[c.length-1].y))e="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)p=this.view.getEdgeStyle(d),e="crosshair",p!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(p=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),p<c.length-1&&0<=p&&(e=0==Math.round(c[p].x-c[p+1].x)?"col-resize":"row-resize"));null!=e&&d.setCursor(e)}}}),mouseUp:mxUtils.bind(this,function(a,
b){l=f=g=k=null})})}this.cellRenderer.getLabelValue=function(a){var b=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(b=1!=a.style.html?mxUtils.htmlEntities(b,!1):a.view.graph.sanitizeHtml(b));return b};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=
-!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var n=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=n.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*
+!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*
d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)b.push(new mxRectangle(((g.x+k)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(k=0;k<g.height;k++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+k)*c+d.y)*f,e*f,c*f));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor=
"#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var b=mxGraphHandler.prototype.getCells.apply(this,arguments),c=[],d=0;d<b.length;d++){var e=this.graph.view.getState(b[d]),e=null!=e?e.style:this.graph.getCellStyle(b[d]);"1"==mxUtils.getValue(e,"part","0")?(e=this.graph.model.getParent(b[d]),this.graph.model.isVertex(e)&&0>mxUtils.indexOf(b,e)&&c.push(e)):
-c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var q=new mxRubberband(this);this.getRubberband=function(){return q};var p=(new Date).getTime(),r=0,s=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=
-function(){var a=this.currentState;s.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),r=0):r=(new Date).getTime()-p};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var v=this.isToggleEvent;this.isToggleEvent=function(a){return v.apply(this,
-arguments)||mxEvent.isShiftDown(a)};var u=q.isForceRubberbandEvent;q.isForceRubberbandEvent=function(a){return u.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var y=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(y=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
-function(){this.isEnabled()&&(this.container.style.cursor=y)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var z=this.click;this.click=function(a){if(!this.isEnabled()&&!a.isConsumed()){var b=a.getCell();null!=b&&(b=this.getLinkForCell(b),null!=b&&window.open(b))}else return z.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(a){if(this.isEnabled())return x.apply(this,arguments);if(null!=
-this.getLinkForCell(a))return"pointer"};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var p=g.getChildCount(e),m=0;m<p;m++){var r=g.getChildAt(e,m),n=this.view.getState(r);if(null!=n&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(n.style,"locked","0")){var s=
-mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(n=mxUtils.getBoundingBox(n,s));(g.isEdge(r)||g.isVertex(r))&&(n.x>=a&&n.y+n.height<=l&&n.y>=b&&n.x+n.width<=k)&&f.push(r);this.getAllCells(a,b,c,d,r,f)}}}return f};var G=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:G.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 D=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();D=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)),q.start(c.x,c.y)):null!=D?this.addSelectionCells(D):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);D=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){return b&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
-function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var E=this.updateMouseEvent;this.updateMouseEvent=function(a){a=E.apply(this,arguments);this.isCellLocked(a.getCell())&&(a.state=null);return a}}};
+c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var p=new mxRubberband(this);this.getRubberband=function(){return p};var q=(new Date).getTime(),s=0,r=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=
+function(){var a=this.currentState;r.apply(this,arguments);a!=this.currentState?(q=(new Date).getTime(),s=0):s=(new Date).getTime()-q};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<s||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var v=this.isToggleEvent;this.isToggleEvent=function(a){return v.apply(this,
+arguments)||mxEvent.isShiftDown(a)};var u=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(a){return u.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var z=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(z=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
+function(){this.isEnabled()&&(this.container.style.cursor=z)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){if(!this.isEnabled()&&!a.isConsumed()){var b=a.getCell();null!=b&&(b=this.getLinkForCell(b),null!=b&&window.open(b))}else return y.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(a){if(this.isEnabled())return x.apply(this,arguments);if(null!=
+this.getLinkForCell(a))return"pointer"};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var n=g.getChildCount(e),m=0;m<n;m++){var p=g.getChildAt(e,m),q=this.view.getState(p);if(null!=q&&this.isCellVisible(p)&&"1"!=mxUtils.getValue(q.style,"locked","0")){var s=
+mxUtils.getValue(q.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(q=mxUtils.getBoundingBox(q,s));(g.isEdge(p)||g.isVertex(p))&&(q.x>=a&&q.y+q.height<=l&&q.y>=b&&q.x+q.width<=k)&&f.push(p);this.getAllCells(a,b,c,d,p,f)}}}return f};var E=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:E.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 C=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();C=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)),p.start(c.x,c.y)):null!=C?this.addSelectionCells(C):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);C=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){return b&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
+function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var F=this.updateMouseEvent;this.updateMouseEvent=function(a){a=F.apply(this,arguments);this.isCellLocked(a.getCell())&&(a.state=null);return a}}};
Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkTarget="_blank";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;
Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};
Graph.prototype.baseUrl=window.location!=window.parent.location?document.referrer:document.location.toString();Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.initLayoutManager()};
@@ -2196,8 +2196,8 @@ Graph.prototype.isLabelMovable=function(a){var b=this.view.getState(a),b=null!=b
Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,c){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,e=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,f=/[^-+\dA-Z]/g,g=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1==arguments.length&&("[object String]"==Object.prototype.toString.call(a)&&
-!/\d/.test(a))&&(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),c=!0);var k=c?"getUTC":"get",l=a[k+"Date"](),m=a[k+"Day"](),n=a[k+"Month"](),q=a[k+"FullYear"](),p=a[k+"Hours"](),r=a[k+"Minutes"](),s=a[k+"Seconds"](),k=a[k+"Milliseconds"](),t=c?0:a.getTimezoneOffset(),v={d:l,dd:g(l),ddd:d.i18n.dayNames[m],dddd:d.i18n.dayNames[m+7],m:n+1,mm:g(n+1),mmm:d.i18n.monthNames[n],mmmm:d.i18n.monthNames[n+
-12],yy:String(q).slice(2),yyyy:q,h:p%12||12,hh:g(p%12||12),H:p,HH:g(p),M:r,MM:g(r),s:s,ss:g(s),l:g(k,3),L:g(99<k?Math.round(k/10):k),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:c?"UTC":(String(a).match(e)||[""]).pop().replace(f,""),o:(0<t?"-":"+")+g(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in v?v[a]:a.slice(1,
+!/\d/.test(a))&&(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),c=!0);var k=c?"getUTC":"get",l=a[k+"Date"](),n=a[k+"Day"](),m=a[k+"Month"](),p=a[k+"FullYear"](),q=a[k+"Hours"](),s=a[k+"Minutes"](),r=a[k+"Seconds"](),k=a[k+"Milliseconds"](),t=c?0:a.getTimezoneOffset(),v={d:l,dd:g(l),ddd:d.i18n.dayNames[n],dddd:d.i18n.dayNames[n+7],m:m+1,mm:g(m+1),mmm:d.i18n.monthNames[m],mmmm:d.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:g(q%12||12),H:q,HH:g(q),M:s,MM:g(s),s:r,ss:g(r),l:g(k,3),L:g(99<k?Math.round(k/10):k),t:12>q?"a":"p",tt:12>q?"am":"pm",T:12>q?"A":"P",TT:12>q?"AM":"PM",Z:c?"UTC":(String(a).match(e)||[""]).pop().replace(f,""),o:(0<t?"-":"+")+g(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in v?v[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),c=b.getChildCount(b.root),d=0;d<c;d++)(function(c){var d=document.createElement("div");d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.style.padding="2px";d.style.whiteSpace="nowrap";var g=document.createElement("input");g.setAttribute("type","checkbox");b.isVisible(c)&&(g.setAttribute("checked","checked"),g.defaultChecked=!0);d.appendChild(g);var k=c.value||
mxResources.get("background")||"Background";d.setAttribute("title",k);mxUtils.write(d,k);a.appendChild(d);mxEvent.addListener(g,"click",function(){null!=g.getAttribute("checked")?g.removeAttribute("checked"):g.setAttribute("checked","checked");b.setVisible(c,g.checked)})})(b.getChildAt(b.root,d));return a};
@@ -2205,17 +2205,17 @@ Graph.prototype.replacePlaceholders=function(a,b){for(var c=[],d=0;match=this.pl
match.index)+(null!=f?f:e));d=match.index+e.length}}c.push(b.substring(d));return c.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,c){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=c&&(mxEvent.isTouchEvent(b)?c.update(c.getState(this.view.getState(a[1]))):c.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
Graph.prototype.connectVertex=function(a,b,c,d,e){var f=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(f.x+=a.geometry.width/2,f.y-=c):b==mxConstants.DIRECTION_SOUTH?(f.x+=a.geometry.width/2,f.y+=a.geometry.height+c):(f.x=b==mxConstants.DIRECTION_WEST?f.x-c:f.x+(a.geometry.width+c),f.y+=a.geometry.height/2);c=this.view.getState(this.model.getParent(a));
var g=this.view.scale,k=this.view.translate,l=k.x*g,k=k.y*g;this.model.isVertex(c.cell)&&(l=c.x,k=c.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(f.x+=a.parent.geometry.x,f.y+=a.parent.geometry.y);c=mxEvent.isControlDown(d)&&!e?null:this.getCellAt(l+f.x*g,k+f.y*g);this.model.isAncestor(c,a)&&(c=null);for(g=c;null!=g;){if(this.isCellLocked(g)){c=null;break}g=this.model.getParent(g)}null!=c&&(g=this.view.getState(a),l=this.view.getState(c),null!=g&&(null!=l&&mxUtils.intersects(g,l))&&(c=null));
-if(e=!mxEvent.isShiftDown(d)||e)b==mxConstants.DIRECTION_NORTH?f.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?f.y+=a.geometry.height/2:f.x=b==mxConstants.DIRECTION_WEST?f.x-a.geometry.width/2:f.x+a.geometry.width/2;null!=c&&!this.isCellConnectable(c)&&(g=this.getModel().getParent(c),this.getModel().isVertex(g)&&this.isCellConnectable(g)&&(c=g));if(c==a||this.model.isEdge(c)||!this.isCellConnectable(c))c=null;g=[];this.model.beginUpdate();try{l=c;if(null==l&&e){for(var k=a,m=this.getCellGeometry(a);null!=
-m&&m.relative;)k=this.getModel().getParent(k),m=this.getCellGeometry(k);var n=this.view.getState(k),q=null!=n?n.style:this.getCellStyle(k);if(mxUtils.getValue(q,"part",!1)){var p=this.model.getParent(k);this.model.isVertex(p)&&(k=p)}l=this.duplicateCells([k],!1)[0];m=this.getCellGeometry(l);null!=m&&(m.x=f.x-m.width/2,m.y=f.y-m.height/2)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var r=mxEvent.isControlDown(d)&&e||null==c&&null!=m&&m.constructor==mxStackLayout?
-null:this.insertEdge(this.model.getParent(a),null,"",a,l,this.createCurrentEdgeStyle());if(null!=r&&this.connectionHandler.insertBeforeSource){var s=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=r.parent;)d=this.model.getParent(d);null!=d&&(null!=d.parent&&d.parent==r.parent)&&(s=d.parent.getIndex(d),d.parent.insert(r,s))}null==c&&(null!=l&&null!=m&&null!=a.parent&&m.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST)&&(s=a.parent.getIndex(a),a.parent.insert(l,
-s));null!=r&&g.push(r);null==c&&null!=l&&g.push(l);null==l&&null!=r&&r.geometry.setTerminalPoint(f,!1);null!=r&&this.fireEvent(new mxEventObject("cellsInserted","cells",[r]))}finally{this.model.endUpdate()}return g};
+if(e=!mxEvent.isShiftDown(d)||e)b==mxConstants.DIRECTION_NORTH?f.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?f.y+=a.geometry.height/2:f.x=b==mxConstants.DIRECTION_WEST?f.x-a.geometry.width/2:f.x+a.geometry.width/2;null!=c&&!this.isCellConnectable(c)&&(g=this.getModel().getParent(c),this.getModel().isVertex(g)&&this.isCellConnectable(g)&&(c=g));if(c==a||this.model.isEdge(c)||!this.isCellConnectable(c))c=null;g=[];this.model.beginUpdate();try{l=c;if(null==l&&e){for(var k=a,n=this.getCellGeometry(a);null!=
+n&&n.relative;)k=this.getModel().getParent(k),n=this.getCellGeometry(k);var m=this.view.getState(k),p=null!=m?m.style:this.getCellStyle(k);if(mxUtils.getValue(p,"part",!1)){var q=this.model.getParent(k);this.model.isVertex(q)&&(k=q)}l=this.duplicateCells([k],!1)[0];n=this.getCellGeometry(l);null!=n&&(n.x=f.x-n.width/2,n.y=f.y-n.height/2)}n=null;null!=this.layoutManager&&(n=this.layoutManager.getLayout(this.model.getParent(a)));var s=mxEvent.isControlDown(d)&&e||null==c&&null!=n&&n.constructor==mxStackLayout?
+null:this.insertEdge(this.model.getParent(a),null,"",a,l,this.createCurrentEdgeStyle());if(null!=s&&this.connectionHandler.insertBeforeSource){var r=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=s.parent;)d=this.model.getParent(d);null!=d&&(null!=d.parent&&d.parent==s.parent)&&(r=d.parent.getIndex(d),d.parent.insert(s,r))}null==c&&(null!=l&&null!=n&&null!=a.parent&&n.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST)&&(r=a.parent.getIndex(a),a.parent.insert(l,
+r));null!=s&&g.push(s);null==c&&null!=l&&g.push(l);null==l&&null!=s&&s.geometry.setTerminalPoint(f,!1);null!=s&&this.fireEvent(new mxEventObject("cellsInserted","cells",[s]))}finally{this.model.endUpdate()}return g};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],c="",d;for(d in this.model.cells)if(c=this.model.cells[d],this.model.isVertex(c)||this.model.isEdge(c))this.isHtmlLabel(c)?(a.innerHTML=this.getLabel(c),c=mxUtils.extractTextWithWhitespace([a])):c=this.getLabel(c),c=mxUtils.trim(c.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<c.length&&b.push(c);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var b=a.getAttribute("placeholder"),c=a,d=null;null==d&&null!=c;)null!=c.value&&"object"==typeof c.value&&(d=c.hasAttribute(b)?null!=c.getAttribute(b)?c.getAttribute(b):"":null),c=this.model.getParent(c);return d||""}return a.value.getAttribute("label")}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);this.model.isVertex(c)&&this.isCellCollapsed(a)&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!c.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,c){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,b,c,d,e){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));if(null!=c){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var f=0;f<c.length;f++){var g=this.view.getState(c[f]),k=this.getCellGeometry(c[f]);if(null!=g&&null!=k){var l=Math.round(k.width-g.width/this.view.scale),m=Math.round(k.height-g.height/this.view.scale);if(0!=m||0!=l){var n=this.model.getParent(c[f]),q=this.layoutManager.getLayout(n);
-null==q?null!=e&&this.isMoveCellsEvent(e)&&this.moveSiblings(g,n,l,m):(null==e||!mxEvent.isAltDown(e))&&(q.constructor==mxStackLayout&&!q.resizeLast)&&this.resizeParentStacks(n,q,l,m)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(c)}};
+Graph.prototype.foldCells=function(a,b,c,d,e){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));if(null!=c){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var f=0;f<c.length;f++){var g=this.view.getState(c[f]),k=this.getCellGeometry(c[f]);if(null!=g&&null!=k){var l=Math.round(k.width-g.width/this.view.scale),n=Math.round(k.height-g.height/this.view.scale);if(0!=n||0!=l){var m=this.model.getParent(c[f]),p=this.layoutManager.getLayout(m);
+null==p?null!=e&&this.isMoveCellsEvent(e)&&this.moveSiblings(g,m,l,n):(null==e||!mxEvent.isAltDown(e))&&(p.constructor==mxStackLayout&&!p.resizeLast)&&this.resizeParentStacks(m,p,l,n)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(c)}};
Graph.prototype.moveSiblings=function(a,b,c,d){this.model.beginUpdate();try{var e=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<e.length;b++)if(e[b]!=a.cell){var f=this.view.getState(e[b]),g=this.getCellGeometry(e[b]);null!=f&&null!=g&&(g=g.clone(),g.translate(Math.round(c*Math.max(0,Math.min(1,(f.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(f.y-a.y)/a.height)))),this.model.setGeometry(e[b],g))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,b,c,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var e=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==e&&!b.resizeLast;){var f=this.getCellGeometry(a),g=this.view.getState(a);null!=g&&null!=f&&(f=f.clone(),b.horizontal?f.width+=c+Math.min(0,g.width/this.view.scale-f.width):f.height+=d+Math.min(0,g.height/this.view.scale-f.height),this.model.setGeometry(a,
f));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
@@ -2264,8 +2264,8 @@ HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.get
HoverIcons.prototype.update=function(a,b,c){if(this.graph.connectionArrowsEnabled){var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){!this.isActive()&&(!this.graph.isMouseDown&&!this.graph.panningHandler.isActive())&&(this.prev=a,this.update(a,b,c))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-
this.startTime);this.setDisplay("");if(null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,c))this.reset(!1);else if(null!=this.currentState||d>this.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 k=this.getNextPoint(b,f,g),l=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var q=Math.cos(-m),p=Math.sin(-m),k=mxUtils.getRotatedPoint(k,q,p,n);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);q+=parseFloat(b.style[g?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==m&&l,q);0!=m&&(q=Math.cos(m),p=Math.sin(m),k=mxUtils.getRotatedPoint(k,q,p,n));if(null!=c){m=this.graph.getAllConnectionConstraints(c);l=n=null;for(q=0;q<m.length;q++)if(p=this.graph.getConnectionPoint(c,m[q]),null!=p){var r=(p.x-k.x)*(p.x-k.x)+(p.y-k.y)*(p.y-k.y);if(null==l||r<l)n=p,l=r}null!=n&&(k=n)}b.setAbsoluteTerminalPoint(k,g)}else a.apply(this,
+(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 k=this.getNextPoint(b,f,g),l=this.graph.isOrthogonal(b),n=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=n)var p=Math.cos(-n),q=Math.sin(-n),k=mxUtils.getRotatedPoint(k,p,q,m);p=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);p+=parseFloat(b.style[g?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==n&&l,p);0!=n&&(p=Math.cos(n),q=Math.sin(n),k=mxUtils.getRotatedPoint(k,p,q,m));if(null!=c){n=this.graph.getAllConnectionConstraints(c);l=m=null;for(p=0;p<n.length;p++)if(q=this.graph.getConnectionPoint(c,n[p]),null!=q){var s=(q.x-k.x)*(q.x-k.x)+(q.y-k.y)*(q.y-k.y);if(null==l||s<l)m=q,l=s}null!=m&&(k=m)}b.setAbsoluteTerminalPoint(k,g)}else a.apply(this,
arguments)};var b=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,f){var g=b.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=f.state&&(g=f.state.view.graph.replacePlaceholders(f.state.cell,g));return g};var c=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"stencil("==b.substring(0,
8))try{var f=b.substring(8,b.length-1),g=mxUtils.parseXml(a.view.graph.decompress(f));return new mxShape(new mxStencil(g.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return c.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.prototype.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var c=mxStencilRegistry.getBasenameForStencil(a);if(null!=c){b=mxStencilRegistry.libraries[c];if(null!=b){if(null==mxStencilRegistry.packages[c]){mxStencilRegistry.packages[c]=1;for(c=0;c<b.length;c++){var d=b[c];if(".xml"==d.toLowerCase().substring(d.length-4,d.length))mxStencilRegistry.loadStencilSet(d,null);else if(".js"==d.toLowerCase().substring(d.length-
@@ -2285,7 +2285,7 @@ f[1]),2<f.length?"0"!=f[2]:!0))}}catch(g){}return d}if(null!=a.shape)if(null!=a.
this.setCellStyles(mxConstants.STYLE_ELBOW,b,[a]))}};Graph.prototype.isValidRoot=function(a){for(var b=this.model.getChildCount(a),c=0,d=0;d<b;d++){var e=this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null!=e&&!e.relative&&c++)}return 0<c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(b,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,
arguments)&&"0"!=mxUtils.getValue(b,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=
function(a){var b=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a){var b=this.getModel(),c=[];b.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(b.isEdge(e)){var f=b.getTerminal(e,!0),g=b.getTerminal(e,!1);b.setTerminal(e,g,!0);b.setTerminal(e,f,!1);var k=b.getGeometry(e);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();
-var l=k.getTerminalPoint(!0),p=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(p,!0);b.setGeometry(e,k);var m=this.view.getState(e),r=this.view.getState(f),n=this.view.getState(g);if(null!=m){var s=null!=r?this.getConnectionConstraint(m,r,!0):null,q=null!=n?this.getConnectionConstraint(m,n,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,s)}c.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
+var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);b.setGeometry(e,k);var m=this.view.getState(e),p=this.view.getState(f),q=this.view.getState(g);if(null!=m){var s=null!=p?this.getConnectionConstraint(m,p,!0):null,r=null!=q?this.getConnectionConstraint(m,q,!1):null;this.setConnectionConstraint(e,f,!0,r);this.setConnectionConstraint(e,g,!1,s)}c.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
2;k.y+=k.height/2-k.width/2;var t=k.width;k.width=k.height;k.height=t;b.setGeometry(e,k);var u=this.view.getState(e);if(null!=u){var v=u.style[mxConstants.STYLE_DIRECTION]||"east";"east"==v?v="south":"south"==v?v="west":"west"==v?v="north":"north"==v&&(v="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,v,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell.value&&
"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);if(0<b.length)for(var c=0;c<b.length;c++)this.isReplacePlaceholders(b[c])&&this.view.invalidate(b[c],!1,!1)}};Graph.prototype.cellLabelChanged=function(a,b,c){b=this.zapGremlins(b);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==
typeof e.value&&e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var f=a.value.cloneNode(!0);f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.removeCellsAfterUngroup=function(a){for(var b=[],c=0;c<a.length;c++)if(this.isCellDeletable(a[c])){var d=this.view.getState(a[c]);if(null!=d){var e=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(d.style,
@@ -2293,26 +2293,26 @@ mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);e==mxConstants.NONE&&d==mxConstant
d.setAttribute("label",a.value||""));null!=c&&0<c.length?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=
a.getSource()};Graph.prototype.dblClick=function(a,b){if(this.isEnabled()){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);if(this.firstClickState==d&&this.firstClickSource==e&&(null==d||null==d.text||null==d.text.node||!mxUtils.contains(d.text.boundingBox,c.x,c.y)&&!mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a))))if(null==d&&!this.isCellLocked(this.getDefaultParent())||
null!=d&&!this.isCellLocked(d.cell))if(null!=d||mxClient.IS_VML&&e==this.view.getCanvas()||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)b=this.addText(c.x,c.y,d)}mxGraph.prototype.dblClick.call(this,a,b)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*
-e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0))),a=this.snap(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,b,c){var d=
-new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-
-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=function(a){return a};
-Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=function(a,b,
-c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],"click",
-b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,b){this.startX=
-b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&(b.getState()==
-this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),k=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=b&&b(d.getEvent()),"#"==k.charAt(0)?window!=window.top?window.open(g.baseUrl+
-k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),d.consume()):null!=c&&(!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor="pointer",
-null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
-try{for(var f=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=c.getParent(a[g]),l=this.moveCells([f[g]],d,d,!1,k)[0];e.push(l);if(b)c.add(k,f[g]);else{var p=k.getIndex(a[g]);c.add(k,f[g],p+1)}}}finally{c.endUpdate()}return e};Graph.prototype.insertImage=function(a,b,c){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=
+e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(a,b,c){var d=new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=
+new mxPoint(Math.round((a-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=
+function(a){return a};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=
+function(a,b,c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],
+"click",b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,
+b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&
+(b.getState()==this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),k=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=b&&b(d.getEvent()),"#"==k.charAt(0)?window!=window.top?
+window.open(g.baseUrl+k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),d.consume()):null!=c&&(!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor=
+"pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
+try{for(var f=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=c.getParent(a[g]),l=this.moveCells([f[g]],d,d,!1,k)[0];e.push(l);if(b)c.add(k,f[g]);else{var n=k.getIndex(a[g]);c.add(k,f[g],n+1)}}}finally{c.endUpdate()}return e};Graph.prototype.insertImage=function(a,b,c){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=
a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=
-[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var p=this.getCellGeometry(c[f].cell),d=d+l;null!=p&&(p=p.clone(),
-a?p.x=Math.round(d-p.width/2):p.y=Math.round(d-p.height/2),this.getModel().setGeometry(c[f].cell,p))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,
+[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var n=this.getCellGeometry(c[f].cell),d=d+l;null!=n&&(n=n.clone(),
+a?n.x=Math.round(d-n.width/2):n.y=Math.round(d-n.height/2),this.getModel().setGeometry(c[f].cell,n))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,
e.y=d.y/d.view.scale-d.view.translate.y)}}for(var d=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=d?this.view.getBackgroundPageBounds():f?
-this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&l.apply(this,arguments)};var p=this.view.scale,m=mxUtils.createXmlDocument(),r=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=r.style?r.style.backgroundColor=a:r.setAttribute("style","background-color:"+
-a));null==m.createElementNS?(r.setAttribute("xmlns",mxConstants.NS_SVG),r.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/p;r.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");r.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");r.setAttribute("version","1.1");var n=r;e&&(n=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),n.setAttribute("transform","translate(0.5,0.5)"),
-r.appendChild(n));m.appendChild(r);m=new mxSvgCanvas2D(n);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/p),Math.floor((c/b-d.y)/p));var s=m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,k,l,p,m,r,n){var q=this.state;if(null!=this.foAltText&&(0==d||0!=q.fontSize&&f.length<5*d/q.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",Math.round((e+q.fontSize)/2));t.setAttribute("fill",q.fontColor||"black");
-t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(q.fontSize)+"px");t.setAttribute("font-family",q.fontFamily);(q.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(q.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(q.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration","underline");mxUtils.write(t,f);return t}return s.apply(this,
-arguments)};c=this.backgroundImage;null!=c&&(e=p/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&m.image(b.x,b.y,c.width,c.height,c.src,!0));m.scale(a);m.textEnabled=g;k.drawState(this.getView().getState(this.model.root),m);return r};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());
+this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&l.apply(this,arguments)};var n=this.view.scale,m=mxUtils.createXmlDocument(),p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+
+a));null==m.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/n;p.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");p.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");p.setAttribute("version","1.1");var q=p;e&&(q=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),q.setAttribute("transform","translate(0.5,0.5)"),
+p.appendChild(q));m.appendChild(p);m=new mxSvgCanvas2D(q);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/n),Math.floor((c/b-d.y)/n));var s=m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,k,l,n,m,p,q){var r=this.state;if(null!=this.foAltText&&(0==d||0!=r.fontSize&&f.length<5*d/r.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",Math.round((e+r.fontSize)/2));t.setAttribute("fill",r.fontColor||"black");
+t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(r.fontSize)+"px");t.setAttribute("font-family",r.fontFamily);(r.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(r.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(r.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration","underline");mxUtils.write(t,f);return t}return s.apply(this,
+arguments)};c=this.backgroundImage;null!=c&&(e=n/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&m.image(b.x,b.y,c.width,c.height,c.src,!0));m.scale(a);m.textEnabled=g;k.drawState(this.getView().getState(this.model.root),m);return p};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());
return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var b=null;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){var c=document.createRange();c.selectNode(a);b.removeAllRanges();b.addRange(c)}}else if((b=document.selection)&&"Control"!=b.type)a=b.createRange(),a.collapse(!0),c=b.createRange(),c.setEndPoint("StartToStart",a),c.select()};Graph.prototype.insertRow=
function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),e=0;e<d;e++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(a,b){a.tBodies[0].deleteRow(b)};Graph.prototype.insertColumn=function(a,b){var c=a.tHead;if(null!=c)for(var d=0;d<c.rows.length;d++){var e=document.createElement("th");c.rows[d].appendChild(e);mxUtils.br(e)}c=a.tBodies[0];for(d=0;d<c.rows.length;d++)e=c.rows[d].insertCell(b),mxUtils.br(e);return c.rows[0].cells[0<=
b?b:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,b){if(0<=b)for(var c=a.tBodies[0].rows,d=0;d<c.length;d++)c[d].cells.length>b&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&
@@ -2335,12 +2335,12 @@ mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){thi
"px";this.textarea.style.height=Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",l.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,
b){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"\x3cbr/\x3e"));return c=this.graph.sanitizeHtml(c)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML);
-return b="1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"\x3cbr/\x3e").replace(/\n/g,"\x3cbr/\x3e"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var m=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();m.apply(this,arguments);try{this.graph.container.focus()}catch(b){}};var n=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(n.apply(this,arguments),
+return b="1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"\x3cbr/\x3e").replace(/\n/g,"\x3cbr/\x3e"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var n=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();n.apply(this,arguments);try{this.graph.container.focus()}catch(b){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),
this.graph.isCellDeletable(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==mxUtils.trim(b||"")&&(c==mxConstants.NONE&&d==mxConstants.NONE)&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=
mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/
d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};
-var q=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=q.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+var p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"\x26deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"px")};mxVertexHandler.prototype.removeHint=
mxGraphHandler.prototype.removeHint;mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,
this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.hideEdgeHintThread&&window.clearTimeout(this.hideEdgeHintThread);this.hideEdgeHintThread=window.setTimeout(mxUtils.bind(this,function(){null!=this.hint&&(this.hint.style.visibility="hidden")}),
@@ -2355,39 +2355,39 @@ HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangl
HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxVertexHandler.prototype.rotationHandleVSpacing=-20;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=
!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=
18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-24,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};
-var p=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){p.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&(this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount())&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
+var q=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){q.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&(this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount())&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,b){var c=null!=this.div&&"none"!=this.div.style.display,d=null,e=null,f=null,g=null;null!=this.first&&(null!=this.currentX&&null!=this.currentY)&&(d=this.first.x,e=this.first.y,f=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-e)/this.graph.view.scale,
mxEvent.isAltDown(b.getEvent())||(f=this.graph.snap(f),g=this.graph.snap(g)));this.reset();if(c){if(mxEvent.isAltDown(b.getEvent())&&this.graph.isToggleEvent(b.getEvent())){var f=new mxRectangle(this.x,this.y,this.width,this.height),k=this.graph.getCells(f.x,f.y,f.width,f.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(b)){this.graph.model.beginUpdate();try{k=this.graph.getCellsBeyond(d,e,this.graph.getDefaultParent(),!0,!0);for(c=0;c<k.length;c++)if(this.graph.isCellMovable(k[c])){var l=
-this.graph.view.getState(k[c]),p=this.graph.getCellGeometry(k[c]);null!=l&&null!=p&&(p=p.clone(),p.translate(f,g),this.graph.model.setGeometry(k[c],p))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;
+this.graph.view.getState(k[c]),n=this.graph.getCellGeometry(k[c]);null!=l&&null!=n&&(n=n.clone(),n.translate(f,g),this.graph.model.setGeometry(k[c],n))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;
var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,f=this.first.y-c,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),b.consume()}};var r=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);r.apply(this,arguments)};var s=(new Date).getTime(),t=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){v.apply(this,arguments);c!=this.currentTerminalState?(s=(new Date).getTime(),t=0):t=(new Date).getTime()-s;this.currentTerminalState=
+this.secondDiv=null)),b.consume()}};var s=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);s.apply(this,arguments)};var r=(new Date).getTime(),t=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){v.apply(this,arguments);c!=this.currentTerminalState?(r=(new Date).getTime(),t=0):t=(new Date).getTime()-r;this.currentTerminalState=
c};var u=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<t||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&u.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=
a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;
-this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var z=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 z.apply(this,arguments)};var x=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))):x.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()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};
-var D=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){D.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node)&&(this.rotationShape.node.style.display="none")};var E=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){E.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?
-"":"none")};var A=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){A.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var b=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
+this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var y=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 y.apply(this,arguments)};var x=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))):x.apply(this,arguments)};var E=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)&&E.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};
+var C=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){C.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node)&&(this.rotationShape.node.style.display="none")};var F=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){F.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?
+"":"none")};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var b=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,c){b()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));b()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,b){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,
this.editingHandler);var c=this.graph.getLinkForCell(this.state.cell);this.updateLinkHint(c);null!=c&&(a=!0);a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(b){if(null==b||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=b){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="4px 10px 6px 10px",this.linkHint.style.fontSize="90%",this.linkHint.style.opacity="1",this.linkHint.style.filter=
"",this.updateLinkHint(b),this.graph.container.appendChild(this.linkHint));var c=b;60<c.length&&(c=c.substring(0,36)+"..."+c.substring(c.length-20));var d=document.createElement("a");d.setAttribute("href",this.graph.getLinkUrl(b));d.setAttribute("title",b);null!=this.graph.linkTarget&&d.setAttribute("target",this.graph.linkTarget);mxUtils.write(d,c);this.linkHint.innerHTML="";this.linkHint.appendChild(d);this.graph.isEnabled()&&"function"===typeof this.graph.editLink&&(b=document.createElement("img"),
-b.setAttribute("src",IMAGE_PATH+"/edit.gif"),b.setAttribute("title",mxResources.get("editLink")),b.setAttribute("width","11"),b.setAttribute("height","11"),b.style.marginLeft="10px",b.style.marginBottom="-1px",b.style.cursor="pointer",this.linkHint.appendChild(b),mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)})))}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var F=
-mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){F.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});
+b.setAttribute("src",IMAGE_PATH+"/edit.gif"),b.setAttribute("title",mxResources.get("editLink")),b.setAttribute("width","11"),b.setAttribute("height","11"),b.style.marginLeft="10px",b.style.marginBottom="-1px",b.style.cursor="pointer",this.linkHint.appendChild(b),mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)})))}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var G=
+mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){G.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});
this.selectionHandler=mxUtils.bind(this,function(b,c){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(b,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var b=this.graph.getLinkForCell(this.state.cell);null!=b&&(this.updateLinkHint(b),this.redrawHandles())};var H=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=
function(){H.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var I=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){I.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),b=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),a=mxUtils.getBoundingBox(b,this.state.style[mxConstants.STYLE_ROTATION]||
-"0",a),b=null!=a?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state;null==a&&(a=this.state);this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+a.height+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var M=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){M.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
+"0",a),b=null!=a?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state;null==a&&(a=this.state);this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+a.height+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var O=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){O.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
1==this.graph.getSelectionCount()?"":"none")};var L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){L.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&
-(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var R=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(R.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.round(a.x+(a.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+
+(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var S=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(S.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.round(a.x+(a.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+
a.height+6+this.state.view.graph.tolerance)+"px"}};var W=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){W.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var da=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),
-this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function f(){mxActor.call(this)}function g(){mxCylinder.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function n(){mxActor.call(this)}function q(){mxActor.call(this)}function p(){mxActor.call(this)}function r(){mxActor.call(this)}function s(a,b){this.canvas=
-a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,s.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,s.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,s.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,s.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,s.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,s.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function G(){mxShape.call(this)}function D(){mxShape.call(this)}function E(){mxEllipse.call(this)}function A(){mxShape.call(this)}
-function F(){mxShape.call(this)}function H(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function M(){mxShape.call(this)}function L(){mxShape.call(this)}function R(){mxCylinder.call(this)}function W(){mxDoubleEllipse.call(this)}function da(){mxDoubleEllipse.call(this)}function B(){mxArrowConnector.call(this);this.spacing=0}function C(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function Z(){mxRectangleShape.call(this)}function J(){mxActor.call(this)}
-function aa(){mxActor.call(this)}function N(){mxActor.call(this)}function K(){mxActor.call(this)}function O(){mxActor.call(this)}function S(){mxActor.call(this)}function ca(){mxActor.call(this)}function $(){mxActor.call(this)}function P(){mxActor.call(this)}function X(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function T(){mxEllipse.call(this)}function Q(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function V(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}
-function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function na(){mxActor.call(this)}function va(a,b,c,d,e,f,g,k,l,p){g+=l;var m=d.clone();d.x-=e*(2*g+l);d.y-=f*(2*g+l);e*=g+l;f*=g+l;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),
+this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function f(){mxActor.call(this)}function g(){mxCylinder.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function n(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function q(){mxActor.call(this)}function s(){mxActor.call(this)}function r(a,b){this.canvas=
+a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,r.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,r.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,r.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,r.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
+this.canvas.curveTo=mxUtils.bind(this,r.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,r.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function z(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function E(){mxShape.call(this)}function C(){mxShape.call(this)}function F(){mxEllipse.call(this)}function D(){mxShape.call(this)}
+function G(){mxShape.call(this)}function H(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function O(){mxShape.call(this)}function L(){mxShape.call(this)}function S(){mxCylinder.call(this)}function W(){mxDoubleEllipse.call(this)}function da(){mxDoubleEllipse.call(this)}function B(){mxArrowConnector.call(this);this.spacing=0}function A(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function Z(){mxRectangleShape.call(this)}function J(){mxActor.call(this)}
+function aa(){mxActor.call(this)}function M(){mxActor.call(this)}function K(){mxActor.call(this)}function N(){mxActor.call(this)}function R(){mxActor.call(this)}function ca(){mxActor.call(this)}function $(){mxActor.call(this)}function P(){mxActor.call(this)}function X(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function T(){mxEllipse.call(this)}function Q(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function V(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}
+function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function na(){mxActor.call(this)}function va(a,b,c,d,e,f,g,k,l,n){g+=l;var m=d.clone();d.x-=e*(2*g+l);d.y-=f*(2*g+l);e*=g+l;f*=g+l;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),
a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var sa=Math.tan(mxUtils.toRadians(30)),ma=(0.5-sa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/sa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,0.25*b);a.lineTo(0.5*b,b*ma);a.lineTo(b,0.25*b);a.lineTo(0.5*b,(0.5-ma)*b);a.lineTo(0,
0.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=b;mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(0.5+sa));f?(a.moveTo(0,0.25*b),a.lineTo(0.5*b,(0.5-ma)*b),a.lineTo(b,0.25*b),a.moveTo(0.5*b,(0.5-ma)*b),a.lineTo(0.5*b,(1-ma)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,0.25*b),a.lineTo(0.5*b,b*ma),a.lineTo(b,0.25*b),a.lineTo(b,0.75*b),a.lineTo(0.5*b,(1-ma)*b),a.lineTo(0,0.75*b),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.isoCube=
c;mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,-b);f||(a.moveTo(0,b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,
@@ -2396,51 +2396,51 @@ this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST))a
a.lineTo(d-b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.note=e;mxUtils.extend(f,mxActor);f.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,0.5*e,d,0);a.quadTo(0.5*d,e/2,d,e);a.quadTo(d/2,0.5*e,0,e);a.quadTo(0.5*d,e/2,0,0);a.end()};mxCellRenderer.prototype.defaultShapes["switch"]=f;mxUtils.extend(g,mxCylinder);g.prototype.tabWidth=60;g.prototype.tabHeight=20;
g.prototype.tabPosition="right";g.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);f?"left"==g?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==g?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),
a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.folder=g;mxUtils.extend(k,mxActor);k.prototype.size=30;k.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,
-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.card=k;mxUtils.extend(l,mxActor);l.prototype.size=0.4;l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.tape=l;mxUtils.extend(m,
-mxActor);m.prototype.size=0.3;m.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.document=m;mxUtils.extend(n,mxActor);n.prototype.size=0.2;n.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.parallelogram=n;mxUtils.extend(q,mxActor);q.prototype.size=0.2;q.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(0.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.trapezoid=q;mxUtils.extend(p,mxActor);p.prototype.size=0.5;p.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,
-0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=p;mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=r;s.prototype.moveTo=
-function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};s.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};s.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};s.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,
-arguments);this.lastX=e;this.lastY=f};s.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};s.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=Math.abs(a-this.lastX),d=Math.abs(b-this.lastY),e=Math.sqrt(c*c+d*d);if(2>e)this.originalLineTo.apply(this.canvas,arguments);else{var f=Math.round(e/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},
-l=k(a-this.lastX)*c/f,k=k(b-this.lastY)*d/f,c=c/e,d=d/e,e=0;e<f;e++){var p=l*e+this.lastX,m=k*e+this.lastY,r=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,p-r*d,m-r*c)}this.originalLineTo.call(this.canvas,a,b)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};s.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
-this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var za=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&("0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle)&&(a.handJiggle=new s(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));za.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Aa=mxRectangleShape.prototype.isHtmlAllowed;
+b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.card=k;mxUtils.extend(l,mxActor);l.prototype.size=0.4;l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.tape=l;mxUtils.extend(n,
+mxActor);n.prototype.size=0.3;n.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.document=n;mxUtils.extend(m,mxActor);m.prototype.size=0.2;m.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.parallelogram=m;mxUtils.extend(p,mxActor);p.prototype.size=0.2;p.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(0.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
+mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.trapezoid=p;mxUtils.extend(q,mxActor);q.prototype.size=0.5;q.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,
+0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=q;mxUtils.extend(s,mxActor);s.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=s;r.prototype.moveTo=
+function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};r.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};r.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};r.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,
+arguments);this.lastX=e;this.lastY=f};r.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};r.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=Math.abs(a-this.lastX),d=Math.abs(b-this.lastY),e=Math.sqrt(c*c+d*d);if(2>e)this.originalLineTo.apply(this.canvas,arguments);else{var f=Math.round(e/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},
+l=k(a-this.lastX)*c/f,k=k(b-this.lastY)*d/f,c=c/e,d=d/e,e=0;e<f;e++){var n=l*e+this.lastX,m=k*e+this.lastY,p=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,n-p*d,m-p*c)}this.originalLineTo.call(this.canvas,a,b)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};r.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
+this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var za=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&("0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle)&&(a.handJiggle=new r(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));za.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Aa=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Aa.apply(this,arguments)};var Ba=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ba.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
mxConstants.NONE){if(!f&&(null==this.fill||this.fill==mxConstants.NONE))a.pointerEvents=!1;a.begin();this.isRounded?(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,
c));a.close();a.end();a.fillAndStroke()}}};var Ca=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ca.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=0.1;t.prototype.isHtmlAllowed=function(){return!1};t.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var b=
a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(b*e,c*e));a.x+=d;a.width-=2*d}return a};t.prototype.paintForeground=function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.process=t;mxUtils.extend(v,mxActor);v.prototype.size=0.2;v.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.step=v;mxUtils.extend(u,mxHexagon);u.prototype.size=0.25;u.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,0.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,0.5*e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=u;mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.prototype.defaultShapes.plus=y;var wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){wa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
-1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),wa.apply(this,[a,b,c,d,e]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};z.prototype.paintForeground=function(a,b,c,
-d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g=null;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var k=this.style["symbol"+f+"Align"],l=this.style["symbol"+f+"VerticalAlign"],p=this.style["symbol"+f+"Width"],m=this.style["symbol"+
-f+"Height"],r=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"ArcSpacing"];null!=n&&(r+=this.getArcSize(d+this.strokewidth,e+this.strokewidth)*n);var n=b,s=c,n=k==mxConstants.ALIGN_CENTER?n+(d-p)/2:k==mxConstants.ALIGN_RIGHT?n+(d-p-r):n+r,s=l==mxConstants.ALIGN_MIDDLE?s+(e-m)/2:l==mxConstants.ALIGN_BOTTOM?s+(e-m-r):s+r;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,n,s,p,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.prototype.defaultShapes.ext=z;mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.prototype.defaultShapes.message=x;mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,
-e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=G;mxUtils.extend(D,mxShape);D.prototype.getLabelBounds=function(a){return new mxRectangle(a.x+a.width/6,a.y,5*a.width/6,a.height)};D.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();
-a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=D;mxUtils.extend(E,mxEllipse);E.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=E;mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,
-0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=A;mxUtils.extend(F,mxShape);F.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};F.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};F.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,e/
-4);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlControl=F;mxUtils.extend(H,mxRectangleShape);H.prototype.size=40;H.prototype.isHtmlAllowed=function(){return!1};H.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};H.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),
+2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,0.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,0.5*e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=u;mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){wa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),wa.apply(this,[a,b,c,d,e]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};y.prototype.paintForeground=function(a,b,c,
+d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g=null;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var k=this.style["symbol"+f+"Align"],l=this.style["symbol"+f+"VerticalAlign"],n=this.style["symbol"+f+"Width"],m=this.style["symbol"+
+f+"Height"],p=this.style["symbol"+f+"Spacing"]||0,q=this.style["symbol"+f+"ArcSpacing"];null!=q&&(p+=this.getArcSize(d+this.strokewidth,e+this.strokewidth)*q);var q=b,s=c,q=k==mxConstants.ALIGN_CENTER?q+(d-n)/2:k==mxConstants.ALIGN_RIGHT?q+(d-n-p):q+p,s=l==mxConstants.ALIGN_MIDDLE?s+(e-m)/2:l==mxConstants.ALIGN_BOTTOM?s+(e-m-p):s+p;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,q,s,n,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.prototype.defaultShapes.ext=y;mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.prototype.defaultShapes.message=x;mxUtils.extend(E,mxShape);E.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,
+e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=E;mxUtils.extend(C,mxShape);C.prototype.getLabelBounds=function(a){return new mxRectangle(a.x+a.width/6,a.y,5*a.width/6,a.height)};C.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();
+a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=C;mxUtils.extend(F,mxEllipse);F.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=F;mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,
+0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=D;mxUtils.extend(G,mxShape);G.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};G.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};G.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,e/
+4);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlControl=G;mxUtils.extend(H,mxRectangleShape);H.prototype.size=40;H.prototype.isHtmlAllowed=function(){return!1};H.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};H.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),
g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=H&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed(!0),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};H.prototype.paintForeground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=H;mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.style,"width",this.width))*this.scale)),c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"height",this.height))*this.scale));return new mxRectangle(a.x,a.y,
b,c)};I.prototype.paintBackground=function(a,b,c,d,e){var f=this.corner,g=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),k=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height))));a.begin();a.moveTo(b,c);a.lineTo(b+g,c);a.lineTo(b+g,c+Math.max(0,k-1.5*f));a.lineTo(b+Math.max(0,g-f),c+k);a.lineTo(b,c+k);a.close();a.fillAndStroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+k);a.stroke()};
mxCellRenderer.prototype.defaultShapes.umlFrame=I;mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=H.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,
arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,b,c,d){d=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;null!=b.style.backboneSize&&(d+=parseFloat(b.style.backboneSize)*b.view.scale/2-1);if("south"==b.style[mxConstants.STYLE_DIRECTION]||"north"==b.style[mxConstants.STYLE_DIRECTION])return c.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));
-c.y<a.getCenterY()&&(d+=1,d*=-1);return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxUtils.extend(M,mxShape);M.prototype.size=10;M.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.lollipop=
-M;mxUtils.extend(L,mxShape);L.prototype.size=10;L.prototype.inset=2;L.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
-L;mxUtils.extend(R,mxCylinder);R.prototype.jettyWidth=32;R.prototype.jettyHeight=12;R.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,k=0.3*e-b/2,l=0.7*e-b/2;f?(a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b),a.moveTo(c,l),a.lineTo(g,l),a.lineTo(g,l+b),a.lineTo(c,l+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),
-a.lineTo(c,l+b),a.lineTo(0,l+b),a.lineTo(0,l),a.lineTo(c,l),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=R;mxUtils.extend(W,mxDoubleEllipse);W.prototype.outerStroke=!0;W.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
-W;mxUtils.extend(da,W);da.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=da;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=B;mxUtils.extend(C,mxArrowConnector);C.prototype.defaultWidth=
-10;C.prototype.defaultArrowWidth=20;C.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};C.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};C.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=C;mxUtils.extend(U,
+c.y<a.getCenterY()&&(d+=1,d*=-1);return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxUtils.extend(O,mxShape);O.prototype.size=10;O.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.lollipop=
+O;mxUtils.extend(L,mxShape);L.prototype.size=10;L.prototype.inset=2;L.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
+L;mxUtils.extend(S,mxCylinder);S.prototype.jettyWidth=32;S.prototype.jettyHeight=12;S.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,k=0.3*e-b/2,l=0.7*e-b/2;f?(a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b),a.moveTo(c,l),a.lineTo(g,l),a.lineTo(g,l+b),a.lineTo(c,l+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),
+a.lineTo(c,l+b),a.lineTo(0,l+b),a.lineTo(0,l),a.lineTo(c,l),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=S;mxUtils.extend(W,mxDoubleEllipse);W.prototype.outerStroke=!0;W.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
+W;mxUtils.extend(da,W);da.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=da;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=B;mxUtils.extend(A,mxArrowConnector);A.prototype.defaultWidth=
+10;A.prototype.defaultArrowWidth=20;A.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};A.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};A.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=A;mxUtils.extend(U,
mxActor);U.prototype.size=30;U.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.manualInput=U;mxUtils.extend(Z,mxRectangleShape);Z.prototype.dx=20;Z.prototype.dy=20;Z.prototype.isHtmlAllowed=function(){return!1};
Z.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));g=Math.max(f,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+f);a.lineTo(b+d,c+f);a.end();a.stroke();
a.begin();a.moveTo(b+g,c);a.lineTo(b+g,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.internalStorage=Z;mxUtils.extend(J,mxActor);J.prototype.dx=20;J.prototype.dy=20;J.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.prototype.defaultShapes.corner=J;mxUtils.extend(aa,mxActor);aa.prototype.dx=20;aa.prototype.dy=20;aa.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));Math.abs(d-b);Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,f,!0);a.end()};mxCellRenderer.prototype.defaultShapes.tee=aa;mxUtils.extend(N,mxActor);N.prototype.arrowWidth=
-0.3;N.prototype.arrowSize=0.2;N.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,
-f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=N;mxUtils.extend(K,mxActor);K.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",N.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",N.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
-[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.prototype.defaultShapes.doubleArrow=K;mxUtils.extend(O,mxActor);O.prototype.size=0.1;O.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,
-e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.dataStorage=O;mxUtils.extend(S,mxActor);S.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=S;mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.xor=ca;mxUtils.extend($,
+"dy",this.dy))));Math.abs(d-b);Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,f,!0);a.end()};mxCellRenderer.prototype.defaultShapes.tee=aa;mxUtils.extend(M,mxActor);M.prototype.arrowWidth=
+0.3;M.prototype.arrowSize=0.2;M.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,
+f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=M;mxUtils.extend(K,mxActor);K.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",M.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",M.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.prototype.defaultShapes.doubleArrow=K;mxUtils.extend(N,mxActor);N.prototype.size=0.1;N.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,
+e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.dataStorage=N;mxUtils.extend(R,mxActor);R.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=R;mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.xor=ca;mxUtils.extend($,
mxActor);$.prototype.size=20;$.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,0.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,0.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.loopLimit=$;mxUtils.extend(P,mxActor);P.prototype.size=0.375;
P.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.offPageConnector=P;mxUtils.extend(X,mxEllipse);X.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.tapeData=X;mxUtils.extend(Y,mxEllipse);Y.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.orEllipse=Y;mxUtils.extend(T,mxEllipse);T.prototype.paintVertexShape=
@@ -2451,15 +2451,15 @@ this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils
mxCellRenderer.prototype.defaultShapes.partialRectangle=V;mxUtils.extend(ga,mxEllipse);ga.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.lineEllipse=ga;mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,
e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.delay=ka;mxUtils.extend(ba,mxActor);ba.prototype.size=0.2;ba.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);
a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.cross=ba;mxUtils.extend(na,mxActor);na.prototype.size=0.25;na.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.display=na;mxMarker.addMarker("dash",
-function(a,b,c,d,e,f,g,k,l,p){var m=e*(g+l+1),r=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-r/2,d.y-r/2+m/2);a.lineTo(d.x+r/2-3*m/2,d.y-3*r/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,k,l,p){var m=e*(g+l+1),r=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-r/2,d.y-r/2+m/2);a.lineTo(d.x+r/2-3*m/2,d.y-3*r/2-m/2);a.moveTo(d.x-m/2+r/2,d.y-r/2-m/2);a.lineTo(d.x-r/2-3*m/2,d.y-3*r/2+m/2);a.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",
-function(a,b,c,d,e,f,g,k,l,p){var m=d.clone(),r=va.apply(this,arguments),n=e*(g+2*l),s=f*(g+2*l);return function(){r.apply(this,arguments);a.begin();a.moveTo(m.x-e*l,m.y-f*l);a.lineTo(m.x-2*n+e*l,m.y-2*s+f*l);a.moveTo(m.x-n-s+f*l,m.y-s+n-e*l);a.lineTo(m.x+s-n-f*l,m.y-s-n+e*l);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,k,l,p){b=1.118*e*l;c=1.118*f*l;e*=g+l;f*=g+l;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);k?a.lineTo(m.x-
-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,k,l,p,m){f*=k+p;g*=k+p;var r=e.clone();return function(){b.begin();b.moveTo(r.x,r.y);l?b.lineTo(r.x-f-g/a,r.y-g+f/a):b.lineTo(r.x+g/a-f,r.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var fa=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);
+function(a,b,c,d,e,f,g,k,l,n){var m=e*(g+l+1),p=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,k,l,n){var m=e*(g+l+1),p=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.moveTo(d.x-m/2+p/2,d.y-p/2-m/2);a.lineTo(d.x-p/2-3*m/2,d.y-3*p/2+m/2);a.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",
+function(a,b,c,d,e,f,g,k,l,n){var m=d.clone(),p=va.apply(this,arguments),q=e*(g+2*l),s=f*(g+2*l);return function(){p.apply(this,arguments);a.begin();a.moveTo(m.x-e*l,m.y-f*l);a.lineTo(m.x-2*q+e*l,m.y-2*s+f*l);a.moveTo(m.x-q-s+f*l,m.y-s+q-e*l);a.lineTo(m.x+s-q-f*l,m.y-s-q+e*l);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,k,l,n){b=1.118*e*l;c=1.118*f*l;e*=g+l;f*=g+l;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);k?a.lineTo(m.x-
+e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,k,l,n,m){f*=k+n;g*=k+n;var p=e.clone();return function(){b.begin();b.moveTo(p.x,p.y);l?b.lineTo(p.x-f-g/a,p.y-g+f/a):b.lineTo(p.x+g/a-f,p.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var fa=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);
a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},la=function(a,b){return fa(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100,e=null!=b?b:c.height/8;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*d),c.y+e)},function(a,b,c){a=Math.min(50,Math.max(0,
-100*(a.width-b.x+a.x)/Math.min(a.width,a.height)));this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(a)})},ja=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b}},ia=function(a){return function(b){var c=[fa(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size))));return new mxPoint(b.x+0.75*c*b.width,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,
+100*(a.width-b.x+a.x)/Math.min(a.width,a.height)));this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(a)})},ja=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b}},ia=function(a){return function(b){var c=[fa(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size))));return new mxPoint(b.x+0.75*c*b.width,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,
Math.min(a,(c.x-b.x)/(0.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(la(b));return c}},pa=function(a,b,c){c=null!=c?c:1;return function(d){var e=[fa(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(la(d));return e}},ta=function(a,b,c){return function(d){var e=
[fa(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(la(d));return e}},xa=function(a){return function(b){return[fa(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"arrowWidth",N.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",N.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(b.y+b.height/2-c.y)/b.height)));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},oa=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,k=a.view.translate,l=a.view.scale,p=c?f[0]:f[g],m=c?f[1]:f[g-
-1],r=m.x-p.x,n=m.y-p.y,s=Math.sqrt(r*r+n*n);return fa(a,b,function(a){a=d.call(this,s,r/s,n/s,p,m);return new mxPoint(a.x/l-k.x,a.y/l-k.y)},function(a,b,c){a=Math.sqrt(r*r+n*n);b.x=(b.x+k.x)*l;b.y=(b.y+k.y)*l;e.call(this,a,r/a,n/a,p,m,b,c)})},ya=function(a,b,c){return oa(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,k){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*
+"arrowWidth",M.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",M.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(b.y+b.height/2-c.y)/b.height)));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},oa=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,k=a.view.translate,l=a.view.scale,n=c?f[0]:f[g],m=c?f[1]:f[g-
+1],p=m.x-n.x,q=m.y-n.y,s=Math.sqrt(p*p+q*q);return fa(a,b,function(a){a=d.call(this,s,p/s,q/s,n,m);return new mxPoint(a.x/l-k.x,a.y/l-k.y)},function(a,b,c){a=Math.sqrt(p*p+q*q);b.x=(b.x+k.x)*l;b.y=(b.y+k.y)*l;e.call(this,a,p/a,q/a,n,m,b,c)})},ya=function(a,b,c){return oa(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,k){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*
b)/a.view.scale-c})},ua={link:function(a){return[ya(a,!0,10),ya(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(oa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+
c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,k,l){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||
Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(oa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*
@@ -2475,85 +2475,85 @@ mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(b.height,c.y-b.y)
b){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b},process:function(a){var b=[fa(a,["size"],function(a){var b=Math.max(0,Math.min(0.5,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size))));return new mxPoint(a.x+a.width*b,a.y+a.height/4)},function(a,b){this.state.style.size=
Math.max(0,Math.min(0.5,(b.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b},cross:function(a){return[fa(a,["size"],function(a){var b=Math.min(a.width,a.height),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ba.prototype.size)))*b/2;return new mxPoint(a.getCenterX()-b,a.getCenterY()-b)},function(a,b){var c=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(2*(Math.max(0,a.getCenterY()-b.y)/c),2*(Math.max(0,
a.getCenterX()-b.x)/c))))})]},note:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",e.prototype.size)))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-b.x),Math.min(a.height,b.y-a.y))))})]},manualInput:function(a){var b=[fa(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,
-"size",U.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b},dataStorage:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",O.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,
+"size",U.prototype.size)));return new mxPoint(a.x+a.width/4,a.y+3*b/4)},function(a,b){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(b.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b},dataStorage:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",N.prototype.size))));return new mxPoint(a.x+(1-b)*a.width,a.getCenterY())},function(a,b){this.state.style.size=Math.max(0,
Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[fa(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",Z.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",Z.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})];mxUtils.getValue(a.style,
mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b},corner:function(a){return[fa(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",J.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",J.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[fa(a,
["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",aa.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",aa.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:xa(1),doubleArrow:xa(0.5),folder:function(a){return[fa(a,["tabWidth",
"tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==
-mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[fa(a,["size"],
+mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[fa(a,["size"],
function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,2*((b.y-a.y)/a.height)))})]},offPageConnector:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",P.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=
-Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:pa(v.prototype.size,!0),hexagon:pa(u.prototype.size,!0,0.5),curlyBracket:pa(p.prototype.size,!1),display:pa(na.prototype.size,!1),cube:ta(1,a.prototype.size,!1),card:ta(0.5,k.prototype.size,!0),loopLimit:ta(0.5,$.prototype.size,!0),trapezoid:ia(0.5),parallelogram:ia(1)};Graph.createHandle=fa;Graph.handleFactory=ua;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
+Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:pa(v.prototype.size,!0),hexagon:pa(u.prototype.size,!0,0.5),curlyBracket:pa(q.prototype.size,!1),display:pa(na.prototype.size,!1),cube:ta(1,a.prototype.size,!1),card:ta(0.5,k.prototype.size,!0),loopLimit:ta(0.5,$.prototype.size,!0),trapezoid:ia(0.5),parallelogram:ia(1)};Graph.createHandle=fa;Graph.handleFactory=ua;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
ua[this.state.style.shape];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=ua[this.state.style.shape];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var qa=new mxPoint(1,0),ra=new mxPoint(1,0),ia=mxUtils.toRadians(-30),ja=Math.cos(ia),ia=Math.sin(ia),qa=mxUtils.getRotatedPoint(qa,ja,ia),ia=mxUtils.toRadians(-150),ja=Math.cos(ia),ia=Math.sin(ia),
-ra=mxUtils.getRotatedPoint(ra,ja,ia);mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==k&&null!=b&&(k=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var l=qa.x,p=qa.y,m=ra.x,r=ra.y,n="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){var s=k;a=function(a,b,c){a-=s.x;var d=
-b-s.y;b=(r*a-m*d)/(l*r-p*m);a=(p*a-l*d)/(p*m-l*r);n?(c&&(s=new mxPoint(s.x+l*b,s.y+p*b),e.push(s)),s=new mxPoint(s.x+m*a,s.y+r*a)):(c&&(s=new mxPoint(s.x+m*a,s.y+r*a),e.push(s)),s=new mxPoint(s.x+l*b,s.y+p*b));e.push(s)};null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Da=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=
+ra=mxUtils.getRotatedPoint(ra,ja,ia);mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==k&&null!=b&&(k=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var l=qa.x,n=qa.y,m=ra.x,p=ra.y,q="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){var s=k;a=function(a,b,c){a-=s.x;var d=
+b-s.y;b=(p*a-m*d)/(l*p-n*m);a=(n*a-l*d)/(n*m-l*p);q?(c&&(s=new mxPoint(s.x+l*b,s.y+n*b),e.push(s)),s=new mxPoint(s.x+m*a,s.y+p*a)):(c&&(s=new mxPoint(s.x+m*a,s.y+p*a),e.push(s)),s=new mxPoint(s.x+l*b,s.y+n*b));e.push(s)};null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Da=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=
new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Da.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,
0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0.5,
-0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
-mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;
+0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
+mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;
U.prototype.constraints=mxRectangleShape.prototype.constraints;ka.prototype.constraints=mxRectangleShape.prototype.constraints;na.prototype.constraints=mxRectangleShape.prototype.constraints;$.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.15,0.05),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.85,0.05),
-!1),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.3),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.7),!0),new mxConnectionConstraint(new mxPoint(0.15,0.95),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.85,0.95),!1)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,
-0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
+!1),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.3),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.7),!0),new mxConnectionConstraint(new mxPoint(0.15,0.95),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.85,0.95),!1)];E.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,
+0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];S.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.25,
0.2),!1),new mxConnectionConstraint(new mxPoint(0.1,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(0.75,0.25),!1),new mxConnectionConstraint(new mxPoint(0.9,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];f.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0.5,
0.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.75,0.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];l.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.35),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.65),!1),new mxConnectionConstraint(new mxPoint(1,
0.35),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.65),!1),new mxConnectionConstraint(new mxPoint(0.25,1),!1),new mxConnectionConstraint(new mxPoint(0.75,0),!1)];v.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,
1),!0),new mxConnectionConstraint(new mxPoint(0.1,0.25),!1),new mxConnectionConstraint(new mxPoint(0.2,0.5),!1),new mxConnectionConstraint(new mxPoint(0.1,0.75),!1),new mxConnectionConstraint(new mxPoint(0.9,0.25),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.9,0.75),!1)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.75,0.5),
-!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),
+!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];O.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),
new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.375,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.625,0),!0),new mxConnectionConstraint(new mxPoint(0.125,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0.125,0.75),!1),new mxConnectionConstraint(new mxPoint(0.875,
0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(0.875,0.75),!1),new mxConnectionConstraint(new mxPoint(0.375,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0.25),!1),new mxConnectionConstraint(new mxPoint(0.4,0.1),!1),new mxConnectionConstraint(new mxPoint(0.16,
-0.55),!1),new mxConnectionConstraint(new mxPoint(0.07,0.4),!1),new mxConnectionConstraint(new mxPoint(0.31,0.8),!1),new mxConnectionConstraint(new mxPoint(0.13,0.77),!1),new mxConnectionConstraint(new mxPoint(0.8,0.8),!1),new mxConnectionConstraint(new mxPoint(0.55,0.95),!1),new mxConnectionConstraint(new mxPoint(0.875,0.5),!1),new mxConnectionConstraint(new mxPoint(0.96,0.7),!1),new mxConnectionConstraint(new mxPoint(0.625,0.2),!1),new mxConnectionConstraint(new mxPoint(0.88,0.25),!1)];n.prototype.constraints=
-mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,
-0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;aa.prototype.constraints=null;J.prototype.constraints=null;N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
-0.5),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];H.prototype.constraints=null;S.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.175,
+0.55),!1),new mxConnectionConstraint(new mxPoint(0.07,0.4),!1),new mxConnectionConstraint(new mxPoint(0.31,0.8),!1),new mxConnectionConstraint(new mxPoint(0.13,0.77),!1),new mxConnectionConstraint(new mxPoint(0.8,0.8),!1),new mxConnectionConstraint(new mxPoint(0.55,0.95),!1),new mxConnectionConstraint(new mxPoint(0.875,0.5),!1),new mxConnectionConstraint(new mxPoint(0.96,0.7),!1),new mxConnectionConstraint(new mxPoint(0.625,0.2),!1),new mxConnectionConstraint(new mxPoint(0.88,0.25),!1)];m.prototype.constraints=
+mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,
+0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;aa.prototype.constraints=null;J.prototype.constraints=null;M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
+0.5),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];H.prototype.constraints=null;R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.175,
0.25),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.175,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();var b=d.getDeletableCells(d.getSelectionCells());if(null!=b&&0<b.length){var c=d.model.getParents(b);d.removeCells(b,a);if(null!=c){a=[];for(b=0;b<c.length;b++)(d.model.isVertex(c[b])||d.model.isEdge(c[b]))&&a.push(c[b]);d.setSelectionCells(a)}}}var b=this.editorUi,c=b.editor,d=c.graph,e=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){window.open(b.getUrl())});this.addAction("open...",
-function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var d=mxUtils.parseXml(a),e=new mxGraphModel;(new mxCodec(d)).decode(d.documentElement,e);var f=e.getChildren(e.getChildAt(e.getRoot(),0));c.graph.setSelectionCells(c.graph.importCells(f))}catch(q){mxUtils.alert(mxResources.get("invalidOrMissingFile")+
-": "+q.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=e;this.addAction("save",function(){b.saveFile(!1)},null,null,"Ctrl+S").isEnabled=e;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,"Ctrl+Shift+S").isEnabled=e;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,210,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,
+function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var d=mxUtils.parseXml(a),e=new mxGraphModel;(new mxCodec(d)).decode(d.documentElement,e);var f=e.getChildren(e.getChildAt(e.getRoot(),0));c.graph.setSelectionCells(c.graph.importCells(f))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+
+": "+p.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=e;this.addAction("save",function(){b.saveFile(!1)},null,null,"Ctrl+S").isEnabled=e;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,"Ctrl+Shift+S").isEnabled=e;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,210,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,
420,!0,!0);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=e;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print","Ctrl+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo","Ctrl+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",!mxClient.IS_WIN?"Ctrl+Shift+Z":"Ctrl+Y");
this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X");this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C");this.addAction("paste",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V");this.addAction("pasteHere",function(a){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){d.getModel().beginUpdate();try{var b=mxClipboard.paste(d);if(null!=b){var c=d.getBoundingBoxFromGeometry(b);
-if(null!=c){var e=d.view.translate,f=d.view.scale,q=e.y,p=Math.round(d.snap(d.popupMenuHandler.triggerX/f-e.x)),r=Math.round(d.snap(d.popupMenuHandler.triggerY/f-q));d.cellsMoved(b,p-c.x,r-c.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,"Ctrl+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,"Ctrl+D");this.addAction("turn",
+if(null!=c){var e=d.view.translate,f=d.view.scale,p=e.y,q=Math.round(d.snap(d.popupMenuHandler.triggerX/f-e.x)),s=Math.round(d.snap(d.popupMenuHandler.triggerY/f-p));d.cellsMoved(b,q-c.x,s-c.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,"Ctrl+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,"Ctrl+D");this.addAction("turn",
function(){d.setSelectionCells(d.turnShapes(d.getSelectionCells()))},null,null,"Ctrl+R");this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,"Ctrl+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,"Ctrl+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},
null,null,"Ctrl+Shift+Page Up");this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Ctrl+Shift+Page Down");this.addAction("expand",function(){d.foldCells(!1)},null,null,"Ctrl+Page Down");this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Ctrl+Page Up");this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container",
-"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("editData...",function(){var a=d.getSelectionCell()||d.getModel().getRoot();null!=a&&(a=new EditDataDialog(b,a),b.showDialog(a.container,
-320,320,!0,!1),a.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d="";if(mxUtils.isNode(c.value)){var e=c.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(b,mxResources.get("editTooltip")+":",d,function(b){a.setTooltipForCell(c,b)});b.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell());null!=
-a&&window.open(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d=a.getLinkForCell(c)||"";b.showLinkDialog(d,mxResources.get("apply"),function(b){b=mxUtils.trim(b);a.setLinkForCell(c,0<b.length?b:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=new LinkDialog(b,"",mxResources.get("insert"),function(a,b){a=mxUtils.trim(a);if(0<a.length){var c=a.substring(a.lastIndexOf("/")+
-1),e=null;null!=b&&0<b.length&&(e=b[0].iconUrl,c=b[0].name||b[0].type,c=c.charAt(0).toUpperCase()+c.substring(1),30<c.length&&(c=c.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),c=new mxCell(c,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=e?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+e:"spacing\x3d10;"));c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.setSelectionCell(d.addCell(c));
-d.scrollCellToVisible(d.getSelectionCell())}});b.showDialog(a.container,420,90,!0,!0);a.init()}}).isEnabled=e;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var c=a.getParentByName(a.getSelectedElement(),"A",a.cellEditor.textarea),d="";null!=c&&(d=c.getAttribute("href")||"");var e=a.cellEditor.saveSelection();b.showLinkDialog(d,mxResources.get("apply"),mxUtils.bind(this,function(b){a.cellEditor.restoreSelection(e);if(null!=
-b)if(0==b.length)document.execCommand("unlink",!1);else{for(var c=a.cellEditor.textarea.getElementsByTagName("a"),d=[],f=0;f<c.length;f++)d.push(c[f]);document.execCommand("createlink",!1,mxUtils.trim(b));b=a.cellEditor.textarea.getElementsByTagName("a");if(b.length==d.length+1)for(f=b.length-1;0<=f;f--)if(0==f||b[f]!=d[f-1]){b[f].setAttribute("target","_blank");break}}}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=e;this.addAction("autosize",
-function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var e=d.view.getState(c),f=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=e&&null!=e.text&&null!=f&&d.isWrapping(c)?(f=f.clone(),f.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,f)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+Shift+Y");this.addAction("formattedText",
-function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var c="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==a.style.html)c=null,"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&d.cellLabelChanged(a.cell,d.convertValueToString(a.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(a.cell,d.sanitizeHtml(e))}d.setCellStyles("html",c);b.fireEvent(new mxEventObject("styleChanged",
-"keys",["html"],"values",[null!=c?c:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",c=d.getView().getState(d.getSelectionCell());null!=c&&(a=c.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,
-a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,300,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",function(a){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",
-function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=a.y*d.view.scale,d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),
-null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/
-2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,
-parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+
-" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var f=null,f=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.isGridEnabled()});f.setEnabled(!1);f=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});f.setToggleAction(!0);
-f.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});f.setEnabled(!1);f=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});f=this.addAction("collapseExpand",function(){b.setFoldingEnabled(!d.foldingEnabled)});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.foldingEnabled});f.isEnabled=e;f=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});
-f.setToggleAction(!0);f.setSelectedCallback(function(){return d.scrollbars});f=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){b.pickColor(d.background||"none",function(a){b.setBackgroundColor(a)})}));f=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;
-b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionArrowsEnabled});f=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});f=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());
-b.fireEvent(new mxEventObject("copyConnectChanged"))});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});f.isEnabled=e;f=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.editor.autosave});f.isEnabled=e;f.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);window.open(RESOURCES_PATH+
-"/help"+a+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){b.showDialog((new AboutDialog(b)).container,320,280,!0,!0)},null,null,"F1"));f=mxUtils.bind(this,function(a,b,c,e){return this.addAction(a,function(){null!=c&&d.cellEditor.isContentEditing()?c():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,b))},null,null,e)});f("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");f("italic",mxConstants.FONT_ITALIC,
-function(){document.execCommand("italic",!1,null)},"Ctrl+I");f("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
-this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,
-null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,
-mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",
-function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged",
-"keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),c=d.view.getState(a[0]),e=null!=c?c.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,
-null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
-this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),c="1";null!=a&&null!=d.getFoldingImage(a)&&(c="0");d.setCellStyles("collapsible",c);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[c],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",
-function(b){null!=b&&d.setCellStyle(mxUtils.trim(b),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=
-c.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var e=d.view.translate,f=d.view.scale,n=e.x,e=e.y,a=d.getModel().getParent(a),q=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=q;)n+=q.x,e+=q.y,a=d.getModel().getParent(a),q=d.getCellGeometry(a);n=Math.round(d.snap(d.popupMenuHandler.triggerX/f-n));f=Math.round(d.snap(d.popupMenuHandler.triggerY/f-e));b.addPointAt(b.state,n,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=
-a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var e=d.getCellGeometry(c);null!=e&&(e=e.clone(),e.points=null,d.getModel().setGeometry(c,e))}}}finally{d.getModel().endUpdate()}}});f=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),
-null,null,"Ctrl+,");f=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),e="";null!=c&&(e=c.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,
-b,c){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,b,c);else{var e=d.getSelectionCells();if(null!=a){var g=null;d.getModel().beginUpdate();try{if(0==e.length)var k=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,b,c,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,a,e);var l=d.view.getState(e[0]),u=null!=l?l.style:d.getCellStyle(e[0]);"image"!=u[mxConstants.STYLE_SHAPE]&&
-"label"!=u[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e);if(1==d.getSelectionCount()&&null!=b&&null!=c){var y=e[0],z=d.getModel().getGeometry(y);null!=z&&(z=z.clone(),z.width=b,z.height=c,d.getModel().setGeometry(y,z))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=e;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
-(d.clearSelection(),b.actions.get("image").funct())}).isEnabled=e;f=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):
-this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));f=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));f=this.addAction("outline",mxUtils.bind(this,
-function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());b.fireEvent(new mxEventObject("outline"))}),
-null,null,"Ctrl+Shift+O");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,c,d,e){var f;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),f=mxResources.get(a)+"..."):f=mxResources.get(a);return this.put(a,new Action(f,b,c,d,e))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
-function Action(a,b,c,d,e){mxEventSource.call(this);this.label=a;this.funct=b;this.enabled=null!=c?c:!0;this.iconCls=d;this.shortcut=e;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
+"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=d.getSelectionCell()||
+d.getModel().getRoot();null!=a&&(a=new EditDataDialog(b,a),b.showDialog(a.container,320,320,!0,!1),a.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d="";if(mxUtils.isNode(c.value)){var e=c.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(b,mxResources.get("editTooltip")+":",d,function(b){a.setTooltipForCell(c,b)});b.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",
+function(){var a=d.getLinkForCell(d.getSelectionCell());null!=a&&window.open(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d=a.getLinkForCell(c)||"";b.showLinkDialog(d,mxResources.get("apply"),function(b){b=mxUtils.trim(b);a.setLinkForCell(c,0<b.length?b:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=new LinkDialog(b,"",mxResources.get("insert"),
+function(a,b){a=mxUtils.trim(a);if(0<a.length){var c=a.substring(a.lastIndexOf("/")+1),e=null;null!=b&&0<b.length&&(e=b[0].iconUrl,c=b[0].name||b[0].type,c=c.charAt(0).toUpperCase()+c.substring(1),30<c.length&&(c=c.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),c=new mxCell(c,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=e?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+e:"spacing\x3d10;"));
+c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.setSelectionCell(d.addCell(c));d.scrollCellToVisible(d.getSelectionCell())}});b.showDialog(a.container,420,90,!0,!0);a.init()}}).isEnabled=e;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var c=a.getParentByName(a.getSelectedElement(),"A",a.cellEditor.textarea),d="";null!=c&&(d=c.getAttribute("href")||"");var e=a.cellEditor.saveSelection();b.showLinkDialog(d,
+mxResources.get("apply"),mxUtils.bind(this,function(b){a.cellEditor.restoreSelection(e);if(null!=b)if(0==b.length)document.execCommand("unlink",!1);else{for(var c=a.cellEditor.textarea.getElementsByTagName("a"),d=[],f=0;f<c.length;f++)d.push(c[f]);document.execCommand("createlink",!1,mxUtils.trim(b));b=a.cellEditor.textarea.getElementsByTagName("a");if(b.length==d.length+1)for(f=b.length-1;0<=f;f--)if(0==f||b[f]!=d[f-1]){b[f].setAttribute("target","_blank");break}}}))}else a.isSelectionEmpty()?this.get("insertLink").funct():
+this.get("editLink").funct()})).isEnabled=e;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var e=d.view.getState(c),f=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=e&&null!=e.text&&null!=f&&d.isWrapping(c)?(f=f.clone(),f.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,f)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},
+null,null,"Ctrl+Shift+Y");this.addAction("formattedText",function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var c="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==a.style.html)c=null,"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&d.cellLabelChanged(a.cell,d.convertValueToString(a.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(a.cell,
+d.sanitizeHtml(e))}d.setCellStyles("html",c);b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=c?c:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",c=d.getView().getState(d.getSelectionCell());
+null!=c&&(a=c.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,300,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",
+function(a){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=a.y*d.view.scale,d.container.scrollLeft=
+Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,(d.container.scrollHeight-d.container.clientHeight)/
+2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",
+new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),
+mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var f=null,f=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.isGridEnabled()});f.setEnabled(!1);f=this.addAction("guides",function(){d.graphHandler.guidesEnabled=
+!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});f.setEnabled(!1);f=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});f=this.addAction("collapseExpand",function(){b.setFoldingEnabled(!d.foldingEnabled)});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.foldingEnabled});
+f.isEnabled=e;f=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.scrollbars});f=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){b.pickColor(d.background||"none",function(a){b.setBackgroundColor(a)})}));
+f=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionArrowsEnabled});f=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});
+f=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});f.isEnabled=e;f=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.editor.autosave});f.isEnabled=e;f.visible=!1;this.addAction("help",function(){var a=
+"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);window.open(RESOURCES_PATH+"/help"+a+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){b.showDialog((new AboutDialog(b)).container,320,280,!0,!0)},null,null,"F1"));f=mxUtils.bind(this,function(a,b,c,e){return this.addAction(a,function(){null!=c&&d.cellEditor.isContentEditing()?c():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,b))},null,null,e)});f("bold",
+mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");f("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},"Ctrl+I");f("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",
+function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});
+this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
+null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],
+"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,
+"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),c=d.view.getState(a[0]),e=null!=c?c.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?
+"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",
+[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),c="1";null!=a&&null!=d.getFoldingImage(a)&&(c="0");d.setCellStyles("collapsible",c);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[c],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getSelectionCells();
+if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(b){null!=b&&d.setCellStyle(mxUtils.trim(b),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&
+b.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=c.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var e=d.view.translate,f=d.view.scale,m=e.x,e=e.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=p;)m+=p.x,e+=p.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);m=Math.round(d.snap(d.popupMenuHandler.triggerX/f-m));f=Math.round(d.snap(d.popupMenuHandler.triggerY/
+f-e));b.addPointAt(b.state,m,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var e=d.getCellGeometry(c);null!=e&&(e=e.clone(),e.points=null,d.getModel().setGeometry(c,e))}}}finally{d.getModel().endUpdate()}}});f=this.addAction("subscript",
+mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,"Ctrl+,");f=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),e="";null!=c&&
+(e=c.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,b,c){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,b,c);else{var e=d.getSelectionCells();if(null!=a){var g=null;d.getModel().beginUpdate();try{if(0==e.length)var k=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,b,c,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,
+a,e);var l=d.view.getState(e[0]),u=null!=l?l.style:d.getCellStyle(e[0]);"image"!=u[mxConstants.STYLE_SHAPE]&&"label"!=u[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e);if(1==d.getSelectionCount()&&null!=b&&null!=c){var z=e[0],y=d.getModel().getGeometry(z);null!=y&&(y=y.clone(),y.width=b,y.height=c,d.getModel().setGeometry(z,y))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=
+e;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),b.actions.get("image").funct())}).isEnabled=e;f=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),
+this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));f=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,
+function(){return 0<b.formatWidth}));f=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());
+b.fireEvent(new mxEventObject("outline"))}),null,null,"Ctrl+Shift+O");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,c,d,e){var f;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),f=mxResources.get(a)+"..."):f=mxResources.get(a);return this.put(a,new Action(f,b,c,d,e))};Actions.prototype.put=function(a,b){return this.actions[a]=b};
+Actions.prototype.get=function(a){return this.actions[a]};function Action(a,b,c,d,e){mxEventSource.call(this);this.label=a;this.funct=b;this.enabled=null!=c?c:!0;this.iconCls=d;this.shortcut=e;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.data=b||""};mxUtils.extend(DrawioFile,mxEventSource);DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.modified=!1;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=18E5;DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};
DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,b,c,d){this.updateFileData();this.clearAutosave()};DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData())};DrawioFile.prototype.saveAs=function(a,b,c){};DrawioFile.prototype.saveFile=function(a,b,c,d){};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};
DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,b,c){};DrawioFile.prototype.isMovable=function(){return!1};DrawioFile.prototype.move=function(a,b,c){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};
@@ -2568,134 +2568,188 @@ mxUtils.bind(this,function(a){null!=d&&d(a)}))}else null!=c&&c(null)}),a)};Drawi
DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var c=a.lastIndexOf("."),d=0<c?a.substring(c):"",c=b.lastIndexOf(".");return d===(0<c?b.substring(c):"")}return a==b};
DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,b,c){DrawioFile.call(this,a,b);this.title=c};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return App.MODE_DEVICE};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,c){this.saveAs(this.title,b,c)};LocalFile.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};
LocalFile.prototype.saveFile=function(a,b,c,d){this.title=a;this.updateFileData();var e=this.getData();this.ui.isOfflineApp()||this.ui.isLocalFileSave()?this.ui.doSaveLocalFile(e,a,"text/xml"):e.length<MAX_REQUEST_SIZE?(b=a.lastIndexOf("."),b=0<b?a.substring(b+1):"xml",(new mxXmlRequest(SAVE_URL,"format\x3d"+b+"\x26filename\x3d"+encodeURIComponent(a)+"\x26xml\x3d"+encodeURIComponent(e))).simulate(document,"_blank")):this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
-mxUtils.bind(this,function(){mxUtils.popup(e)}));this.setModified(!1);this.contentChanged();null!=c&&c()};LocalFile.prototype.rename=function(a,b,c){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
-null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";
-Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
-MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};
-var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
-IMAGE_PATH+"/delete.png";Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?
-d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in","blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2","offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),g=null;0==f.length?(g=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(g,a.firstChild):a.appendChild(g)):g=f[0];g.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var a=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=
-function(){a.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
-this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+
-encodeURIComponent(a.getFileData(!0))}});Editor.prototype.appName="draw.io";EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;
-d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight="10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),
-mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));
-this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,
-4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),
-a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&("\x3c"!=c.charAt(0)&&"%"!=c.charAt(0))&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};
-null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=
-c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("\x26lt;mxfile ");if(0<=d){var e=a.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(c=a.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(a),g=this.editor.extractGraphModel(f.documentElement),
-c=null!=g?mxUtils.getXml(g):""}catch(k){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;
-b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=
-a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.setFileData=
-function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",
-[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};
-var c=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(a){a=null!=a&&"mxlibrary"!=a.nodeName?this.extractGraphModel(a):null;if(null!=a){var b=a.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==a.nodeName){b=a.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==b||""==b)){if(d=null!=this.graph.themes?this.graph.themes["default-old"]:
-mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}}else b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==a.getAttribute("math");b=a.getAttribute("backgroundImage");
-null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==a.getAttribute("shadow"),!1)}c.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,
-arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return b};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=
-null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;e.apply(this,arguments)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=
-38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");
-b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display=
-"none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=
-function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
-EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);
-return a};EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,
-0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));
-return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";
-f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),
-null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);
-var k=document.createElement("input");k.style.marginTop="16px";k.style.marginRight="8px";k.setAttribute("type","checkbox");e.isSelectionEmpty()&&k.setAttribute("disabled","disabled");f.appendChild(k);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var l=document.createElement("input");l.style.marginTop="16px";l.style.marginRight="8px";l.setAttribute("type","checkbox");f.appendChild(l);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(l.setAttribute("checked",
-"checked"),l.defaultChecked=!0);var m=document.createElement("input");m.style.marginTop="16px";m.style.marginRight="8px";m.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&m.setAttribute("disabled","disabled");a&&(f.appendChild(m),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight="8px";n.setAttribute("type","checkbox");n.style.marginBottom="8px";n.setAttribute("checked","checked");
-n.defaultChecked=!0;f.appendChild(n);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,!k.checked,l.checked,n.checked,m.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";
-var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),k=document.createElement("td"),l=document.createElement("input");l.setAttribute("type","text");mxUtils.write(k,"Username:");g.appendChild(k);k=k.cloneNode(!1);k.appendChild(l);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),m=document.createElement("input");m.setAttribute("type","password");mxUtils.write(k,"Password:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(m);
-g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),n=document.createElement("input");n.setAttribute("type","text");mxUtils.write(k,"Organisation:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(n);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),q=document.createElement("input");q.setAttribute("type","text");mxUtils.write(k,"Repository:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(q);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),A=
-document.createElement("input");A.setAttribute("type","text");mxUtils.write(k,"Path:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(A);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var F=a.lastIndexOf(".");0<F&&(a=a.substring(0,F));A.value=a+".png";var H=document.createElement("input");H.setAttribute("type","text");mxUtils.write(k,"Branch/Tag:");H.value="master";g=g.cloneNode(!1);g.appendChild(k);
-k=k.cloneNode(!1);k.appendChild(H);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),I=document.createElement("input");I.setAttribute("type","text");mxUtils.write(k,"Message:");I.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(I);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+n.value+"/"+
-q.value+"/contents/"+A.value+"?ref\x3d"+encodeURIComponent(H.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:A.value,message:I.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+n.value+"/"+q.value+"/blob/"+H.value+"/"+A.value;var b=
-new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(l.value+
-":"+m.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),k=f;0<g&&(k=f=k.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:k+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),l=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var m=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");m.send(mxUtils.bind(this,function(){200==m.getStatus()?k():l(m)}),mxUtils.bind(this,function(){l(m)}))}else k()}catch(p){this.handleError(p)}else l(a)}),mxUtils.bind(this,function(a){l(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,k){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var l=this.editor.graph.isSelectionEmpty();f=null!=f?f:l;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=k?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),k,b)}catch(l){this.handleError(l)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(m){this.handleError(m)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var k=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));k.send(mxUtils.bind(this,function(){200==k.getStatus()?a(c,k.getText(),e,b):this.handleError(k)}))}catch(l){this.handleError(l)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,k,l,m,n,q){f=null!=f?f:!0;q=null!=q?q:this.editor.graph;var A=l?null:q.background;A==mxConstants.NONE&&(A=null);null==A&&(A=d);null==A&&!1==l&&(A="#ffffff");this.convertImages(q.getSvg(A,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height"));k=null!=
-k?k:1;null!=b&&(k=!f?b/g:Math.min(1,Math.min(3*b/(4*l),b/g)));e.setAttribute("width",Math.ceil(k*g));e.setAttribute("height",Math.ceil(k*l));g=e.getContext("2d");g.scale(k,k);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{m&&this.editor.addSvgShadow(c),this.convertMath(q,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,n)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();
-var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var k=a.getElementsByTagName(c),l=0;l<k.length;l++)mxUtils.bind(this,
-function(c){var k=d.convert(c.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var l=f[k];null==l?(e++,this.convertImageToDataUri(k,function(d){null!=d&&(f[k]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,l)}})(k[l])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=
-document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var k=mxUtils.parseXml(a),l=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var m=l.getElementsByTagName("diagram");if(1==m.length)l=
-mxUtils.parseXml(g.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){g.model.beginUpdate();try{for(var n=0;n<m.length;n++){var q=this.updatePageRoot(new DiagramPage(m[n])),A=this.pages.length;null==q.getName()&&q.setName(mxResources.get("pageWithNumber",[A+1]));g.model.execute(new ChangePage(this,q,q,A))}}finally{g.model.endUpdate()}}}if(null!=l&&"mxGraphModel"===l.nodeName){var F=new mxGraphModel;(new mxCodec(l.ownerDocument)).decode(l,F);var H=F.getChildCount(F.getRoot());
-g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(n=0;n<H;n++){var I=F.getChildAt(F.getRoot(),n);if(1==H&&!g.isCellLocked(g.getDefaultParent()))var M=F.getChildren(I),f=f.concat(g.importCells(M,b,c,g.getDefaultParent(),null,a));else I=g.importCells([I],0,0,g.model.getRoot(),null,a)[0],M=g.model.getChildren(I),g.moveCells(M,b,c),f=f.concat(M)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var L=g.getBoundingBoxFromGeometry(f,!0);null!=L&&g.moveCells(f,b-L.x,c-L.y)}}finally{g.model.endUpdate()}}}}catch(R){throw e||
-this.handleError(R,mxResources.get("invalidOrMissingFile")),R;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&
-(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var k=this.extractGraphModelFromPng(a),l=this.importXml(k,b,c,f,!0);if(0<l.length)return l}if("data:image/svg+xml;"==a.substring(0,19))try{if(k=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(k=a.substring(a.indexOf(",")+1),k=window.atob&&!mxClient.IS_SF?atob(k):Base64.decode(k,!0)):k=decodeURIComponent(a.substring(a.indexOf(",")+1)),l=this.importXml(k,
-b,c,f,!0),0<l.length)return l}catch(m){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),
-f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",
-[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
+mxUtils.bind(this,function(){mxUtils.popup(e)}));this.setModified(!1);this.contentChanged();null!=c&&c()};LocalFile.prototype.rename=function(a,b,c){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
+IMAGE_PATH+"/delete.png";Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],d=c.getElementsByTagName("div");
+null!=d&&0<d.length&&(c=d[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==b.nodeName){c=b.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==c||""==c)){if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}}else c!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+
+"/"+c+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,c.width,c.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==b.getAttribute("shadow"),
+!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",
+this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return c};var c=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;c.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,
+arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath",
+"output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):
+Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,
+e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in",
+"blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2",
+"offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),g=null;0==f.length?(g=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(g,a.firstChild):a.appendChild(g)):
+g=f[0];g.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};if(window.ColorDialog){var e=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var f=ColorDialog.resetRecentColors;
+ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+encodeURIComponent(a.getFileData(!0))}});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
+this.update)};var k=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?k.apply(this,arguments):this.clear()};var l=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=l.apply(this,arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},
+{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var n=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));n.apply(this,arguments)};var m=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=
+function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+
+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return m.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),g=0;g<f.length;g++)e=mxUtils.removeStylename(e,f[g]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,
+a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&
+(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(e),
+c(a[g])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace="normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",
+null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",
+stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
+a.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,g.length);b(g[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
+a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,g.length);b(g[this.editorUi.currentScheme])}));c(k);c(l);b(g[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),
+c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),b.setAttribute("title",mxResources.get("editShape")),
+b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName=
+"default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.edgeMode="move"!=urlParams.edge;var p=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}p.apply(this,arguments);var b=null;mxEvent.addListener(this.container,
+"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&
+"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var q=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=
+function(){q.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,
+c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=
+[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=
+[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=
+[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=
+[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=
+[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=
+[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var s=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,g,k,l,n){if(null!=c&&null==mxMarker.markers[c]){var m=this.getPackageForType(c);null!=m&&mxStencilRegistry.getStencil(m)}return s.apply(this,arguments)}})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
+EditorUi.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
+EditorUi.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";EditorUi.prototype.mode=null;(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();
+EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};
+EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
+EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=
+new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight=
+"10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,
+b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<
+16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);
+break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&("\x3c"!=c.charAt(0)&&"%"!=c.charAt(0))&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&
+(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=
+function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("\x26lt;mxfile ");if(0<=d){var e=b.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(c=b.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,
+'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),g=this.editor.extractGraphModel(f.documentElement),c=null!=g?mxUtils.getXml(g):""}catch(s){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
+null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));
+b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,
+c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,f,g,r,t){b=null!=b?b:this.editor.graph;e=null!=e?e:!1;t=null!=t?t:!0;var v=null,u=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?v="_blank":u=v=d;if(null==a)return"";var z=a;if("mxfile"!=z.nodeName.toLowerCase()){var y=b.zapGremlins(mxUtils.getXml(a)),z=b.compress(y);if(b.decompress(z)!=y)return y;y=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(y,z);z=a.ownerDocument.createElement("mxfile");
+z.appendChild(y)}z.setAttribute("userAgent",navigator.userAgent);z.setAttribute("version",EditorUi.VERSION);z.setAttribute("editor","www.draw.io");a=null!=c?c.getMode():this.mode;null!=a&&z.setAttribute("type",a);a=mxUtils.getXml(z);if(!f&&!e&&(g||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(z),b,null!=c?c.getTitle():null,v,u);else if(f||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle())){if(null!=c&&(c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER))d=null;a=this.getEmbeddedSvg(a,
+b,d,null,r,t,u)}return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var e=0;e<this.pages.length;e++){var f=this.pages[e].mapping;this.currentPage!=this.pages[e]&&(null!=
+f&&f.needsUpdate)&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel),f.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[e].node,d),f.needsUpdate=!1);c.appendChild(this.pages[e].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,f,g){e=null!=e?e:!0;g=null!=g?g:this.getXmlFileData(e,null!=f?f:!1);f=this.editor.graph;var r=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=
+this.pages[0]&&(b||!a&&null!=r&&/(\.svg)$/i.test(r.getTitle()))){f=this.createTemporaryGraph(f.getStylesheet());var t=f.getGlobalVariable,v=this.pages[0];f.getGlobalVariable=function(a){return"page"==a?v.getName():"pagenumber"==a?1:t.apply(this,arguments)};document.body.appendChild(f.container);f.model.setRoot(v.root)}a=this.createFileData(g,f,r,window.location.href,a,b,c,d,e);f!=this.editor.graph&&f.container.parentNode.removeChild(f.container);return a};EditorUi.prototype.getHtml=function(a,b,c,
+d,e,f){f=null!=f?f:!0;var g=null,r="https://www.draw.io/js/embed-static.min.js";if(null!=b){var g=f?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),t=b.view.scale;f=Math.floor(g.x/t-b.view.translate.x);t=Math.floor(g.y/t-b.view.translate.y);g=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(r="https://www.draw.io/embed.js?s\x3d"+b));a.setAttribute("x0",f);a.setAttribute("y0",t)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),
+a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':
+"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+"\x3c/head\x3e\n\x3cbody"+(null==e&&null!=g&&g!=mxConstants.NONE?' style\x3d"background-color:'+g+';"\x3e':"\x3e")+'\n\x3cdiv class\x3d"mxgraph" style\x3d"position:relative;overflow:auto;width:100%;"\x3e\n\x3cdiv style\x3d"width:1px;height:1px;overflow:hidden;"\x3e'+
+d+"\x3c/div\x3e\n\x3c/div\x3e\n"+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+r+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){d="https://www.draw.io/js/viewer.min.js";var f="";null!=b&&null==e&&(f=this.getBasenames().join(";"),
+0<f.length&&(d="https://www.draw.io/embed2.js?s\x3d"+f));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+
+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+'\x3cmeta charset\x3d"utf-8"/\x3e\n\x3c/head\x3e\n\x3cbody\x3e\n\x3cdiv class\x3d"mxgraph" style\x3d"max-width:100%;border:1px solid transparent;" data-mxgraph\x3d"'+mxUtils.htmlEntities(JSON.stringify(a))+
+'"\x3e\x3c/div\x3e\n'+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+d+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?
+mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.downloadFile=function(a,b,c,d,e){try{var f=this.getCurrentFile();d=null!=d?d:this.editor.graph.isSelectionEmpty();
+var g=null!=f&&null!=f.getTitle()?f.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(g)||/(\.html)$/i.test(g)||/(\.svg)$/i.test(g))g=g.substring(0,g.lastIndexOf("."));var r=g+"."+a;if("xml"==a){var t='\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(r,a,t,"text/xml")}else if("html"==a)t=this.getHtml2(this.getFileData(!0),this.editor.graph,g),this.saveData(r,a,t,"text/html");else if(("svg"==
+a||"xmlsvg"==a)&&this.spinner.spin(document.body,mxResources.get("export"))){var v=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(r,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(v)}))});if("svg"==a){var z=this.editor.graph.background;z==mxConstants.NONE&&(z=null);var y=this.editor.graph.getSvg(z,null,null,!1,null,d);c&&this.editor.addSvgShadow(y);this.convertImages(y,
+mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a))})))}else r=g+".svg",v=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),d)}else{var x=this.editor.graph.getGraphBounds(),t=this.getFileData(!0,null,null,null,d,"xmlpng"!=a),E="";if(x.width*x.height<=MAX_AREA&&t.length<=
+MAX_REQUEST_SIZE){var C="0";if("xmlpng"==a&&(C="1",a="png",r=g+"."+a,null!=this.pages&&null!=this.currentPage))for(b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){E="\x26from\x3d"+b;break}this.saveRequest(t,r,a,function(b,c){return new mxXmlRequest(EXPORT_URL,"format\x3d"+a+E+"\x26base64\x3d"+c+"\x26embedXml\x3d"+C+"\x26xml\x3d"+encodeURIComponent(t)+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):""))})}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}}catch(F){this.handleError(F)}};
+EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display=
+"none";this.sidebarFooterContainer.style.display="none";this.editor.graph.setEnabled(!1);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{if(this.setCurrentFile(a),a.addListener("descriptorChanged",
+this.descriptorChangedListener),a.addListener("contentChanged",this.descriptorChangedListener),this.setMode(a.getMode()),this.descriptorChanged(),a.open(),this.diagramContainer.style.visibility="",this.formatContainer.style.visibility="",this.hsplit.style.display="",this.sidebarContainer.style.display="",this.sidebarFooterContainer.style.display="",this.editor.undoManager.clear(),this.updateUi(),null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus(mxResources.get("readOnly"))),
+this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries()),this.chromelessResize&&this.chromelessResize(),this.editor.fireEvent(new mxEventObject("fileLoaded")),this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE)try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(d){}}catch(e){null!=window.console&&console.log("error in fileLoaded:",a,e),this.handleError(e,mxResources.get("errorLoadingFile"),
+mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?this.fileLoaded(b):c()}))}else c()};EditorUi.prototype.toggleScratchpad=function(){if(isLocalStorage||mxClient.IS_CHROMEAPP)null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad)};
+EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];
+if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName)b=JSON.parse(mxUtils.getTextContent(b.documentElement)),this.libraryLoaded(a,
+b);else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.libraryLoaded=function(a,b){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var d=null,e=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==d&&(d=document.createElement("div"),mxUtils.setPrefixedStyle(d.style,"borderRadius",
+"6px"),d.style.border="3px dotted lightGray",d.style.textAlign="center",d.style.padding="8px",d.style.color="#B3B3B3",mxUtils.write(d,mxResources.get("dragElementsHere"))),c.appendChild(d);else for(var e=0;e<b.length;e++){var f=b[e],g=f.data;if(null!=g){var g=this.convertDataUri(g),l="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;",l="fixed"==f.aspect?l+"aspect\x3dfixed;":l+"imageAspect\x3d0;";c.appendChild(this.sidebar.createVertexTemplate(l+"image\x3d"+g,f.w,f.h,"",f.title||
+"",!1,!1,!1))}else null!=f.xml&&(g=this.stringToCells(this.editor.graph.decompress(f.xml)),0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,f.w,f.h,f.title||"",!0,!1,!1)))}}),f=this.sidebar.addPalette(a.getHash(),a.getTitle(),!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var c=f.parentNode.previousSibling,g=c.getAttribute("title");null!=g&&(0<g.length&&".scratchpad"!=a.title)&&c.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+g);var r=document.createElement("div");
+r.style.position="absolute";r.style.right="0px";r.style.top="5px";c.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Dialog.prototype.closeImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("align","top");t.setAttribute("border","0");t.style.cursor="pointer";t.style.marginRight="8px";t.style.marginTop="3px";r.appendChild(t);var v=null;mxEvent.addListener(t,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,
+function(){this.closeLibrary(a)});null!=v?this.confirm(mxResources.get("allChangesLost"),c):c();mxEvent.consume(b)}}));mxEvent.addListener(f,"mousemove",mxUtils.bind(this,function(a){mxEvent.getSource(a)==f?f.setAttribute("title",mxResources.get("libraryTooltip")):f.removeAttribute("title")}));if(a.isEditable()){var u=this.editor.graph,z=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),f,b,a,a.getMode());mxEvent.consume(c)}),y=mxUtils.bind(this,function(c){a.constructor!=LocalLibrary||
+a.isAutosave()?(null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C),C=t.cloneNode(!1),C.setAttribute("src",EditorUi.spinImage),C.setAttribute("title",mxResources.get("saving")),C.style.cursor="default",C.style.marginRight="6px",C.style.marginTop="2px",r.insertBefore(C,r.firstChild),this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C)})):null==v&&(v=t.cloneNode(!1),v.setAttribute("src",IMAGE_PATH+"/download.png"),v.setAttribute("title",
+mxResources.get("save")),r.insertBefore(v,r.firstChild),mxEvent.addListener(v,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0);v.parentNode.removeChild(v);v=null;mxEvent.consume(c)})))}),x=mxUtils.bind(this,function(a,c,e,g){a=u.cloneCells(u.model.getTopmostCells(a));for(var k=0;k<a.length;k++){var n=u.getCellGeometry(a[k]);null!=n&&n.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,g||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
+w:c.width,h:c.height};null!=g&&(a.title=g);b.push(a);y(e);null!=d&&(null!=d.parentNode&&0<b.length)&&(d.parentNode.removeChild(d),d=null)}),E=mxUtils.bind(this,function(a){if(u.isSelectionEmpty())u.getRubberband().isActive()?(u.getRubberband().execute(a),u.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=u.getSelectionCells(),c=u.view.getBounds(b),d=u.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=u.view.translate.x;
+c.y-=u.view.translate.y;x(b,c)}mxEvent.consume(a)});f.style.border="3px solid transparent";mxEvent.addGestureListeners(f,function(){},mxUtils.bind(this,function(a){u.isMouseDown&&(null!=u.panningManager&&null!=u.graphHandler.shape)&&(u.graphHandler.shape.node.style.visibility="hidden",null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)",f.style.cursor="copy",u.panningManager.stop(),u.autoScroll=!1,null!=u.graphHandler.guide&&u.graphHandler.guide.setVisible(!1),
+null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){u.isMouseDown&&(null!=u.panningManager&&null!=u.graphHandler)&&(f.style.border="3px solid transparent",null!=d&&(d.style.border="3px dotted lightGray"),f.style.cursor="default",this.sidebar.showTooltips=!0,u.panningManager.stop(),u.graphHandler.reset(),u.isMouseDown=!1,u.autoScroll=!0,E(a),mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){u.isMouseDown&&
+null!=u.graphHandler.shape&&(u.graphHandler.shape.node.style.visibility="visible",f.style.border="3px solid transparent",f.style.cursor="",u.autoScroll=!0,null!=u.graphHandler.guide&&u.graphHandler.guide.setVisible(!0),null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="visible"),null!=d&&(d.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(f,"dragover",mxUtils.bind(this,function(a){null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)";
+a.dataTransfer.dropEffect="copy";f.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"drop",mxUtils.bind(this,function(a){f.style.border="3px solid transparent";f.style.cursor="";null!=d&&(d.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,g,k,n,s,r,t){if(null!=c&&"image/"==g.substring(0,6)){var u="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+
+this.convertDataUri(c),u=[new mxCell("",new mxGeometry(0,0,s,r),u)];u[0].vertex=!0;x(u,new mxRectangle(0,0,s,r),a,mxEvent.isAltDown(a)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," "))}else{t=!1;if(null!=c&&"text/xml"==g)if(c=mxUtils.parseXml(c),"mxlibrary"==c.documentElement.nodeName)try{var v=JSON.parse(mxUtils.getTextContent(c.documentElement));e(v,f);b=b.concat(v);y(a);this.spinner.stop();t=!0}catch(z){}else if("mxfile"==c.documentElement.nodeName)try{v=mxUtils.getTextContent(c.documentElement.getElementsByTagName("diagram")[0]),
+u=this.stringToCells(this.editor.graph.decompress(v)),x(u,new mxRectangle(0,0,s,r),a),t=!0}catch(A){}t||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}))}null!=d&&(null!=d.parentNode&&0<b.length)&&(d.parentNode.removeChild(d),d=null)}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){null!=d?d.style.border="3px dotted lightGray":(f.style.border="3px solid transparent",f.style.cursor="");a.stopPropagation();a.preventDefault()}));
+t=t.cloneNode(!1);t.setAttribute("src",IMAGE_PATH+"/edit.gif");t.setAttribute("title",mxResources.get("edit"));r.insertBefore(t,r.firstChild);mxEvent.addListener(t,"click",z);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&z(a)});t=t.cloneNode(!1);t.setAttribute("src",EditorUi.plusImage);t.setAttribute("title",mxResources.get("add"));r.insertBefore(t,r.firstChild);this.isOffline()||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText=
+"color:gray;text-decoration:none;margin-right:8px;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(a){window.open("https://support.draw.io/questions/10420280");mxEvent.consume(a)})),r.insertBefore(g,r.firstChild));var C=null;mxEvent.addListener(t,"click",E)}c.appendChild(r)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
+Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?
+5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,
+function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});
+var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow=
+"hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=this.spinner.pause(),e=null!=a&&null!=a.error?a.error:a;if(null!=e||
+null!=b){a=mxResources.get("unknownError");var f=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=e)if("undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxResources.get("forbidden");else if(404==e.code||404==e.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxResources.get("fileNotFoundOrDenied");
+var r=window.location.hash;null!=r&&"#G"==r.substring(0,2)&&(r=r.substring(2),a+=' \x3ca href\x3d"https://drive.google.com/open?id\x3d'+r+'" target\x3d"_blank"\x3e'+mxResources.get("tryOpeningViaThisPage")+"\x3c/a\x3e")}else e.code==App.ERROR_TIMEOUT?(a=mxResources.get("timeout"),null!=e.retry&&(f=mxResources.get("cancel"),g=function(){d();e.retry()})):e.code==App.ERROR_BUSY?a=mxResources.get("busy"):null!=e.message?a=e.message:null!=e.response&&null!=e.response.error&&(a=e.response.error);this.showError(b,
+a,f,c,g)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c){var d=null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},
+function(){d();null!=c&&c()})).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=
+function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,
+d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));
+mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");
+f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);var r=document.createElement("input");r.style.marginTop="16px";r.style.marginRight="8px";r.setAttribute("type","checkbox");e.isSelectionEmpty()&&r.setAttribute("disabled",
+"disabled");f.appendChild(r);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.setAttribute("type","checkbox");f.appendChild(t);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(t.setAttribute("checked","checked"),t.defaultChecked=!0);var v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");(this.isOffline()||
+!this.canvasSupported)&&v.setAttribute("disabled","disabled");a&&(f.appendChild(v),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");u.style.marginBottom="8px";u.setAttribute("checked","checked");u.defaultChecked=!0;f.appendChild(u);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,
+!r.checked,t.checked,u.checked,v.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),r=document.createElement("td"),t=document.createElement("input");t.setAttribute("type",
+"text");mxUtils.write(r,"Username:");g.appendChild(r);r=r.cloneNode(!1);r.appendChild(t);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","password");mxUtils.write(r,"Password:");g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(v);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","text");mxUtils.write(r,"Organisation:");g=g.cloneNode(!1);g.appendChild(r);r=
+r.cloneNode(!1);r.appendChild(u);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(r,"Repository:");g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(z);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),y=document.createElement("input");y.setAttribute("type","text");mxUtils.write(r,"Path:");g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(y);g.appendChild(r);f.appendChild(g);
+r=r.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var x=a.lastIndexOf(".");0<x&&(a=a.substring(0,x));y.value=a+".png";var E=document.createElement("input");E.setAttribute("type","text");mxUtils.write(r,"Branch/Tag:");E.value="master";g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(E);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),C=document.createElement("input");C.setAttribute("type","text");mxUtils.write(r,"Message:");
+C.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(C);g.appendChild(r);f.appendChild(g);r=r.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+u.value+"/"+z.value+"/contents/"+y.value+"?ref\x3d"+encodeURIComponent(E.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());
+var e={path:y.value,message:C.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+u.value+"/"+z.value+"/blob/"+E.value+"/"+y.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,
+function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(t.value+":"+v.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();
+this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,
+function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),q=f;0<g&&(q=f=q.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:q+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),v=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});
+g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,
+a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=
+new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():v(l)}),mxUtils.bind(this,function(){v(l)}))}else k()}catch(p){this.handleError(p)}else v(a)}),mxUtils.bind(this,function(a){v(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,
+mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,r){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=r?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),r,b)}catch(m){this.handleError(m)}}),
+null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(v){this.handleError(v)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var r=new mxXmlRequest(EXPORT_URL,
+"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));r.send(mxUtils.bind(this,function(){200==r.getStatus()?a(c,r.getText(),e,b):this.handleError(r)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+
+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",
+encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};
+EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,r,t,v,u,z){f=null!=f?f:!0;z=null!=z?z:this.editor.graph;var y=t?null:z.background;y==mxConstants.NONE&&(y=null);null==y&&(y=d);null==y&&!1==t&&(y="#ffffff");this.convertImages(z.getSvg(y,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));r=null!=r?r:1;null!=b&&(r=!f?
+b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));e.setAttribute("width",Math.ceil(r*g));e.setAttribute("height",Math.ceil(r*m));g=e.getContext("2d");g.scale(r,r);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{v&&this.editor.addSvgShadow(c),this.convertMath(z,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,u)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=
+function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),v=0;v<n.length;v++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));
+if(null!=n&&"data:"!=n.substring(0,5)){var s=f[n];null==s?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,s)}})(n[v])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),
+d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var r=mxUtils.parseXml(a),t=this.editor.extractGraphModel(r.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var v=t.getElementsByTagName("diagram");if(1==v.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(v[0]))).documentElement;
+else if(1<v.length){g.model.beginUpdate();try{for(var u=0;u<v.length;u++){var z=this.updatePageRoot(new DiagramPage(v[u])),y=this.pages.length;null==z.getName()&&z.setName(mxResources.get("pageWithNumber",[y+1]));g.model.execute(new ChangePage(this,z,z,y))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var x=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,x);var E=x.getChildCount(x.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};
+for(u=0;u<E;u++){var C=x.getChildAt(x.getRoot(),u);if(1==E&&!g.isCellLocked(g.getDefaultParent()))var F=x.getChildren(C),f=f.concat(g.importCells(F,b,c,g.getDefaultParent(),null,a));else C=g.importCells([C],0,0,g.model.getRoot(),null,a)[0],F=g.model.getChildren(C),g.moveCells(F,b,c),f=f.concat(F)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var D=g.getBoundingBoxFromGeometry(f,!0);null!=D&&g.moveCells(f,b-D.x,c-D.y)}}finally{g.model.endUpdate()}}}}catch(G){throw e||this.handleError(G,mxResources.get("invalidOrMissingFile")),
+G;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=
+this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var r=this.extractGraphModelFromPng(a),t=this.importXml(r,b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(r=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(r=a.substring(a.indexOf(",")+1),r=window.atob&&!mxClient.IS_SF?atob(r):Base64.decode(r,!0)):r=decodeURIComponent(a.substring(a.indexOf(",")+1)),t=this.importXml(r,b,c,f,!0),0<t.length)return t}catch(v){}this.loadImage(a,mxUtils.bind(this,
+function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));
+if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
g.setLinkForCell(e,e.value),e.geometry.width+=g.gridSize,e.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
-function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,k,l,m){m=null!=m?m:!0;var n=!1,q=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(q=this.importXml(b,c,d,m),g=!0)),g||(q=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),m&&
-q.isGridEnabled()&&(c=q.snap(c),d=q.snap(d)),q=[q.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(n=!0,this.parseFile(null!=l?l:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,m));null!=
-k&&k(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(l):q=this.insertTextAt(this.validateFileData(a),c,d,!0);!n&&null!=k&&k(q);return q};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,r,t,v){v=null!=v?v:!0;var u=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,v),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),v&&
+z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(u=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,v));null!=
+r&&r(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(t):z=this.insertTextAt(this.validateFileData(a),c,d,!0);!u&&null!=r&&r(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
-6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,k,l,m,n){var q=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;m=null!=m?m:this.maxImageBytes;l=null!=l?l:!0;var A=this.editor.graph,F=A.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
-this.importFile(a,b,c,d,e,f,g,k,l,q)});f=null!=f?f:mxUtils.bind(this,function(a){A.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var H=a.length,I=H,M=[],L=mxUtils.bind(this,function(a,b){M[a]=b;if(0==--I){this.spinner.stop();if(null!=k)k(M);else{var c=[];A.getModel().beginUpdate();try{for(var d=0;d<M.length;d++){var e=M[d]();null!=e&&(c=c.concat(e))}}finally{A.getModel().endUpdate()}}f(c)}}),R=0;R<H;R++)mxUtils.bind(this,function(f){var k=a[f],q=new FileReader;
-q.onload=mxUtils.bind(this,function(a){if(null==g||g(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var p=a.target.result,q=p.indexOf(","),u=atob(p.substring(q+1)),z=mxUtils.parseXml(u),u=z.getElementsByTagName("svg");if(0<u.length){var A=u[0].getAttribute("content");null!=A&&("\x3c"!=A.charAt(0)&&"%"!=A.charAt(0))&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null!=A&&("\x3cmxfile "===A.substring(0,8)||"\x3cmxGraphModel "===
-A.substring(0,14))?L(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*F,c+f*F,0,0,k.name)})):L(f,mxUtils.bind(this,function(){try{if(p.substring(0,q+1),null!=z){var a=z.getElementsByTagName("svg");if(0<a.length){var g=a[0],l=parseFloat(g.getAttribute("width")),m=parseFloat(g.getAttribute("height")),n=g.getAttribute("viewBox");if(null==n||0==n.length)g.setAttribute("viewBox","0 0 "+l+" "+m);else if(isNaN(l)||isNaN(m)){var u=n.split(" ");3<u.length&&(l=parseFloat(u[2]),m=parseFloat(u[3]))}p=
-this.createSvgDataUri(mxUtils.getXml(a[0]));var y=Math.min(1,Math.min(d/Math.max(1,l)),d/Math.max(1,m));return e(p,k.type,b+f*F,c+f*F,Math.max(1,Math.round(l*y)),Math.max(1,Math.round(m*y)),k.name)}}}catch(x){}return null}))}}else{u=!1;if("image/png"==k.type){var B=this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var E=new Image;E.src=a.target.result;L(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*F,c+f*F,E.width,E.height,k.name)}));u=!0}}u||(null!=window.chrome&&
-null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,p,n){L(f,mxUtils.bind(this,function(){if(null!=g&&g.length<m){var q=!l||!this.isResampleImage(a.target.result)?
-1:Math.min(1,Math.min(d/p,d/n));return e(g,k.type,b+f*F,c+f*F,Math.round(p*q),Math.round(n*q),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),l,d,n)})))}else e(a.target.result,k.type,b+f*F,c+f*F,240,160,k.name,function(a){L(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(k.name)?e(null,k.type,b+f*F,c+f*F,240,160,k.name,function(a){L(f,function(){return a})},k):"image"==k.type.substring(0,5)?q.readAsDataURL(k):q.readAsText(k)})(R)};EditorUi.prototype.parseFile=
-function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var l=Math.max(g/e,k/e);if(1<l){var m=
-Math.round(g/l),n=Math.round(k/l),q=document.createElement("canvas");q.width=m;q.height=n;q.getContext("2d").drawImage(a,0,0,m,n);var A=q.toDataURL();if(A.length<b.length){var F=document.createElement("canvas");F.width=m;F.height=n;var H=F.toDataURL();A!==H&&(b=A,g=m,k=n)}}}catch(I){}c(b,g,k)};(function(){EditorUi.prototype.crcTable=[];for(var a=0;256>a;a++)for(var b=a,c=0;8>c;c++)b=1==(b&1)?3988292384^b>>>1:b>>>1,EditorUi.prototype.crcTable[a]=b;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=
-0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a}})();EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=k;k+=b;return a.substring(c,k)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=
-e&&e();else{f(a,17);e=a.substring(0,k);do{var l=g(a);if("IDAT"==f(a,4)){e=a.substring(0,k-8);l=4294967295;l=this.updateCRC(l,b,0,4);l=this.updateCRC(l,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((l^4294967295)>>24&255,(l^4294967295)>>16&255,(l^4294967295)>>
-8&255,(l^4294967295)&255);e+=a.substring(k-8,a.length);break}e+=a.substring(k-8,k-4+l);d=f(a,l);f(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,
-e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var f=EditorUi.prototype.init;
-EditorUi.prototype.init=function(){f.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,r,t,v,u){var z=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;v=null!=v?v:this.maxImageBytes;t=null!=t?t:!0;var y=this.editor.graph,x=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,z)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var E=a.length,C=E,F=[],D=mxUtils.bind(this,function(a,b){F[a]=b;if(0==--C){this.spinner.stop();if(null!=r)r(F);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<F.length;d++){var e=F[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<E;G++)mxUtils.bind(this,function(f){var q=a[f],r=new FileReader;
+r.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,r=k.indexOf(","),y=atob(k.substring(r+1)),z=mxUtils.parseXml(y),y=z.getElementsByTagName("svg");if(0<y.length){var A=y[0].getAttribute("content");null!=A&&("\x3c"!=A.charAt(0)&&"%"!=A.charAt(0))&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null!=A&&("\x3cmxfile "===A.substring(0,8)||"\x3cmxGraphModel "===
+A.substring(0,14))?D(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*x,c+f*x,0,0,q.name)})):D(f,mxUtils.bind(this,function(){try{if(k.substring(0,r+1),null!=z){var a=z.getElementsByTagName("svg");if(0<a.length){var g=a[0],s=parseFloat(g.getAttribute("width")),t=parseFloat(g.getAttribute("height")),u=g.getAttribute("viewBox");if(null==u||0==u.length)g.setAttribute("viewBox","0 0 "+s+" "+t);else if(isNaN(s)||isNaN(t)){var v=u.split(" ");3<v.length&&(s=parseFloat(v[2]),t=parseFloat(v[3]))}k=
+this.createSvgDataUri(mxUtils.getXml(a[0]));var y=Math.min(1,Math.min(d/Math.max(1,s)),d/Math.max(1,t));return e(k,q.type,b+f*x,c+f*x,Math.max(1,Math.round(s*y)),Math.max(1,Math.round(t*y)),q.name)}}}catch(A){}return null}))}}else{y=!1;if("image/png"==q.type){var C=this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var E=new Image;E.src=a.target.result;D(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*x,c+f*x,E.width,E.height,q.name)}));y=!0}}y||(null!=window.chrome&&
+null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,r){D(f,mxUtils.bind(this,function(){if(null!=g&&g.length<v){var s=!t||!this.isResampleImage(a.target.result)?
+1:Math.min(1,Math.min(d/k,d/r));return e(g,q.type,b+f*x,c+f*x,Math.round(k*s),Math.round(r*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),t,d,u)})))}else e(a.target.result,q.type,b+f*x,c+f*x,240,160,q.name,function(a){D(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*x,c+f*x,240,160,q.name,function(a){D(f,function(){return a})},q):"image"==q.type.substring(0,5)?r.readAsDataURL(q):r.readAsText(q)})(G)};EditorUi.prototype.parseFile=
+function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),r=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var t=Math.max(g/e,r/e);if(1<t){var v=
+Math.round(g/t),u=Math.round(r/t),z=document.createElement("canvas");z.width=v;z.height=u;z.getContext("2d").drawImage(a,0,0,v,u);var y=z.toDataURL();if(y.length<b.length){var x=document.createElement("canvas");x.width=v;x.height=u;var E=x.toDataURL();y!==E&&(b=y,g=v,r=u)}}}catch(C){}c(b,g,r)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var c=b,d=0;8>d;d++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[b]=c;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=
+EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=r;r+=b;return a.substring(c,r)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var r=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,
+17);e=a.substring(0,r);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,r-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>16&255,(t^4294967295)>>8&255,(t^
+4294967295)&255);e+=a.substring(r-8,a.length);break}e+=a.substring(r-8,r-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&
+(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var e=EditorUi.prototype.init;
+EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,
!0,"insertEllipse",!0);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a)&&!b.isEditing())try{for(var c=a.clipboardData||a.originalEvent.clipboardData,b=!1,d=0;d<c.types.length;d++)if("text/"===c.types[d].substring(0,5)){b=!0;break}if(!b){var e=c.items;for(index in e){var f=e[index];if("file"===f.kind){var g=this.editor.graph.getInsertPoint();this.importFiles([f.getAsFile()],g.x,g.y,this.maxImageSize);mxEvent.consume(a);
-break}}}}catch(k){}}),!1);var e=document.createElement("div");e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.display="block";e.contentEditable=!0;mxUtils.setOpacity(e,0);e.style.width="1px";e.style.height="1px";e.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);
-if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)e.style.left=a.container.scrollLeft+10+"px",e.style.top=a.container.scrollTop+10+"px",a.container.appendChild(e),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){e.focus();document.execCommand("selectAll",!1,null)},0):(e.focus(),document.execCommand("selectAll",!1,null))}));var k=
-function(){window.setTimeout(function(){e.innerHTML="\x26nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&(null==this.dialog&&null!=a.container)&&a.container.focus(),e.parentNode.removeChild(e)}),0)}));mxEvent.addListener(e,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(e),
-k())}));mxEvent.addListener(e,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(e,!0),k())}));mxEvent.addListener(e,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(e.innerHTML="\x26nbsp;",e.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,e);e.innerHTML="\x26nbsp;"}),0))}),!0);var l=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==e?!0:l.apply(this,arguments)}}d=Math.max(document.body.clientHeight||
+break}}}}catch(k){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);
+if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var s=
+function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&(null==this.dialog&&null!=a.container)&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),
+s())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),s())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var r=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:r.apply(this,arguments)}}d=Math.max(document.body.clientHeight||
0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||
10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",
!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");null!=d&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width=
"98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),d.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);
-this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var m=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:m.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var n=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=n&&(n.parentNode.removeChild(n),n=null),b.stopPropagation(),
-b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==n&&(!mxClient.IS_IE||10<document.documentMode))n=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=n&&(n.parentNode.removeChild(n),n=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
-e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
-b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,l=e.getElementsByTagName("img");null!=l&&1==l.length?(c=l[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
-b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+k+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
+this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var v=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=v&&(v.parentNode.removeChild(v),v=null),b.stopPropagation(),
+b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==v&&(!mxClient.IS_IE||10<document.documentMode))v=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=v&&(v.parentNode.removeChild(v),v=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
+e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
+b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
+b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",
-!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var k=b.getElementsByTagName("span"),l=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(d);this.isCompatibleString(l)&&(e=!0,d=l)}catch(m){}c.lastPasteXml==d?c.pasteCounter++:
-(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(n){}}}};
-var g=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=Format.prototype.init;Format.prototype.init=function(){b.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var c=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?c.apply(this,arguments):this.clear()};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=d.apply(this,
-arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var e=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=
-function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));e.apply(this,arguments)};var f=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom=
-"2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return f.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=
-mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),g=0;g<f.length;g++)e=mxUtils.removeStylename(e,f[g]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,
-"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+
-a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(e),c(a[g])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace=
-"normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",
-stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},
-{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
-a.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,g.length);b(g[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
-a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,g.length);b(g[this.editorUi.currentScheme])}));c(k);c(l);b(g[this.editorUi.currentScheme]);return a};return g.apply(this,arguments)};null!=window.StyleFormatPanel&&(StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),
-mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
-b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft=
-"2px"),a.appendChild(b));return a});EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],
-"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?
-c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&
-this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=
-function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=
-Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var r=b.getElementsByTagName("span"),t=null!=r&&0<r.length?mxUtils.trim(decodeURIComponent(r[0].textContent)):decodeURIComponent(d);this.isCompatibleString(t)&&(e=!0,d=t)}catch(v){}c.lastPasteXml==d?c.pasteCounter++:
+(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(u){}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
@@ -2706,47 +2760,37 @@ var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell
this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=!1,c=mxUtils.bind(this,function(a,b){null!=urlParams.modified&&("0"==urlParams.modified?this.editor.setStatus(""):
this.editor.setStatus(mxResources.get(urlParams.modified)))});this.editor.graph.model.addListener(mxEvent.CHANGE,c);mxEvent.addListener(window,"message",mxUtils.bind(this,function(c){var e=c.data;if("json"==urlParams.proto){e=JSON.parse(e);if("dialog"==e.action){this.showError(null!=e.titleKey?mxResources.get(e.titleKey):e.title,null!=e.messageKey?mxResources.get(e.messageKey):e.message,null!=e.buttonKey?mxResources.get(e.buttonKey):e.button);null!=e.modified&&(this.editor.modified=e.modified);return}if("template"==
e.action){this.spinner.stop();var f=new NewDialog(this,!1,!1,mxUtils.bind(this,function(b){a(b||"",c,null!=b)}));this.showDialog(f.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));f.init();return}if("status"==e.action){null!=e.messageKey?this.editor.setStatus(mxResources.get(e.messageKey)):null!=e.message&&this.editor.setStatus(e.message);null!=e.modified&&(this.editor.modified=e.modified);return}if("spinner"==e.action){var g=null!=e.messageKey?mxResources.get(e.messageKey):
-e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var k=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(k);b.data="data:image/png;base64,"+
-a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var m=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var m=this.createTemporaryGraph(m.getStylesheet()),n=m.getGlobalVariable,q=this.pages[0];m.getGlobalVariable=function(a){return"page"==a?q.getName():"pagenumber"==a?1:n.apply(this,arguments)};document.body.appendChild(m.container);m.model.setRoot(q.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
-"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(k))));m!=this.editor.graph&&m.container.parentNode.removeChild(m.container);l(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,m)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(k)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();200==a.getStatus()&&l(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)k=this.editor.getGraphXml(),g.data=this.getHtml(k,
-this.editor.graph),g.xml=mxUtils.getXml(k),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var n=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(n);b.data="data:image/png;base64,"+
+a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var u=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var u=this.createTemporaryGraph(u.getStylesheet()),z=u.getGlobalVariable,y=this.pages[0];u.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?1:z.apply(this,arguments)};document.body.appendChild(u.container);u.model.setRoot(y.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
+"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(n))));u!=this.editor.graph&&u.container.parentNode.removeChild(u.container);v(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,u)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(n)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();200==a.getStatus()&&v(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)n=this.editor.getGraphXml(),g.data=this.getHtml(n,
+this.editor.graph),g.xml=mxUtils.getXml(n),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
this.spinner.stop();g.data=this.createSvgDataUri(a);d.postMessage(JSON.stringify(g),"*")})):this.convertImages(this.editor.graph.getSvg(f),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();g.data=this.createSvgDataUri(mxUtils.getXml(a));d.postMessage(JSON.stringify(g),"*")}));return}f="xmlsvg"==e.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(f));g.data=this.createSvgDataUri(f)}d.postMessage(JSON.stringify(g),
"*")}return}"load"==e.action?(b=1==e.autosave,null!=e.modified&&null==urlParams.modified&&(urlParams.modified=e.modified),null!=e.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=e.saveAndExit),null!=e.title&&null!=this.buttonContainer&&(f=document.createElement("span"),mxUtils.write(f,e.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop=
-"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(s){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
+"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(x){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
(f=mxUtils.bind(this,function(a,b){var c="0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml()),d=this.createLoadMessage("autosave");d.xml=c;c=JSON.stringify(d);(window.opener||window.parent).postMessage(c,"*")}),this.editor.graph.model.addListener(mxEvent.CHANGE,f),this.addListener("pageFormatChanged",f),this.addListener("backgroundColorChanged",f),this.addListener("backgroundImageChanged",f),this.addListener("foldingEnabledChanged",
f),this.addListener("mathEnabledChanged",f),this.addListener("gridEnabledChanged",f),this.addListener("guidesEnabledChanged",f),this.addListener("pageViewChanged",f));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&d.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var d=window.opener||window.parent,c="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";d.postMessage(c,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=
document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,
"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};
-EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var k=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=k.apply(this,arguments),
+EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var f=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=f.apply(this,arguments),
c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),
-f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var f=b.init;b.init=function(){f.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
+f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,
-!0);b.outline.view.validate()});return b};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);
-this.actions.get("connectionPoints").setEnabled(c);this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==
-urlParams.embed||null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
-null!=a&&null!=a.shape&&null!=a.shape.stencil)};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.edgeMode="move"!=urlParams.edge;var m=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){m.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.setShadowVisible=
-function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked",
-"0"));null!=b&&1<c&&this.setDefaultParent(b)}};var n=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}n.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=
-function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=
-!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+
-"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];
-mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries.eeLogicGates=[STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeResistors=[STENCIL_PATH+"/electrical/resistors.xml"];mxStencilRegistry.libraries.eeCapacitors=[STENCIL_PATH+"/electrical/capacitors.xml"];mxStencilRegistry.libraries.eeInductors=[STENCIL_PATH+
-"/electrical/inductors.xml"];mxStencilRegistry.libraries.eeSwitchesRelays=[STENCIL_PATH+"/electrical/switchesRelays.xml",STENCIL_PATH+"/electrical/electro-mechanical.xml"];mxStencilRegistry.libraries.eeDiodes=[STENCIL_PATH+"/electrical/diodes.xml"];mxStencilRegistry.libraries.eeSources=[STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries.eeTransistors=[STENCIL_PATH+"/electrical/mosfets1.xml",STENCIL_PATH+"/electrical/mosfets2.xml",STENCIL_PATH+"/electrical/transistors.xml"];
-mxStencilRegistry.libraries.eeMisc=[STENCIL_PATH+"/electrical/electro-mechanical.xml",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries.eeAudio=[STENCIL_PATH+"/electrical/radio.xml"];mxStencilRegistry.libraries.eePlcLadder=[STENCIL_PATH+"/electrical/plc_ladder.xml"];mxStencilRegistry.libraries.eeAbstract=[STENCIL_PATH+"/electrical/abstract.xml",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeOptical=[STENCIL_PATH+"/electrical/opto_electronics.xml"];
-mxStencilRegistry.libraries.eeVacuumTubes=[STENCIL_PATH+"/electrical/vacuum_tubes.xml"];mxStencilRegistry.libraries.eeWaveforms=[STENCIL_PATH+"/electrical/waveforms.xml"];mxStencilRegistry.libraries.eeInstruments=[STENCIL_PATH+"/electrical/instruments.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];
-mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+
-"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
-[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",
-STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var q=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,g,k,l,m){if(null!=c&&null==mxMarker.markers[c]){var n=this.getPackageForType(c);
-null!=n&&mxStencilRegistry.getStencil(n)}return q.apply(this,arguments)}})();function DiagramPage(a){this.node=a}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,c){this.ui=a;this.page=b;this.previous=c}
+!0);b.outline.view.validate()});return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),b=null!=a||"1"==urlParams.embed;this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var c="1"!=urlParams.embed&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!c);this.actions.get("print").setEnabled(!c);this.menus.get("exportAs").setEnabled(!c);this.menus.get("embed").setEnabled(!c);
+a="1"==urlParams.embed||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&
+this.toolbar.edgeStyleMenu.setEnabled(a));if(this.isOfflineApp()){if((mxClient.IS_GC||mxClient.IS_IOS&&mxClient.IS_SF)&&null!=applicationCache){var d=applicationCache;if(null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin=
+"4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);var e=window.setTimeout(mxUtils.bind(this,function(){d.status==d.IDLE&&(this.offlineStatus.innerHTML='[\x3cimg title\x3d"Cached" border\x3d"0" src\x3d"'+IMAGE_PATH+'/checkmark.gif"/\x3e]',window.clearTimeout(e))}),5E3)}}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=
+function(){};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);this.actions.get("connectionPoints").setEnabled(c);
+this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==urlParams.embed||
+null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
+null!=a&&null!=a.shape&&null!=a.shape.stencil)}})();function DiagramPage(a){this.node=a}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,c){this.ui=a;this.page=b;this.previous=c}
RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};function MovePage(a,b,c){this.ui=a;this.oldIndex=b;this.newIndex=c}
MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};function SelectPage(a,b){this.ui=a;this.previousPage=this.page=b;this.neverShown=null==this.page.viewState;null!=b&&this.ui.updatePageRoot(b)}
-SelectPage.prototype.execute=function(){if(null!=this.page&&0<=mxUtils.indexOf(this.ui.pages,this.previousPage)){var a=this.ui.currentPage,b=this.ui.editor,c=b.graph,d=b.graph.compress(c.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=c.getViewState();a.root=c.model.root;c.view.clear(a.root,!0);c.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;c.model.rootChanged(a.root);c.setViewState(a.viewState);b.fireEvent(new mxEventObject("setViewState",
-"change",this));c.gridEnabled=c.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);b.updateGraphComponents();c.view.validate();c.sizeDidChange();this.neverShown&&(this.neverShown=!1,c.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,b,c,d){SelectPage.call(this,a,c);this.relatedPage=b;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
-ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
+SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,c=b.graph,d=b.graph.compress(c.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=c.getViewState();a.root=c.model.root;c.view.clear(a.root,!0);c.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;c.model.rootChanged(a.root);c.setViewState(a.viewState);
+b.fireEvent(new mxEventObject("setViewState","change",this));c.gridEnabled=c.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);b.updateGraphComponents();c.view.validate();c.sizeDidChange();this.neverShown&&(this.neverShown=!1,c.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,b,c,d){SelectPage.call(this,a,c);this.relatedPage=b;this.index=d;this.previousIndex=null}
+mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var c=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";c!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var c=!1,d=null,e=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=d&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),d=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?c||(1==MathJax.Hub.queue.pending&&!this.editor.graph.mathEnabled&&MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){c=!0}))):"undefined"!==typeof Editor.MathJaxClear&&
@@ -2801,20 +2845,20 @@ d.left,top:b.top-d.top,bottom:b.bottom-d.top,right:b.right-d.left};this.toolbar.
b.x)/this.graph.view.scale),Math.floor((this.graph.border-b.y)/this.graph.view.scale)),e=a.offsetWidth;a.style.minWidth=c});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(k,0):k();this.positionGraph=function(){b=this.graph.getGraphBounds();e=null;k()}};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=b+"px"};
GraphViewer.prototype.showLayers=function(a,b){var c=this.graphConfig.layers;if(null!=c||null!=b)if(c=null!=c?c.split(" "):null,null!=b||0<c.length){var d=null!=b?b.getModel():null,e=a.getModel();e.beginUpdate();try{for(var f=e.getChildCount(e.root),g=0;g<f;g++)e.setVisible(e.getChildAt(e.root,g),null!=b?d.isVisible(d.getChildAt(d.root,g)):!1);if(null==d)for(g=0;g<c.length;g++)e.setVisible(e.getChildAt(e.root,parseInt(c[g])),!0)}finally{e.endUpdate()}}};
GraphViewer.prototype.addToolbar=function(){function a(a,b,d,e){var f=document.createElement("div");f.style.borderRight="1px solid #d0d0d0";f.style.padding="3px 6px 3px 6px";mxEvent.addListener(f,"click",a);null!=d&&f.setAttribute("title",d);f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==e||e?(mxEvent.addListener(f,"mouseenter",function(){f.style.backgroundColor="#ddd"}),mxEvent.addListener(f,"mouseleave",
-function(){f.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);c.appendChild(f);n++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var c=b.ownerDocument.createElement("div");c.style.position="absolute";c.style.overflow="hidden";c.style.boxSizing="border-box";
+function(){f.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);c.appendChild(f);m++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var c=b.ownerDocument.createElement("div");c.style.position="absolute";c.style.overflow="hidden";c.style.boxSizing="border-box";
c.style.whiteSpace="nowrap";c.style.zIndex=this.toolbarZIndex;c.style.backgroundColor="#eee";c.style.height=this.toolbarHeight+"px";this.toolbar=c;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(c.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(c,30);var d=null,e=null,f=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=e&&(window.clearTimeout(e),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(c,
0);d=null;e=window.setTimeout(mxUtils.bind(this,function(){c.style.display="none";e=null}),100)}),a||200)}),g=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=e&&(window.clearTimeout(e),fadeThead2=null);c.style.display="";mxUtils.setOpacity(c,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(g(30),f())}));mxEvent.addListener(c,mxClient.IS_POINTER?"pointermove":
"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(c,"mouseenter",mxUtils.bind(this,function(a){g(100)}));mxEvent.addListener(c,"mousemove",mxUtils.bind(this,function(a){g(100);mxEvent.consume(a)}));mxEvent.addListener(c,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||g(30)}));var k=this.graph,l=k.getTolerance();k.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=
-k.container.scrollLeft;this.scrollTop=k.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-k.container.scrollLeft)<l&&Math.abs(this.scrollTop-k.container.scrollTop)<l&&(Math.abs(this.startX-b.getGraphX())<l&&Math.abs(this.startY-b.getGraphY())<l)&&(0<parseFloat(c.style.opacity||0)?f():g(30))}})}var m=this.toolbarItems,n=0,q=[];"mxfile"==this.xmlNode.nodeName&&(q=this.xmlNode.getElementsByTagName("diagram"));for(var p=null,
-r=null,s=0;s<m.length;s++){var t=m[s];if("pages"==t&&1<q.length)r=b.ownerDocument.createElement("div"),r.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",mxUtils.write(r,this.currentPage+1+" / "+q.length),mxUtils.setOpacity(r,70),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage-1,q.length);r.innerHTML="";mxUtils.write(r,this.currentPage+1+" / "+q.length);
-this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(q[this.currentPage]))).documentElement)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page"),t.style.borderRightStyle="none",t.style.paddingLeft="0px",t.style.paddingRight="0px",c.appendChild(r),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage+1,q.length);r.innerHTML="";mxUtils.write(r,this.currentPage+1+" / "+q.length);this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(q[this.currentPage]))).documentElement)}),
+k.container.scrollLeft;this.scrollTop=k.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-k.container.scrollLeft)<l&&Math.abs(this.scrollTop-k.container.scrollTop)<l&&(Math.abs(this.startX-b.getGraphX())<l&&Math.abs(this.startY-b.getGraphY())<l)&&(0<parseFloat(c.style.opacity||0)?f():g(30))}})}var n=this.toolbarItems,m=0,p=[];"mxfile"==this.xmlNode.nodeName&&(p=this.xmlNode.getElementsByTagName("diagram"));for(var q=null,
+s=null,r=0;r<n.length;r++){var t=n[r];if("pages"==t&&1<p.length)s=b.ownerDocument.createElement("div"),s.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",mxUtils.write(s,this.currentPage+1+" / "+p.length),mxUtils.setOpacity(s,70),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage-1,p.length);s.innerHTML="";mxUtils.write(s,this.currentPage+1+" / "+p.length);
+this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(p[this.currentPage]))).documentElement)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page"),t.style.borderRightStyle="none",t.style.paddingLeft="0px",t.style.paddingRight="0px",c.appendChild(s),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage+1,p.length);s.innerHTML="";mxUtils.write(s,this.currentPage+1+" / "+p.length);this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(p[this.currentPage]))).documentElement)}),
Editor.nextImage,mxResources.get("nextPage")||"Next Page"),t.style.paddingLeft="0px",t.style.paddingRight="0px";else if("zoom"==t)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,
-this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==t){if(this.layersEnabled){var v=this.graph.getModel(),u=a(mxUtils.bind(this,function(a){if(null!=p)p.parentNode.removeChild(p),p=null;else{p=this.graph.createLayersDialog();mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});a=u.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor=
-"#eee";p.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";p.style.fontSize="11px";mxUtils.setOpacity(p,80);var b=mxUtils.getDocumentScrollOrigin(document);p.style.left=b.x+a.left+"px";p.style.top=b.y+a.bottom+"px";document.body.appendChild(p)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){u.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});u.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==
-t?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(t=this.graphConfig["toolbar-buttons"][t],null!=t&&a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*n);null!=this.graphConfig.title&&(m=b.ownerDocument.createElement("div"),m.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",
-m.setAttribute("title",this.graphConfig.title),mxUtils.write(m,this.graphConfig.title),mxUtils.setOpacity(m,70),c.appendChild(m));this.minToolbarWidth=34*n;var y=b.style.border,m=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},a={left:a.left-d.left,top:a.top-d.top,bottom:a.bottom-d.top,right:a.right-d.left};c.style.left=a.left+"px";c.style.width=
-"inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";c.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?c.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(c.style.marginTop=-this.toolbarHeight+"px",c.style.top=a.top+1+"px"):c.style.top=a.top+"px";"1px solid transparent"==y&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(c);var e=mxUtils.bind(this,function(){!0!=this.graphConfig["toolbar-nohide"]&&
-(null!=c.parentNode&&c.parentNode.removeChild(c),null!=p&&(p.parentNode.removeChild(p),p=null),b.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==c||a==p)return;a=a.parentNode}e()});mxEvent.addListener(document,"mouseleave",function(a){e()})});mxEvent.addListener(b,"mouseenter",m)};
+this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==t){if(this.layersEnabled){var v=this.graph.getModel(),u=a(mxUtils.bind(this,function(a){if(null!=q)q.parentNode.removeChild(q),q=null;else{q=this.graph.createLayersDialog();mxEvent.addListener(q,"mouseleave",function(){q.parentNode.removeChild(q);q=null});a=u.getBoundingClientRect();q.style.width="140px";q.style.padding="2px 0px 2px 0px";q.style.border="1px solid #d0d0d0";q.style.backgroundColor=
+"#eee";q.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";q.style.fontSize="11px";mxUtils.setOpacity(q,80);var b=mxUtils.getDocumentScrollOrigin(document);q.style.left=b.x+a.left+"px";q.style.top=b.y+a.bottom+"px";document.body.appendChild(q)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){u.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});u.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==
+t?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(t=this.graphConfig["toolbar-buttons"][t],null!=t&&a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*m);null!=this.graphConfig.title&&(n=b.ownerDocument.createElement("div"),n.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",
+n.setAttribute("title",this.graphConfig.title),mxUtils.write(n,this.graphConfig.title),mxUtils.setOpacity(n,70),c.appendChild(n));this.minToolbarWidth=34*m;var z=b.style.border,n=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},a={left:a.left-d.left,top:a.top-d.top,bottom:a.bottom-d.top,right:a.right-d.left};c.style.left=a.left+"px";c.style.width=
+"inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";c.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?c.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(c.style.marginTop=-this.toolbarHeight+"px",c.style.top=a.top+1+"px"):c.style.top=a.top+"px";"1px solid transparent"==z&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(c);var e=mxUtils.bind(this,function(){!0!=this.graphConfig["toolbar-nohide"]&&
+(null!=c.parentNode&&c.parentNode.removeChild(c),null!=q&&(q.parentNode.removeChild(q),q=null),b.style.border=z)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==c||a==q)return;a=a.parentNode}e()});mxEvent.addListener(document,"mouseleave",function(a){e()})});mxEvent.addListener(b,"mouseenter",n)};
GraphViewer.prototype.addClickHandler=function(a,b){var c=a.isBlankLink,d=this.graphConfig;a.isBlankLink=function(a){return"self"!=d.target&&c.apply(this,arguments)};a.addClickHandler(this.graphConfig.highlight,function(a){null!=b&&b.destroy()},mxUtils.bind(this,function(a){null==b&&(this.lightboxClickEnabled&&(!mxEvent.isTouchEvent(a)||0==this.toolbarItems.length))&&this.showLightbox()}))};
GraphViewer.prototype.showLightbox=function(){if("open"==this.graphConfig.lightbox||window.self!==window.top){var a=this.layersEnabled?"\x26layers\x3d1":"";if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var b=null,c=mxUtils.bind(this,function(a){"ready"==a.data&&a.source==b&&(b.postMessage(this.xml,"*"),mxEvent.removeListener(window,"message",c))});mxEvent.addListener(window,"message",c);b=window.open("https://test.draw.io/?dev\x3d1\x26client\x3d1\x26chrome\x3d0\x26lightbox\x3d1\x26close\x3d1\x26edit\x3d_blank"+
a)}else window.drawdata=this.xml,window.open("https://test.draw.io/?dev\x3d1\x26client\x3d1\x26chrome\x3d0\x26lightbox\x3d1\x26edit\x3d_blank"+a)}else this.showLocalLightbox()};
@@ -2822,7 +2866,7 @@ GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScro
var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(c.style.position="absolute",c.style.right="32px",c.style.top=a.y+32+"px"):c.style.cssText="position:fixed;top:32px;right:32px;";c.style.cursor="pointer";mxEvent.addListener(c,"click",function(){d.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=!1!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode||
10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);Graph.prototype.shadowId="dropShadow";d.refresh=function(){};mxEvent.addListener(b,"click",function(){d.destroy()});d.editor.editBlankUrl=this.editBlankUrl;
d.editor.editBlankFallbackUrl=this.editBlankFallbackUrl;var e=d.editor.getEditBlankUrl;d.editor.getEditBlankUrl=function(a,b){var c="";null!=d.pages&&null!=d.currentPage&&(c="\x26page\x3d"+mxUtils.indexOf(d.pages,d.currentPage));return e.apply(this,arguments)+c};var f=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),g=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",f);document.body.removeChild(b);document.body.removeChild(c);document.body.style.overflow=
-"auto";GraphViewer.resizeSensorEnabled=!0;g.apply(this,arguments)};var k=d.editor.graph,l=k.container;l.style.overflow="hidden";this.lightboxChrome?(l.style.border="1px solid #c0c0c0",l.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",f)):(b.style.display="none",c.style.display="none");var m=this;k.getImageFromBundles=function(a){return m.getImageUrl(a)};this.graphConfig.move&&(k.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(l.style,
+"auto";GraphViewer.resizeSensorEnabled=!0;g.apply(this,arguments)};var k=d.editor.graph,l=k.container;l.style.overflow="hidden";this.lightboxChrome?(l.style.border="1px solid #c0c0c0",l.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",f)):(b.style.display="none",c.style.display="none");var n=this;k.getImageFromBundles=function(a){return n.getImageUrl(a)};this.graphConfig.move&&(k.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(l.style,
"border-radius","4px"),l.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow="hidden";mxClient.IS_SF||(mxUtils.setPrefixedStyle(l.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(l.style,"transition","all .25s ease-in-out"));this.addClickHandler(k,d);window.setTimeout(mxUtils.bind(this,function(){l.style.outline="none";l.style.zIndex=this.lightboxZIndex;c.style.zIndex=this.lightboxZIndex;document.body.appendChild(l);document.body.appendChild(c);console.log("xml",
this.xml);d.setFileData(this.xml);mxUtils.setPrefixedStyle(l.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom="60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(l.style.position="absolute",l.style.display="block",l.style.left=a.x+"px",l.style.top=a.y+"px",l.style.width=document.body.clientWidth-80+"px",l.style.height=document.body.clientHeight-
80+"px",l.style.backgroundColor="white",d.chromelessToolbar.style.display="block",d.chromelessToolbar.style.position="absolute",d.chromelessToolbar.style.bottom="",d.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");d.lightboxFit();d.chromelessResize();this.showLayers(k,this.graph)}),0);return d};
@@ -2833,6 +2877,6 @@ GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type=
GraphViewer.getUrl=function(a,b,c){var d=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=c;d.send()};GraphViewer.resizeSensorEnabled=!0;
(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(c,d){function e(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function f(b,c){if(b.resizedAttached){if(b.resizedAttached){b.resizedAttached.add(c);return}}else b.resizedAttached=new e,b.resizedAttached.add(c);b.resizeSensor=document.createElement("div");
b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='\x3cdiv class\x3d"resize-sensor-expand" style\x3d"position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"\x3e\x3cdiv style\x3d"position: absolute; left: 0; top: 0; transition: 0s;"\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"resize-sensor-shrink" style\x3d"position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"\x3e\x3cdiv style\x3d"position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"\x3e\x3c/div\x3e\x3c/div\x3e';
-b.appendChild(b.resizeSensor);if("static"==(b.currentStyle?b.currentStyle.position:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue("position"):b.style.position))b.style.position="relative";var d=b.resizeSensor.childNodes[0],f=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){f.style.width="100000px";f.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,m=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),
-l=!1),a(m))};a(m);var y,z,x,G,D=function(){if((x=b.offsetWidth)!=y||(G=b.offsetHeight)!=z)l=!0,y=x,z=G;k()},E=function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener(b,c)};E(d,"scroll",D);E(g,"scroll",D)}var g=function(){GraphViewer.resizeSensorEnabled&&d()},k=Object.prototype.toString.call(c),l="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&c instanceof jQuery||"undefined"!==typeof Elements&&c instanceof Elements;if(l)for(var k=
-0,m=c.length;k<m;k++)f(c[k],g);else f(c,g);this.detach=function(){if(l)for(var a=0,d=c.length;a<d;a++)b.detach(c[a]);else b.detach(c)}};b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})(); \ No newline at end of file
+b.appendChild(b.resizeSensor);if("static"==(b.currentStyle?b.currentStyle.position:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue("position"):b.style.position))b.style.position="relative";var d=b.resizeSensor.childNodes[0],f=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){f.style.width="100000px";f.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,n=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),
+l=!1),a(n))};a(n);var z,y,x,E,C=function(){if((x=b.offsetWidth)!=z||(E=b.offsetHeight)!=y)l=!0,z=x,y=E;k()},F=function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener(b,c)};F(d,"scroll",C);F(g,"scroll",C)}var g=function(){GraphViewer.resizeSensorEnabled&&d()},k=Object.prototype.toString.call(c),l="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&c instanceof jQuery||"undefined"!==typeof Elements&&c instanceof Elements;if(l)for(var k=
+0,n=c.length;k<n;k++)f(c[k],g);else f(c,g);this.detach=function(){if(l)for(var a=0,d=c.length;a<d;a++)b.detach(c[a]);else b.detach(c)}};b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})(); \ No newline at end of file
diff --git a/war/js/atlas.min.js b/war/js/atlas.min.js
index 1c3aa8f2..3578d16d 100644
--- a/war/js/atlas.min.js
+++ b/war/js/atlas.min.js
@@ -3,7 +3,7 @@
d[e])}return b}function g(b){this.opts=e(b||{},g.defaults,r)}function k(){function d(b,e){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',e)}p.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,e){function f(){return b(d("group",{coordsize:m+" "+m,coordorigin:-l+" "+-l}),{width:m,height:m})}function g(a,k,m){c(n,c(b(f(),{rotation:360/e.lines*a+"deg",left:~~k}),c(b(d("roundrect",{arcsize:e.corners}),{width:l,height:e.width,left:e.radius,
top:-e.width>>1,filter:m}),d("fill",{color:"string"==typeof e.color?e.color:e.color[a%e.color.length],opacity:e.opacity}),d("stroke",{opacity:0}))))}var k,l=e.length+e.width,m=2*l;k=2*-(e.width+e.length)+"px";var n=b(f(),{position:"absolute",top:k,left:k});if(e.shadow)for(k=1;k<=e.lines;k++)g(k,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(k=1;k<=e.lines;k++)g(k);return c(a,n)};g.prototype.opacity=function(b,a,d,e){b=b.firstChild;e=e.shadow&&
e.lines||0;b&&a+e<b.childNodes.length&&(b=b.childNodes[a+e],b=b&&b.firstChild,b=b&&b.firstChild,b&&(b.opacity=d))}}var l,m=["webkit","Moz","ms","O"],n={},p=function(){var b=a("style",{type:"text/css"});return c(document.getElementsByTagName("head")[0],b),b.sheet||b.styleSheet}(),r={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};e(g.prototype,
-{spin:function(d){this.stop();var e=this,c=e.opts,f=e.el=b(a(0,{className:c.className}),{position:c.position,width:0,zIndex:c.zIndex});c.radius+c.length+c.width;if(d&&(d.insertBefore(f,d.firstChild||null),b(f,{left:c.left,top:c.top})),f.setAttribute("role","progressbar"),e.lines(f,e.opts),!l){var g,k=0,m=(c.lines-1)*(1-c.direction)/2,n=c.fps,r=n/c.speed,s=(1-c.opacity)/(r*c.trail/100),p=r/c.lines;!function H(){k++;for(var b=0;b<c.lines;b++)g=Math.max(1-(k+(c.lines-b)*p)%r*s,c.opacity),e.opacity(f,
+{spin:function(d){this.stop();var e=this,c=e.opts,f=e.el=b(a(0,{className:c.className}),{position:c.position,width:0,zIndex:c.zIndex});c.radius+c.length+c.width;if(d&&(d.insertBefore(f,d.firstChild||null),b(f,{left:c.left,top:c.top})),f.setAttribute("role","progressbar"),e.lines(f,e.opts),!l){var g,k=0,m=(c.lines-1)*(1-c.direction)/2,n=c.fps,p=n/c.speed,r=(1-c.opacity)/(p*c.trail/100),s=p/c.lines;!function H(){k++;for(var b=0;b<c.lines;b++)g=Math.max(1-(k+(c.lines-b)*s)%p*r,c.opacity),e.opacity(f,
b*c.direction+m,g,c);e.timeout=e.el&&setTimeout(H,~~(1E3/n))}()}return e},stop:function(){var b=this.el;return b&&(clearTimeout(this.timeout),b.parentNode&&b.parentNode.removeChild(b),this.el=void 0),this},lines:function(d,e){function g(d,c){return b(a(),{position:"absolute",width:e.length+e.width+"px",height:e.width+"px",background:d,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/e.lines*m+e.rotate)+"deg) translate("+e.radius+"px,0)",borderRadius:(e.corners*e.width>>1)+"px"})}for(var k,
m=0,n=(e.lines-1)*(1-e.direction)/2;m<e.lines;m++)k=b(a(),{position:"absolute",top:1+~(e.width/2)+"px",transform:e.hwaccel?"translate3d(0,0,0)":"",opacity:e.opacity,animation:l&&f(e.opacity,e.trail,n+m*e.direction,e.lines)+" "+1/e.speed+"s linear infinite"}),e.shadow&&c(k,b(g("#000","0 0 4px #000"),{top:"2px"})),c(d,c(k,g("string"==typeof e.color?e.color:e.color[m%e.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(b,a,d){a<b.childNodes.length&&(b.childNodes[a].style.opacity=d)}});
var s=b(a("group"),{behavior:"url(#default#VML)"});return!d(s,"transform")&&s.adj?k():l=d(s,"animation"),g});
@@ -35,31 +35,31 @@ cssLitGroup:[b[36],b[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[b[0]
"rect()":{cssPropBits:5,cssLitGroup:[b[48],b[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[b[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius","rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius",
"scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay","translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},g;for(g in e)"string"===typeof e[g]&&Object.hasOwnProperty.call(e,g)&&(e[g]=e[e[g]]);"undefined"!==typeof window&&(window.cssSchema=e);var k,l;(function(){function b(a){var d=
parseInt(a.substring(1),16);return 65535<d?(d-=65536,String.fromCharCode(55296+(d>>10),56320+(d&1023))):d==d?String.fromCharCode(d):" ">a[1]?"":a[1]}function a(b,d){return'"'+b.replace(/[\u0000-\u001f\\\"<>]/g,d)+'"'}function d(b){return c[b]||(c[b]="\\"+b.charCodeAt(0).toString(16)+" ")}function e(b){return f[b]||(f[b]=("\u0010">b?"%0":"%")+b.charCodeAt(0).toString(16))}var c={"\\":"\\\\"},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"),n=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(a){return a.replace(m,b)};k=function(b){b=(""+b).replace(/\r\n?/g,"\n").match(g)||[];for(var c=0,f=" ",k=0,m=b.length;k<m;++k){var q=l(b[k]),r=q.length,s=q.charCodeAt(0),q=34==s||39==s?a(q.substring(1,r-1),d):47==s&&1<r||"\\"==q||"--\x3e"==q||"\x3c!--"==q||"\ufeff"==
-q||32>=s?" ":/url\(/i.test(q)?"url("+a(q.replace(n,""),e)+")":q;if(f!=q||" "!=q)b[c++]=f=q}b.length=c;return b}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var m=function(){function b(a){a=(""+a).match(n);return!a?f:new g(k(a[1]),k(a[2]),k(a[3]),k(a[4]),k(a[5]),k(a[6]),k(a[7]))}function a(b,e){return"string"==typeof b?encodeURI(b).replace(e,d):f}function d(b){b=b.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(b>>4&15)+"0123456789ABCDEF".charAt(b&15)}function e(b){if(b===
+"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"),n=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(a){return a.replace(m,b)};k=function(b){b=(""+b).replace(/\r\n?/g,"\n").match(g)||[];for(var c=0,f=" ",k=0,m=b.length;k<m;++k){var p=l(b[k]),q=p.length,r=p.charCodeAt(0),p=34==r||39==r?a(p.substring(1,q-1),d):47==r&&1<q||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
+p||32>=r?" ":/url\(/i.test(p)?"url("+a(p.replace(n,""),e)+")":p;if(f!=p||" "!=p)b[c++]=f=p}b.length=c;return b}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var m=function(){function b(a){a=(""+a).match(n);return!a?f:new g(k(a[1]),k(a[2]),k(a[3]),k(a[4]),k(a[5]),k(a[6]),k(a[7]))}function a(b,e){return"string"==typeof b?encodeURI(b).replace(e,d):f}function d(b){b=b.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(b>>4&15)+"0123456789ABCDEF".charAt(b&15)}function e(b){if(b===
f)return f;b=b.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/");for(var a=l,d;(d=b.replace(a,"$1"))!=b;b=d);return b}function c(b,a){var d=b.T(),f=a.K();f?d.ga(a.j):f=a.X();f?d.da(a.n):f=a.Y();f?d.ea(a.k):f=a.$();var g=a.g,k=e(g);if(f)d.ca(a.V()),k=k&&k.replace(m,"");else if(f=!!g){if(47!==k.charCodeAt(0))var k=e(d.g||"").replace(m,""),l=k.lastIndexOf("/")+1,k=e((l?k.substring(0,l):"")+e(g)).replace(m,"")}else k=k&&k.replace(m,""),k!==g&&d.G(k);f?d.G(k):f=a.aa();f?d.O(a.l):f=a.Z();f&&d.fa(a.o);
return d}function g(b,a,d,e,c,f,k){this.j=b;this.n=a;this.k=d;this.h=e;this.g=c;this.l=f;this.o=k}function k(b){return"string"==typeof b&&0<b.length?b:f}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),m=/^(?:\.\.\/)*(?:\.\.$)?/;g.prototype.toString=function(){var b=[];f!==this.j&&b.push(this.j,":");f!==this.k&&(b.push("//"),f!==this.n&&b.push(this.n,"@"),b.push(this.k),f!==this.h&&b.push(":",this.h.toString()));f!==this.g&&b.push(this.g);f!==this.l&&b.push("?",
this.l);f!==this.o&&b.push("#",this.o);return b.join("")};g.prototype.T=function(){return new g(this.j,this.n,this.k,this.h,this.g,this.l,this.o)};g.prototype.W=function(){return this.j&&decodeURIComponent(this.j).toLowerCase()};g.prototype.ga=function(b){this.j=b?b:f};g.prototype.K=function(){return f!==this.j};g.prototype.da=function(b){this.n=b?b:f};g.prototype.X=function(){return f!==this.n};g.prototype.ea=function(b){this.k=b?b:f;this.G(this.g)};g.prototype.Y=function(){return f!==this.k};g.prototype.V=
function(){return this.h&&decodeURIComponent(this.h)};g.prototype.ca=function(b){if(b){b=Number(b);if(b!==(b&65535))throw Error("Bad port number "+b);this.h=""+b}else this.h=f};g.prototype.$=function(){return f!==this.h};g.prototype.U=function(){return this.g&&decodeURIComponent(this.g)};g.prototype.G=function(b){b?(b=""+b,this.g=!this.k||/^\//.test(b)?b:"/"+b):this.g=f};g.prototype.O=function(b){this.l=b?b:f};g.prototype.aa=function(){return f!==this.l};g.prototype.ba=function(b){if("object"===typeof b&&
!(b instanceof Array)&&(b instanceof Object||"[object Array]"!==Object.prototype.toString.call(b))){var a=[],d=-1,e;for(e in b){var c=b[e];"string"===typeof c&&(a[++d]=e,a[++d]=c)}b=a}for(var a=[],d="",f=0;f<b.length;)e=b[f++],c=b[f++],a.push(d,encodeURIComponent(e.toString())),d="\x26",c&&a.push("\x3d",encodeURIComponent(c.toString()));this.l=a.join("")};g.prototype.fa=function(b){this.o=b?b:f};g.prototype.Z=function(){return f!==this.o};var n=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
-q=/[#\/\?@]/g,r=/[\#\?]/g;g.parse=b;g.create=function(b,e,c,k,l,m,n){b=new g(a(b,q),a(e,q),"string"==typeof c?encodeURIComponent(c):f,0<k?k.toString():f,a(l,r),f,"string"==typeof n?encodeURIComponent(n):f);m&&("string"===typeof m?b.O(m.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):b.ba(m));return b};g.N=c;g.ma=e;g.ha={ua:function(a){return/\.html$/.test(b(a).U())?"text/html":"application/javascript"},N:function(a,d){return a?c(b(a),b(d)).toString():""+d}};return g}();"undefined"!==typeof window&&(window.URI=
-m);var n=a,p=a,r=a,s=a;(function(){function b(a){return"string"===typeof a?'url("'+a.replace(E,g)+'")':'url("about:blank")'}function g(b){return A[b]}function k(b,a){return b?m.ha.N(b,a):a}function t(b,a,d){if(!d)return f;var e=(""+b).match(D);return e&&(!e[1]||G.test(e[1]))?d(b,a):f}function F(b){return b.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var E=/[\n\f\r\"\'()*<>]/g,A={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
-"\x3c":"%3c","\x3e":"%3e"},D=/^(?:([^:/?# ]+):)?/,G=/^(?:https?|mailto|data)$/i;n=function(){var a={};return function O(d,c,f,g,m){d=F(d);var n=e[d];if(!n||"object"!==typeof n)c.length=0;else{for(var q=n.cssPropBits,r=q&80,s=q&1536,p=NaN,v=0,H=0;v<c.length;++v){var z=c[v].toLowerCase(),D=z.charCodeAt(0),A,G,E,I,T,ia;if(32===D)z="";else if(34===D)z=16===r?f?b(t(k(g,l(c[v].substring(1,z.length-1))),d,f)):"":q&8&&!(r&r-1)?z:"";else if("inherit"!==z){if(T=n.cssLitGroup){var ea;if(!(ea=n.cssLitMap)){ea=
-{};for(var aa=T.length;0<=--aa;)for(var fa=T[aa],ja=fa.length;0<=--ja;)ea[fa[ja]]=a;ea=n.cssLitMap=ea}T=ea}else T=a;if(!(ia=T,ia[F(z)]===a))if(35===D&&/^#(?:[0-9a-f]{3}){1,2}$/.test(z))z=q&2?z:"";else if(48<=D&&57>=D)z=q&1?z:"";else if(A=z.charCodeAt(1),G=z.charCodeAt(2),E=48<=A&&57>=A,I=48<=G&&57>=G,43===D&&(E||46===A&&I))z=q&1?(E?"":"0")+z.substring(1):"";else if(45===D&&(E||46===A&&I))z=q&4?(E?"-":"-0")+z.substring(1):q&1?"0":"";else if(46===D&&E)z=q&1?"0"+z:"";else if('url("'===z.substring(0,
-5))z=f&&q&16?b(t(k(g,c[v].substring(5,z.length-2)),d,f)):"";else if("("===z.charAt(z.length-1))a:{T=c;ea=v;z=1;aa=ea+1;for(D=T.length;aa<D&&z;)fa=T[aa++],z+=")"===fa?-1:/^[^"']*\($/.test(fa);if(!z){z=T[ea].toLowerCase();D=F(z);T=T.splice(ea,aa-ea,"");ea=n.cssFns;aa=0;for(fa=ea.length;aa<fa;++aa)if(ea[aa].substring(0,D.length)==D){T[0]=T[T.length-1]="";O(ea[aa],T,f,g);z=z+T.join(" ")+")";break a}}z=""}else z=s&&/^-?[a-z_][\w\-]*$/.test(z)&&!/__$/.test(z)?m&&512===s?c[v]+m:1024===s&&e[z]&&"number"===
-typeof e[z].oa?z:"":/^\w+$/.test(z)&&64===r&&q&8?p+1===H?(c[p]=c[p].substring(0,c[p].length-1)+" "+z+'"',""):(p=H,'"'+z+'"'):""}z&&(c[H++]=z)}1===H&&'url("about:blank")'===c[0]&&(H=0);c.length=H}}}();var H=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
-I={};I["\x3e"]=I["+"]=I["~"]=I;p=function(b,a,e){function g(q,r){function s(e,f,g){var k,n,q,r,t,u=c;k="";if(e<f)if(t=b[e],"*"===t)++e,k=t;else if(/^[a-zA-Z]/.test(t)&&(n=m(t.toLowerCase(),[])))"tagName"in n&&(t=n.tagName),++e,k=t;for(r=q=n="";u&&e<f;++e)if(t=b[e],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?u=d:n+=t+l;else if("."===t)++e<f&&/^[0-9A-Za-z:_\-]+$/.test(t=b[e])&&!/^_|__$/.test(t)?n+="."+t:u=d;else if(e+1<f&&"["===b[e]){++e;var z=b[e++].toLowerCase();t=v.m[k+"::"+z];t!==+t&&(t=v.m["*::"+
-z]);var x;a.ia?(x=a.ia(k,z),"string"!==typeof x&&(u=d,x=z),u&&t!==+t&&(t=v.d.NONE)):(x=z,t!==+t&&(u=d));var y=z="",D=d;/^[~^$*|]?=$/.test(b[e])&&(z=b[e++],y=b[e++],/^[0-9A-Za-z:_\-]+$/.test(y)?y='"'+y+'"':"]"===y&&(y='""',--e),/^"([^\"\\]|\\.)*"$/.test(y)||(u=d),(D="i"===b[e])&&++e);"]"!==b[e]&&(++e,u=d);switch(t){case v.d.CLASSES:case v.d.LOCAL_NAME:case v.d.NONE:break;case v.d.GLOBAL_NAME:case v.d.ID:case v.d.IDREF:("\x3d"===z||"~\x3d"===z||"$\x3d"===z)&&'""'!=y&&!D?y='"'+y.substring(1,y.length-
-1)+l+'"':"|\x3d"===z||""===z||(u=d);break;case v.d.URI:case v.d.URI_FRAGMENT:""!==z&&(u=d);break;default:u=d}u&&(q+="["+x.replace(/[^\w-]/g,"\\$\x26")+z+y+(D?" i]":"]"))}else if(e<f&&":"===b[e])if(t=b[++e],H.test(t))r+=":"+t;else break;else break;e!==f&&(u=d);u&&(e=(k+n).replace(/[^ .*#\w-]/g,"\\$\x26")+q+r+g)&&p.push(e);return u}" "===b[q]&&++q;r-1!==q&&" "===b[r]&&--r;for(var p=[],t=q,u=c,z=q;u&&z<r;++z){var x=b[z];if(I[x]===I||" "===x)s(t,z,x)?t=z+1:u=d}s(t,r,"")||(u=d);return u?(p.length&&(t=
-p.join(""),k!==f&&(t="."+k+" "+t),n.push(t)),c):!e||e(b.slice(q,r))}var k=a.na,l=a.L,m=a.Aa,n=[],q=0,r,s=0,p;for(r=0;r<b.length;++r)if(p=b[r],"("==p||"["==p?(++s,c):")"==p||"]"==p?(s&&--s,c):!(" "==b[r]&&(s||I[b[r-1]]===I||I[b[r+1]]===I)))b[q++]=b[r];b.length=q;q=b.length;for(r=s=0;r<q;++r)if(","===b[r]){if(!g(s,r))return f;s=r+1}return!g(s,q)?f:n};(function(){var b=/^\w/,a=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
-"i");s=function(d){d=d.slice();for(var e=d.length,c=0,f=0;f<e;++f){var g=d[f];" "!=g&&(d[c++]=g)}d.length=c;d=d.join(" ");return!d.length?"":!a.test(d)?"not all":b.test(d)?d:"not all , "+d}})();(function(){function b(a){var d=/^\s*[']([^']*)[']\s*$/,e=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,c=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=d.exec(a))||(k=e.exec(a))||(k=c.exec(a))||(k=g.exec(a))?k[1]:f}function e(g,l,m,r,u,v,z){function H(){F=
-G.length&&G[G.length-1]===f}var D=a,A=z||[0],G=[],F=d;q(l,{startStylesheet:function(){D=[]},endStylesheet:function(){},startAtrule:function(a,d){if(F)a=f;else if("@media"===a)D.push("@media"," ",s(d));else if("@keyframes"===a||"@-webkit-keyframes"===a){var c=d[0];1===d.length&&!/__$|[^\w\-]/.test(c)?(D.push(a," ",c+m.L),a="@keyframes"):a=f}else if("@import"===a&&0<d.length)if(a=f,"function"===typeof v){var l=s(d.slice(1));if("not all"!==l){++A[0];var n=[];D.push(n);var q=t(k(g,b(d[0])),function(b){var a=
-e(q,b.qa,m,r,u,v,A);--A[0];b=l?{toString:function(){return"@media "+l+" {"+a.result+"}"}}:a.result;n[0]=b;v(b,!!A[0])},u)}}else window.console&&window.console.log("@import "+d.join(" ")+" elided");F=!a;G.push(a)},endAtrule:function(){G.pop();F||D.push(";");H()},startBlock:function(){F||D.push("{")},endBlock:function(){F||(D.push("}"),F=c)},startRuleset:function(b){if(!F){var d=a;"@keyframes"===G[G.length-1]?(d=b.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
-F=!d,d&&(d=d[0].replace(/ +/g,""))):(b=p(b,m),!b||!b.length?F=c:d=b.join(", "));F||D.push(d,"{")}G.push(f)},endRuleset:function(){G.pop();F||D.push("}");H()},declaration:function(b,a){if(!F){var e=d,f=a.length;2<=f&&"!"===a[f-2]&&"important"===a[f-1].toLowerCase()&&(e=c,a.length-=2);n(b,a,r,g,m.L);a.length&&D.push(b,":",a.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return D.join("")}},va:!!A[0]}}r=function(b,d,c,f){return e(b,d,c,f,a,a).result.toString()}})()})();"undefined"!==
+p=/[#\/\?@]/g,q=/[\#\?]/g;g.parse=b;g.create=function(b,e,c,k,l,m,n){b=new g(a(b,p),a(e,p),"string"==typeof c?encodeURIComponent(c):f,0<k?k.toString():f,a(l,q),f,"string"==typeof n?encodeURIComponent(n):f);m&&("string"===typeof m?b.O(m.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):b.ba(m));return b};g.N=c;g.ma=e;g.ha={ua:function(a){return/\.html$/.test(b(a).U())?"text/html":"application/javascript"},N:function(a,d){return a?c(b(a),b(d)).toString():""+d}};return g}();"undefined"!==typeof window&&(window.URI=
+m);var n=a,p=a,r=a,s=a;(function(){function b(a){return"string"===typeof a?'url("'+a.replace(C,g)+'")':'url("about:blank")'}function g(b){return A[b]}function k(b,a){return b?m.ha.N(b,a):a}function t(b,a,d){if(!d)return f;var e=(""+b).match(F);return e&&(!e[1]||G.test(e[1]))?d(b,a):f}function D(b){return b.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var C=/[\n\f\r\"\'()*<>]/g,A={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
+"\x3c":"%3c","\x3e":"%3e"},F=/^(?:([^:/?# ]+):)?/,G=/^(?:https?|mailto|data)$/i;n=function(){var a={};return function P(d,c,f,g,m){d=D(d);var n=e[d];if(!n||"object"!==typeof n)c.length=0;else{for(var p=n.cssPropBits,q=p&80,r=p&1536,s=NaN,v=0,H=0;v<c.length;++v){var y=c[v].toLowerCase(),F=y.charCodeAt(0),A,G,I,C,S,ia;if(32===F)y="";else if(34===F)y=16===q?f?b(t(k(g,l(c[v].substring(1,y.length-1))),d,f)):"":p&8&&!(q&q-1)?y:"";else if("inherit"!==y){if(S=n.cssLitGroup){var ea;if(!(ea=n.cssLitMap)){ea=
+{};for(var aa=S.length;0<=--aa;)for(var fa=S[aa],ja=fa.length;0<=--ja;)ea[fa[ja]]=a;ea=n.cssLitMap=ea}S=ea}else S=a;if(!(ia=S,ia[D(y)]===a))if(35===F&&/^#(?:[0-9a-f]{3}){1,2}$/.test(y))y=p&2?y:"";else if(48<=F&&57>=F)y=p&1?y:"";else if(A=y.charCodeAt(1),G=y.charCodeAt(2),I=48<=A&&57>=A,C=48<=G&&57>=G,43===F&&(I||46===A&&C))y=p&1?(I?"":"0")+y.substring(1):"";else if(45===F&&(I||46===A&&C))y=p&4?(I?"-":"-0")+y.substring(1):p&1?"0":"";else if(46===F&&I)y=p&1?"0"+y:"";else if('url("'===y.substring(0,
+5))y=f&&p&16?b(t(k(g,c[v].substring(5,y.length-2)),d,f)):"";else if("("===y.charAt(y.length-1))a:{S=c;ea=v;y=1;aa=ea+1;for(F=S.length;aa<F&&y;)fa=S[aa++],y+=")"===fa?-1:/^[^"']*\($/.test(fa);if(!y){y=S[ea].toLowerCase();F=D(y);S=S.splice(ea,aa-ea,"");ea=n.cssFns;aa=0;for(fa=ea.length;aa<fa;++aa)if(ea[aa].substring(0,F.length)==F){S[0]=S[S.length-1]="";P(ea[aa],S,f,g);y=y+S.join(" ")+")";break a}}y=""}else y=r&&/^-?[a-z_][\w\-]*$/.test(y)&&!/__$/.test(y)?m&&512===r?c[v]+m:1024===r&&e[y]&&"number"===
+typeof e[y].oa?y:"":/^\w+$/.test(y)&&64===q&&p&8?s+1===H?(c[s]=c[s].substring(0,c[s].length-1)+" "+y+'"',""):(s=H,'"'+y+'"'):""}y&&(c[H++]=y)}1===H&&'url("about:blank")'===c[0]&&(H=0);c.length=H}}}();var H=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
+I={};I["\x3e"]=I["+"]=I["~"]=I;p=function(b,a,e){function g(p,q){function r(e,f,g){var k,n,p,q,t,u=c;k="";if(e<f)if(t=b[e],"*"===t)++e,k=t;else if(/^[a-zA-Z]/.test(t)&&(n=m(t.toLowerCase(),[])))"tagName"in n&&(t=n.tagName),++e,k=t;for(q=p=n="";u&&e<f;++e)if(t=b[e],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?u=d:n+=t+l;else if("."===t)++e<f&&/^[0-9A-Za-z:_\-]+$/.test(t=b[e])&&!/^_|__$/.test(t)?n+="."+t:u=d;else if(e+1<f&&"["===b[e]){++e;var x=b[e++].toLowerCase();t=v.m[k+"::"+x];t!==+t&&(t=v.m["*::"+
+x]);var y;a.ia?(y=a.ia(k,x),"string"!==typeof y&&(u=d,y=x),u&&t!==+t&&(t=v.d.NONE)):(y=x,t!==+t&&(u=d));var F=x="",A=d;/^[~^$*|]?=$/.test(b[e])&&(x=b[e++],F=b[e++],/^[0-9A-Za-z:_\-]+$/.test(F)?F='"'+F+'"':"]"===F&&(F='""',--e),/^"([^\"\\]|\\.)*"$/.test(F)||(u=d),(A="i"===b[e])&&++e);"]"!==b[e]&&(++e,u=d);switch(t){case v.d.CLASSES:case v.d.LOCAL_NAME:case v.d.NONE:break;case v.d.GLOBAL_NAME:case v.d.ID:case v.d.IDREF:("\x3d"===x||"~\x3d"===x||"$\x3d"===x)&&'""'!=F&&!A?F='"'+F.substring(1,F.length-
+1)+l+'"':"|\x3d"===x||""===x||(u=d);break;case v.d.URI:case v.d.URI_FRAGMENT:""!==x&&(u=d);break;default:u=d}u&&(p+="["+y.replace(/[^\w-]/g,"\\$\x26")+x+F+(A?" i]":"]"))}else if(e<f&&":"===b[e])if(t=b[++e],H.test(t))q+=":"+t;else break;else break;e!==f&&(u=d);u&&(e=(k+n).replace(/[^ .*#\w-]/g,"\\$\x26")+p+q+g)&&s.push(e);return u}" "===b[p]&&++p;q-1!==p&&" "===b[q]&&--q;for(var s=[],t=p,u=c,x=p;u&&x<q;++x){var y=b[x];if(I[y]===I||" "===y)r(t,x,y)?t=x+1:u=d}r(t,q,"")||(u=d);return u?(s.length&&(t=
+s.join(""),k!==f&&(t="."+k+" "+t),n.push(t)),c):!e||e(b.slice(p,q))}var k=a.na,l=a.L,m=a.Aa,n=[],p=0,q,r=0,s;for(q=0;q<b.length;++q)if(s=b[q],"("==s||"["==s?(++r,c):")"==s||"]"==s?(r&&--r,c):!(" "==b[q]&&(r||I[b[q-1]]===I||I[b[q+1]]===I)))b[p++]=b[q];b.length=p;p=b.length;for(q=r=0;q<p;++q)if(","===b[q]){if(!g(r,q))return f;r=q+1}return!g(r,p)?f:n};(function(){var b=/^\w/,a=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
+"i");s=function(d){d=d.slice();for(var e=d.length,c=0,f=0;f<e;++f){var g=d[f];" "!=g&&(d[c++]=g)}d.length=c;d=d.join(" ");return!d.length?"":!a.test(d)?"not all":b.test(d)?d:"not all , "+d}})();(function(){function b(a){var d=/^\s*[']([^']*)[']\s*$/,e=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,c=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=d.exec(a))||(k=e.exec(a))||(k=c.exec(a))||(k=g.exec(a))?k[1]:f}function e(g,l,m,r,u,v,H){function y(){I=
+G.length&&G[G.length-1]===f}var F=a,A=H||[0],G=[],I=d;q(l,{startStylesheet:function(){F=[]},endStylesheet:function(){},startAtrule:function(a,d){if(I)a=f;else if("@media"===a)F.push("@media"," ",s(d));else if("@keyframes"===a||"@-webkit-keyframes"===a){var c=d[0];1===d.length&&!/__$|[^\w\-]/.test(c)?(F.push(a," ",c+m.L),a="@keyframes"):a=f}else if("@import"===a&&0<d.length)if(a=f,"function"===typeof v){var l=s(d.slice(1));if("not all"!==l){++A[0];var n=[];F.push(n);var p=t(k(g,b(d[0])),function(b){var a=
+e(p,b.qa,m,r,u,v,A);--A[0];b=l?{toString:function(){return"@media "+l+" {"+a.result+"}"}}:a.result;n[0]=b;v(b,!!A[0])},u)}}else window.console&&window.console.log("@import "+d.join(" ")+" elided");I=!a;G.push(a)},endAtrule:function(){G.pop();I||F.push(";");y()},startBlock:function(){I||F.push("{")},endBlock:function(){I||(F.push("}"),I=c)},startRuleset:function(b){if(!I){var d=a;"@keyframes"===G[G.length-1]?(d=b.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
+I=!d,d&&(d=d[0].replace(/ +/g,""))):(b=p(b,m),!b||!b.length?I=c:d=b.join(", "));I||F.push(d,"{")}G.push(f)},endRuleset:function(){G.pop();I||F.push("}");y()},declaration:function(b,a){if(!I){var e=d,f=a.length;2<=f&&"!"===a[f-2]&&"important"===a[f-1].toLowerCase()&&(e=c,a.length-=2);n(b,a,r,g,m.L);a.length&&F.push(b,":",a.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return F.join("")}},va:!!A[0]}}r=function(b,d,c,f){return e(b,d,c,f,a,a).result.toString()}})()})();"undefined"!==
typeof window&&(window.sanitizeCssProperty=n,window.sanitizeCssSelectorList=p,window.sanitizeStylesheet=r,window.sanitizeMediaQuery=s);var q,t;(function(){function b(d,e,c,f,g){for(var k=e++;e<c&&"{"!==d[e]&&";"!==d[e];)++e;if(e<c&&(g||";"===d[e])){g=k+1;var l=e;g<c&&" "===d[g]&&++g;l>g&&" "===d[l-1]&&--l;f.startAtrule&&f.startAtrule(d[k].toLowerCase(),d.slice(g,l));e="{"===d[e]?a(d,e,c,f):e+1;f.endAtrule&&f.endAtrule()}return e}function a(c,f,g,k){++f;for(k.startBlock&&k.startBlock();f<g;){var l=
c[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?b(c,f,g,k,d):"{"===l?a(c,f,g,k):e(c,f,g,k)}k.endBlock&&k.endBlock();return f}function e(b,a,d,g){var k=a,m=f(b,a,d,c);if(0>m)return m=~m,m===k?m+1:m;var n=b[m];if("{"!==n)return m===k?m+1:m;a=m+1;m>k&&" "===b[m-1]&&--m;for(g.startRuleset&&g.startRuleset(b.slice(k,m));a<d;){n=b[a];if("}"===n){++a;break}a=" "===n?a+1:l(b,a,d,g)}g.endRuleset&&g.endRuleset();return a}function f(b,a,d,e){for(var c,g=[],k=-1;a<d;++a)if(c=b[a].charAt(0),
-"["===c||"("===c)g[++k]=c;else if("]"===c&&"["===g[k]||")"===c&&"("===g[k])--k;else if("{"===c||"}"===c||";"===c||"@"===c||":"===c&&!e)break;0<=k&&(a=~(a+1));return a}function g(b,a,d){for(;a<d&&";"!==b[a]&&"}"!==b[a];)++a;return a<d&&";"===b[a]?a+1:a}function l(b,a,e,c){var k=b[a++];if(!m.test(k))return g(b,a,e);a<e&&" "===b[a]&&++a;if(a==e||":"!==b[a])return g(b,a,e);++a;a<e&&" "===b[a]&&++a;var n=f(b,a,e,d);if(0>n)n=~n;else{for(var q=[],r=0,s=a;s<n;++s)a=b[s]," "!==a&&(q[r++]=a);if(n<e){do{a=b[n];
-if(";"===a||"}"===a)break;r=0}while(++n<e);";"===a&&++n}r&&c.declaration&&c.declaration(k.toLowerCase(),q)}return n}q=function(a,d){var f=k(a);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?b(f,g,l,d,c):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var m=/^-?[a-z]/i;t=function(b,a){for(var d=k(b),e=0,c=d.length;e<c;)e=" "!==d[e]?l(d,e,c,a):e+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=q,window.parseCssDeclarations=
+"["===c||"("===c)g[++k]=c;else if("]"===c&&"["===g[k]||")"===c&&"("===g[k])--k;else if("{"===c||"}"===c||";"===c||"@"===c||":"===c&&!e)break;0<=k&&(a=~(a+1));return a}function g(b,a,d){for(;a<d&&";"!==b[a]&&"}"!==b[a];)++a;return a<d&&";"===b[a]?a+1:a}function l(b,a,e,c){var k=b[a++];if(!m.test(k))return g(b,a,e);a<e&&" "===b[a]&&++a;if(a==e||":"!==b[a])return g(b,a,e);++a;a<e&&" "===b[a]&&++a;var n=f(b,a,e,d);if(0>n)n=~n;else{for(var p=[],q=0,r=a;r<n;++r)a=b[r]," "!==a&&(p[q++]=a);if(n<e){do{a=b[n];
+if(";"===a||"}"===a)break;q=0}while(++n<e);";"===a&&++n}q&&c.declaration&&c.declaration(k.toLowerCase(),p)}return n}q=function(a,d){var f=k(a);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?b(f,g,l,d,c):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var m=/^-?[a-z]/i;t=function(b,a){for(var d=k(b),e=0,c=d.length;e<c;)e=" "!==d[e]?l(d,e,c,a):e+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=q,window.parseCssDeclarations=
t);var v={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};v.atype=v.d;v.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,
"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::ontouchcancel":2,"*::ontouchend":2,"*::ontouchenter":2,"*::ontouchleave":2,"*::ontouchmove":2,"*::ontouchstart":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,"*::tabindex":0,"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,
"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::target":10,"audio::controls":0,"audio::loop":0,"audio::mediagroup":5,"audio::muted":0,"audio::preload":0,"audio::src":1,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,
@@ -79,21 +79,21 @@ frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",h2:"HTMLHeadingElement",h
li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement",menu:"HTMLMenuElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",nav:"HTMLElement",nobr:"HTMLElement",noembed:"HTMLElement",noframes:"HTMLElement",noscript:"HTMLElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",
s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",
time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};v.ELEMENT_DOM_INTERFACES=v.Q;v.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};v.ueffects=v.P;v.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};
-v.URIEFFECTS=v.J;v.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};v.ltypes=v.M;v.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};v.LOADERTYPES=v.I;"undefined"!==typeof window&&(window.html4=v);b=function(b){function e(b,a){var d;if(P.hasOwnProperty(a))d=P[a];else{var c=a.match(N);d=c?String.fromCharCode(parseInt(c[1],10)):(c=a.match(V))?String.fromCharCode(parseInt(c[1],
-16)):M&&L.test(a)?(M.innerHTML="\x26"+a+";",c=M.textContent,P[a]=c):"\x26"+a+";"}return d}function g(b){return b.replace(X,e)}function k(b){return(""+b).replace(ca,"\x26amp;").replace(Z,"\x26lt;").replace(ba,"\x26gt;").replace(Y,"\x26#34;")}function l(b){return b.replace(S,"\x26amp;$1").replace(Z,"\x26lt;").replace(ba,"\x26gt;")}function n(b){var a={z:b.z||b.cdata,A:b.A||b.comment,B:b.B||b.endDoc,t:b.t||b.endTag,e:b.e||b.pcdata,F:b.F||b.rcdata,H:b.H||b.startDoc,w:b.w||b.startTag};return function(b,
-e){var c,g=/(<\/|<\!--|<[!?]|[&<>])/g;c=b+"";if(ia)c=c.split(g);else{for(var k=[],l=0,m;(m=g.exec(c))!==f;)k.push(c.substring(l,m.index)),k.push(m[0]),l=m.index+m[0].length;k.push(c.substring(l));c=k}r(a,c,0,{r:d,C:d},e)}}function q(b,a,d,e,c){return function(){r(b,a,d,e,c)}}function r(a,d,e,f,g){try{a.H&&0==e&&a.H(g);for(var k,l,m,n=d.length;e<n;){var t=d[e++],v=d[e];switch(t){case "\x26":da.test(v)?(a.e&&a.e("\x26"+v,g,aa,q(a,d,e,f,g)),e++):a.e&&a.e("\x26amp;",g,aa,q(a,d,e,f,g));break;case "\x3c/":if(k=
-/^([-\w:]+)[^\'\"]*/.exec(v))if(k[0].length===v.length&&"\x3e"===d[e+1])e+=2,m=k[1].toLowerCase(),a.t&&a.t(m,g,aa,q(a,d,e,f,g));else{var z=d,x=e,y=a,B=g,D=aa,C=f,F=p(z,x);F?(y.t&&y.t(F.name,B,D,q(y,z,x,C,B)),e=F.next):e=z.length}else a.e&&a.e("\x26lt;/",g,aa,q(a,d,e,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(v))if(k[0].length===v.length&&"\x3e"===d[e+1]){e+=2;m=k[1].toLowerCase();a.w&&a.w(m,[],g,aa,q(a,d,e,f,g));var E=b.f[m];E&ea&&(e=s(d,{name:m,next:e,c:E},a,g,aa,f))}else{var z=d,x=a,y=
-g,B=aa,D=f,P=p(z,e);P?(x.w&&x.w(P.name,P.R,y,B,q(x,z,P.next,D,y)),e=P.c&ea?s(z,P,x,y,B,D):P.next):e=z.length}else a.e&&a.e("\x26lt;",g,aa,q(a,d,e,f,g));break;case "\x3c!--":if(!f.C){for(l=e+1;l<n&&!("\x3e"===d[l]&&/--$/.test(d[l-1]));l++);if(l<n){if(a.A){var T=d.slice(e,l).join("");a.A(T.substr(0,T.length-2),g,aa,q(a,d,l+1,f,g))}e=l+1}else f.C=c}f.C&&a.e&&a.e("\x26lt;!--",g,aa,q(a,d,e,f,g));break;case "\x3c!":if(/^\w/.test(v)){if(!f.r){for(l=e+1;l<n&&"\x3e"!==d[l];l++);l<n?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;!",
-g,aa,q(a,d,e,f,g))}else a.e&&a.e("\x26lt;!",g,aa,q(a,d,e,f,g));break;case "\x3c?":if(!f.r){for(l=e+1;l<n&&"\x3e"!==d[l];l++);l<n?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;?",g,aa,q(a,d,e,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,aa,q(a,d,e,f,g));break;case "":break;default:a.e&&a.e(t,g,aa,q(a,d,e,f,g))}}a.B&&a.B(g)}catch(I){if(I!==aa)throw I;}}function s(a,d,e,c,f,g){var k=a.length;fa.hasOwnProperty(d.name)||(fa[d.name]=RegExp("^"+d.name+"(?:[\\s\\/]|$)","i"));for(var m=fa[d.name],n=d.next,r=d.next+1;r<
-k&&!("\x3c/"===a[r-1]&&m.test(a[r]));r++);r<k&&(r-=1);k=a.slice(n,r).join("");if(d.c&b.c.CDATA)e.z&&e.z(k,c,f,q(e,a,r,g,c));else if(d.c&b.c.RCDATA)e.F&&e.F(l(k),c,f,q(e,a,r,g,c));else throw Error("bug");return r}function p(a,e){var f=/^([-\w:]+)/.exec(a[e]),k={};k.name=f[1].toLowerCase();k.c=b.f[k.name];for(var l=a[e].substr(f[0].length),m=e+1,n=a.length;m<n&&"\x3e"!==a[m];m++)l+=a[m];if(!(n<=m)){for(var q=[];""!==l;)if(f=T.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],r=d,l=[l,a[m++]];m<
-n;m++){if(r){if("\x3e"===a[m])break}else 0<=a[m].indexOf(f)&&(r=c);l.push(a[m])}if(n<=m)break;l=l.join("")}else{var r=f[1].toLowerCase(),s;if(f[2]){s=f[3];var t=s.charCodeAt(0);if(34===t||39===t)s=s.substr(1,s.length-2);s=g(s.replace(R,""))}else s="";q.push(r,s);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=q;k.next=m+1;return k}}function t(e){function c(b,a){l||a.push(b)}var g,l;return n({startDoc:function(){g=[];l=d},startTag:function(d,c,m){if(!l&&b.f.hasOwnProperty(d)){var n=
-b.f[d];if(!(n&b.c.FOLDABLE)){var q=e(d,c);if(q){if("object"!==typeof q)throw Error("tagPolicy did not return object (old API?)");if("attribs"in q)c=q.attribs;else throw Error("tagPolicy gave no attribs");var r;"tagName"in q?(r=q.tagName,q=b.f[r]):(r=d,q=n);if(n&b.c.OPTIONAL_ENDTAG){var s=g[g.length-1];s&&s.D===d&&(s.v!==r||d!==r)&&m.push("\x3c/",s.v,"\x3e")}n&b.c.EMPTY||g.push({D:d,v:r});m.push("\x3c",r);d=0;for(s=c.length;d<s;d+=2){var p=c[d],t=c[d+1];t!==f&&t!==a&&m.push(" ",p,'\x3d"',k(t),'"')}m.push("\x3e");
-n&b.c.EMPTY&&!(q&b.c.EMPTY)&&m.push("\x3c/",r,"\x3e")}else l=!(n&b.c.EMPTY)}}},endTag:function(a,e){if(l)l=d;else if(b.f.hasOwnProperty(a)){var c=b.f[a];if(!(c&(b.c.EMPTY|b.c.FOLDABLE))){if(c&b.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(b.f[f]&b.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;b.f[k]&b.c.OPTIONAL_ENDTAG||e.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;e.push("\x3c/",a,"\x3e")}}}},
-pcdata:c,rcdata:c,cdata:c,endDoc:function(b){for(;g.length;g.length--)b.push("\x3c/",g[g.length-1].v,"\x3e")}})}function v(b,a,d,e,c){if(!c)return f;try{var g=m.parse(""+b);if(g&&(!g.K()||ja.test(g.W()))){var k=c(g,a,d,e);return k?k.toString():f}}catch(l){}return f}function K(b,a,d,e,c){d||b(a+" removed",{S:"removed",tagName:a});if(e!==c){var f="changed";e&&!c?f="removed":!e&&c&&(f="added");b(a+"."+d+" "+f,{S:f,tagName:a,la:d,oldValue:e,newValue:c})}}function O(b,a,d){a=a+"::"+d;if(b.hasOwnProperty(a))return b[a];
-a="*::"+d;if(b.hasOwnProperty(a))return b[a]}function U(d,e,c,g,k){for(var l=0;l<e.length;l+=2){var m=e[l],n=e[l+1],q=n,r=f,s;if((s=d+"::"+m,b.m.hasOwnProperty(s))||(s="*::"+m,b.m.hasOwnProperty(s)))r=b.m[s];if(r!==f)switch(r){case b.d.NONE:break;case b.d.SCRIPT:n=f;k&&K(k,d,m,q,n);break;case b.d.STYLE:if("undefined"===typeof C){n=f;k&&K(k,d,m,q,n);break}var p=[];C(n,{declaration:function(a,d){var e=a.toLowerCase();Q(e,d,c?function(a){return v(a,b.P.ja,b.M.ka,{TYPE:"CSS",CSS_PROP:e},c)}:f);d.length&&
-p.push(e+": "+d.join(" "))}});n=0<p.length?p.join(" ; "):f;k&&K(k,d,m,q,n);break;case b.d.ID:case b.d.IDREF:case b.d.IDREFS:case b.d.GLOBAL_NAME:case b.d.LOCAL_NAME:case b.d.CLASSES:n=g?g(n):n;k&&K(k,d,m,q,n);break;case b.d.URI:n=v(n,O(b.J,d,m),O(b.I,d,m),{TYPE:"MARKUP",XML_ATTR:m,XML_TAG:d},c);k&&K(k,d,m,q,n);break;case b.d.URI_FRAGMENT:n&&"#"===n.charAt(0)?(n=n.substring(1),n=g?g(n):n,n!==f&&n!==a&&(n="#"+n)):n=f;k&&K(k,d,m,q,n);break;default:n=f,k&&K(k,d,m,q,n)}else n=f,k&&K(k,d,m,q,n);e[l+1]=
-n}return e}function W(d,e,c){return function(f,g){if(b.f[f]&b.c.UNSAFE)c&&K(c,f,a,a,a);else return{attribs:U(f,g,d,e,c)}}}function B(b,a){var d=[];t(a)(b,d);return d.join("")}var C,Q;"undefined"!==typeof window&&(C=window.parseCssDeclarations,Q=window.sanitizeCssProperty);var P={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},N=/^#(\d+)$/,V=/^#x([0-9A-Fa-f]+)$/,L=/^[A-Za-z][A-za-z0-9]+$/,M="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
-f,R=/\0/g,X=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,da=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,ca=/&/g,S=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,Z=/[<]/g,ba=/>/g,Y=/\"/g,T=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ia=3==="a,b".split(/(,)/).length,ea=b.c.CDATA|b.c.RCDATA,aa={},fa={},ja=/^(?:https?|mailto|data)$/i,ga={};ga.pa=ga.escapeAttrib=k;ga.ra=ga.makeHtmlSanitizer=t;ga.sa=ga.makeSaxParser=n;ga.ta=ga.makeTagPolicy=W;ga.wa=ga.normalizeRCData=l;ga.xa=
+v.URIEFFECTS=v.J;v.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};v.ltypes=v.M;v.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};v.LOADERTYPES=v.I;"undefined"!==typeof window&&(window.html4=v);b=function(b){function e(b,a){var d;if(O.hasOwnProperty(a))d=O[a];else{var c=a.match(N);d=c?String.fromCharCode(parseInt(c[1],10)):(c=a.match(V))?String.fromCharCode(parseInt(c[1],
+16)):L&&K.test(a)?(L.innerHTML="\x26"+a+";",c=L.textContent,O[a]=c):"\x26"+a+";"}return d}function g(b){return b.replace(X,e)}function k(b){return(""+b).replace(ca,"\x26amp;").replace(Z,"\x26lt;").replace(ba,"\x26gt;").replace(Y,"\x26#34;")}function l(b){return b.replace(T,"\x26amp;$1").replace(Z,"\x26lt;").replace(ba,"\x26gt;")}function n(b){var a={z:b.z||b.cdata,A:b.A||b.comment,B:b.B||b.endDoc,t:b.t||b.endTag,e:b.e||b.pcdata,F:b.F||b.rcdata,H:b.H||b.startDoc,w:b.w||b.startTag};return function(b,
+e){var c,g=/(<\/|<\!--|<[!?]|[&<>])/g;c=b+"";if(ia)c=c.split(g);else{for(var k=[],l=0,m;(m=g.exec(c))!==f;)k.push(c.substring(l,m.index)),k.push(m[0]),l=m.index+m[0].length;k.push(c.substring(l));c=k}q(a,c,0,{r:d,C:d},e)}}function p(b,a,d,e,c){return function(){q(b,a,d,e,c)}}function q(a,d,e,f,g){try{a.H&&0==e&&a.H(g);for(var k,l,m,n=d.length;e<n;){var t=d[e++],v=d[e];switch(t){case "\x26":da.test(v)?(a.e&&a.e("\x26"+v,g,aa,p(a,d,e,f,g)),e++):a.e&&a.e("\x26amp;",g,aa,p(a,d,e,f,g));break;case "\x3c/":if(k=
+/^([-\w:]+)[^\'\"]*/.exec(v))if(k[0].length===v.length&&"\x3e"===d[e+1])e+=2,m=k[1].toLowerCase(),a.t&&a.t(m,g,aa,p(a,d,e,f,g));else{var x=d,y=e,B=a,F=g,z=aa,E=f,D=s(x,y);D?(B.t&&B.t(D.name,F,z,p(B,x,y,E,F)),e=D.next):e=x.length}else a.e&&a.e("\x26lt;/",g,aa,p(a,d,e,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(v))if(k[0].length===v.length&&"\x3e"===d[e+1]){e+=2;m=k[1].toLowerCase();a.w&&a.w(m,[],g,aa,p(a,d,e,f,g));var O=b.f[m];O&ea&&(e=r(d,{name:m,next:e,c:O},a,g,aa,f))}else{var x=d,y=a,B=
+g,F=aa,z=f,S=s(x,e);S?(y.w&&y.w(S.name,S.R,B,F,p(y,x,S.next,z,B)),e=S.c&ea?r(x,S,y,B,F,z):S.next):e=x.length}else a.e&&a.e("\x26lt;",g,aa,p(a,d,e,f,g));break;case "\x3c!--":if(!f.C){for(l=e+1;l<n&&!("\x3e"===d[l]&&/--$/.test(d[l-1]));l++);if(l<n){if(a.A){var I=d.slice(e,l).join("");a.A(I.substr(0,I.length-2),g,aa,p(a,d,l+1,f,g))}e=l+1}else f.C=c}f.C&&a.e&&a.e("\x26lt;!--",g,aa,p(a,d,e,f,g));break;case "\x3c!":if(/^\w/.test(v)){if(!f.r){for(l=e+1;l<n&&"\x3e"!==d[l];l++);l<n?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;!",
+g,aa,p(a,d,e,f,g))}else a.e&&a.e("\x26lt;!",g,aa,p(a,d,e,f,g));break;case "\x3c?":if(!f.r){for(l=e+1;l<n&&"\x3e"!==d[l];l++);l<n?e=l+1:f.r=c}f.r&&a.e&&a.e("\x26lt;?",g,aa,p(a,d,e,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,aa,p(a,d,e,f,g));break;case "":break;default:a.e&&a.e(t,g,aa,p(a,d,e,f,g))}}a.B&&a.B(g)}catch(C){if(C!==aa)throw C;}}function r(a,d,e,c,f,g){var k=a.length;fa.hasOwnProperty(d.name)||(fa[d.name]=RegExp("^"+d.name+"(?:[\\s\\/]|$)","i"));for(var m=fa[d.name],n=d.next,q=d.next+1;q<
+k&&!("\x3c/"===a[q-1]&&m.test(a[q]));q++);q<k&&(q-=1);k=a.slice(n,q).join("");if(d.c&b.c.CDATA)e.z&&e.z(k,c,f,p(e,a,q,g,c));else if(d.c&b.c.RCDATA)e.F&&e.F(l(k),c,f,p(e,a,q,g,c));else throw Error("bug");return q}function s(a,e){var f=/^([-\w:]+)/.exec(a[e]),k={};k.name=f[1].toLowerCase();k.c=b.f[k.name];for(var l=a[e].substr(f[0].length),m=e+1,n=a.length;m<n&&"\x3e"!==a[m];m++)l+=a[m];if(!(n<=m)){for(var p=[];""!==l;)if(f=S.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],q=d,l=[l,a[m++]];m<
+n;m++){if(q){if("\x3e"===a[m])break}else 0<=a[m].indexOf(f)&&(q=c);l.push(a[m])}if(n<=m)break;l=l.join("")}else{var q=f[1].toLowerCase(),r;if(f[2]){r=f[3];var t=r.charCodeAt(0);if(34===t||39===t)r=r.substr(1,r.length-2);r=g(r.replace(R,""))}else r="";p.push(q,r);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=m+1;return k}}function t(e){function c(b,a){l||a.push(b)}var g,l;return n({startDoc:function(){g=[];l=d},startTag:function(d,c,m){if(!l&&b.f.hasOwnProperty(d)){var n=
+b.f[d];if(!(n&b.c.FOLDABLE)){var p=e(d,c);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)c=p.attribs;else throw Error("tagPolicy gave no attribs");var q;"tagName"in p?(q=p.tagName,p=b.f[q]):(q=d,p=n);if(n&b.c.OPTIONAL_ENDTAG){var r=g[g.length-1];r&&r.D===d&&(r.v!==q||d!==q)&&m.push("\x3c/",r.v,"\x3e")}n&b.c.EMPTY||g.push({D:d,v:q});m.push("\x3c",q);d=0;for(r=c.length;d<r;d+=2){var s=c[d],t=c[d+1];t!==f&&t!==a&&m.push(" ",s,'\x3d"',k(t),'"')}m.push("\x3e");
+n&b.c.EMPTY&&!(p&b.c.EMPTY)&&m.push("\x3c/",q,"\x3e")}else l=!(n&b.c.EMPTY)}}},endTag:function(a,e){if(l)l=d;else if(b.f.hasOwnProperty(a)){var c=b.f[a];if(!(c&(b.c.EMPTY|b.c.FOLDABLE))){if(c&b.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(b.f[f]&b.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;b.f[k]&b.c.OPTIONAL_ENDTAG||e.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;e.push("\x3c/",a,"\x3e")}}}},
+pcdata:c,rcdata:c,cdata:c,endDoc:function(b){for(;g.length;g.length--)b.push("\x3c/",g[g.length-1].v,"\x3e")}})}function v(b,a,d,e,c){if(!c)return f;try{var g=m.parse(""+b);if(g&&(!g.K()||ja.test(g.W()))){var k=c(g,a,d,e);return k?k.toString():f}}catch(l){}return f}function M(b,a,d,e,c){d||b(a+" removed",{S:"removed",tagName:a});if(e!==c){var f="changed";e&&!c?f="removed":!e&&c&&(f="added");b(a+"."+d+" "+f,{S:f,tagName:a,la:d,oldValue:e,newValue:c})}}function P(b,a,d){a=a+"::"+d;if(b.hasOwnProperty(a))return b[a];
+a="*::"+d;if(b.hasOwnProperty(a))return b[a]}function U(d,e,c,g,k){for(var l=0;l<e.length;l+=2){var m=e[l],n=e[l+1],p=n,q=f,r;if((r=d+"::"+m,b.m.hasOwnProperty(r))||(r="*::"+m,b.m.hasOwnProperty(r)))q=b.m[r];if(q!==f)switch(q){case b.d.NONE:break;case b.d.SCRIPT:n=f;k&&M(k,d,m,p,n);break;case b.d.STYLE:if("undefined"===typeof E){n=f;k&&M(k,d,m,p,n);break}var s=[];E(n,{declaration:function(a,d){var e=a.toLowerCase();Q(e,d,c?function(a){return v(a,b.P.ja,b.M.ka,{TYPE:"CSS",CSS_PROP:e},c)}:f);d.length&&
+s.push(e+": "+d.join(" "))}});n=0<s.length?s.join(" ; "):f;k&&M(k,d,m,p,n);break;case b.d.ID:case b.d.IDREF:case b.d.IDREFS:case b.d.GLOBAL_NAME:case b.d.LOCAL_NAME:case b.d.CLASSES:n=g?g(n):n;k&&M(k,d,m,p,n);break;case b.d.URI:n=v(n,P(b.J,d,m),P(b.I,d,m),{TYPE:"MARKUP",XML_ATTR:m,XML_TAG:d},c);k&&M(k,d,m,p,n);break;case b.d.URI_FRAGMENT:n&&"#"===n.charAt(0)?(n=n.substring(1),n=g?g(n):n,n!==f&&n!==a&&(n="#"+n)):n=f;k&&M(k,d,m,p,n);break;default:n=f,k&&M(k,d,m,p,n)}else n=f,k&&M(k,d,m,p,n);e[l+1]=
+n}return e}function W(d,e,c){return function(f,g){if(b.f[f]&b.c.UNSAFE)c&&M(c,f,a,a,a);else return{attribs:U(f,g,d,e,c)}}}function B(b,a){var d=[];t(a)(b,d);return d.join("")}var E,Q;"undefined"!==typeof window&&(E=window.parseCssDeclarations,Q=window.sanitizeCssProperty);var O={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},N=/^#(\d+)$/,V=/^#x([0-9A-Fa-f]+)$/,K=/^[A-Za-z][A-za-z0-9]+$/,L="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
+f,R=/\0/g,X=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,da=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,ca=/&/g,T=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,Z=/[<]/g,ba=/>/g,Y=/\"/g,S=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ia=3==="a,b".split(/(,)/).length,ea=b.c.CDATA|b.c.RCDATA,aa={},fa={},ja=/^(?:https?|mailto|data)$/i,ga={};ga.pa=ga.escapeAttrib=k;ga.ra=ga.makeHtmlSanitizer=t;ga.sa=ga.makeSaxParser=n;ga.ta=ga.makeTagPolicy=W;ga.wa=ga.normalizeRCData=l;ga.xa=
ga.sanitize=function(b,a,d,e){return B(b,W(a,d,e))};ga.ya=ga.sanitizeAttribs=U;ga.za=ga.sanitizeWithPolicy=B;ga.Ba=ga.unescapeEntities=g;return ga}(v);g=b.sanitize;"undefined"!==typeof window&&(window.html=b,window.html_sanitize=g)})();
!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 c(f,d,b){function e(k,m){if(!d[k]){if(!f[k]){var n="function"==typeof require&&require;if(!m&&n)return n(k,!0);if(g)return g(k,!0);n=Error("Cannot find module '"+k+"'");throw n.code="MODULE_NOT_FOUND",n;}n=d[k]={exports:{}};
f[k][0].call(n.exports,function(b){var d=f[k][1][b];return e(d?d:b)},n,n.exports,c,f,d,b)}return d[k].exports}for(var g="function"==typeof require&&require,k=0;k<b.length;k++)e(b[k]);return e}({1:[function(c,f,d){function b(d){if(!(this instanceof b))return new b(d);d=this.options=k.assign({level:s,method:t,chunkSize:16384,windowBits:15,memLevel:8,strategy:q,to:""},d||{});d.raw&&0<d.windowBits?d.windowBits=-d.windowBits:d.gzip&&0<d.windowBits&&16>d.windowBits&&(d.windowBits+=16);this.err=0;this.msg=
@@ -102,10 +102,10 @@ new b(e);if(c.push(d,!0),c.err)throw c.msg;return c.result}var g=c("./zlib/defla
f.avail_out&&(f.output=new k.Buf8(m),f.next_out=0,f.avail_out=m),e=g.deflate(f,c),1!==e&&e!==r)return this.onEnd(e),this.ended=!0,!1;0!==f.avail_out&&(0!==f.avail_in||4!==c&&2!==c)||("string"===this.options.to?this.onData(l.buf2binstring(k.shrinkBuf(f.output,f.next_out))):this.onData(k.shrinkBuf(f.output,f.next_out)))}while((0<f.avail_in||0===f.avail_out)&&1!==e);return 4===c?(e=g.deflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===r):2!==c||(this.onEnd(r),f.avail_out=0,!0)};b.prototype.onData=
function(b){this.chunks.push(b)};b.prototype.onEnd=function(b){b===r&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Deflate=b;d.deflate=e;d.deflateRaw=function(b,d){return d=d||{},d.raw=!0,e(b,d)};d.gzip=function(b,d){return d=d||{},d.gzip=!0,e(b,d)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(c,f,d){function b(d){if(!(this instanceof
b))return new b(d);var e=this.options=k.assign({chunkSize:16384,windowBits:0,to:""},d||{});e.raw&&0<=e.windowBits&&16>e.windowBits&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15));!(0<=e.windowBits&&16>e.windowBits)||d&&d.windowBits||(e.windowBits+=32);15<e.windowBits&&48>e.windowBits&&0===(15&e.windowBits)&&(e.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new p;this.strm.avail_out=0;d=g.inflateInit2(this.strm,e.windowBits);if(d!==m.Z_OK)throw Error(n[d]);
-this.header=new r;g.inflateGetHeader(this.strm,this.header)}function e(d,e){var c=new b(e);if(c.push(d,!0),c.err)throw c.msg;return c.result}var g=c("./zlib/inflate"),k=c("./utils/common"),l=c("./utils/strings"),m=c("./zlib/constants"),n=c("./zlib/messages"),p=c("./zlib/zstream"),r=c("./zlib/gzheader"),s=Object.prototype.toString;b.prototype.push=function(b,d){var e,c,f,n,r,p,E=this.strm,A=this.options.chunkSize,D=this.options.dictionary,G=!1;if(this.ended)return!1;c=d===~~d?d:!0===d?m.Z_FINISH:m.Z_NO_FLUSH;
-"string"==typeof b?E.input=l.binstring2buf(b):"[object ArrayBuffer]"===s.call(b)?E.input=new Uint8Array(b):E.input=b;E.next_in=0;E.avail_in=E.input.length;do{if(0===E.avail_out&&(E.output=new k.Buf8(A),E.next_out=0,E.avail_out=A),e=g.inflate(E,m.Z_NO_FLUSH),e===m.Z_NEED_DICT&&D&&(p="string"==typeof D?l.string2buf(D):"[object ArrayBuffer]"===s.call(D)?new Uint8Array(D):D,e=g.inflateSetDictionary(this.strm,p)),e===m.Z_BUF_ERROR&&!0===G&&(e=m.Z_OK,G=!1),e!==m.Z_STREAM_END&&e!==m.Z_OK)return this.onEnd(e),
-this.ended=!0,!1;E.next_out&&(0!==E.avail_out&&e!==m.Z_STREAM_END&&(0!==E.avail_in||c!==m.Z_FINISH&&c!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(E.output,E.next_out),n=E.next_out-f,r=l.buf2string(E.output,f),E.next_out=n,E.avail_out=A-n,n&&k.arraySet(E.output,E.output,f,n,0),this.onData(r)):this.onData(k.shrinkBuf(E.output,E.next_out))));0===E.avail_in&&0===E.avail_out&&(G=!0)}while((0<E.avail_in||0===E.avail_out)&&e!==m.Z_STREAM_END);return e===m.Z_STREAM_END&&(c=m.Z_FINISH),
-c===m.Z_FINISH?(e=g.inflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===m.Z_OK):c!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),E.avail_out=0,!0)};b.prototype.onData=function(b){this.chunks.push(b)};b.prototype.onEnd=function(b){b===m.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=b;d.inflate=e;d.inflateRaw=function(b,d){return d=d||{},d.raw=!0,e(b,d)};d.ungzip=e},{"./utils/common":3,
+this.header=new r;g.inflateGetHeader(this.strm,this.header)}function e(d,e){var c=new b(e);if(c.push(d,!0),c.err)throw c.msg;return c.result}var g=c("./zlib/inflate"),k=c("./utils/common"),l=c("./utils/strings"),m=c("./zlib/constants"),n=c("./zlib/messages"),p=c("./zlib/zstream"),r=c("./zlib/gzheader"),s=Object.prototype.toString;b.prototype.push=function(b,d){var e,c,f,n,p,r,C=this.strm,A=this.options.chunkSize,F=this.options.dictionary,G=!1;if(this.ended)return!1;c=d===~~d?d:!0===d?m.Z_FINISH:m.Z_NO_FLUSH;
+"string"==typeof b?C.input=l.binstring2buf(b):"[object ArrayBuffer]"===s.call(b)?C.input=new Uint8Array(b):C.input=b;C.next_in=0;C.avail_in=C.input.length;do{if(0===C.avail_out&&(C.output=new k.Buf8(A),C.next_out=0,C.avail_out=A),e=g.inflate(C,m.Z_NO_FLUSH),e===m.Z_NEED_DICT&&F&&(r="string"==typeof F?l.string2buf(F):"[object ArrayBuffer]"===s.call(F)?new Uint8Array(F):F,e=g.inflateSetDictionary(this.strm,r)),e===m.Z_BUF_ERROR&&!0===G&&(e=m.Z_OK,G=!1),e!==m.Z_STREAM_END&&e!==m.Z_OK)return this.onEnd(e),
+this.ended=!0,!1;C.next_out&&(0!==C.avail_out&&e!==m.Z_STREAM_END&&(0!==C.avail_in||c!==m.Z_FINISH&&c!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(C.output,C.next_out),n=C.next_out-f,p=l.buf2string(C.output,f),C.next_out=n,C.avail_out=A-n,n&&k.arraySet(C.output,C.output,f,n,0),this.onData(p)):this.onData(k.shrinkBuf(C.output,C.next_out))));0===C.avail_in&&0===C.avail_out&&(G=!0)}while((0<C.avail_in||0===C.avail_out)&&e!==m.Z_STREAM_END);return e===m.Z_STREAM_END&&(c=m.Z_FINISH),
+c===m.Z_FINISH?(e=g.inflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===m.Z_OK):c!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),C.avail_out=0,!0)};b.prototype.onData=function(b){this.chunks.push(b)};b.prototype.onEnd=function(b){b===m.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=b;d.inflate=e;d.inflateRaw=function(b,d){return d=d||{},d.raw=!0,e(b,d)};d.ungzip=e},{"./utils/common":3,
"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(c,f,d){c="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;d.assign=function(b){for(var d=Array.prototype.slice.call(arguments,1);d.length;){var e=d.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(var c in e)e.hasOwnProperty(c)&&(b[c]=e[c])}}return b};d.shrinkBuf=function(b,d){return b.length===
d?b:b.subarray?b.subarray(0,d):(b.length=d,b)};var b={arraySet:function(b,d,e,c,f){if(d.subarray&&b.subarray)return void b.set(d.subarray(e,e+c),f);for(var p=0;p<c;p++)b[f+p]=d[e+p]},flattenChunks:function(b){var d,e,c,f,p;d=c=0;for(e=b.length;d<e;d++)c+=b[d].length;p=new Uint8Array(c);d=c=0;for(e=b.length;d<e;d++)f=b[d],p.set(f,c),c+=f.length;return p}},e={arraySet:function(b,d,e,c,f){for(var p=0;p<c;p++)b[f+p]=d[e+p]},flattenChunks:function(b){return[].concat.apply([],b)}};d.setTyped=function(c){c?
(d.Buf8=Uint8Array,d.Buf16=Uint16Array,d.Buf32=Int32Array,d.assign(d,b)):(d.Buf8=Array,d.Buf16=Array,d.Buf32=Array,d.assign(d,e))};d.setTyped(c)},{}],4:[function(c,f,d){function b(b,d){if(65537>d&&(b.subarray&&k||!b.subarray&&g))return String.fromCharCode.apply(null,e.shrinkBuf(b,d));for(var c="",f=0;f<d;f++)c+=String.fromCharCode(b[f]);return c}var e=c("./common"),g=!0,k=!0;try{String.fromCharCode.apply(null,[0])}catch(l){g=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(m){k=!1}var n=
@@ -113,76 +113,76 @@ new e.Buf8(256);for(c=0;256>c;c++)n[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=
c?(d[k++]=192|c>>>6,d[k++]=128|63&c):65536>c?(d[k++]=224|c>>>12,d[k++]=128|c>>>6&63,d[k++]=128|63&c):(d[k++]=240|c>>>18,d[k++]=128|c>>>12&63,d[k++]=128|c>>>6&63,d[k++]=128|63&c);return d};d.buf2binstring=function(d){return b(d,d.length)};d.binstring2buf=function(b){for(var d=new e.Buf8(b.length),c=0,f=d.length;c<f;c++)d[c]=b.charCodeAt(c);return d};d.buf2string=function(d,e){var c,f,g,k,l=e||d.length,m=Array(2*l);for(c=f=0;c<l;)if(g=d[c++],128>g)m[f++]=g;else if(k=n[g],4<k)m[f++]=65533,c+=k-1;else{for(g&=
2===k?31:3===k?15:7;1<k&&c<l;)g=g<<6|63&d[c++],k--;1<k?m[f++]=65533:65536>g?m[f++]=g:(g-=65536,m[f++]=55296|g>>10&1023,m[f++]=56320|1023&g)}return b(m,f)};d.utf8border=function(b,d){var e;d=d||b.length;d>b.length&&(d=b.length);for(e=d-1;0<=e&&128===(192&b[e]);)e--;return 0>e?d:0===e?d:e+n[b[e]]>d?e:d}},{"./common":3}],5:[function(c,f,d){f.exports=function(b,d,c,f){var l=65535&b|0;b=b>>>16&65535|0;for(var m=0;0!==c;){m=2E3<c?2E3:c;c-=m;do l=l+d[f++]|0,b=b+l|0;while(--m);l%=65521;b%=65521}return l|
b<<16|0}},{}],6:[function(c,f,d){f.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(c,f,d){var b=function(){for(var b,d=[],c=0;256>c;c++){b=c;
-for(var f=0;8>f;f++)b=1&b?3988292384^b>>>1:b>>>1;d[c]=b}return d}();f.exports=function(d,c,f,l){f=l+f;for(d^=-1;l<f;l++)d=d>>>8^b[255&(d^c[l])];return d^-1}},{}],8:[function(c,f,d){function b(b,d){return b.msg=D[d],d}function e(b){for(var d=b.length;0<=--d;)b[d]=0}function g(b){var d=b.state,e=d.pending;e>b.avail_out&&(e=b.avail_out);0!==e&&(x.arraySet(b.output,d.pending_buf,d.pending_out,e,b.next_out),b.next_out+=e,d.pending_out+=e,b.total_out+=e,b.avail_out-=e,d.pending-=e,0===d.pending&&(d.pending_out=
-0))}function k(b,d){F._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,d);b.block_start=b.strstart;g(b.strm)}function l(b,d){b.pending_buf[b.pending++]=d}function m(b,d){b.pending_buf[b.pending++]=d>>>8&255;b.pending_buf[b.pending++]=255&d}function n(b,d){var e,c,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,m=b.strstart>b.w_size-X?b.strstart-(b.w_size-X):0,n=b.window,q=b.w_mask,r=b.prev,s=b.strstart+R,p=n[g+k-1],t=n[g+k];b.prev_length>=b.good_match&&
-(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(e=d,n[e+k]===t&&n[e+k-1]===p&&n[e]===n[g]&&n[++e]===n[g+1]){g+=2;e++;do;while(n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&g<s);if(c=R-(s-g),g=s-R,c>k){if(b.match_start=d,k=c,c>=l)break;p=n[g+k-1];t=n[g+k]}}while((d=r[d&q])>m&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var d,e,c,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
-g+(g-X)){x.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;d=e=b.hash_size;do c=b.head[--d],b.head[d]=c>=g?c-g:0;while(--e);d=e=g;do c=b.prev[--d],b.prev[d]=c>=g?c-g:0;while(--e);f+=g}if(0===b.strm.avail_in)break;d=b.strm;c=b.window;var k=b.strstart+b.lookahead,l=d.avail_in;if(e=(l>f&&(l=f),0===l?0:(d.avail_in-=l,x.arraySet(c,d.input,d.next_in,l,k),1===d.state.wrap?d.adler=E(d.adler,c,l,k):2===d.state.wrap&&(d.adler=A(d.adler,c,l,k)),d.next_in+=l,d.total_in+=l,l)),
-b.lookahead+=e,b.lookahead+b.insert>=M){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+M-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<M)););}}while(b.lookahead<X&&0!==b.strm.avail_in)}function r(b,d){for(var e,c;;){if(b.lookahead<X){if(p(b),b.lookahead<X&&d===G)return S;if(0===b.lookahead)break}if(e=0,b.lookahead>=M&&(b.ins_h=(b.ins_h<<
-b.hash_shift^b.window[b.strstart+M-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==e&&b.strstart-e<=b.w_size-X&&(b.match_length=n(b,e)),b.match_length>=M)if(c=F._tr_tally(b,b.strstart-b.match_start,b.match_length-M),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=M){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+M-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
-b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else c=F._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(c&&(k(b,!1),0===b.strm.avail_out))return S}return b.insert=b.strstart<M-1?b.strstart:M-1,d===H?(k(b,!0),0===b.strm.avail_out?ba:Y):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?S:Z}function s(b,d){for(var e,c,f;;){if(b.lookahead<X){if(p(b),
-b.lookahead<X&&d===G)return S;if(0===b.lookahead)break}if(e=0,b.lookahead>=M&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+M-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=M-1,0!==e&&b.prev_length<b.max_lazy_match&&b.strstart-e<=b.w_size-X&&(b.match_length=n(b,e),5>=b.match_length&&(b.strategy===O||b.match_length===M&&4096<b.strstart-b.match_start)&&(b.match_length=M-1)),b.prev_length>=
-M&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-M;c=F._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-M);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+M-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=M-1,b.strstart++,c&&(k(b,!1),0===b.strm.avail_out))return S}else if(b.match_available){if(c=F._tr_tally(b,0,
-b.window[b.strstart-1]),c&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return S}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(F._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<M-1?b.strstart:M-1,d===H?(k(b,!0),0===b.strm.avail_out?ba:Y):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?S:Z}function q(b,d,e,c,f){this.good_length=b;this.max_lazy=d;this.nice_length=e;this.max_chain=c;this.func=f}function t(){this.strm=null;this.status=
+for(var f=0;8>f;f++)b=1&b?3988292384^b>>>1:b>>>1;d[c]=b}return d}();f.exports=function(d,c,f,l){f=l+f;for(d^=-1;l<f;l++)d=d>>>8^b[255&(d^c[l])];return d^-1}},{}],8:[function(c,f,d){function b(b,d){return b.msg=F[d],d}function e(b){for(var d=b.length;0<=--d;)b[d]=0}function g(b){var d=b.state,e=d.pending;e>b.avail_out&&(e=b.avail_out);0!==e&&(x.arraySet(b.output,d.pending_buf,d.pending_out,e,b.next_out),b.next_out+=e,d.pending_out+=e,b.total_out+=e,b.avail_out-=e,d.pending-=e,0===d.pending&&(d.pending_out=
+0))}function k(b,d){D._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,d);b.block_start=b.strstart;g(b.strm)}function l(b,d){b.pending_buf[b.pending++]=d}function m(b,d){b.pending_buf[b.pending++]=d>>>8&255;b.pending_buf[b.pending++]=255&d}function n(b,d){var e,c,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,m=b.strstart>b.w_size-X?b.strstart-(b.w_size-X):0,n=b.window,p=b.w_mask,q=b.prev,r=b.strstart+R,s=n[g+k-1],t=n[g+k];b.prev_length>=b.good_match&&
+(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(e=d,n[e+k]===t&&n[e+k-1]===s&&n[e]===n[g]&&n[++e]===n[g+1]){g+=2;e++;do;while(n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&n[++g]===n[++e]&&g<r);if(c=R-(r-g),g=r-R,c>k){if(b.match_start=d,k=c,c>=l)break;s=n[g+k-1];t=n[g+k]}}while((d=q[d&p])>m&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(b){var d,e,c,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
+g+(g-X)){x.arraySet(b.window,b.window,g,g,0);b.match_start-=g;b.strstart-=g;b.block_start-=g;d=e=b.hash_size;do c=b.head[--d],b.head[d]=c>=g?c-g:0;while(--e);d=e=g;do c=b.prev[--d],b.prev[d]=c>=g?c-g:0;while(--e);f+=g}if(0===b.strm.avail_in)break;d=b.strm;c=b.window;var k=b.strstart+b.lookahead,l=d.avail_in;if(e=(l>f&&(l=f),0===l?0:(d.avail_in-=l,x.arraySet(c,d.input,d.next_in,l,k),1===d.state.wrap?d.adler=C(d.adler,c,l,k):2===d.state.wrap&&(d.adler=A(d.adler,c,l,k)),d.next_in+=l,d.total_in+=l,l)),
+b.lookahead+=e,b.lookahead+b.insert>=L){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+L-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<L)););}}while(b.lookahead<X&&0!==b.strm.avail_in)}function r(b,d){for(var e,c;;){if(b.lookahead<X){if(p(b),b.lookahead<X&&d===G)return T;if(0===b.lookahead)break}if(e=0,b.lookahead>=L&&(b.ins_h=(b.ins_h<<
+b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==e&&b.strstart-e<=b.w_size-X&&(b.match_length=n(b,e)),b.match_length>=L)if(c=D._tr_tally(b,b.strstart-b.match_start,b.match_length-L),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=L){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
+b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else c=D._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(c&&(k(b,!1),0===b.strm.avail_out))return T}return b.insert=b.strstart<L-1?b.strstart:L-1,d===H?(k(b,!0),0===b.strm.avail_out?ba:Y):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?T:Z}function s(b,d){for(var e,c,f;;){if(b.lookahead<X){if(p(b),
+b.lookahead<X&&d===G)return T;if(0===b.lookahead)break}if(e=0,b.lookahead>=L&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=L-1,0!==e&&b.prev_length<b.max_lazy_match&&b.strstart-e<=b.w_size-X&&(b.match_length=n(b,e),5>=b.match_length&&(b.strategy===P||b.match_length===L&&4096<b.strstart-b.match_start)&&(b.match_length=L-1)),b.prev_length>=
+L&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-L;c=D._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-L);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+L-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=L-1,b.strstart++,c&&(k(b,!1),0===b.strm.avail_out))return T}else if(b.match_available){if(c=D._tr_tally(b,0,
+b.window[b.strstart-1]),c&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return T}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(D._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<L-1?b.strstart:L-1,d===H?(k(b,!0),0===b.strm.avail_out?ba:Y):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?T:Z}function q(b,d,e,c,f){this.good_length=b;this.max_lazy=d;this.nice_length=e;this.max_chain=c;this.func=f}function t(){this.strm=null;this.status=
0;this.pending_buf=null;this.wrap=this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=B;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=
-this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*V);this.dyn_dtree=new x.Buf16(2*(2*P+1));this.bl_tree=new x.Buf16(2*(2*N+1));e(this.dyn_ltree);e(this.dyn_dtree);e(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(L+1);this.heap=new x.Buf16(2*Q+1);e(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*Q+1);e(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
-this.lit_bufsize=this.l_buf=0}function v(d){var e;return d&&d.state?(d.total_in=d.total_out=0,d.data_type=W,e=d.state,e.pending=0,e.pending_out=0,0>e.wrap&&(e.wrap=-e.wrap),e.status=e.wrap?da:ca,d.adler=2===e.wrap?0:1,e.last_flush=G,F._tr_init(e),I):b(d,J)}function u(b){var d=v(b);d===I&&(b=b.state,b.window_size=2*b.w_size,e(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=M-1,b.match_available=0,b.ins_h=0);return d}function z(d,e,c,f,g,k){if(!d)return J;var l=1;if(e===K&&(e=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>C||c!==B||8>f||15<f||0>e||9<e||0>k||k>U)return b(d,J);8===f&&(f=9);var m=new t;return d.state=m,m.strm=d,m.wrap=l,m.gzhead=null,m.w_bits=f,m.w_size=1<<m.w_bits,m.w_mask=m.w_size-1,m.hash_bits=g+7,m.hash_size=1<<m.hash_bits,m.hash_mask=m.hash_size-1,m.hash_shift=~~((m.hash_bits+M-1)/M),m.window=new x.Buf8(2*
-m.w_size),m.head=new x.Buf16(m.hash_size),m.prev=new x.Buf16(m.w_size),m.lit_bufsize=1<<g+6,m.pending_buf_size=4*m.lit_bufsize,m.pending_buf=new x.Buf8(m.pending_buf_size),m.d_buf=1*m.lit_bufsize,m.l_buf=3*m.lit_bufsize,m.level=e,m.strategy=k,m.method=c,u(d)}var y,x=c("../utils/common"),F=c("./trees"),E=c("./adler32"),A=c("./crc32"),D=c("./messages"),G=0,H=4,I=0,J=-2,K=-1,O=1,U=4,W=2,B=8,C=9,Q=286,P=30,N=19,V=2*Q+1,L=15,M=3,R=258,X=R+M+1,da=42,ca=113,S=1,Z=2,ba=3,Y=4;y=[new q(0,0,0,0,function(b,d){var e=
-65535;for(e>b.pending_buf_size-5&&(e=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&d===G)return S;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var c=b.block_start+e;if((0===b.strstart||b.strstart>=c)&&(b.lookahead=b.strstart-c,b.strstart=c,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-X&&(k(b,!1),0===b.strm.avail_out))return S}return b.insert=0,d===H?(k(b,!0),0===b.strm.avail_out?ba:Y):(b.strstart>b.block_start&&k(b,!1),S)}),new q(4,4,8,
-4,r),new q(4,5,16,8,r),new q(4,6,32,32,r),new q(4,4,16,16,s),new q(8,16,32,32,s),new q(8,16,128,128,s),new q(8,32,128,256,s),new q(32,128,258,1024,s),new q(32,258,258,4096,s)];d.deflateInit=function(b,d){return z(b,d,B,15,8,0)};d.deflateInit2=z;d.deflateReset=u;d.deflateResetKeep=v;d.deflateSetHeader=function(b,d){return b&&b.state?2!==b.state.wrap?J:(b.state.gzhead=d,I):J};d.deflate=function(d,c){var f,n,q,r;if(!d||!d.state||5<c||0>c)return d?b(d,J):J;if(n=d.state,!d.output||!d.input&&0!==d.avail_in||
+this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*V);this.dyn_dtree=new x.Buf16(2*(2*O+1));this.bl_tree=new x.Buf16(2*(2*N+1));e(this.dyn_ltree);e(this.dyn_dtree);e(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(K+1);this.heap=new x.Buf16(2*Q+1);e(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*Q+1);e(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
+this.lit_bufsize=this.l_buf=0}function v(d){var e;return d&&d.state?(d.total_in=d.total_out=0,d.data_type=W,e=d.state,e.pending=0,e.pending_out=0,0>e.wrap&&(e.wrap=-e.wrap),e.status=e.wrap?da:ca,d.adler=2===e.wrap?0:1,e.last_flush=G,D._tr_init(e),I):b(d,J)}function u(b){var d=v(b);d===I&&(b=b.state,b.window_size=2*b.w_size,e(b.head),b.max_lazy_match=z[b.level].max_lazy,b.good_match=z[b.level].good_length,b.nice_match=z[b.level].nice_length,b.max_chain_length=z[b.level].max_chain,b.strstart=0,b.block_start=
+0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=L-1,b.match_available=0,b.ins_h=0);return d}function y(d,e,c,f,g,k){if(!d)return J;var l=1;if(e===M&&(e=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>E||c!==B||8>f||15<f||0>e||9<e||0>k||k>U)return b(d,J);8===f&&(f=9);var m=new t;return d.state=m,m.strm=d,m.wrap=l,m.gzhead=null,m.w_bits=f,m.w_size=1<<m.w_bits,m.w_mask=m.w_size-1,m.hash_bits=g+7,m.hash_size=1<<m.hash_bits,m.hash_mask=m.hash_size-1,m.hash_shift=~~((m.hash_bits+L-1)/L),m.window=new x.Buf8(2*
+m.w_size),m.head=new x.Buf16(m.hash_size),m.prev=new x.Buf16(m.w_size),m.lit_bufsize=1<<g+6,m.pending_buf_size=4*m.lit_bufsize,m.pending_buf=new x.Buf8(m.pending_buf_size),m.d_buf=1*m.lit_bufsize,m.l_buf=3*m.lit_bufsize,m.level=e,m.strategy=k,m.method=c,u(d)}var z,x=c("../utils/common"),D=c("./trees"),C=c("./adler32"),A=c("./crc32"),F=c("./messages"),G=0,H=4,I=0,J=-2,M=-1,P=1,U=4,W=2,B=8,E=9,Q=286,O=30,N=19,V=2*Q+1,K=15,L=3,R=258,X=R+L+1,da=42,ca=113,T=1,Z=2,ba=3,Y=4;z=[new q(0,0,0,0,function(b,d){var e=
+65535;for(e>b.pending_buf_size-5&&(e=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&d===G)return T;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var c=b.block_start+e;if((0===b.strstart||b.strstart>=c)&&(b.lookahead=b.strstart-c,b.strstart=c,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-X&&(k(b,!1),0===b.strm.avail_out))return T}return b.insert=0,d===H?(k(b,!0),0===b.strm.avail_out?ba:Y):(b.strstart>b.block_start&&k(b,!1),T)}),new q(4,4,8,
+4,r),new q(4,5,16,8,r),new q(4,6,32,32,r),new q(4,4,16,16,s),new q(8,16,32,32,s),new q(8,16,128,128,s),new q(8,32,128,256,s),new q(32,128,258,1024,s),new q(32,258,258,4096,s)];d.deflateInit=function(b,d){return y(b,d,B,15,8,0)};d.deflateInit2=y;d.deflateReset=u;d.deflateResetKeep=v;d.deflateSetHeader=function(b,d){return b&&b.state?2!==b.state.wrap?J:(b.state.gzhead=d,I):J};d.deflate=function(d,c){var f,n,q,r;if(!d||!d.state||5<c||0>c)return d?b(d,J):J;if(n=d.state,!d.output||!d.input&&0!==d.avail_in||
666===n.status&&c!==H)return b(d,0===d.avail_out?-5:J);if(n.strm=d,f=n.last_flush,n.last_flush=c,n.status===da)2===n.wrap?(d.adler=0,l(n,31),l(n,139),l(n,8),n.gzhead?(l(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),l(n,255&n.gzhead.time),l(n,n.gzhead.time>>8&255),l(n,n.gzhead.time>>16&255),l(n,n.gzhead.time>>24&255),l(n,9===n.level?2:2<=n.strategy||2>n.level?4:0),l(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(l(n,255&n.gzhead.extra.length),
l(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(d.adler=A(d.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(l(n,0),l(n,0),l(n,0),l(n,0),l(n,0),l(n,9===n.level?2:2<=n.strategy||2>n.level?4:0),l(n,3),n.status=ca)):(q=B+(n.w_bits-8<<4)<<8,r=2<=n.strategy||2>n.level?0:6>n.level?1:6===n.level?2:3,q|=r<<6,0!==n.strstart&&(q|=32),n.status=ca,m(n,q+(31-q%31)),0!==n.strstart&&(m(n,d.adler>>>16),m(n,65535&d.adler)),d.adler=1);if(69===n.status)if(n.gzhead.extra){for(q=n.pending;n.gzindex<(65535&
n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>q&&(d.adler=A(d.adler,n.pending_buf,n.pending-q,q)),g(d),q=n.pending,n.pending!==n.pending_buf_size));)l(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>q&&(d.adler=A(d.adler,n.pending_buf,n.pending-q,q));n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){q=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>q&&
(d.adler=A(d.adler,n.pending_buf,n.pending-q,q)),g(d),q=n.pending,n.pending===n.pending_buf_size)){r=1;break}r=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0;l(n,r)}while(0!==r);n.gzhead.hcrc&&n.pending>q&&(d.adler=A(d.adler,n.pending_buf,n.pending-q,q));0===r&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){q=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>q&&(d.adler=A(d.adler,n.pending_buf,n.pending-q,q)),g(d),
q=n.pending,n.pending===n.pending_buf_size)){r=1;break}r=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0;l(n,r)}while(0!==r);n.gzhead.hcrc&&n.pending>q&&(d.adler=A(d.adler,n.pending_buf,n.pending-q,q));0===r&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&g(d),n.pending+2<=n.pending_buf_size&&(l(n,255&d.adler),l(n,d.adler>>8&255),d.adler=0,n.status=ca)):n.status=ca),0!==n.pending){if(g(d),0===d.avail_out)return n.last_flush=
--1,I}else if(0===d.avail_in&&(c<<1)-(4<c?9:0)<=(f<<1)-(4<f?9:0)&&c!==H)return b(d,-5);if(666===n.status&&0!==d.avail_in)return b(d,-5);if(0!==d.avail_in||0!==n.lookahead||c!==G&&666!==n.status){var s;if(2===n.strategy)a:{for(var t;;){if(0===n.lookahead&&(p(n),0===n.lookahead)){if(c===G){s=S;break a}break}if(n.match_length=0,t=F._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,t&&(k(n,!1),0===n.strm.avail_out)){s=S;break a}}s=(n.insert=0,c===H?(k(n,!0),0===n.strm.avail_out?ba:Y):n.last_lit&&
-(k(n,!1),0===n.strm.avail_out)?S:Z)}else if(3===n.strategy)a:{var u,v;for(t=n.window;;){if(n.lookahead<=R){if(p(n),n.lookahead<=R&&c===G){s=S;break a}if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=M&&0<n.strstart&&(v=n.strstart-1,u=t[v],u===t[++v]&&u===t[++v]&&u===t[++v])){f=n.strstart+R;do;while(u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&v<f);n.match_length=R-(f-v);n.match_length>n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=
-M?(s=F._tr_tally(n,1,n.match_length-M),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(s=F._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),s&&(k(n,!1),0===n.strm.avail_out)){s=S;break a}}s=(n.insert=0,c===H?(k(n,!0),0===n.strm.avail_out?ba:Y):n.last_lit&&(k(n,!1),0===n.strm.avail_out)?S:Z)}else s=y[n.level].func(n,c);if(s!==ba&&s!==Y||(n.status=666),s===S||s===ba)return 0===d.avail_out&&(n.last_flush=-1),I;if(s===Z&&(1===c?F._tr_align(n):5!==c&&(F._tr_stored_block(n,
+-1,I}else if(0===d.avail_in&&(c<<1)-(4<c?9:0)<=(f<<1)-(4<f?9:0)&&c!==H)return b(d,-5);if(666===n.status&&0!==d.avail_in)return b(d,-5);if(0!==d.avail_in||0!==n.lookahead||c!==G&&666!==n.status){var s;if(2===n.strategy)a:{for(var t;;){if(0===n.lookahead&&(p(n),0===n.lookahead)){if(c===G){s=T;break a}break}if(n.match_length=0,t=D._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,t&&(k(n,!1),0===n.strm.avail_out)){s=T;break a}}s=(n.insert=0,c===H?(k(n,!0),0===n.strm.avail_out?ba:Y):n.last_lit&&
+(k(n,!1),0===n.strm.avail_out)?T:Z)}else if(3===n.strategy)a:{var u,v;for(t=n.window;;){if(n.lookahead<=R){if(p(n),n.lookahead<=R&&c===G){s=T;break a}if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=L&&0<n.strstart&&(v=n.strstart-1,u=t[v],u===t[++v]&&u===t[++v]&&u===t[++v])){f=n.strstart+R;do;while(u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&u===t[++v]&&v<f);n.match_length=R-(f-v);n.match_length>n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=
+L?(s=D._tr_tally(n,1,n.match_length-L),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(s=D._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),s&&(k(n,!1),0===n.strm.avail_out)){s=T;break a}}s=(n.insert=0,c===H?(k(n,!0),0===n.strm.avail_out?ba:Y):n.last_lit&&(k(n,!1),0===n.strm.avail_out)?T:Z)}else s=z[n.level].func(n,c);if(s!==ba&&s!==Y||(n.status=666),s===T||s===ba)return 0===d.avail_out&&(n.last_flush=-1),I;if(s===Z&&(1===c?D._tr_align(n):5!==c&&(D._tr_stored_block(n,
0,0,!1),3===c&&(e(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),g(d),0===d.avail_out))return n.last_flush=-1,I}return c!==H?I:0>=n.wrap?1:(2===n.wrap?(l(n,255&d.adler),l(n,d.adler>>8&255),l(n,d.adler>>16&255),l(n,d.adler>>24&255),l(n,255&d.total_in),l(n,d.total_in>>8&255),l(n,d.total_in>>16&255),l(n,d.total_in>>24&255)):(m(n,d.adler>>>16),m(n,65535&d.adler)),g(d),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?I:1)};d.deflateEnd=function(d){var e;return d&&d.state?(e=d.state.status,
-e!==da&&69!==e&&73!==e&&91!==e&&103!==e&&e!==ca&&666!==e?b(d,J):(d.state=null,e===ca?b(d,-3):I)):J};d.deflateSetDictionary=function(b,d){var c,f,g,k,l,m,n;f=d.length;if(!b||!b.state||(c=b.state,k=c.wrap,2===k||1===k&&c.status!==da||c.lookahead))return J;1===k&&(b.adler=E(b.adler,d,f,0));c.wrap=0;f>=c.w_size&&(0===k&&(e(c.head),c.strstart=0,c.block_start=0,c.insert=0),l=new x.Buf8(c.w_size),x.arraySet(l,d,f-c.w_size,c.w_size,0),d=l,f=c.w_size);l=b.avail_in;m=b.next_in;n=b.input;b.avail_in=f;b.next_in=
-0;b.input=d;for(p(c);c.lookahead>=M;){f=c.strstart;g=c.lookahead-(M-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[f+M-1])&c.hash_mask,c.prev[f&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=f,f++;while(--g);c.strstart=f;c.lookahead=M-1;p(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=M-1,c.match_available=0,b.next_in=m,b.input=n,b.avail_in=l,c.wrap=k,I};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
-"./crc32":7,"./messages":13,"./trees":14}],9:[function(c,f,d){f.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(c,f,d){f.exports=function(b,d){var c,f,l,m,n,p,r,s,q,t,v,u,z,y,x,F,E,A,D,G,H,I,J,K;c=b.state;f=b.next_in;J=b.input;l=f+(b.avail_in-5);m=b.next_out;K=b.output;n=m-(d-b.avail_out);p=m+(b.avail_out-257);r=c.dmax;s=c.wsize;q=c.whave;t=c.wnext;v=c.window;u=c.hold;z=c.bits;y=c.lencode;
-x=c.distcode;F=(1<<c.lenbits)-1;E=(1<<c.distbits)-1;a:do{15>z&&(u+=J[f++]<<z,z+=8,u+=J[f++]<<z,z+=8);A=y[u&F];b:for(;;){if(D=A>>>24,u>>>=D,z-=D,D=A>>>16&255,0===D)K[m++]=65535&A;else{if(!(16&D)){if(0===(64&D)){A=y[(65535&A)+(u&(1<<D)-1)];continue b}if(32&D){c.mode=12;break a}b.msg="invalid literal/length code";c.mode=30;break a}G=65535&A;(D&=15)&&(z<D&&(u+=J[f++]<<z,z+=8),G+=u&(1<<D)-1,u>>>=D,z-=D);15>z&&(u+=J[f++]<<z,z+=8,u+=J[f++]<<z,z+=8);A=x[u&E];c:for(;;){if(D=A>>>24,u>>>=D,z-=D,D=A>>>16&255,
-!(16&D)){if(0===(64&D)){A=x[(65535&A)+(u&(1<<D)-1)];continue c}b.msg="invalid distance code";c.mode=30;break a}if(H=65535&A,D&=15,z<D&&(u+=J[f++]<<z,z+=8,z<D&&(u+=J[f++]<<z,z+=8)),H+=u&(1<<D)-1,H>r){b.msg="invalid distance too far back";c.mode=30;break a}if(u>>>=D,z-=D,D=m-n,H>D){if(D=H-D,D>q&&c.sane){b.msg="invalid distance too far back";c.mode=30;break a}if(A=0,I=v,0===t){if(A+=s-D,D<G){G-=D;do K[m++]=v[A++];while(--D);A=m-H;I=K}}else if(t<D){if(A+=s+t-D,D-=t,D<G){G-=D;do K[m++]=v[A++];while(--D);
-if(A=0,t<G){D=t;G-=D;do K[m++]=v[A++];while(--D);A=m-H;I=K}}}else if(A+=t-D,D<G){G-=D;do K[m++]=v[A++];while(--D);A=m-H;I=K}for(;2<G;)K[m++]=I[A++],K[m++]=I[A++],K[m++]=I[A++],G-=3;G&&(K[m++]=I[A++],1<G&&(K[m++]=I[A++]))}else{A=m-H;do K[m++]=K[A++],K[m++]=K[A++],K[m++]=K[A++],G-=3;while(2<G);G&&(K[m++]=K[A++],1<G&&(K[m++]=K[A++]))}break}}break}}while(f<l&&m<p);G=z>>3;f-=G;z-=G<<3;b.next_in=f;b.next_out=m;b.avail_in=f<l?5+(l-f):5-(f-l);b.avail_out=m<p?257+(p-m):257-(m-p);c.hold=u&(1<<z)-1;c.bits=z}},
+e!==da&&69!==e&&73!==e&&91!==e&&103!==e&&e!==ca&&666!==e?b(d,J):(d.state=null,e===ca?b(d,-3):I)):J};d.deflateSetDictionary=function(b,d){var c,f,g,k,l,m,n;f=d.length;if(!b||!b.state||(c=b.state,k=c.wrap,2===k||1===k&&c.status!==da||c.lookahead))return J;1===k&&(b.adler=C(b.adler,d,f,0));c.wrap=0;f>=c.w_size&&(0===k&&(e(c.head),c.strstart=0,c.block_start=0,c.insert=0),l=new x.Buf8(c.w_size),x.arraySet(l,d,f-c.w_size,c.w_size,0),d=l,f=c.w_size);l=b.avail_in;m=b.next_in;n=b.input;b.avail_in=f;b.next_in=
+0;b.input=d;for(p(c);c.lookahead>=L;){f=c.strstart;g=c.lookahead-(L-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[f+L-1])&c.hash_mask,c.prev[f&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=f,f++;while(--g);c.strstart=f;c.lookahead=L-1;p(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=L-1,c.match_available=0,b.next_in=m,b.input=n,b.avail_in=l,c.wrap=k,I};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
+"./crc32":7,"./messages":13,"./trees":14}],9:[function(c,f,d){f.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(c,f,d){f.exports=function(b,d){var c,f,l,m,n,p,r,s,q,t,v,u,y,z,x,D,C,A,F,G,H,I,J,M;c=b.state;f=b.next_in;J=b.input;l=f+(b.avail_in-5);m=b.next_out;M=b.output;n=m-(d-b.avail_out);p=m+(b.avail_out-257);r=c.dmax;s=c.wsize;q=c.whave;t=c.wnext;v=c.window;u=c.hold;y=c.bits;z=c.lencode;
+x=c.distcode;D=(1<<c.lenbits)-1;C=(1<<c.distbits)-1;a:do{15>y&&(u+=J[f++]<<y,y+=8,u+=J[f++]<<y,y+=8);A=z[u&D];b:for(;;){if(F=A>>>24,u>>>=F,y-=F,F=A>>>16&255,0===F)M[m++]=65535&A;else{if(!(16&F)){if(0===(64&F)){A=z[(65535&A)+(u&(1<<F)-1)];continue b}if(32&F){c.mode=12;break a}b.msg="invalid literal/length code";c.mode=30;break a}G=65535&A;(F&=15)&&(y<F&&(u+=J[f++]<<y,y+=8),G+=u&(1<<F)-1,u>>>=F,y-=F);15>y&&(u+=J[f++]<<y,y+=8,u+=J[f++]<<y,y+=8);A=x[u&C];c:for(;;){if(F=A>>>24,u>>>=F,y-=F,F=A>>>16&255,
+!(16&F)){if(0===(64&F)){A=x[(65535&A)+(u&(1<<F)-1)];continue c}b.msg="invalid distance code";c.mode=30;break a}if(H=65535&A,F&=15,y<F&&(u+=J[f++]<<y,y+=8,y<F&&(u+=J[f++]<<y,y+=8)),H+=u&(1<<F)-1,H>r){b.msg="invalid distance too far back";c.mode=30;break a}if(u>>>=F,y-=F,F=m-n,H>F){if(F=H-F,F>q&&c.sane){b.msg="invalid distance too far back";c.mode=30;break a}if(A=0,I=v,0===t){if(A+=s-F,F<G){G-=F;do M[m++]=v[A++];while(--F);A=m-H;I=M}}else if(t<F){if(A+=s+t-F,F-=t,F<G){G-=F;do M[m++]=v[A++];while(--F);
+if(A=0,t<G){F=t;G-=F;do M[m++]=v[A++];while(--F);A=m-H;I=M}}}else if(A+=t-F,F<G){G-=F;do M[m++]=v[A++];while(--F);A=m-H;I=M}for(;2<G;)M[m++]=I[A++],M[m++]=I[A++],M[m++]=I[A++],G-=3;G&&(M[m++]=I[A++],1<G&&(M[m++]=I[A++]))}else{A=m-H;do M[m++]=M[A++],M[m++]=M[A++],M[m++]=M[A++],G-=3;while(2<G);G&&(M[m++]=M[A++],1<G&&(M[m++]=M[A++]))}break}}break}}while(f<l&&m<p);G=y>>3;f-=G;y-=G<<3;b.next_in=f;b.next_out=m;b.avail_in=f<l?5+(l-f):5-(f-l);b.avail_out=m<p?257+(p-m):257-(m-p);c.hold=u&(1<<y)-1;c.bits=y}},
{}],11:[function(c,f,d){function b(b){return(b>>>24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function e(){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 s.Buf16(320);this.work=
-new s.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function g(b){var d;return b&&b.state?(d=b.state,b.total_in=b.total_out=d.total=0,b.msg="",d.wrap&&(b.adler=1&d.wrap),d.mode=x,d.last=0,d.havedict=0,d.dmax=32768,d.head=null,d.hold=0,d.bits=0,d.lencode=d.lendyn=new s.Buf32(F),d.distcode=d.distdyn=new s.Buf32(E),d.sane=1,d.back=-1,z):y}function k(b){var d;return b&&b.state?(d=b.state,d.wsize=0,d.whave=0,d.wnext=0,g(b)):y}function l(b,d){var e,c;return b&&b.state?(c=b.state,
-0>d?(e=0,d=-d):(e=(d>>4)+1,48>d&&(d&=15)),d&&(8>d||15<d)?y:(null!==c.window&&c.wbits!==d&&(c.window=null),c.wrap=e,c.wbits=d,k(b))):y}function m(b,d){var c,f;return b?(f=new e,b.state=f,f.window=null,c=l(b,d),c!==z&&(b.state=null),c):y}function n(b,d,e,c){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new s.Buf8(b.wsize)),c>=b.wsize?(s.arraySet(b.window,d,e-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>c&&(f=c),s.arraySet(b.window,d,e-
-c,f,b.wnext),c-=f,c?(s.arraySet(b.window,d,e-c,c,0),b.wnext=c,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var p,r,s=c("../utils/common"),q=c("./adler32"),t=c("./crc32"),v=c("./inffast"),u=c("./inftrees"),z=0,y=-2,x=1,F=852,E=592,A=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return m(b,15)};d.inflateInit2=m;d.inflate=function(d,e){var c,f,g,k,l,m,F,B,C,E,P,N,V,L,M,R,X,da,ca,S,Z,ba,Y=0,T=new s.Buf8(4),ia=[16,
-17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!d||!d.state||!d.output||!d.input&&0!==d.avail_in)return y;c=d.state;12===c.mode&&(c.mode=13);l=d.next_out;g=d.output;F=d.avail_out;k=d.next_in;f=d.input;m=d.avail_in;B=c.hold;C=c.bits;E=m;P=F;Z=z;a:for(;;)switch(c.mode){case x:if(0===c.wrap){c.mode=13;break}for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(2&c.wrap&&35615===B){c.check=0;T[0]=255&B;T[1]=B>>>8&255;c.check=t(c.check,T,2,0);C=B=0;c.mode=2;break}if(c.flags=0,c.head&&(c.head.done=!1),
-!(1&c.wrap)||(((255&B)<<8)+(B>>8))%31){d.msg="incorrect header check";c.mode=30;break}if(8!==(15&B)){d.msg="unknown compression method";c.mode=30;break}if(B>>>=4,C-=4,S=(15&B)+8,0===c.wbits)c.wbits=S;else if(S>c.wbits){d.msg="invalid window size";c.mode=30;break}c.dmax=1<<S;d.adler=c.check=1;c.mode=512&B?10:12;C=B=0;break;case 2:for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(c.flags=B,8!==(255&c.flags)){d.msg="unknown compression method";c.mode=30;break}if(57344&c.flags){d.msg="unknown header flags set";
-c.mode=30;break}c.head&&(c.head.text=B>>8&1);512&c.flags&&(T[0]=255&B,T[1]=B>>>8&255,c.check=t(c.check,T,2,0));C=B=0;c.mode=3;case 3:for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}c.head&&(c.head.time=B);512&c.flags&&(T[0]=255&B,T[1]=B>>>8&255,T[2]=B>>>16&255,T[3]=B>>>24&255,c.check=t(c.check,T,4,0));C=B=0;c.mode=4;case 4:for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}c.head&&(c.head.xflags=255&B,c.head.os=B>>8);512&c.flags&&(T[0]=255&B,T[1]=B>>>8&255,c.check=t(c.check,T,2,0));C=B=0;c.mode=
-5;case 5:if(1024&c.flags){for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}c.length=B;c.head&&(c.head.extra_len=B);512&c.flags&&(T[0]=255&B,T[1]=B>>>8&255,c.check=t(c.check,T,2,0));C=B=0}else c.head&&(c.head.extra=null);c.mode=6;case 6:if(1024&c.flags&&(N=c.length,N>m&&(N=m),N&&(c.head&&(S=c.head.extra_len-c.length,c.head.extra||(c.head.extra=Array(c.head.extra_len)),s.arraySet(c.head.extra,f,k,N,S)),512&c.flags&&(c.check=t(c.check,f,N,k)),m-=N,k+=N,c.length-=N),c.length))break a;c.length=0;c.mode=
-7;case 7:if(2048&c.flags){if(0===m)break a;N=0;do S=f[k+N++],c.head&&S&&65536>c.length&&(c.head.name+=String.fromCharCode(S));while(S&&N<m);if(512&c.flags&&(c.check=t(c.check,f,N,k)),m-=N,k+=N,S)break a}else c.head&&(c.head.name=null);c.length=0;c.mode=8;case 8:if(4096&c.flags){if(0===m)break a;N=0;do S=f[k+N++],c.head&&S&&65536>c.length&&(c.head.comment+=String.fromCharCode(S));while(S&&N<m);if(512&c.flags&&(c.check=t(c.check,f,N,k)),m-=N,k+=N,S)break a}else c.head&&(c.head.comment=null);c.mode=
-9;case 9:if(512&c.flags){for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B!==(65535&c.check)){d.msg="header crc mismatch";c.mode=30;break}C=B=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0);d.adler=c.check=0;c.mode=12;break;case 10:for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.adler=c.check=b(B);C=B=0;c.mode=11;case 11:if(0===c.havedict)return d.next_out=l,d.avail_out=F,d.next_in=k,d.avail_in=m,c.hold=B,c.bits=C,2;d.adler=c.check=1;c.mode=12;case 12:if(5===e||6===e)break a;case 13:if(c.last){B>>>=
-7&C;C-=7&C;c.mode=27;break}for(;3>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}switch(c.last=1&B,B>>>=1,C-=1,3&B){case 0:c.mode=14;break;case 1:L=c;if(A){p=new s.Buf32(512);r=new s.Buf32(32);for(R=0;144>R;)L.lens[R++]=8;for(;256>R;)L.lens[R++]=9;for(;280>R;)L.lens[R++]=7;for(;288>R;)L.lens[R++]=8;u(1,L.lens,0,288,p,0,L.work,{bits:9});for(R=0;32>R;)L.lens[R++]=5;u(2,L.lens,0,32,r,0,L.work,{bits:5});A=!1}L.lencode=p;L.lenbits=9;L.distcode=r;L.distbits=5;if(c.mode=20,6===e){B>>>=2;C-=2;break a}break;case 2:c.mode=
-17;break;case 3:d.msg="invalid block type",c.mode=30}B>>>=2;C-=2;break;case 14:B>>>=7&C;for(C-=7&C;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if((65535&B)!==(B>>>16^65535)){d.msg="invalid stored block lengths";c.mode=30;break}if(c.length=65535&B,B=0,C=0,c.mode=15,6===e)break a;case 15:c.mode=16;case 16:if(N=c.length){if(N>m&&(N=m),N>F&&(N=F),0===N)break a;s.arraySet(g,f,k,N,l);m-=N;k+=N;F-=N;l+=N;c.length-=N;break}c.mode=12;break;case 17:for(;14>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(c.nlen=
-(31&B)+257,B>>>=5,C-=5,c.ndist=(31&B)+1,B>>>=5,C-=5,c.ncode=(15&B)+4,B>>>=4,C-=4,286<c.nlen||30<c.ndist){d.msg="too many length or distance symbols";c.mode=30;break}c.have=0;c.mode=18;case 18:for(;c.have<c.ncode;){for(;3>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}c.lens[ia[c.have++]]=7&B;B>>>=3;C-=3}for(;19>c.have;)c.lens[ia[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ba={bits:c.lenbits},Z=u(0,c.lens,0,19,c.lencode,0,c.work,ba),c.lenbits=ba.bits,Z){d.msg="invalid code lengths set";c.mode=30;break}c.have=
-0;c.mode=19;case 19:for(;c.have<c.nlen+c.ndist;){for(;Y=c.lencode[B&(1<<c.lenbits)-1],M=Y>>>24,R=65535&Y,!(M<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(16>R)B>>>=M,C-=M,c.lens[c.have++]=R;else{if(16===R){for(L=M+2;C<L;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B>>>=M,C-=M,0===c.have){d.msg="invalid bit length repeat";c.mode=30;break}S=c.lens[c.have-1];N=3+(3&B);B>>>=2;C-=2}else if(17===R){for(L=M+3;C<L;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=M;C-=M;S=0;N=3+(7&B);B>>>=3;C-=3}else{for(L=
-M+7;C<L;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=M;C-=M;S=0;N=11+(127&B);B>>>=7;C-=7}if(c.have+N>c.nlen+c.ndist){d.msg="invalid bit length repeat";c.mode=30;break}for(;N--;)c.lens[c.have++]=S}}if(30===c.mode)break;if(0===c.lens[256]){d.msg="invalid code -- missing end-of-block";c.mode=30;break}if(c.lenbits=9,ba={bits:c.lenbits},Z=u(1,c.lens,0,c.nlen,c.lencode,0,c.work,ba),c.lenbits=ba.bits,Z){d.msg="invalid literal/lengths set";c.mode=30;break}if(c.distbits=6,c.distcode=c.distdyn,ba={bits:c.distbits},
-Z=u(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ba),c.distbits=ba.bits,Z){d.msg="invalid distances set";c.mode=30;break}if(c.mode=20,6===e)break a;case 20:c.mode=21;case 21:if(6<=m&&258<=F){d.next_out=l;d.avail_out=F;d.next_in=k;d.avail_in=m;c.hold=B;c.bits=C;v(d,P);l=d.next_out;g=d.output;F=d.avail_out;k=d.next_in;f=d.input;m=d.avail_in;B=c.hold;C=c.bits;12===c.mode&&(c.back=-1);break}for(c.back=0;Y=c.lencode[B&(1<<c.lenbits)-1],M=Y>>>24,L=Y>>>16&255,R=65535&Y,!(M<=C);){if(0===m)break a;m--;B+=f[k++]<<
-C;C+=8}if(L&&0===(240&L)){X=M;da=L;for(ca=R;Y=c.lencode[ca+((B&(1<<X+da)-1)>>X)],M=Y>>>24,L=Y>>>16&255,R=65535&Y,!(X+M<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=X;C-=X;c.back+=X}if(B>>>=M,C-=M,c.back+=M,c.length=R,0===L){c.mode=26;break}if(32&L){c.back=-1;c.mode=12;break}if(64&L){d.msg="invalid literal/length code";c.mode=30;break}c.extra=15&L;c.mode=22;case 22:if(c.extra){for(L=c.extra;C<L;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}c.length+=B&(1<<c.extra)-1;B>>>=c.extra;C-=c.extra;c.back+=
-c.extra}c.was=c.length;c.mode=23;case 23:for(;Y=c.distcode[B&(1<<c.distbits)-1],M=Y>>>24,L=Y>>>16&255,R=65535&Y,!(M<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(0===(240&L)){X=M;da=L;for(ca=R;Y=c.distcode[ca+((B&(1<<X+da)-1)>>X)],M=Y>>>24,L=Y>>>16&255,R=65535&Y,!(X+M<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=X;C-=X;c.back+=X}if(B>>>=M,C-=M,c.back+=M,64&L){d.msg="invalid distance code";c.mode=30;break}c.offset=R;c.extra=15&L;c.mode=24;case 24:if(c.extra){for(L=c.extra;C<L;){if(0===m)break a;
-m--;B+=f[k++]<<C;C+=8}c.offset+=B&(1<<c.extra)-1;B>>>=c.extra;C-=c.extra;c.back+=c.extra}if(c.offset>c.dmax){d.msg="invalid distance too far back";c.mode=30;break}c.mode=25;case 25:if(0===F)break a;if(N=P-F,c.offset>N){if(N=c.offset-N,N>c.whave&&c.sane){d.msg="invalid distance too far back";c.mode=30;break}N>c.wnext?(N-=c.wnext,V=c.wsize-N):V=c.wnext-N;N>c.length&&(N=c.length);L=c.window}else L=g,V=l-c.offset,N=c.length;N>F&&(N=F);F-=N;c.length-=N;do g[l++]=L[V++];while(--N);0===c.length&&(c.mode=
-21);break;case 26:if(0===F)break a;g[l++]=c.length;F--;c.mode=21;break;case 27:if(c.wrap){for(;32>C;){if(0===m)break a;m--;B|=f[k++]<<C;C+=8}if(P-=F,d.total_out+=P,c.total+=P,P&&(d.adler=c.check=c.flags?t(c.check,g,P,l-P):q(c.check,g,P,l-P)),P=F,(c.flags?B:b(B))!==c.check){d.msg="incorrect data check";c.mode=30;break}C=B=0}c.mode=28;case 28:if(c.wrap&&c.flags){for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B!==(4294967295&c.total)){d.msg="incorrect length check";c.mode=30;break}C=B=0}c.mode=
-29;case 29:Z=1;break a;case 30:Z=-3;break a;case 31:return-4;default:return y}return d.next_out=l,d.avail_out=F,d.next_in=k,d.avail_in=m,c.hold=B,c.bits=C,(c.wsize||P!==d.avail_out&&30>c.mode&&(27>c.mode||4!==e))&&n(d,d.output,d.next_out,P-d.avail_out)?(c.mode=31,-4):(E-=d.avail_in,P-=d.avail_out,d.total_in+=E,d.total_out+=P,c.total+=P,c.wrap&&P&&(d.adler=c.check=c.flags?t(c.check,g,P,d.next_out-P):q(c.check,g,P,d.next_out-P)),d.data_type=c.bits+(c.last?64:0)+(12===c.mode?128:0)+(20===c.mode||15===
-c.mode?256:0),(0===E&&0===P||4===e)&&Z===z&&(Z=-5),Z)};d.inflateEnd=function(b){if(!b||!b.state)return y;var d=b.state;return d.window&&(d.window=null),b.state=null,z};d.inflateGetHeader=function(b,d){var e;return b&&b.state?(e=b.state,0===(2&e.wrap)?y:(e.head=d,d.done=!1,z)):y};d.inflateSetDictionary=function(b,d){var e,c,f=d.length;return b&&b.state?(e=b.state,0!==e.wrap&&11!==e.mode?y:11===e.mode&&(c=1,c=q(c,d,f,0),c!==e.check)?-3:n(b,d,f,f)?(e.mode=31,-4):(e.havedict=1,z)):y};d.inflateInfo="pako inflate (from Nodeca project)"},
+new s.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function g(b){var d;return b&&b.state?(d=b.state,b.total_in=b.total_out=d.total=0,b.msg="",d.wrap&&(b.adler=1&d.wrap),d.mode=x,d.last=0,d.havedict=0,d.dmax=32768,d.head=null,d.hold=0,d.bits=0,d.lencode=d.lendyn=new s.Buf32(D),d.distcode=d.distdyn=new s.Buf32(C),d.sane=1,d.back=-1,y):z}function k(b){var d;return b&&b.state?(d=b.state,d.wsize=0,d.whave=0,d.wnext=0,g(b)):z}function l(b,d){var e,c;return b&&b.state?(c=b.state,
+0>d?(e=0,d=-d):(e=(d>>4)+1,48>d&&(d&=15)),d&&(8>d||15<d)?z:(null!==c.window&&c.wbits!==d&&(c.window=null),c.wrap=e,c.wbits=d,k(b))):z}function m(b,d){var c,f;return b?(f=new e,b.state=f,f.window=null,c=l(b,d),c!==y&&(b.state=null),c):z}function n(b,d,e,c){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new s.Buf8(b.wsize)),c>=b.wsize?(s.arraySet(b.window,d,e-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>c&&(f=c),s.arraySet(b.window,d,e-
+c,f,b.wnext),c-=f,c?(s.arraySet(b.window,d,e-c,c,0),b.wnext=c,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var p,r,s=c("../utils/common"),q=c("./adler32"),t=c("./crc32"),v=c("./inffast"),u=c("./inftrees"),y=0,z=-2,x=1,D=852,C=592,A=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return m(b,15)};d.inflateInit2=m;d.inflate=function(d,e){var c,f,g,k,l,m,D,B,E,C,O,N,V,K,L,R,X,da,ca,T,Z,ba,Y=0,S=new s.Buf8(4),ia=[16,
+17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!d||!d.state||!d.output||!d.input&&0!==d.avail_in)return z;c=d.state;12===c.mode&&(c.mode=13);l=d.next_out;g=d.output;D=d.avail_out;k=d.next_in;f=d.input;m=d.avail_in;B=c.hold;E=c.bits;C=m;O=D;Z=y;a:for(;;)switch(c.mode){case x:if(0===c.wrap){c.mode=13;break}for(;16>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(2&c.wrap&&35615===B){c.check=0;S[0]=255&B;S[1]=B>>>8&255;c.check=t(c.check,S,2,0);E=B=0;c.mode=2;break}if(c.flags=0,c.head&&(c.head.done=!1),
+!(1&c.wrap)||(((255&B)<<8)+(B>>8))%31){d.msg="incorrect header check";c.mode=30;break}if(8!==(15&B)){d.msg="unknown compression method";c.mode=30;break}if(B>>>=4,E-=4,T=(15&B)+8,0===c.wbits)c.wbits=T;else if(T>c.wbits){d.msg="invalid window size";c.mode=30;break}c.dmax=1<<T;d.adler=c.check=1;c.mode=512&B?10:12;E=B=0;break;case 2:for(;16>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(c.flags=B,8!==(255&c.flags)){d.msg="unknown compression method";c.mode=30;break}if(57344&c.flags){d.msg="unknown header flags set";
+c.mode=30;break}c.head&&(c.head.text=B>>8&1);512&c.flags&&(S[0]=255&B,S[1]=B>>>8&255,c.check=t(c.check,S,2,0));E=B=0;c.mode=3;case 3:for(;32>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}c.head&&(c.head.time=B);512&c.flags&&(S[0]=255&B,S[1]=B>>>8&255,S[2]=B>>>16&255,S[3]=B>>>24&255,c.check=t(c.check,S,4,0));E=B=0;c.mode=4;case 4:for(;16>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}c.head&&(c.head.xflags=255&B,c.head.os=B>>8);512&c.flags&&(S[0]=255&B,S[1]=B>>>8&255,c.check=t(c.check,S,2,0));E=B=0;c.mode=
+5;case 5:if(1024&c.flags){for(;16>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}c.length=B;c.head&&(c.head.extra_len=B);512&c.flags&&(S[0]=255&B,S[1]=B>>>8&255,c.check=t(c.check,S,2,0));E=B=0}else c.head&&(c.head.extra=null);c.mode=6;case 6:if(1024&c.flags&&(N=c.length,N>m&&(N=m),N&&(c.head&&(T=c.head.extra_len-c.length,c.head.extra||(c.head.extra=Array(c.head.extra_len)),s.arraySet(c.head.extra,f,k,N,T)),512&c.flags&&(c.check=t(c.check,f,N,k)),m-=N,k+=N,c.length-=N),c.length))break a;c.length=0;c.mode=
+7;case 7:if(2048&c.flags){if(0===m)break a;N=0;do T=f[k+N++],c.head&&T&&65536>c.length&&(c.head.name+=String.fromCharCode(T));while(T&&N<m);if(512&c.flags&&(c.check=t(c.check,f,N,k)),m-=N,k+=N,T)break a}else c.head&&(c.head.name=null);c.length=0;c.mode=8;case 8:if(4096&c.flags){if(0===m)break a;N=0;do T=f[k+N++],c.head&&T&&65536>c.length&&(c.head.comment+=String.fromCharCode(T));while(T&&N<m);if(512&c.flags&&(c.check=t(c.check,f,N,k)),m-=N,k+=N,T)break a}else c.head&&(c.head.comment=null);c.mode=
+9;case 9:if(512&c.flags){for(;16>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(B!==(65535&c.check)){d.msg="header crc mismatch";c.mode=30;break}E=B=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0);d.adler=c.check=0;c.mode=12;break;case 10:for(;32>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}d.adler=c.check=b(B);E=B=0;c.mode=11;case 11:if(0===c.havedict)return d.next_out=l,d.avail_out=D,d.next_in=k,d.avail_in=m,c.hold=B,c.bits=E,2;d.adler=c.check=1;c.mode=12;case 12:if(5===e||6===e)break a;case 13:if(c.last){B>>>=
+7&E;E-=7&E;c.mode=27;break}for(;3>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}switch(c.last=1&B,B>>>=1,E-=1,3&B){case 0:c.mode=14;break;case 1:K=c;if(A){p=new s.Buf32(512);r=new s.Buf32(32);for(R=0;144>R;)K.lens[R++]=8;for(;256>R;)K.lens[R++]=9;for(;280>R;)K.lens[R++]=7;for(;288>R;)K.lens[R++]=8;u(1,K.lens,0,288,p,0,K.work,{bits:9});for(R=0;32>R;)K.lens[R++]=5;u(2,K.lens,0,32,r,0,K.work,{bits:5});A=!1}K.lencode=p;K.lenbits=9;K.distcode=r;K.distbits=5;if(c.mode=20,6===e){B>>>=2;E-=2;break a}break;case 2:c.mode=
+17;break;case 3:d.msg="invalid block type",c.mode=30}B>>>=2;E-=2;break;case 14:B>>>=7&E;for(E-=7&E;32>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if((65535&B)!==(B>>>16^65535)){d.msg="invalid stored block lengths";c.mode=30;break}if(c.length=65535&B,B=0,E=0,c.mode=15,6===e)break a;case 15:c.mode=16;case 16:if(N=c.length){if(N>m&&(N=m),N>D&&(N=D),0===N)break a;s.arraySet(g,f,k,N,l);m-=N;k+=N;D-=N;l+=N;c.length-=N;break}c.mode=12;break;case 17:for(;14>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(c.nlen=
+(31&B)+257,B>>>=5,E-=5,c.ndist=(31&B)+1,B>>>=5,E-=5,c.ncode=(15&B)+4,B>>>=4,E-=4,286<c.nlen||30<c.ndist){d.msg="too many length or distance symbols";c.mode=30;break}c.have=0;c.mode=18;case 18:for(;c.have<c.ncode;){for(;3>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}c.lens[ia[c.have++]]=7&B;B>>>=3;E-=3}for(;19>c.have;)c.lens[ia[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ba={bits:c.lenbits},Z=u(0,c.lens,0,19,c.lencode,0,c.work,ba),c.lenbits=ba.bits,Z){d.msg="invalid code lengths set";c.mode=30;break}c.have=
+0;c.mode=19;case 19:for(;c.have<c.nlen+c.ndist;){for(;Y=c.lencode[B&(1<<c.lenbits)-1],L=Y>>>24,R=65535&Y,!(L<=E);){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(16>R)B>>>=L,E-=L,c.lens[c.have++]=R;else{if(16===R){for(K=L+2;E<K;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(B>>>=L,E-=L,0===c.have){d.msg="invalid bit length repeat";c.mode=30;break}T=c.lens[c.have-1];N=3+(3&B);B>>>=2;E-=2}else if(17===R){for(K=L+3;E<K;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}B>>>=L;E-=L;T=0;N=3+(7&B);B>>>=3;E-=3}else{for(K=
+L+7;E<K;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}B>>>=L;E-=L;T=0;N=11+(127&B);B>>>=7;E-=7}if(c.have+N>c.nlen+c.ndist){d.msg="invalid bit length repeat";c.mode=30;break}for(;N--;)c.lens[c.have++]=T}}if(30===c.mode)break;if(0===c.lens[256]){d.msg="invalid code -- missing end-of-block";c.mode=30;break}if(c.lenbits=9,ba={bits:c.lenbits},Z=u(1,c.lens,0,c.nlen,c.lencode,0,c.work,ba),c.lenbits=ba.bits,Z){d.msg="invalid literal/lengths set";c.mode=30;break}if(c.distbits=6,c.distcode=c.distdyn,ba={bits:c.distbits},
+Z=u(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ba),c.distbits=ba.bits,Z){d.msg="invalid distances set";c.mode=30;break}if(c.mode=20,6===e)break a;case 20:c.mode=21;case 21:if(6<=m&&258<=D){d.next_out=l;d.avail_out=D;d.next_in=k;d.avail_in=m;c.hold=B;c.bits=E;v(d,O);l=d.next_out;g=d.output;D=d.avail_out;k=d.next_in;f=d.input;m=d.avail_in;B=c.hold;E=c.bits;12===c.mode&&(c.back=-1);break}for(c.back=0;Y=c.lencode[B&(1<<c.lenbits)-1],L=Y>>>24,K=Y>>>16&255,R=65535&Y,!(L<=E);){if(0===m)break a;m--;B+=f[k++]<<
+E;E+=8}if(K&&0===(240&K)){X=L;da=K;for(ca=R;Y=c.lencode[ca+((B&(1<<X+da)-1)>>X)],L=Y>>>24,K=Y>>>16&255,R=65535&Y,!(X+L<=E);){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}B>>>=X;E-=X;c.back+=X}if(B>>>=L,E-=L,c.back+=L,c.length=R,0===K){c.mode=26;break}if(32&K){c.back=-1;c.mode=12;break}if(64&K){d.msg="invalid literal/length code";c.mode=30;break}c.extra=15&K;c.mode=22;case 22:if(c.extra){for(K=c.extra;E<K;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}c.length+=B&(1<<c.extra)-1;B>>>=c.extra;E-=c.extra;c.back+=
+c.extra}c.was=c.length;c.mode=23;case 23:for(;Y=c.distcode[B&(1<<c.distbits)-1],L=Y>>>24,K=Y>>>16&255,R=65535&Y,!(L<=E);){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(0===(240&K)){X=L;da=K;for(ca=R;Y=c.distcode[ca+((B&(1<<X+da)-1)>>X)],L=Y>>>24,K=Y>>>16&255,R=65535&Y,!(X+L<=E);){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}B>>>=X;E-=X;c.back+=X}if(B>>>=L,E-=L,c.back+=L,64&K){d.msg="invalid distance code";c.mode=30;break}c.offset=R;c.extra=15&K;c.mode=24;case 24:if(c.extra){for(K=c.extra;E<K;){if(0===m)break a;
+m--;B+=f[k++]<<E;E+=8}c.offset+=B&(1<<c.extra)-1;B>>>=c.extra;E-=c.extra;c.back+=c.extra}if(c.offset>c.dmax){d.msg="invalid distance too far back";c.mode=30;break}c.mode=25;case 25:if(0===D)break a;if(N=O-D,c.offset>N){if(N=c.offset-N,N>c.whave&&c.sane){d.msg="invalid distance too far back";c.mode=30;break}N>c.wnext?(N-=c.wnext,V=c.wsize-N):V=c.wnext-N;N>c.length&&(N=c.length);K=c.window}else K=g,V=l-c.offset,N=c.length;N>D&&(N=D);D-=N;c.length-=N;do g[l++]=K[V++];while(--N);0===c.length&&(c.mode=
+21);break;case 26:if(0===D)break a;g[l++]=c.length;D--;c.mode=21;break;case 27:if(c.wrap){for(;32>E;){if(0===m)break a;m--;B|=f[k++]<<E;E+=8}if(O-=D,d.total_out+=O,c.total+=O,O&&(d.adler=c.check=c.flags?t(c.check,g,O,l-O):q(c.check,g,O,l-O)),O=D,(c.flags?B:b(B))!==c.check){d.msg="incorrect data check";c.mode=30;break}E=B=0}c.mode=28;case 28:if(c.wrap&&c.flags){for(;32>E;){if(0===m)break a;m--;B+=f[k++]<<E;E+=8}if(B!==(4294967295&c.total)){d.msg="incorrect length check";c.mode=30;break}E=B=0}c.mode=
+29;case 29:Z=1;break a;case 30:Z=-3;break a;case 31:return-4;default:return z}return d.next_out=l,d.avail_out=D,d.next_in=k,d.avail_in=m,c.hold=B,c.bits=E,(c.wsize||O!==d.avail_out&&30>c.mode&&(27>c.mode||4!==e))&&n(d,d.output,d.next_out,O-d.avail_out)?(c.mode=31,-4):(C-=d.avail_in,O-=d.avail_out,d.total_in+=C,d.total_out+=O,c.total+=O,c.wrap&&O&&(d.adler=c.check=c.flags?t(c.check,g,O,d.next_out-O):q(c.check,g,O,d.next_out-O)),d.data_type=c.bits+(c.last?64:0)+(12===c.mode?128:0)+(20===c.mode||15===
+c.mode?256:0),(0===C&&0===O||4===e)&&Z===y&&(Z=-5),Z)};d.inflateEnd=function(b){if(!b||!b.state)return z;var d=b.state;return d.window&&(d.window=null),b.state=null,y};d.inflateGetHeader=function(b,d){var e;return b&&b.state?(e=b.state,0===(2&e.wrap)?z:(e.head=d,d.done=!1,y)):z};d.inflateSetDictionary=function(b,d){var e,c,f=d.length;return b&&b.state?(e=b.state,0!==e.wrap&&11!==e.mode?z:11===e.mode&&(c=1,c=q(c,d,f,0),c!==e.check)?-3:n(b,d,f,f)?(e.mode=31,-4):(e.havedict=1,y)):z};d.inflateInfo="pako inflate (from Nodeca project)"},
{"../utils/common":3,"./adler32":5,"./crc32":7,"./inffast":10,"./inftrees":12}],12:[function(c,f,d){var b=c("../utils/common"),e=[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],k=[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],l=[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];f.exports=function(d,c,f,r,s,q,t,v){var u,z,y,x,F,E,A,D;x=v.bits;for(var G=0,H=0,I=0,J=0,K=0,O=0,U=0,W=0,B=0,C=null,Q=0,P=new b.Buf16(16),O=new b.Buf16(16),N=null,V=0,G=0;15>=G;G++)P[G]=0;for(H=0;H<r;H++)P[c[f+H]]++;K=x;for(J=15;1<=J&&0===P[J];J--);if(K>J&&(K=J),0===J)return s[q++]=20971520,s[q++]=20971520,v.bits=1,0;for(I=1;I<J&&0===P[I];I++);K<I&&(K=I);for(G=u=1;15>=G;G++)if(u<<=1,u-=P[G],0>u)return-1;if(0<u&&(0===d||1!==J))return-1;O[1]=0;for(G=1;15>G;G++)O[G+
-1]=O[G]+P[G];for(H=0;H<r;H++)0!==c[f+H]&&(t[O[c[f+H]]++]=H);if(0===d?(C=N=t,F=19):1===d?(C=e,Q-=257,N=g,V-=257,F=256):(C=k,N=l,F=-1),B=0,H=0,G=I,x=q,O=K,U=0,y=-1,W=1<<K,r=W-1,1===d&&852<W||2===d&&592<W)return 1;for(var L=0;;){L++;E=G-U;t[H]<F?(A=0,D=t[H]):t[H]>F?(A=N[V+t[H]],D=C[Q+t[H]]):(A=96,D=0);u=1<<G-U;I=z=1<<O;do z-=u,s[x+(B>>U)+z]=E<<24|A<<16|D|0;while(0!==z);for(u=1<<G-1;B&u;)u>>=1;if(0!==u?(B&=u-1,B+=u):B=0,H++,0===--P[G]){if(G===J)break;G=c[f+t[H]]}if(G>K&&(B&r)!==y){0===U&&(U=K);x+=I;O=
-G-U;for(u=1<<O;O+U<J&&(u-=P[O+U],!(0>=u));)O++,u<<=1;if(W+=1<<O,1===d&&852<W||2===d&&592<W)return 1;y=B&r;s[y]=K<<24|O<<16|x-q|0}}return 0!==B&&(s[x+B]=G-U<<24|4194304),v.bits=K,0}},{"../utils/common":3}],13:[function(c,f,d){f.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(c,f,d){function b(b){for(var d=b.length;0<=--d;)b[d]=0}function e(b,d,e,c,
+25,25,26,26,27,27,28,28,29,29,64,64];f.exports=function(d,c,f,r,s,q,t,v){var u,y,z,x,D,C,A,F;x=v.bits;for(var G=0,H=0,I=0,J=0,M=0,P=0,U=0,W=0,B=0,E=null,Q=0,O=new b.Buf16(16),P=new b.Buf16(16),N=null,V=0,G=0;15>=G;G++)O[G]=0;for(H=0;H<r;H++)O[c[f+H]]++;M=x;for(J=15;1<=J&&0===O[J];J--);if(M>J&&(M=J),0===J)return s[q++]=20971520,s[q++]=20971520,v.bits=1,0;for(I=1;I<J&&0===O[I];I++);M<I&&(M=I);for(G=u=1;15>=G;G++)if(u<<=1,u-=O[G],0>u)return-1;if(0<u&&(0===d||1!==J))return-1;P[1]=0;for(G=1;15>G;G++)P[G+
+1]=P[G]+O[G];for(H=0;H<r;H++)0!==c[f+H]&&(t[P[c[f+H]]++]=H);if(0===d?(E=N=t,D=19):1===d?(E=e,Q-=257,N=g,V-=257,D=256):(E=k,N=l,D=-1),B=0,H=0,G=I,x=q,P=M,U=0,z=-1,W=1<<M,r=W-1,1===d&&852<W||2===d&&592<W)return 1;for(var K=0;;){K++;C=G-U;t[H]<D?(A=0,F=t[H]):t[H]>D?(A=N[V+t[H]],F=E[Q+t[H]]):(A=96,F=0);u=1<<G-U;I=y=1<<P;do y-=u,s[x+(B>>U)+y]=C<<24|A<<16|F|0;while(0!==y);for(u=1<<G-1;B&u;)u>>=1;if(0!==u?(B&=u-1,B+=u):B=0,H++,0===--O[G]){if(G===J)break;G=c[f+t[H]]}if(G>M&&(B&r)!==z){0===U&&(U=M);x+=I;P=
+G-U;for(u=1<<P;P+U<J&&(u-=O[P+U],!(0>=u));)P++,u<<=1;if(W+=1<<P,1===d&&852<W||2===d&&592<W)return 1;z=B&r;s[z]=M<<24|P<<16|x-q|0}}return 0!==B&&(s[x+B]=G-U<<24|4194304),v.bits=M,0}},{"../utils/common":3}],13:[function(c,f,d){f.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(c,f,d){function b(b){for(var d=b.length;0<=--d;)b[d]=0}function e(b,d,e,c,
f){this.static_tree=b;this.extra_bits=d;this.extra_base=e;this.elems=c;this.max_length=f;this.has_stree=b&&b.length}function g(b,d){this.dyn_tree=b;this.max_code=0;this.stat_desc=d}function k(b,d){b.pending_buf[b.pending++]=255&d;b.pending_buf[b.pending++]=d>>>8&255}function l(b,d,e){b.bi_valid>W-e?(b.bi_buf|=d<<b.bi_valid&65535,k(b,b.bi_buf),b.bi_buf=d>>W-b.bi_valid,b.bi_valid+=e-W):(b.bi_buf|=d<<b.bi_valid&65535,b.bi_valid+=e)}function m(b,d,e){l(b,e[2*d],e[2*d+1])}function n(b,d){var e=0;do e|=
-1&b,b>>>=1,e<<=1;while(0<--d);return e>>>1}function p(b,d,e){var c,f=Array(U+1),g=0;for(c=1;c<=U;c++)f[c]=g=g+e[c-1]<<1;for(e=0;e<=d;e++)c=b[2*e+1],0!==c&&(b[2*e]=n(f[c]++,c))}function r(b){var d;for(d=0;d<I;d++)b.dyn_ltree[2*d]=0;for(d=0;d<J;d++)b.dyn_dtree[2*d]=0;for(d=0;d<K;d++)b.bl_tree[2*d]=0;b.dyn_ltree[2*B]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function s(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function q(b,d,e,c){var f=
-2*d,g=2*e;return b[f]<b[g]||b[f]===b[g]&&c[d]<=c[e]}function t(b,d,e){for(var c=b.heap[e],f=e<<1;f<=b.heap_len&&(f<b.heap_len&&q(d,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(d,c,b.heap[f],b.depth));)b.heap[e]=b.heap[f],e=f,f<<=1;b.heap[e]=c}function v(b,d,e){var c,f,g,k,n=0;if(0!==b.last_lit){do c=b.pending_buf[b.d_buf+2*n]<<8|b.pending_buf[b.d_buf+2*n+1],f=b.pending_buf[b.l_buf+n],n++,0===c?m(b,f,d):(g=ca[f],m(b,g+H+1,d),k=N[g],0!==k&&(f-=S[g],l(b,f,k)),c--,g=256>c?da[c]:da[256+(c>>>7)],m(b,g,e),k=V[g],
-0!==k&&(c-=Z[g],l(b,c,k)));while(n<b.last_lit)}m(b,B,d)}function u(b,d){var e,c,f,g=d.dyn_tree;c=d.stat_desc.static_tree;var k=d.stat_desc.has_stree,l=d.stat_desc.elems,m=-1;b.heap_len=0;b.heap_max=O;for(e=0;e<l;e++)0!==g[2*e]?(b.heap[++b.heap_len]=m=e,b.depth[e]=0):g[2*e+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>m?++m:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=c[2*f+1]);d.max_code=m;for(e=b.heap_len>>1;1<=e;e--)t(b,g,e);f=l;do e=b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),
-c=b.heap[1],b.heap[--b.heap_max]=e,b.heap[--b.heap_max]=c,g[2*f]=g[2*e]+g[2*c],b.depth[f]=(b.depth[e]>=b.depth[c]?b.depth[e]:b.depth[c])+1,g[2*e+1]=g[2*c+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var n,q,k=d.dyn_tree,l=d.max_code,r=d.stat_desc.static_tree,s=d.stat_desc.has_stree,u=d.stat_desc.extra_bits,v=d.stat_desc.extra_base,z=d.stat_desc.max_length,x=0;for(c=0;c<=U;c++)b.bl_count[c]=0;k[2*b.heap[b.heap_max]+1]=0;for(e=b.heap_max+1;e<O;e++)f=b.heap[e],c=k[2*
-k[2*f+1]+1]+1,c>z&&(c=z,x++),k[2*f+1]=c,f>l||(b.bl_count[c]++,n=0,f>=v&&(n=u[f-v]),q=k[2*f],b.opt_len+=q*(c+n),s&&(b.static_len+=q*(r[2*f+1]+n)));if(0!==x){do{for(c=z-1;0===b.bl_count[c];)c--;b.bl_count[c]--;b.bl_count[c+1]+=2;b.bl_count[z]--;x-=2}while(0<x);for(c=z;0!==c;c--)for(f=b.bl_count[c];0!==f;)n=b.heap[--e],n>l||(k[2*n+1]!==c&&(b.opt_len+=(c-k[2*n+1])*k[2*n],k[2*n+1]=c),f--)}p(g,m,b.bl_count)}function z(b,d,e){var c,f,g=-1,k=d[1],l=0,m=7,n=4;0===k&&(m=138,n=3);d[2*(e+1)+1]=65535;for(c=0;c<=
-e;c++)f=k,k=d[2*(c+1)+1],++l<m&&f===k||(l<n?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*C]++):10>=l?b.bl_tree[2*Q]++:b.bl_tree[2*P]++,l=0,g=f,0===k?(m=138,n=3):f===k?(m=6,n=3):(m=7,n=4))}function y(b,d,e){var c,f,g=-1,k=d[1],n=0,q=7,r=4;0===k&&(q=138,r=3);for(c=0;c<=e;c++)if(f=k,k=d[2*(c+1)+1],!(++n<q&&f===k)){if(n<r){do m(b,f,b.bl_tree);while(0!==--n)}else 0!==f?(f!==g&&(m(b,f,b.bl_tree),n--),m(b,C,b.bl_tree),l(b,n-3,2)):10>=n?(m(b,Q,b.bl_tree),l(b,n-3,3)):(m(b,P,b.bl_tree),l(b,
-n-11,7));n=0;g=f;0===k?(q=138,r=3):f===k?(q=6,r=3):(q=7,r=4)}}function x(b){var d,e=4093624447;for(d=0;31>=d;d++,e>>>=1)if(1&e&&0!==b.dyn_ltree[2*d])return A;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return D;for(d=32;d<H;d++)if(0!==b.dyn_ltree[2*d])return D;return A}function F(b,d,e,c){l(b,(G<<1)+(c?1:0),3);s(b);k(b,e);k(b,~e);E.arraySet(b.pending_buf,b.window,d,e,b.pending);b.pending+=e}var E=c("../utils/common"),A=0,D=1,G=0,H=256,I=H+1+29,J=30,K=19,O=2*I+1,U=15,W=16,B=256,
-C=16,Q=17,P=18,N=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],V=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],L=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],M=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],R=Array(2*(I+2));b(R);var X=Array(2*J);b(X);var da=Array(512);b(da);var ca=Array(256);b(ca);var S=Array(29);b(S);var Z=Array(J);b(Z);var ba,Y,T,ia=!1;d._tr_init=function(b){if(!ia){var d,c,f,k=Array(U+1);for(f=c=0;28>f;f++){S[f]=c;for(d=0;d<1<<N[f];d++)ca[c++]=
-f}ca[c-1]=f;for(f=c=0;16>f;f++){Z[f]=c;for(d=0;d<1<<V[f];d++)da[c++]=f}for(c>>=7;f<J;f++){Z[f]=c<<7;for(d=0;d<1<<V[f]-7;d++)da[256+c++]=f}for(d=0;d<=U;d++)k[d]=0;for(d=0;143>=d;)R[2*d+1]=8,d++,k[8]++;for(;255>=d;)R[2*d+1]=9,d++,k[9]++;for(;279>=d;)R[2*d+1]=7,d++,k[7]++;for(;287>=d;)R[2*d+1]=8,d++,k[8]++;p(R,I+1,k);for(d=0;d<J;d++)X[2*d+1]=5,X[2*d]=n(d,5);ba=new e(R,N,H+1,I,U);Y=new e(X,V,0,J,U);T=new e([],L,0,K,7);ia=!0}b.l_desc=new g(b.dyn_ltree,ba);b.d_desc=new g(b.dyn_dtree,Y);b.bl_desc=new g(b.bl_tree,
-T);b.bi_buf=0;b.bi_valid=0;r(b)};d._tr_stored_block=F;d._tr_flush_block=function(b,d,e,c){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));u(b,b.l_desc);u(b,b.d_desc);z(b,b.dyn_ltree,b.l_desc.max_code);z(b,b.dyn_dtree,b.d_desc.max_code);u(b,b.bl_desc);for(k=K-1;3<=k&&0===b.bl_tree[2*M[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=e+5;if(e+4<=f&&-1!==d)F(b,d,e,c);else if(4===b.strategy||g===f)l(b,2+(c?1:0),3),v(b,R,X);
-else{l(b,4+(c?1:0),3);d=b.l_desc.max_code+1;e=b.d_desc.max_code+1;k+=1;l(b,d-257,5);l(b,e-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*M[f]+1],3);y(b,b.dyn_ltree,d-1);y(b,b.dyn_dtree,e-1);v(b,b.dyn_ltree,b.dyn_dtree)}r(b);c&&s(b)};d._tr_tally=function(b,d,e){return b.pending_buf[b.d_buf+2*b.last_lit]=d>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&d,b.pending_buf[b.l_buf+b.last_lit]=255&e,b.last_lit++,0===d?b.dyn_ltree[2*e]++:(b.matches++,d--,b.dyn_ltree[2*(ca[e]+H+1)]++,b.dyn_dtree[2*(256>
+1&b,b>>>=1,e<<=1;while(0<--d);return e>>>1}function p(b,d,e){var c,f=Array(U+1),g=0;for(c=1;c<=U;c++)f[c]=g=g+e[c-1]<<1;for(e=0;e<=d;e++)c=b[2*e+1],0!==c&&(b[2*e]=n(f[c]++,c))}function r(b){var d;for(d=0;d<I;d++)b.dyn_ltree[2*d]=0;for(d=0;d<J;d++)b.dyn_dtree[2*d]=0;for(d=0;d<M;d++)b.bl_tree[2*d]=0;b.dyn_ltree[2*B]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function s(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function q(b,d,e,c){var f=
+2*d,g=2*e;return b[f]<b[g]||b[f]===b[g]&&c[d]<=c[e]}function t(b,d,e){for(var c=b.heap[e],f=e<<1;f<=b.heap_len&&(f<b.heap_len&&q(d,b.heap[f+1],b.heap[f],b.depth)&&f++,!q(d,c,b.heap[f],b.depth));)b.heap[e]=b.heap[f],e=f,f<<=1;b.heap[e]=c}function v(b,d,e){var c,f,g,k,n=0;if(0!==b.last_lit){do c=b.pending_buf[b.d_buf+2*n]<<8|b.pending_buf[b.d_buf+2*n+1],f=b.pending_buf[b.l_buf+n],n++,0===c?m(b,f,d):(g=ca[f],m(b,g+H+1,d),k=N[g],0!==k&&(f-=T[g],l(b,f,k)),c--,g=256>c?da[c]:da[256+(c>>>7)],m(b,g,e),k=V[g],
+0!==k&&(c-=Z[g],l(b,c,k)));while(n<b.last_lit)}m(b,B,d)}function u(b,d){var e,c,f,g=d.dyn_tree;c=d.stat_desc.static_tree;var k=d.stat_desc.has_stree,l=d.stat_desc.elems,m=-1;b.heap_len=0;b.heap_max=P;for(e=0;e<l;e++)0!==g[2*e]?(b.heap[++b.heap_len]=m=e,b.depth[e]=0):g[2*e+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>m?++m:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=c[2*f+1]);d.max_code=m;for(e=b.heap_len>>1;1<=e;e--)t(b,g,e);f=l;do e=b.heap[1],b.heap[1]=b.heap[b.heap_len--],t(b,g,1),
+c=b.heap[1],b.heap[--b.heap_max]=e,b.heap[--b.heap_max]=c,g[2*f]=g[2*e]+g[2*c],b.depth[f]=(b.depth[e]>=b.depth[c]?b.depth[e]:b.depth[c])+1,g[2*e+1]=g[2*c+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var n,q,k=d.dyn_tree,l=d.max_code,r=d.stat_desc.static_tree,s=d.stat_desc.has_stree,u=d.stat_desc.extra_bits,v=d.stat_desc.extra_base,x=d.stat_desc.max_length,y=0;for(c=0;c<=U;c++)b.bl_count[c]=0;k[2*b.heap[b.heap_max]+1]=0;for(e=b.heap_max+1;e<P;e++)f=b.heap[e],c=k[2*
+k[2*f+1]+1]+1,c>x&&(c=x,y++),k[2*f+1]=c,f>l||(b.bl_count[c]++,n=0,f>=v&&(n=u[f-v]),q=k[2*f],b.opt_len+=q*(c+n),s&&(b.static_len+=q*(r[2*f+1]+n)));if(0!==y){do{for(c=x-1;0===b.bl_count[c];)c--;b.bl_count[c]--;b.bl_count[c+1]+=2;b.bl_count[x]--;y-=2}while(0<y);for(c=x;0!==c;c--)for(f=b.bl_count[c];0!==f;)n=b.heap[--e],n>l||(k[2*n+1]!==c&&(b.opt_len+=(c-k[2*n+1])*k[2*n],k[2*n+1]=c),f--)}p(g,m,b.bl_count)}function y(b,d,e){var c,f,g=-1,k=d[1],l=0,m=7,n=4;0===k&&(m=138,n=3);d[2*(e+1)+1]=65535;for(c=0;c<=
+e;c++)f=k,k=d[2*(c+1)+1],++l<m&&f===k||(l<n?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*E]++):10>=l?b.bl_tree[2*Q]++:b.bl_tree[2*O]++,l=0,g=f,0===k?(m=138,n=3):f===k?(m=6,n=3):(m=7,n=4))}function z(b,d,e){var c,f,g=-1,k=d[1],n=0,p=7,q=4;0===k&&(p=138,q=3);for(c=0;c<=e;c++)if(f=k,k=d[2*(c+1)+1],!(++n<p&&f===k)){if(n<q){do m(b,f,b.bl_tree);while(0!==--n)}else 0!==f?(f!==g&&(m(b,f,b.bl_tree),n--),m(b,E,b.bl_tree),l(b,n-3,2)):10>=n?(m(b,Q,b.bl_tree),l(b,n-3,3)):(m(b,O,b.bl_tree),l(b,
+n-11,7));n=0;g=f;0===k?(p=138,q=3):f===k?(p=6,q=3):(p=7,q=4)}}function x(b){var d,e=4093624447;for(d=0;31>=d;d++,e>>>=1)if(1&e&&0!==b.dyn_ltree[2*d])return A;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return F;for(d=32;d<H;d++)if(0!==b.dyn_ltree[2*d])return F;return A}function D(b,d,e,c){l(b,(G<<1)+(c?1:0),3);s(b);k(b,e);k(b,~e);C.arraySet(b.pending_buf,b.window,d,e,b.pending);b.pending+=e}var C=c("../utils/common"),A=0,F=1,G=0,H=256,I=H+1+29,J=30,M=19,P=2*I+1,U=15,W=16,B=256,
+E=16,Q=17,O=18,N=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],V=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],K=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],L=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],R=Array(2*(I+2));b(R);var X=Array(2*J);b(X);var da=Array(512);b(da);var ca=Array(256);b(ca);var T=Array(29);b(T);var Z=Array(J);b(Z);var ba,Y,S,ia=!1;d._tr_init=function(b){if(!ia){var d,c,f,k=Array(U+1);for(f=c=0;28>f;f++){T[f]=c;for(d=0;d<1<<N[f];d++)ca[c++]=
+f}ca[c-1]=f;for(f=c=0;16>f;f++){Z[f]=c;for(d=0;d<1<<V[f];d++)da[c++]=f}for(c>>=7;f<J;f++){Z[f]=c<<7;for(d=0;d<1<<V[f]-7;d++)da[256+c++]=f}for(d=0;d<=U;d++)k[d]=0;for(d=0;143>=d;)R[2*d+1]=8,d++,k[8]++;for(;255>=d;)R[2*d+1]=9,d++,k[9]++;for(;279>=d;)R[2*d+1]=7,d++,k[7]++;for(;287>=d;)R[2*d+1]=8,d++,k[8]++;p(R,I+1,k);for(d=0;d<J;d++)X[2*d+1]=5,X[2*d]=n(d,5);ba=new e(R,N,H+1,I,U);Y=new e(X,V,0,J,U);S=new e([],K,0,M,7);ia=!0}b.l_desc=new g(b.dyn_ltree,ba);b.d_desc=new g(b.dyn_dtree,Y);b.bl_desc=new g(b.bl_tree,
+S);b.bi_buf=0;b.bi_valid=0;r(b)};d._tr_stored_block=D;d._tr_flush_block=function(b,d,e,c){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));u(b,b.l_desc);u(b,b.d_desc);y(b,b.dyn_ltree,b.l_desc.max_code);y(b,b.dyn_dtree,b.d_desc.max_code);u(b,b.bl_desc);for(k=M-1;3<=k&&0===b.bl_tree[2*L[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=e+5;if(e+4<=f&&-1!==d)D(b,d,e,c);else if(4===b.strategy||g===f)l(b,2+(c?1:0),3),v(b,R,X);
+else{l(b,4+(c?1:0),3);d=b.l_desc.max_code+1;e=b.d_desc.max_code+1;k+=1;l(b,d-257,5);l(b,e-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*L[f]+1],3);z(b,b.dyn_ltree,d-1);z(b,b.dyn_dtree,e-1);v(b,b.dyn_ltree,b.dyn_dtree)}r(b);c&&s(b)};d._tr_tally=function(b,d,e){return b.pending_buf[b.d_buf+2*b.last_lit]=d>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&d,b.pending_buf[b.l_buf+b.last_lit]=255&e,b.last_lit++,0===d?b.dyn_ltree[2*e]++:(b.matches++,d--,b.dyn_ltree[2*(ca[e]+H+1)]++,b.dyn_dtree[2*(256>
d?da[d]:da[256+(d>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){l(b,2,3);m(b,B,R);16===b.bi_valid?(k(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(c,f,d){f.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(c,
f,d){d=c("./lib/utils/common").assign;var b=c("./lib/deflate"),e=c("./lib/inflate");c=c("./lib/zlib/constants");var g={};d(g,b,e,c);f.exports=g},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")});
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",encode:function(a,c){var f="",d,b,e,g,k,l,m=0;for(null!=c&&c||(a=Base64._utf8_encode(a));m<a.length;)d=a.charCodeAt(m++),b=a.charCodeAt(m++),e=a.charCodeAt(m++),g=d>>2,d=(d&3)<<4|b>>4,k=(b&15)<<2|e>>6,l=e&63,isNaN(b)?k=l=64:isNaN(e)&&(l=64),f=f+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return f},decode:function(a,c){c=null!=c?c:!1;var f="",d,b,e,g,k,l=0;for(a=
@@ -193,9 +193,9 @@ u;case "object":if(!u)return"null";e+=g;v=[];if("[object Array]"===Object.protot
e)+"\n"+t+"}":"{"+v.join(",")+"}";e=t;return s}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
b=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e,g,k={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},l;"function"!==typeof JSON.stringify&&(JSON.stringify=function(b,a,d){var c;g=e="";if("number"===typeof d)for(c=0;c<d;c+=1)g+=" ";else"string"===typeof d&&(g=d);if((l=a)&&"function"!==typeof a&&("object"!==typeof a||"number"!==typeof a.length))throw Error("JSON.stringify");return f("",{"":b})});
"function"!==typeof JSON.parse&&(JSON.parse=function(b,a){function e(b,d){var c,f,g=b[d];if(g&&"object"===typeof g)for(c in g)Object.prototype.hasOwnProperty.call(g,c)&&(f=e(g,c),void 0!==f?g[c]=f:delete g[c]);return a.call(b,d,g)}var c;b=""+b;d.lastIndex=0;d.test(b)&&(b=b.replace(d,function(b){return"\\u"+("0000"+b.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(b.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return c=eval("("+b+")"),"function"===typeof a?e({"":c},""):c;throw new SyntaxError("JSON.parse");})})();window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";
-window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev?"iconSearch":"https://www.draw.io/iconSearch";window.TEMPLATE_PATH=window.TEMPLATE_PATH||"/templates";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";window.mxLoadResources=window.mxLoadResources||!1;
-window.mxLanguage=window.mxLanguage||function(){var a="1"==urlParams.offline?"en":urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var c=localStorage.getItem(".drawio-config");null!=c&&(a=JSON.parse(c).language||null)}catch(f){isLocalStorage=!1}return a}();
+"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return c=eval("("+b+")"),"function"===typeof a?e({"":c},""):c;throw new SyntaxError("JSON.parse");})})();window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";
+window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev?"iconSearch":"https://www.draw.io/iconSearch";window.TEMPLATE_PATH=window.TEMPLATE_PATH||"/templates";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";
+window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||function(){var a="1"==urlParams.offline?"en":urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var c=localStorage.getItem(".drawio-config");null!=c&&(a=JSON.parse(c).language||null)}catch(f){isLocalStorage=!1}return a}();
window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",ca:"Catal\u00e0",cs:"\u010ce\u0161tina",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Espa\u00f1ol",fil:"Filipino",fr:"Fran\u00e7ais",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Portugu\u00eas (Brasil)",pt:"Portugu\u00eas (Portugal)",ro:"Rom\u00e2n\u0103",fi:"Suomi",sv:"Svenska",vi:"Ti\u1ebfng Vi\u1ec7t",tr:"T\u00fcrk\u00e7e",el:"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
ru:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",sr:"\u0421\u0440\u043f\u0441\u043a\u0438",uk:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",he:"\u05e2\u05d1\u05e8\u05d9\u05ea",ar:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629",th:"\u0e44\u0e17\u0e22",ko:"\ud55c\uad6d\uc5b4",ja:"\u65e5\u672c\u8a9e",zh:"\u4e2d\u6587\uff08\u4e2d\u56fd\uff09","zh-tw":"\u4e2d\u6587\uff08\u53f0\u7063\uff09"};"undefined"===typeof window.mxBasePath&&(window.mxBasePath="mxgraph");
if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}window.uiTheme=window.uiTheme||function(){var a=urlParams.ui;if(null==a&&"undefined"!==typeof JSON&&isLocalStorage)try{var c=localStorage.getItem(".drawio-config");null!=c&&(a=JSON.parse(c).ui||null)}catch(f){isLocalStorage=!1}return a}();function setCurrentXml(a,c){null!=window.parent&&null!=window.parent.openFile&&window.parent.openFile.setData(a,c)}
@@ -260,7 +260,7 @@ a?a=f:a==mxConstants.NONE&&(a=null);return a},clone:function(a,c,f){f=null!=f?f:
return!0},equalEntries:function(a,c){if(null==a&&null!=c||null!=a&&null==c||null!=a&&null!=c&&a.length!=c.length)return!1;if(null!=a&&null!=c){var f=0,d;for(d in c)f++;for(d in a)if(f--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(c[d]))&&a[d]!=c[d])return!1}return 0==f},removeDuplicates:function(a){for(var c=new mxDictionary,f=[],d=0;d<a.length;d++)c.get(a[d])||(f.push(a[d]),c.put(a[d],!0));return f},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,c){var f=function(){};f.prototype=
c.prototype;a.prototype=new f;a.prototype.constructor=a},toString:function(a){var c="",f;for(f in a)try{if(null==a[f])c+=f+" \x3d [null]\n";else if("function"==typeof a[f])c+=f+" \x3d\x3e [Function]\n";else if("object"==typeof a[f])var d=mxUtils.getFunctionName(a[f].constructor),c=c+(f+" \x3d\x3e ["+d+"]\n");else c+=f+" \x3d "+a[f]+"\n"}catch(b){c+=f+"\x3d"+b.message}return c},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,c,f,d,b,e,g,
k,l){k-=a;l-=c;if(0===f||0===d)return r;f=Math.abs(f);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(b*Math.PI/180),r=Math.sin(b*Math.PI/180);b=p*m+r*n;var m=-1*r*m+p*n,n=b*b,s=m*m,q=f*f,t=d*d,v=n/q+s/t;1<v?(f*=Math.sqrt(v),d*=Math.sqrt(v),e=0):(v=1,e===g&&(v=-1),e=v*Math.sqrt((q*t-q*s-t*n)/(q*s+t*n)));n=e*f*m/d;s=-1*e*d*b/f;k=p*n-r*s+k/2;l=r*n+p*s+l/2;q=Math.atan2((m-s)/d,(b-n)/f)-Math.atan2(0,1);e=0<=q?q:2*Math.PI+q;q=Math.atan2((-m-s)/d,(-b-n)/f)-Math.atan2((m-s)/d,(b-n)/f);b=0<=q?q:2*Math.PI+q;0==
-g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;m=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);n=p*f;p*=d;f*=r;d*=r;for(var u=Math.cos(e),z=Math.sin(e),s=-m*(n*z+d*u),q=-m*(f*z-p*u),r=[],y=0;y<g;++y){e+=b;var u=Math.cos(e),z=Math.sin(e),t=n*u-d*z+k,v=f*u+p*z+l,x=-m*(n*z+d*u),u=-m*(f*z-p*u),z=6*y;r[z]=Number(s+a);r[z+1]=Number(q+c);r[z+2]=Number(t-x+a);r[z+3]=Number(v-u+c);r[z+4]=Number(t+a);r[z+5]=Number(v+c);s=t+x;q=v+u}return r},getBoundingBox:function(a,
+g&&0<b?b-=2*Math.PI:0!=g&&0>b&&(b+=2*Math.PI);g=2*b/Math.PI;g=Math.ceil(0>g?-1*g:g);b/=g;m=8/3*Math.sin(b/4)*Math.sin(b/4)/Math.sin(b/2);n=p*f;p*=d;f*=r;d*=r;for(var u=Math.cos(e),y=Math.sin(e),s=-m*(n*y+d*u),q=-m*(f*y-p*u),r=[],z=0;z<g;++z){e+=b;var u=Math.cos(e),y=Math.sin(e),t=n*u-d*y+k,v=f*u+p*y+l,x=-m*(n*y+d*u),u=-m*(f*y-p*u),y=6*z;r[y]=Number(s+a);r[y+1]=Number(q+c);r[y+2]=Number(t-x+a);r[y+3]=Number(v-u+c);r[y+4]=Number(t+a);r[y+5]=Number(v+c);s=t+x;q=v+u}return r},getBoundingBox:function(a,
c,f){var d=null;if(null!=a&&null!=c&&0!=c){c=mxUtils.toRadians(c);var d=Math.cos(c),b=Math.sin(c);f=null!=f?f:new mxPoint(a.x+a.width/2,a.y+a.height/2);var e=new mxPoint(a.x,a.y);c=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(c.x,a.y+a.height);a=new mxPoint(a.x,g.y);e=mxUtils.getRotatedPoint(e,d,b,f);c=mxUtils.getRotatedPoint(c,d,b,f);g=mxUtils.getRotatedPoint(g,d,b,f);a=mxUtils.getRotatedPoint(a,d,b,f);d=new mxRectangle(e.x,e.y,0,0);d.add(new mxRectangle(c.x,c.y,0,0));d.add(new mxRectangle(g.x,
g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,c,f,d){d=null!=d?d:new mxPoint;var b=a.x-d.x;a=a.y-d.y;return new mxPoint(b*c-a*f+d.x,a*c+b*f+d.y)},getPortConstraints:function(a,c,f,d){c=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==c)return d;d=c.toString();c=mxConstants.DIRECTION_MASK_NONE;f=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(f=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
f?(a=1,135<=f&&(a=2)):-45>f&&(a=3,-135>=f&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:c|=mxConstants.DIRECTION_MASK_EAST;break;case 2:c|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:c|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:c|=mxConstants.DIRECTION_MASK_WEST;break;case 1:c|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:c|=mxConstants.DIRECTION_MASK_EAST;break;case 3:c|=
@@ -532,13 +532,13 @@ mxSvgCanvas2D.prototype.updateText=function(a,c,f,d,b,e,g,k,l,m,n){if(null!=n&&n
g=0;b==mxConstants.ALIGN_CENTER?g-=f/2:b==mxConstants.ALIGN_RIGHT&&(g-=f);a+=g;e==mxConstants.ALIGN_MIDDLE?l-=d/2:e==mxConstants.ALIGN_BOTTOM&&(l-=d);"fill"!=k&&mxClient.IS_FF&&mxClient.IS_WIN&&(l-=2);c+=l;b=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(b+="rotate("+s.rotation+","+f/2+","+d/2+")",c=this.rotatePoint((a+f/2)*s.scale,(c+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=c.x-f*s.scale/2,c=c.y-d*s.scale/2):(a*=s.scale,c*=s.scale);0!=m&&(b+="rotate("+m+","+-g+","+
-l+")");n.setAttribute("transform","translate("+Math.round(a)+","+Math.round(c)+")"+b);p.setAttribute("width",Math.round(Math.max(1,f)));p.setAttribute("height",Math.round(Math.max(1,d)))}};
mxSvgCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,m,n,p,r){if(this.textEnabled&&null!=b){p=null!=p?p:0;var s=this.state;a+=s.dx;c+=s.dy;if(this.foEnabled&&"html"==l){var q="vertical-align:top;";n?q+="overflow:hidden;max-height:"+Math.round(d)+"px;max-width:"+Math.round(f)+"px;":"fill"==m?q+="width:"+Math.round(f+1)+"px;height:"+Math.round(d+1)+"px;overflow:hidden;":"width"==m&&(q+="width:"+Math.round(f+1)+"px;",0<d&&(q+="max-height:"+Math.round(d)+"px;overflow:hidden;"));var q=k&&0<f?q+("width:"+
-Math.round(f+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):q+"white-space:nowrap;",t=this.createElement("g");1>s.alpha&&t.setAttribute("opacity",s.alpha);var v=this.createElement("foreignObject");v.setAttribute("style","overflow:visible;");v.setAttribute("pointer-events","all");q=this.createDiv(b,e,g,q,m);if(null!=q){null!=r&&q.setAttribute("dir",r);t.appendChild(v);this.root.appendChild(t);var u=0,z=0;r=u=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(b)?b.outerHTML:b;y.appendChild(z);document.body.appendChild(y);8!=document.documentMode&&9!=document.documentMode&&null!=s.fontBorderColor&&(u+=2,r+=2);if(k&&0<
-f){var x=z.offsetWidth;if(!n&&k&&0<f&&this.root.ownerDocument!=document&&"fill"!=m){var F=y.style.whiteSpace;z.style.whiteSpace="nowrap";x<z.offsetWidth&&(y.style.whiteSpace=F)}n&&(x=Math.min(x,f));y.style.width=x+"px";u=z.offsetWidth+u+0;z=z.offsetHeight+r;y.style.display="inline-block";y.style.position="";y.style.visibility="";y.style.width=u+"px";q.setAttribute("style",y.style.cssText)}else u=z.offsetWidth+u,z=z.offsetHeight+r;y.parentNode.removeChild(y);v.appendChild(q)}else this.root.ownerDocument!=
-document?(q.style.visibility="hidden",document.body.appendChild(q)):v.appendChild(q),y=q,null!=y.firstChild&&"DIV"==y.firstChild.nodeName&&(y=y.firstChild,k&&"break-word"==q.style.wordWrap&&(y.style.width="100%")),x=y.offsetWidth,0==x&&q.parentNode==v&&(q.style.visibility="hidden",document.body.appendChild(q),x=y.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!n&&k&&0<f&&(this.root.ownerDocument!=document&&"fill"!=m&&"width"!=m)&&(F=q.style.whiteSpace,q.style.whiteSpace="nowrap",x<y.offsetWidth&&
-(q.style.whiteSpace=F)),u=x+u-1,k&&"fill"!=m&&"width"!=m&&(n&&(u=Math.min(u,f)),q.style.width=u+"px"),u=y.offsetWidth,z=y.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=u,t.mxCachedFinalOffsetHeight=z),z-=r,q.parentNode!=v&&(v.appendChild(q),q.style.visibility="");n&&(z=Math.min(z,d),u=Math.min(u,f));"width"==m?d=z:"fill"!=m&&(f=u,d=z);1>s.alpha&&t.setAttribute("opacity",s.alpha);r=q=0;e==mxConstants.ALIGN_CENTER?q-=f/2:e==mxConstants.ALIGN_RIGHT&&(q-=f);a+=q;g==mxConstants.ALIGN_MIDDLE?
-r-=d/2:g==mxConstants.ALIGN_BOTTOM&&(r-=d);"fill"!=m&&mxClient.IS_FF&&mxClient.IS_WIN&&(r-=2);c+=r;y=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(y+="rotate("+s.rotation+","+f/2+","+d/2+")",c=this.rotatePoint((a+f/2)*s.scale,(c+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=c.x-f*s.scale/2,c=c.y-d*s.scale/2):(a*=s.scale,c*=s.scale);0!=p&&(y+="rotate("+p+","+-q+","+-r+")");t.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(c)+this.foOffset)+
-")"+y);v.setAttribute("width",Math.round(Math.max(1,f)));v.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(v,a,c,f,d,b,e,g,k,l,m,n,p),null!=a&&(v.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),f=this.createElement("switch"),f.appendChild(v),f.appendChild(a),t.appendChild(f)))}}else this.plainText(a,c,f,d,b,e,g,k,m,n,p,r)}};
+Math.round(f+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):q+"white-space:nowrap;",t=this.createElement("g");1>s.alpha&&t.setAttribute("opacity",s.alpha);var v=this.createElement("foreignObject");v.setAttribute("style","overflow:visible;");v.setAttribute("pointer-events","all");q=this.createDiv(b,e,g,q,m);if(null!=q){null!=r&&q.setAttribute("dir",r);t.appendChild(v);this.root.appendChild(t);var u=0,y=0;r=u=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var z=
+document.createElement("div");z.style.cssText=q.getAttribute("style");z.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";z.style.position="absolute";z.style.visibility="hidden";y=document.createElement("div");y.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";y.style.wordWrap=mxConstants.WORD_WRAP;y.innerHTML=mxUtils.isNode(b)?b.outerHTML:b;z.appendChild(y);document.body.appendChild(z);8!=document.documentMode&&9!=document.documentMode&&null!=s.fontBorderColor&&(u+=2,r+=2);if(k&&0<
+f){var x=y.offsetWidth;if(!n&&k&&0<f&&this.root.ownerDocument!=document&&"fill"!=m){var D=z.style.whiteSpace;y.style.whiteSpace="nowrap";x<y.offsetWidth&&(z.style.whiteSpace=D)}n&&(x=Math.min(x,f));z.style.width=x+"px";u=y.offsetWidth+u+0;y=y.offsetHeight+r;z.style.display="inline-block";z.style.position="";z.style.visibility="";z.style.width=u+"px";q.setAttribute("style",z.style.cssText)}else u=y.offsetWidth+u,y=y.offsetHeight+r;z.parentNode.removeChild(z);v.appendChild(q)}else this.root.ownerDocument!=
+document?(q.style.visibility="hidden",document.body.appendChild(q)):v.appendChild(q),z=q,null!=z.firstChild&&"DIV"==z.firstChild.nodeName&&(z=z.firstChild,k&&"break-word"==q.style.wordWrap&&(z.style.width="100%")),x=z.offsetWidth,0==x&&q.parentNode==v&&(q.style.visibility="hidden",document.body.appendChild(q),x=z.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!n&&k&&0<f&&(this.root.ownerDocument!=document&&"fill"!=m&&"width"!=m)&&(D=q.style.whiteSpace,q.style.whiteSpace="nowrap",x<z.offsetWidth&&
+(q.style.whiteSpace=D)),u=x+u-1,k&&"fill"!=m&&"width"!=m&&(n&&(u=Math.min(u,f)),q.style.width=u+"px"),u=z.offsetWidth,y=z.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=u,t.mxCachedFinalOffsetHeight=y),y-=r,q.parentNode!=v&&(v.appendChild(q),q.style.visibility="");n&&(y=Math.min(y,d),u=Math.min(u,f));"width"==m?d=y:"fill"!=m&&(f=u,d=y);1>s.alpha&&t.setAttribute("opacity",s.alpha);r=q=0;e==mxConstants.ALIGN_CENTER?q-=f/2:e==mxConstants.ALIGN_RIGHT&&(q-=f);a+=q;g==mxConstants.ALIGN_MIDDLE?
+r-=d/2:g==mxConstants.ALIGN_BOTTOM&&(r-=d);"fill"!=m&&mxClient.IS_FF&&mxClient.IS_WIN&&(r-=2);c+=r;z=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(z+="rotate("+s.rotation+","+f/2+","+d/2+")",c=this.rotatePoint((a+f/2)*s.scale,(c+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=c.x-f*s.scale/2,c=c.y-d*s.scale/2):(a*=s.scale,c*=s.scale);0!=p&&(z+="rotate("+p+","+-q+","+-r+")");t.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(c)+this.foOffset)+
+")"+z);v.setAttribute("width",Math.round(Math.max(1,f)));v.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(v,a,c,f,d,b,e,g,k,l,m,n,p),null!=a&&(v.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),f=this.createElement("switch"),f.appendChild(v),f.appendChild(a),t.appendChild(f)))}}else this.plainText(a,c,f,d,b,e,g,k,m,n,p,r)}};
mxSvgCanvas2D.prototype.createClip=function(a,c,f,d){a=Math.round(a);c=Math.round(c);f=Math.round(f);d=Math.round(d);for(var b="mx-clip-"+a+"-"+c+"-"+f+"-"+d,e=0,g=b+"-"+e;null!=document.getElementById(g);)g=b+"-"+ ++e;clip=this.createElement("clipPath");clip.setAttribute("id",g);b=this.createElement("rect");b.setAttribute("x",a);b.setAttribute("y",c);b.setAttribute("width",f);b.setAttribute("height",d);clip.appendChild(b);return clip};
mxSvgCanvas2D.prototype.plainText=function(a,c,f,d,b,e,g,k,l,m,n,p){n=null!=n?n:0;k=this.state;var r=k.fontSize,s=this.createElement("g"),q=k.transform||"";this.updateFont(s);0!=n&&(q+="rotate("+n+","+this.format(a*k.scale)+","+this.format(c*k.scale)+")");null!=p&&s.setAttribute("direction",p);m&&0<f&&0<d&&(p=a,n=c,e==mxConstants.ALIGN_CENTER?p-=f/2:e==mxConstants.ALIGN_RIGHT&&(p-=f),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?n-=d/2:g==mxConstants.ALIGN_BOTTOM&&(n-=d)),n=this.createClip(p*k.scale-2,
n*k.scale-2,f*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(n):this.root.appendChild(n),!mxClient.IS_CHROME_APP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&this.root.ownerDocument==document?(p=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),s.setAttribute("clip-path","url("+p+"#"+n.getAttribute("id")+")")):s.setAttribute("clip-path","url(#"+n.getAttribute("id")+")"));n=e==mxConstants.ALIGN_RIGHT?"end":e==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=n&&s.setAttribute("text-anchor",
@@ -573,8 +573,8 @@ mxVmlCanvas2D.prototype.text=function(a,c,f,d,b,e,g,k,l,m,n,p,r){if(this.textEna
l.style.left=this.format(a)+"px";l.style.top=this.format(c)+"px";l.style.zoom=s.scale;var q=this.createElement("div");q.style.position="relative";q.style.display="inline";var t=mxUtils.getAlignmentAsPoint(e,g),v=t.x,t=t.y;b=this.createDiv(b,e,g,m);e=this.createElement("div");null!=r&&b.setAttribute("dir",r);if(k&&0<f){if(n||(b.style.width=Math.round(f)+"px"),b.style.wordWrap=mxConstants.WORD_WRAP,b.style.whiteSpace="normal","break-word"==b.style.wordWrap){var u=b;null!=u.firstChild&&"DIV"==u.firstChild.nodeName&&
(u.firstChild.style.width="100%")}}else b.style.whiteSpace="nowrap";p=s.rotation+(p||0);this.rotateHtml&&0!=p?(e.style.display="inline",e.style.zoom="1",e.appendChild(b),8==document.documentMode&&!mxClient.IS_EM&&"DIV"!=this.root.nodeName?(q.appendChild(e),l.appendChild(q)):l.appendChild(e)):8==document.documentMode&&!mxClient.IS_EM?(q.appendChild(b),l.appendChild(q)):(b.style.display="inline",l.appendChild(b));"DIV"!=this.root.nodeName?(r=this.createVmlElement("rect"),r.stroked="false",r.filled=
"false",r.appendChild(l),this.root.appendChild(r)):this.root.appendChild(l);n?(b.style.overflow="hidden",b.style.width=Math.round(f)+"px",mxClient.IS_QUIRKS||(b.style.maxHeight=Math.round(d)+"px")):"fill"==m?(b.style.overflow="hidden",b.style.width=Math.max(0,f)+1+"px",b.style.height=Math.max(0,d)+1+"px"):"width"==m&&(b.style.overflow="hidden",b.style.width=Math.max(0,f)+1+"px",b.style.maxHeight=Math.max(0,d)+1+"px");if(this.rotateHtml&&0!=p){u=p*(Math.PI/180);p=parseFloat(parseFloat(Math.cos(u)).toFixed(8));
-r=parseFloat(parseFloat(Math.sin(-u)).toFixed(8));u%=2*Math.PI;0>u&&(u+=2*Math.PI);u%=Math.PI;u>Math.PI/2&&(u=Math.PI-u);g=Math.cos(u);var z=Math.sin(u);8==document.documentMode&&!mxClient.IS_EM&&(b.style.display="inline-block",e.style.display="inline-block",q.style.display="inline-block");b.style.visibility="hidden";b.style.position="absolute";document.body.appendChild(b);q=b;null!=q.firstChild&&"DIV"==q.firstChild.nodeName&&(q=q.firstChild);u=q.offsetWidth+3;q=q.offsetHeight;n?(f=Math.min(f,u),
-q=Math.min(q,d)):f=u;k&&(b.style.width=f+"px");if(mxClient.IS_QUIRKS&&(n||"width"==m)&&q>d)q=d,b.style.height=q+"px";d=q;n=(d-d*g+f*-z)/2-r*f*(v+0.5)+p*d*(t+0.5);k=(f-f*g+d*-z)/2+p*f*(v+0.5)+r*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(m=this.createElement("div"),m.style.display="inline-block",m.style.position="absolute",m.style.left=this.format(a+(k-f/2)*s.scale)+"px",m.style.top=this.format(c+(n-d/2)*s.scale)+"px",l.parentNode.appendChild(m),m.appendChild(l)):(s=8==document.documentMode&&
+r=parseFloat(parseFloat(Math.sin(-u)).toFixed(8));u%=2*Math.PI;0>u&&(u+=2*Math.PI);u%=Math.PI;u>Math.PI/2&&(u=Math.PI-u);g=Math.cos(u);var y=Math.sin(u);8==document.documentMode&&!mxClient.IS_EM&&(b.style.display="inline-block",e.style.display="inline-block",q.style.display="inline-block");b.style.visibility="hidden";b.style.position="absolute";document.body.appendChild(b);q=b;null!=q.firstChild&&"DIV"==q.firstChild.nodeName&&(q=q.firstChild);u=q.offsetWidth+3;q=q.offsetHeight;n?(f=Math.min(f,u),
+q=Math.min(q,d)):f=u;k&&(b.style.width=f+"px");if(mxClient.IS_QUIRKS&&(n||"width"==m)&&q>d)q=d,b.style.height=q+"px";d=q;n=(d-d*g+f*-y)/2-r*f*(v+0.5)+p*d*(t+0.5);k=(f-f*g+d*-y)/2+p*f*(v+0.5)+r*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(m=this.createElement("div"),m.style.display="inline-block",m.style.position="absolute",m.style.left=this.format(a+(k-f/2)*s.scale)+"px",m.style.top=this.format(c+(n-d/2)*s.scale)+"px",l.parentNode.appendChild(m),m.appendChild(l)):(s=8==document.documentMode&&
!mxClient.IS_EM?1:s.scale,l.style.left=this.format(a+(k-f/2)*s)+"px",l.style.top=this.format(c+(n-d/2)*s)+"px");e.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+p+", M12\x3d"+r+", M21\x3d"+-r+", M22\x3d"+p+", sizingMethod\x3d'auto expand')";e.style.backgroundColor=this.rotatedHtmlBackground;1>this.state.alpha&&(e.style.filter+="alpha(opacity\x3d"+100*this.state.alpha+")");e.appendChild(b);b.style.position="";b.style.visibility=""}else 8!=document.documentMode||mxClient.IS_EM?(b.style.verticalAlign=
"top",1>this.state.alpha&&(l.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),s=b.parentNode,b.style.visibility="hidden",document.body.appendChild(b),f=b.offsetWidth,q=b.offsetHeight,mxClient.IS_QUIRKS&&n&&q>d&&(q=d,b.style.height=q+"px"),d=q,b.style.visibility="",s.appendChild(b),l.style.left=this.format(a+f*v*this.state.scale)+"px",l.style.top=this.format(c+d*t*this.state.scale)+"px"):(1>this.state.alpha&&(b.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),q.style.left=100*v+
"%",q.style.top=100*t+"%")}else this.plainText(a,c,f,d,mxUtils.htmlEntities(b,!1),e,g,k,l,m,n,p,r)}};
@@ -583,9 +583,9 @@ mxVmlCanvas2D.prototype.plainText=function(a,c,f,d,b,e,g,k,l,m,n,p,r){k=this.sta
g==mxConstants.ALIGN_BOTTOM?e=-k/2:g!=mxConstants.ALIGN_MIDDLE&&(e=k/2);null!=p&&(f.style.rotation=p,g=p*(Math.PI/180),b=Math.sin(g)*e,e*=Math.cos(g));f.appendChild(d);f.style.left=this.format(a-b)+"px";f.style.top=this.format(c+e)+"px";this.root.appendChild(f)};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 mxGuide(a,c){this.graph=a;this.setStates(c)}mxGuide.prototype.graph=null;mxGuide.prototype.states=null;mxGuide.prototype.horizontal=!0;mxGuide.prototype.vertical=!0;mxGuide.prototype.guideX=null;mxGuide.prototype.guideY=null;mxGuide.prototype.setStates=function(a){this.states=a};mxGuide.prototype.isEnabledForEvent=function(a){return!0};mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize/2};
mxGuide.prototype.createGuideShape=function(a){a=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);a.isDashed=!0;return a};
-mxGuide.prototype.move=function(a,c,f){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=c){var d=this.graph.getView().translate,b=this.graph.getView().scale,e=c.x,g=c.y,k=!1,l=null,m=null,n=!1,p=null,r=null,s=this.getGuideTolerance(),q=s,t=s,s=a.clone();s.x+=c.x;s.y+=c.y;var v=s.x,u=s.x+s.width,z=s.getCenterX(),y=s.y,x=s.y+s.height,F=s.getCenterY();c=function(b,d){b+=this.graph.panDx;var c=!1;Math.abs(b-z)<q?(e=b-a.getCenterX(),q=Math.abs(b-z),c=!0):Math.abs(b-v)<q?(e=b-a.x,
-q=Math.abs(b-v),c=!0):Math.abs(b-u)<q&&(e=b-a.x-a.width,q=Math.abs(b-u),c=!0);c&&(l=d,m=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||c};for(var s=function(b){b+=this.graph.panDy;var d=!1;Math.abs(b-F)<t?(g=b-a.getCenterY(),t=Math.abs(b-F),d=!0):Math.abs(b-
-y)<t?(g=b-a.y,t=Math.abs(b-y),d=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),d=!0);d&&(p=A,r=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));n=n||d},E=0;E<this.states.length;E++){var A=this.states[E];null!=A&&(this.horizontal&&(c.call(this,A.getCenterX(),
+mxGuide.prototype.move=function(a,c,f){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=c){var d=this.graph.getView().translate,b=this.graph.getView().scale,e=c.x,g=c.y,k=!1,l=null,m=null,n=!1,p=null,r=null,s=this.getGuideTolerance(),q=s,t=s,s=a.clone();s.x+=c.x;s.y+=c.y;var v=s.x,u=s.x+s.width,y=s.getCenterX(),z=s.y,x=s.y+s.height,D=s.getCenterY();c=function(b,d){b+=this.graph.panDx;var c=!1;Math.abs(b-y)<q?(e=b-a.getCenterX(),q=Math.abs(b-y),c=!0):Math.abs(b-v)<q?(e=b-a.x,
+q=Math.abs(b-v),c=!0):Math.abs(b-u)<q&&(e=b-a.x-a.width,q=Math.abs(b-u),c=!0);c&&(l=d,m=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||c};for(var s=function(b){b+=this.graph.panDy;var d=!1;Math.abs(b-D)<t?(g=b-a.getCenterY(),t=Math.abs(b-D),d=!0):Math.abs(b-
+z)<t?(g=b-a.y,t=Math.abs(b-z),d=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),d=!0);d&&(p=A,r=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));n=n||d},C=0;C<this.states.length;C++){var A=this.states[C];null!=A&&(this.horizontal&&(c.call(this,A.getCenterX(),
A),c.call(this,A.x,A),c.call(this,A.x+A.width,A)),this.vertical&&(s.call(this,A.getCenterY(),A),s.call(this,A.y,A),s.call(this,A.y+A.height,A)))}f&&(k||(f=a.x-(this.graph.snap(a.x/b-d.x)+d.x)*b,e=this.graph.snap(e/b)*b-f),n||(d=a.y-(this.graph.snap(a.y/b-d.y)+d.y)*b,g=this.graph.snap(g/b)*b-d));b=this.graph.container;!k&&null!=this.guideX?this.guideX.node.style.visibility="hidden":null!=this.guideX&&(null!=l&&null!=a&&(minY=Math.min(a.y+g-this.graph.panDy,l.y),maxY=Math.max(a.y+a.height+g-this.graph.panDy,
l.y+l.height)),this.guideX.points=null!=minY&&null!=maxY?[new mxPoint(m,minY),new mxPoint(m,maxY)]:[new mxPoint(m,-this.graph.panDy),new mxPoint(m,b.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(l,!0),this.guideX.node.style.visibility="visible",this.guideX.redraw());!n&&null!=this.guideY?this.guideY.node.style.visibility="hidden":null!=this.guideY&&(null!=p&&null!=a&&(minX=Math.min(a.x+e-this.graph.panDx,p.x),maxX=Math.max(a.x+a.width+e-this.graph.panDx,p.x+p.width)),this.guideY.points=
null!=minX&&null!=maxX?[new mxPoint(minX,r),new mxPoint(maxX,r)]:[new mxPoint(-this.graph.panDx,r),new mxPoint(b.scrollWidth-3-this.graph.panDx,r)],this.guideY.stroke=this.getGuideColor(p,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw());c=new mxPoint(e,g)}return c};mxGuide.prototype.getGuideColor=function(a,c){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
@@ -668,14 +668,14 @@ function mxArrowConnector(a,c,f,d,b,e,g){mxShape.call(this);this.points=a;this.f
mxArrowConnector.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.arrowSpacing=mxConstants.ARROW_SPACING};mxArrowConnector.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.startSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5),this.endSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5))};
mxArrowConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var c=this.getEdgeWidth();this.isMarkerStart()&&(c=Math.max(c,this.getStartArrowWidth()));this.isMarkerEnd()&&(c=Math.max(c,this.getEndArrowWidth()));a.grow((c/2+this.strokewidth)*this.scale)};
mxArrowConnector.prototype.paintEdgeShape=function(a,c){var f=this.strokewidth;this.outline&&(f=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));for(var d=this.getStartArrowWidth()+f,b=this.getEndArrowWidth()+f,e=this.outline?this.getEdgeWidth()+f:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),m=g?0:this.arrowSpacing+f/2,n=this.startSize+f,f=this.endSize+f,p=this.isArrowRounded(),r=c[c.length-1],s=1;s<c.length-1&&c[s].x==
-c[0].x&&c[s].y==c[0].y;)s++;var q=c[s].x-c[0].x,s=c[s].y-c[0].y,t=Math.sqrt(q*q+s*s);if(0!=t){var v=q/t,u,z=v,y=s/t,x,F=y,t=e*y,E=-e*v,A=[];p?a.setLineJoin("round"):2<c.length&&a.setMiterLimit(1.42);a.begin();q=v;s=y;if(k&&!g)this.paintMarker(a,c[0].x,c[0].y,v,y,n,d,e,m,!0);else{u=c[0].x+t/2+m*v;x=c[0].y+E/2+m*y;var D=c[0].x-t/2+m*v,G=c[0].y-E/2+m*y;g?(a.moveTo(u,x),A.push(function(){a.lineTo(D,G)})):(a.moveTo(D,G),a.lineTo(u,x))}for(var H=x=u=0,t=0;t<c.length-2;t++)if(E=mxUtils.relativeCcw(c[t].x,
-c[t].y,c[t+1].x,c[t+1].y,c[t+2].x,c[t+2].y),u=c[t+2].x-c[t+1].x,x=c[t+2].y-c[t+1].y,H=Math.sqrt(u*u+x*x),0!=H&&(z=u/H,F=x/H,tmp=Math.max(Math.sqrt((v*z+y*F+1)/2),0.04),u=v+z,x=y+F,H=Math.sqrt(u*u+x*x),0!=H)){u/=H;x/=H;var H=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),H=0!=E&&p?Math.max(0.1,H):Math.max(tmp,0.06),I=c[t+1].x+x*e/2/H,J=c[t+1].y-u*e/2/H;x=c[t+1].x-x*e/2/H;u=c[t+1].y+u*e/2/H;0==E||!p?(a.lineTo(I,J),function(b,d){A.push(function(){a.lineTo(b,d)})}(x,u)):-1==E?(E=x+F*e,H=u-z*e,
-a.lineTo(x+y*e,u-v*e),a.quadTo(I,J,E,H),function(b,d){A.push(function(){a.lineTo(b,d)})}(x,u)):(a.lineTo(I,J),function(b,d){var c=I-y*e,f=J+v*e,g=I-F*e,k=J+z*e;A.push(function(){a.quadTo(b,d,c,f)});A.push(function(){a.lineTo(g,k)})}(x,u));v=z;y=F}t=e*F;E=-e*z;if(l&&!g)this.paintMarker(a,r.x,r.y,-v,-y,f,b,e,m,!1);else{a.lineTo(r.x-m*z+t/2,r.y-m*F+E/2);var K=r.x-m*z-t/2,O=r.y-m*F-E/2;g?(a.moveTo(K,O),A.splice(0,0,function(){a.moveTo(K,O)})):a.lineTo(K,O)}for(t=A.length-1;0<=t;t--)A[t]();g?(a.end(),
-a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);p&&a.setLineJoin("flat");2<c.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,c[0].x,c[0].y,q,s,n,d,e,m,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,r.x,r.y,-v,-y,f,b,e,m,!0),a.stroke(),a.end()))}};
+c[0].x&&c[s].y==c[0].y;)s++;var q=c[s].x-c[0].x,s=c[s].y-c[0].y,t=Math.sqrt(q*q+s*s);if(0!=t){var v=q/t,u,y=v,z=s/t,x,D=z,t=e*z,C=-e*v,A=[];p?a.setLineJoin("round"):2<c.length&&a.setMiterLimit(1.42);a.begin();q=v;s=z;if(k&&!g)this.paintMarker(a,c[0].x,c[0].y,v,z,n,d,e,m,!0);else{u=c[0].x+t/2+m*v;x=c[0].y+C/2+m*z;var F=c[0].x-t/2+m*v,G=c[0].y-C/2+m*z;g?(a.moveTo(u,x),A.push(function(){a.lineTo(F,G)})):(a.moveTo(F,G),a.lineTo(u,x))}for(var H=x=u=0,t=0;t<c.length-2;t++)if(C=mxUtils.relativeCcw(c[t].x,
+c[t].y,c[t+1].x,c[t+1].y,c[t+2].x,c[t+2].y),u=c[t+2].x-c[t+1].x,x=c[t+2].y-c[t+1].y,H=Math.sqrt(u*u+x*x),0!=H&&(y=u/H,D=x/H,tmp=Math.max(Math.sqrt((v*y+z*D+1)/2),0.04),u=v+y,x=z+D,H=Math.sqrt(u*u+x*x),0!=H)){u/=H;x/=H;var H=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),H=0!=C&&p?Math.max(0.1,H):Math.max(tmp,0.06),I=c[t+1].x+x*e/2/H,J=c[t+1].y-u*e/2/H;x=c[t+1].x-x*e/2/H;u=c[t+1].y+u*e/2/H;0==C||!p?(a.lineTo(I,J),function(b,d){A.push(function(){a.lineTo(b,d)})}(x,u)):-1==C?(C=x+D*e,H=u-y*e,
+a.lineTo(x+z*e,u-v*e),a.quadTo(I,J,C,H),function(b,d){A.push(function(){a.lineTo(b,d)})}(x,u)):(a.lineTo(I,J),function(b,d){var c=I-z*e,f=J+v*e,g=I-D*e,k=J+y*e;A.push(function(){a.quadTo(b,d,c,f)});A.push(function(){a.lineTo(g,k)})}(x,u));v=y;z=D}t=e*D;C=-e*y;if(l&&!g)this.paintMarker(a,r.x,r.y,-v,-z,f,b,e,m,!1);else{a.lineTo(r.x-m*y+t/2,r.y-m*D+C/2);var M=r.x-m*y-t/2,P=r.y-m*D-C/2;g?(a.moveTo(M,P),A.splice(0,0,function(){a.moveTo(M,P)})):a.lineTo(M,P)}for(t=A.length-1;0<=t;t--)A[t]();g?(a.end(),
+a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);p&&a.setLineJoin("flat");2<c.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,c[0].x,c[0].y,q,s,n,d,e,m,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,r.x,r.y,-v,-z,f,b,e,m,!0),a.stroke(),a.end()))}};
mxArrowConnector.prototype.paintMarker=function(a,c,f,d,b,e,g,k,l,m){g=k/g;var n=k*b/2;k=-k*d/2;var p=(l+e)*d;e=(l+e)*b;m?a.moveTo(c-n+p,f-k+e):a.lineTo(c-n+p,f-k+e);a.lineTo(c-n/g+p,f-k/g+e);a.lineTo(c+l*d,f+l*b);a.lineTo(c+n/g+p,f+k/g+e);a.lineTo(c+n+p,f+k+e)};mxArrowConnector.prototype.isArrowRounded=function(){return this.isRounded};mxArrowConnector.prototype.getStartArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEndArrowWidth=function(){return mxConstants.ARROW_WIDTH};
mxArrowConnector.prototype.getEdgeWidth=function(){return mxConstants.ARROW_WIDTH/3};mxArrowConnector.prototype.isOpenEnded=function(){return!1};mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE};mxArrowConnector.prototype.isMarkerEnd=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE};
-function mxText(a,c,f,d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,z,y,x){mxShape.call(this);this.value=a;this.bounds=c;this.color=null!=b?b:"black";this.align=null!=f?f:"";this.valign=null!=d?d:"";this.family=null!=e?e:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);this.spacingBottom=this.spacing+parseInt(p||
-0);this.spacingLeft=this.spacing+parseInt(r||0);this.horizontal=null!=s?s:!0;this.background=q;this.border=t;this.wrap=null!=v?v:!1;this.clipped=null!=u?u:!1;this.overflow=null!=z?z:"visible";this.labelPadding=null!=y?y:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
+function mxText(a,c,f,d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,y,z,x){mxShape.call(this);this.value=a;this.bounds=c;this.color=null!=b?b:"black";this.align=null!=f?f:"";this.valign=null!=d?d:"";this.family=null!=e?e:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);this.spacingBottom=this.spacing+parseInt(p||
+0);this.spacingLeft=this.spacing+parseInt(r||0);this.horizontal=null!=s?s:!0;this.background=q;this.border=t;this.wrap=null!=v?v:!1;this.clipped=null!=u?u:!1;this.overflow=null!=y?y:"visible";this.labelPadding=null!=z?z:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8==document.documentMode&&!mxClient.IS_EM?4:3;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isParseVml=function(){return!1};mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
mxText.prototype.paint=function(a,c){var f=this.scale,d=this.bounds.x/f,b=this.bounds.y/f,e=this.bounds.width/f,f=this.bounds.height/f;this.updateTransform(a,d,b,e,f);this.configureCanvas(a,d,b,e,f);if(c){var g=null!=this.state?this.state.unscaledWidth:null;null!=this.node.firstChild&&this.lastUnscaledWidth!=g&&a.invalidateCachedOffsetSize(this.node);a.updateText(d,b,e,f,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node)}else{var k=(g=mxUtils.isNode(this.value)||
@@ -868,9 +868,9 @@ mxMedianHybridCrossingReduction.prototype.execute=function(a){a=this.layout.getM
k}}else{f++;for(b=0;b<this.nestedBestRanks.length;b++){e=a.ranks[b];for(g=0;g<e.length;g++)k=e[g],k.setGeneralPurposeVariable(b,g)}}if(0==d)break}f=[];d=[];for(c=0;c<a.maxRank+1;c++)d[c]=[],f[c]=d[c];for(c=0;c<this.nestedBestRanks.length;c++)for(b=0;b<this.nestedBestRanks[c].length;b++)d[c].push(this.nestedBestRanks[c][b]);a.ranks=f};mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(a){for(var c=a.ranks.length,f=0,d=1;d<c;d++)f+=this.calculateRankCrossing(d,a);return f};
mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(a,c){for(var f=0,d=c.ranks[a],b=c.ranks[a-1],e=[],g=0;g<d.length;g++){for(var k=d[g],l=k.getGeneralPurposeVariable(a),k=k.getPreviousLayerConnectedCells(a),m=[],n=0;n<k.length;n++){var p=k[n].getGeneralPurposeVariable(a-1);m.push(p)}m.sort(function(b,a){return b-a});e[l]=m}d=[];for(g=0;g<e.length;g++)d=d.concat(e[g]);for(e=1;e<b.length;)e<<=1;l=2*e-1;e-=1;b=[];for(g=0;g<l;++g)b[g]=0;for(g=0;g<d.length;g++){l=d[g]+e;for(++b[l];0<
l;)l%2&&(f+=b[l+1]),l=l-1>>1,++b[l]}return f};
-mxMedianHybridCrossingReduction.prototype.transpose=function(a,c){for(var f=!0,d=0;f&&10>d++;)for(var b=1==a%2&&1==d%2,f=!1,e=0;e<c.ranks.length;e++){for(var g=c.ranks[e],k=[],l=0;l<g.length;l++){var m=g[l],n=m.getGeneralPurposeVariable(e);0>n&&(n=l);k[n]=m}for(var p=null,r=null,s=null,q=null,t=null,v=null,u=null,z=null,l=0;l<g.length-1;l++){if(0==l){for(var u=k[l],m=u.getNextLayerConnectedCells(e),n=u.getPreviousLayerConnectedCells(e),s=[],q=[],y=0;y<m.length;y++)s[y]=m[y].getGeneralPurposeVariable(e+
-1);for(y=0;y<n.length;y++)q[y]=n[y].getGeneralPurposeVariable(e-1)}else m=p,n=r,s=t,q=v,u=z;z=k[l+1];p=z.getNextLayerConnectedCells(e);r=z.getPreviousLayerConnectedCells(e);t=[];v=[];for(y=0;y<p.length;y++)t[y]=p[y].getGeneralPurposeVariable(e+1);for(y=0;y<r.length;y++)v[y]=r[y].getGeneralPurposeVariable(e-1);for(var x=0,F=0,y=0;y<s.length;y++)for(var E=0;E<t.length;E++)s[y]>t[E]&&x++,s[y]<t[E]&&F++;for(y=0;y<q.length;y++)for(E=0;E<v.length;E++)q[y]>v[E]&&x++,q[y]<v[E]&&F++;if(F<x||F==x&&b)p=u.getGeneralPurposeVariable(e),
-u.setGeneralPurposeVariable(e,z.getGeneralPurposeVariable(e)),z.setGeneralPurposeVariable(e,p),p=m,r=n,t=s,v=q,z=u,b||(f=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,c){var f=0==a%2;if(f)for(var d=c.maxRank-1;0<=d;d--)this.medianRank(d,f);else for(d=1;d<c.maxRank;d++)this.medianRank(d,f)};
+mxMedianHybridCrossingReduction.prototype.transpose=function(a,c){for(var f=!0,d=0;f&&10>d++;)for(var b=1==a%2&&1==d%2,f=!1,e=0;e<c.ranks.length;e++){for(var g=c.ranks[e],k=[],l=0;l<g.length;l++){var m=g[l],n=m.getGeneralPurposeVariable(e);0>n&&(n=l);k[n]=m}for(var p=null,r=null,s=null,q=null,t=null,v=null,u=null,y=null,l=0;l<g.length-1;l++){if(0==l){for(var u=k[l],m=u.getNextLayerConnectedCells(e),n=u.getPreviousLayerConnectedCells(e),s=[],q=[],z=0;z<m.length;z++)s[z]=m[z].getGeneralPurposeVariable(e+
+1);for(z=0;z<n.length;z++)q[z]=n[z].getGeneralPurposeVariable(e-1)}else m=p,n=r,s=t,q=v,u=y;y=k[l+1];p=y.getNextLayerConnectedCells(e);r=y.getPreviousLayerConnectedCells(e);t=[];v=[];for(z=0;z<p.length;z++)t[z]=p[z].getGeneralPurposeVariable(e+1);for(z=0;z<r.length;z++)v[z]=r[z].getGeneralPurposeVariable(e-1);for(var x=0,D=0,z=0;z<s.length;z++)for(var C=0;C<t.length;C++)s[z]>t[C]&&x++,s[z]<t[C]&&D++;for(z=0;z<q.length;z++)for(C=0;C<v.length;C++)q[z]>v[C]&&x++,q[z]<v[C]&&D++;if(D<x||D==x&&b)p=u.getGeneralPurposeVariable(e),
+u.setGeneralPurposeVariable(e,y.getGeneralPurposeVariable(e)),y.setGeneralPurposeVariable(e,p),p=m,r=n,t=s,v=q,y=u,b||(f=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,c){var f=0==a%2;if(f)for(var d=c.maxRank-1;0<=d;d--)this.medianRank(d,f);else for(d=1;d<c.maxRank;d++)this.medianRank(d,f)};
mxMedianHybridCrossingReduction.prototype.medianRank=function(a,c){for(var f=this.nestedBestRanks[a].length,d=[],b=[],e=0;e<f;e++){var g=this.nestedBestRanks[a][e],k=new MedianCellSorter;k.cell=g;var l;l=c?g.getNextLayerConnectedCells(a):g.getPreviousLayerConnectedCells(a);var m;m=c?a+1:a-1;null!=l&&0!=l.length?(k.medianValue=this.medianValue(l,m),d.push(k)):b[g.getGeneralPurposeVariable(a)]=!0}d.sort(MedianCellSorter.prototype.compare);for(e=0;e<f;e++)null==b[e]&&(g=d.shift().cell,g.setGeneralPurposeVariable(a,
e))};mxMedianHybridCrossingReduction.prototype.medianValue=function(a,c){for(var f=[],d=0,b=0;b<a.length;b++){var e=a[b];f[d++]=e.getGeneralPurposeVariable(c)}f.sort(function(b,a){return b-a});if(1==d%2)return f[Math.floor(d/2)];if(2==d)return(f[0]+f[1])/2;b=d/2;e=f[b-1]-f[0];d=f[d-1]-f[b];return(f[b-1]*d+f[b]*e)/(e+d)};function MedianCellSorter(){}MedianCellSorter.prototype.medianValue=0;MedianCellSorter.prototype.cell=!1;
MedianCellSorter.prototype.compare=function(a,c){return null!=a&&null!=c?c.medianValue>a.medianValue?-1:c.medianValue<a.medianValue?1:0:0};function mxMinimumCycleRemover(a){this.layout=a}mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage;mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover;mxMinimumCycleRemover.prototype.layout=null;
@@ -905,7 +905,7 @@ q;if(s.isVertex()){q=0==k?b.connectsAsSource:b.connectsAsTarget;for(var t=0;t<q.
p+=this.prefVertEdgeOff:m>e/2&&(p-=this.prefVertEdgeOff);for(t=0;t<s;t++)q[4*t+2*k]=n,n+=l,q[4*t+2*k+1]=p;r=Math.max(r,p)}}e=b.getNextLayerConnectedCells(c);g=c+1}}};
mxCoordinateAssignment.prototype.setEdgePosition=function(a){var c=0;if(101207!=a.temp[0]){var f=a.maxRank,d=a.minRank;f==d&&(f=a.source.maxRank,d=a.target.minRank);for(var b=0,e=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,m=0;m<a.edges.length;m++){var n=a.edges[m],p=this.layout.getVisibleTerminal(n,!0),r=[],s=a.isReversed;p!=g&&(s=!s);if(null!=e){var q=s?
2:0,t=s?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[f]:this.rankBottomY[f],v=e[4*b+1+q];s!=l&&(v=-v);var t=t+v,q=e[4*b+q],u=k.model.getTerminal(n,!0);this.layout.isPort(u)&&k.model.getParent(u)==p&&(q=k.view.getState(u),q=null!=q?q.x:p.geometry.x+a.source.width*u.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(r.push(new mxPoint(q,t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&r.push(new mxPoint(q,t+v))):(r.push(new mxPoint(t,
-q)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&r.push(new mxPoint(t+v,q)))}q=a.x.length-1;t=v=-1;p=a.maxRank-1;for(s&&(q=0,v=a.x.length,t=1,p=a.minRank+1);a.maxRank!=a.minRank&&q!=v;q+=t){var u=a.x[q]+c,z=(this.rankTopY[p]+this.rankBottomY[p+1])/2,y=(this.rankTopY[p-1]+this.rankBottomY[p])/2;if(s)var x=z,z=y,y=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(r.push(new mxPoint(u,z)),r.push(new mxPoint(u,y))):(r.push(new mxPoint(z,u)),r.push(new mxPoint(y,
+q)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&r.push(new mxPoint(t+v,q)))}q=a.x.length-1;t=v=-1;p=a.maxRank-1;for(s&&(q=0,v=a.x.length,t=1,p=a.minRank+1);a.maxRank!=a.minRank&&q!=v;q+=t){var u=a.x[q]+c,y=(this.rankTopY[p]+this.rankBottomY[p+1])/2,z=(this.rankTopY[p-1]+this.rankBottomY[p])/2;if(s)var x=y,y=z,z=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(r.push(new mxPoint(u,y)),r.push(new mxPoint(u,z))):(r.push(new mxPoint(y,u)),r.push(new mxPoint(z,
u)));this.limitX=Math.max(this.limitX,u);p+=t}null!=e&&(q=s?2:0,t=s?l?this.rankTopY[f]:this.rankBottomY[f]:l?this.rankBottomY[d]:this.rankTopY[d],v=e[4*b+3-q],s!=l&&(v=-v),t-=v,q=e[4*b+2-q],s=k.model.getTerminal(n,!1),p=this.layout.getVisibleTerminal(n,!1),this.layout.isPort(s)&&k.model.getParent(s)==p&&(q=k.view.getState(s),q=null!=q?q.x:p.geometry.x+a.target.width*s.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
r.push(new mxPoint(q,t-v)),r.push(new mxPoint(q,t))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&r.push(new mxPoint(t-v,q)),r.push(new mxPoint(t,q))));a.isReversed&&this.processReversedEdge(a,n);this.layout.setEdgePoints(n,r);c=0==c?this.parallelEdgeSpacing:0<c?-c:-c+this.parallelEdgeSpacing;b++}a.temp[0]=101207}};
mxCoordinateAssignment.prototype.setVertexLocation=function(a){var c=a.cell,f=a.x[0]-a.width/2,d=a.y[0]-a.height/2;this.rankTopY[a.minRank]=Math.min(this.rankTopY[a.minRank],d);this.rankBottomY[a.minRank]=Math.max(this.rankBottomY[a.minRank],d+a.height);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(c,f,d):this.layout.setVertexLocation(c,d,f);this.limitX=Math.max(this.limitX,f+a.width)};
@@ -1031,8 +1031,8 @@ mxPrintPreview.prototype.open=function(a,c,f,d){var b=this.graph.cellRenderer.in
g.writeln(k);mxClient.IS_VML?g.writeln('\x3chtml xmlns:v\x3d"urn:schemas-microsoft-com:vml" xmlns:o\x3d"urn:schemas-microsoft-com:office:office"\x3e'):("CSS1Compat"===document.compatMode&&g.writeln("\x3c!DOCTYPE html\x3e"),g.writeln("\x3chtml\x3e"));g.writeln("\x3chead\x3e");this.writeHead(g,a);g.writeln("\x3c/head\x3e");g.writeln('\x3cbody class\x3d"mxPage"\x3e')}var l=this.graph.getGraphBounds().clone(),m=this.graph.getView().getScale(),n=m/this.scale,p=this.graph.getView().getTranslate();this.autoOrigin||
(this.x0-=p.x*this.scale,this.y0-=p.y*this.scale,l.width+=l.x,l.height+=l.y,l.x=0,this.border=l.y=0);var r=this.pageFormat.width-2*this.border,s=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;l.width/=n;l.height/=n;var q=Math.max(1,Math.ceil((l.width+this.x0)/r)),t=Math.max(1,Math.ceil((l.height+this.y0)/s));this.pageCount=q*t;var v=mxUtils.bind(this,function(){if(this.pageSelector&&(1<t||1<q)){var b=this.createPageSelector(t,q);g.body.appendChild(b);
if(mxClient.IS_IE&&null==g.documentMode||5==g.documentMode||8==g.documentMode||7==g.documentMode){b.style.position="absolute";var a=function(){b.style.top=(g.body.scrollTop||g.documentElement.scrollTop)+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(b){a()});mxEvent.addListener(this.wnd,"resize",function(b){a()})}}}),u=mxUtils.bind(this,function(b,a){null!=this.borderColor&&(b.style.borderColor=this.borderColor,b.style.borderStyle="solid",b.style.borderWidth="1px");b.style.background=this.backgroundColor;
-if(f||a)b.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(b.outerHTML),b.parentNode.removeChild(b)):(b.parentNode.removeChild(b),g.body.appendChild(b));(f||a)&&this.addPageBreak(g)}),z=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=z)for(var y=0;y<z.length;y++)u(z[y],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),y=0;y<t;y++){var F=y*s/this.scale-this.y0/this.scale+(l.y-p.y*m)/m;for(a=0;a<
-q;a++){if(null==this.wnd)return null;var E=a*r/this.scale-this.x0/this.scale+(l.x-p.x*m)/m,A=y*q+a+1,D=new mxRectangle(E,F,r,s),e=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(b){this.addGraphFragment(-E,-F,this.scale,A,b,D);this.printBackgroundImage&&this.insertBackgroundImage(b,-E,-F)}),A);e.setAttribute("id","mxPage-"+A);u(e,null!=x||y<t-1||a<q-1)}}if(null!=x)for(y=0;y<x.length;y++)u(x[y],y<x.length);c&&!d&&(this.closeDocument(),v());this.wnd.focus()}catch(G){null!=
+if(f||a)b.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(b.outerHTML),b.parentNode.removeChild(b)):(b.parentNode.removeChild(b),g.body.appendChild(b));(f||a)&&this.addPageBreak(g)}),y=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=y)for(var z=0;z<y.length;z++)u(y[z],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),z=0;z<t;z++){var D=z*s/this.scale-this.y0/this.scale+(l.y-p.y*m)/m;for(a=0;a<
+q;a++){if(null==this.wnd)return null;var C=a*r/this.scale-this.x0/this.scale+(l.x-p.x*m)/m,A=z*q+a+1,F=new mxRectangle(C,D,r,s),e=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(b){this.addGraphFragment(-C,-D,this.scale,A,b,F);this.printBackgroundImage&&this.insertBackgroundImage(b,-C,-D)}),A);e.setAttribute("id","mxPage-"+A);u(e,null!=x||z<t-1||a<q-1)}}if(null!=x)for(z=0;z<x.length;z++)u(x[z],z<x.length);c&&!d&&(this.closeDocument(),v());this.wnd.focus()}catch(G){null!=
e&&null!=e.parentNode&&e.parentNode.removeChild(e)}finally{this.graph.cellRenderer.initializeOverlay=b}return this.wnd};mxPrintPreview.prototype.addPageBreak=function(a){var c=a.createElement("hr");c.className="mxPageBreak";a.body.appendChild(c)};mxPrintPreview.prototype.closeDocument=function(){if(null!=this.wnd&&null!=this.wnd.document){var a=this.wnd.document;this.writePostfix(a);a.writeln("\x3c/body\x3e");a.writeln("\x3c/html\x3e");a.close();mxEvent.release(a.body)}};
mxPrintPreview.prototype.writeHead=function(a,c){null!=this.title&&a.writeln("\x3ctitle\x3e"+this.title+"\x3c/title\x3e");mxClient.IS_VML&&a.writeln('\x3cstyle type\x3d"text/css"\x3ev\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}\x3c/style\x3e');mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a);a.writeln('\x3cstyle type\x3d"text/css"\x3e');a.writeln("@media print {");a.writeln(" table.mxPageSelector { display: none; }");a.writeln(" hr.mxPageBreak { display: none; }");
a.writeln("}");a.writeln("@media screen {");a.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }");a.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }");a.writeln(" body.mxPage { background: gray; }");a.writeln("}");null!=c&&a.writeln(c);a.writeln("\x3c/style\x3e")};mxPrintPreview.prototype.writePostfix=function(a){};
@@ -1159,24 +1159,24 @@ c.x=k.x,c.y=k.y);null!=g&&(f=new mxCellState,f.x=g.x,f.y=g.y);null!=c&&null!=f&&
a,d.y)&&!mxUtils.contains(c,a,d.y)&&b.push(new mxPoint(a,d.y)):(e=Math.max(c.y,f.y),c=Math.min(c.y+c.height,f.y+f.height),b.push(new mxPoint(a,e+(c-e)/2)))))},TopToBottom:function(a,c,f,d,b){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=e.transformControlPoint(a,d));null!=k&&(c=new mxCellState,c.x=k.x,c.y=k.y);null!=g&&(f=new mxCellState,f.x=g.x,f.y=g.y);null!=c&&null!=f&&(k=Math.max(c.y,f.y),g=Math.min(c.y+c.height,f.y+f.height),a=e.getRoutingCenterX(c),
null!=d&&d.x>=c.x&&d.x<=c.x+c.width&&(a=d.x),k=null!=d?d.y:Math.round(g+(k-g)/2),!mxUtils.contains(f,a,k)&&!mxUtils.contains(c,a,k)&&b.push(new mxPoint(a,k)),a=null!=d&&d.x>=f.x&&d.x<=f.x+f.width?d.x:e.getRoutingCenterX(f),!mxUtils.contains(f,a,k)&&!mxUtils.contains(c,a,k)&&b.push(new mxPoint(a,k)),1==b.length&&(null!=d&&1==b.length?!mxUtils.contains(f,d.x,k)&&!mxUtils.contains(c,d.x,k)&&b.push(new mxPoint(d.x,k)):(e=Math.max(c.x,f.x),c=Math.min(c.x+c.width,f.x+f.width),b.push(new mxPoint(e+(c-e)/
2,k)))))},SegmentConnector:function(a,c,f,d,b){function e(a){if(null==l||Math.abs(l.x-a.x)>=k||Math.abs(l.y-a.y)>=k)b.push(a),l=a;return l}var g=a.absolutePoints,k=Math.max(1,a.view.scale),l=0<b.length?b[0]:null,m=!0,n=null,p=g[0];null==p&&null!=c?p=new mxPoint(a.view.getRoutingCenterX(c),a.view.getRoutingCenterY(c)):null!=p&&(p=p.clone());p.x=Math.round(p.x);p.y=Math.round(p.y);var r=g.length-1;if(null!=d&&0<d.length){for(var n=[],s=0;s<d.length;s++){var q=a.view.transformControlPoint(a,d[s]);null!=
-q&&(q.x=Math.round(q.x),q.y=Math.round(q.y),n.push(q))}if(0==n.length)return;d=n;null!=p&&null!=d[0]&&(Math.abs(d[0].x-p.x)<k&&(d[0].x=p.x),Math.abs(d[0].y-p.y)<k&&(d[0].y=p.y));q=g[r];null!=q&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-q.x)<k&&(d[d.length-1].x=q.x),Math.abs(d[d.length-1].y-q.y)<k&&(d[d.length-1].y=q.y));var n=d[0],t=c,v=g[0],u=!1,z=!1,u=n;null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);for(s=0;2>s;s++){var y=null!=v&&v.x==u.x,x=null!=v&&v.y==u.y,F=null!=t&&u.y>=t.y&&
-u.y<=t.y+t.height,t=null!=t&&u.x>=t.x&&u.x<=t.x+t.width,u=x||null==v&&F,z=y||null==v&&t;if(!(0==s&&(u&&z||y&&x))){if(null!=v&&!x&&!y&&(F||t)){m=F?!1:!0;break}if(z||u){m=u;1==s&&(m=0==d.length%2?u:z);break}}t=f;v=g[r];null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);u=d[d.length-1];y&&x&&(d=d.slice(1))}m&&(null!=g[0]&&g[0].y!=n.y||null==g[0]&&null!=c&&(n.y<c.y||n.y>c.y+c.height))?e(new mxPoint(p.x,n.y)):!m&&(null!=g[0]&&g[0].x!=n.x||null==g[0]&&null!=c&&(n.x<c.x||n.x>c.x+c.width))&&e(new mxPoint(n.x,
+q&&(q.x=Math.round(q.x),q.y=Math.round(q.y),n.push(q))}if(0==n.length)return;d=n;null!=p&&null!=d[0]&&(Math.abs(d[0].x-p.x)<k&&(d[0].x=p.x),Math.abs(d[0].y-p.y)<k&&(d[0].y=p.y));q=g[r];null!=q&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-q.x)<k&&(d[d.length-1].x=q.x),Math.abs(d[d.length-1].y-q.y)<k&&(d[d.length-1].y=q.y));var n=d[0],t=c,v=g[0],u=!1,y=!1,u=n;null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);for(s=0;2>s;s++){var z=null!=v&&v.x==u.x,x=null!=v&&v.y==u.y,D=null!=t&&u.y>=t.y&&
+u.y<=t.y+t.height,t=null!=t&&u.x>=t.x&&u.x<=t.x+t.width,u=x||null==v&&D,y=z||null==v&&t;if(!(0==s&&(u&&y||z&&x))){if(null!=v&&!x&&!z&&(D||t)){m=D?!1:!0;break}if(y||u){m=u;1==s&&(m=0==d.length%2?u:y);break}}t=f;v=g[r];null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);u=d[d.length-1];z&&x&&(d=d.slice(1))}m&&(null!=g[0]&&g[0].y!=n.y||null==g[0]&&null!=c&&(n.y<c.y||n.y>c.y+c.height))?e(new mxPoint(p.x,n.y)):!m&&(null!=g[0]&&g[0].x!=n.x||null==g[0]&&null!=c&&(n.x<c.x||n.x>c.x+c.width))&&e(new mxPoint(n.x,
p.y));m?p.y=n.y:p.x=n.x;for(s=0;s<d.length;s++)m=!m,n=d[s],m?p.y=n.y:p.x=n.x,e(p.clone())}else n=p,m=!0;p=g[r];null==p&&null!=f&&(p=new mxPoint(a.view.getRoutingCenterX(f),a.view.getRoutingCenterY(f)));null!=p&&(p.x=Math.round(p.x),p.y=Math.round(p.y),null!=n&&(m&&(null!=g[r]&&g[r].y!=n.y||null==g[r]&&null!=f&&(n.y<f.y||n.y>f.y+f.height))?e(new mxPoint(p.x,n.y)):!m&&(null!=g[r]&&g[r].x!=n.x||null==g[r]&&null!=f&&(n.x<f.x||n.x>f.x+f.width))&&e(new mxPoint(n.x,p.y))));if(null==g[0]&&null!=c)for(;1<
b.length&&null!=b[1]&&mxUtils.contains(c,b[1].x,b[1].y);)b.splice(1,1);if(null==g[r]&&null!=f)for(;1<b.length&&null!=b[b.length-1]&&mxUtils.contains(f,b[b.length-1].x,b[b.length-1].y);)b.splice(b.length-1,1);null!=q&&null!=b[b.length-1]&&Math.abs(q.x-b[b.length-1].x)<k&&Math.abs(q.y-b[b.length-1].y)<k&&(b.splice(b.length-1,1),null!=b[b.length-1]&&(Math.abs(b[b.length-1].x-q.x)<k&&(b[b.length-1].x=q.x),Math.abs(b[b.length-1].y-q.y)<k&&(b[b.length-1].y=q.y)))},orthBuffer:10,orthPointsFallback:!0,dirVectors:[[-1,
0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,
2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,
getJettySize:function(a,c,f,d,b){c=mxUtils.getValue(a.style,b?mxConstants.STYLE_SOURCE_JETTY_SIZE:mxConstants.STYLE_TARGET_JETTY_SIZE,mxUtils.getValue(a.style,mxConstants.STYLE_JETTY_SIZE,mxEdgeStyle.orthBuffer));"auto"==c&&(mxUtils.getValue(a.style,b?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE?(a=mxUtils.getNumber(a.style,b?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),c=Math.max(2,Math.ceil((a+mxEdgeStyle.orthBuffer)/
-mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):c=2*mxEdgeStyle.orthBuffer);return c},OrthConnector:function(a,c,f,d,b){var e=a.view.graph,g=null==c?!1:e.getModel().isEdge(c.cell),k=null==f?!1:e.getModel().isEdge(f.cell),e=a.absolutePoints,l=e[0],m=e[e.length-1],n=null!=c?c.x:l.x,p=null!=c?c.y:l.y,r=null!=c?c.width:0,s=null!=c?c.height:0,q=null!=f?f.x:m.x,t=null!=f?f.y:m.y,v=null!=f?f.width:0,u=null!=f?f.height:0,e=a.view.scale*mxEdgeStyle.getJettySize(a,c,f,d,!0),z=a.view.scale*mxEdgeStyle.getJettySize(a,
-c,f,d,!1);null!=c&&f==c&&(e=z=Math.max(e,z));var y=z+e,x=!1;if(null!=l&&null!=m)var x=m.x-l.x,F=m.y-l.y,x=x*x+F*F<y*y;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,c,f,d,b);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=c&&(d[0]=mxUtils.getPortConstraints(c,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(n,p,r,s),x),n=x.x,
-p=x.y,r=x.width,s=x.height));null!=f&&(d[1]=mxUtils.getPortConstraints(f,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(f.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(q,t,v,u),x),q=x.x,t=x.y,v=x.width,u=x.height));n=Math.round(10*n)/10;p=Math.round(10*p)/10;r=Math.round(10*r)/10;s=Math.round(10*s)/10;q=Math.round(10*q)/10;t=Math.round(10*t)/10;v=Math.round(10*v)/10;u=Math.round(10*u)/10;a=[0,0];n=[[n,p,r,s],[q,t,v,u]];z=[e,z];for(x=0;2>x;x++)mxEdgeStyle.limits[x][1]=
-n[x][0]-z[x],mxEdgeStyle.limits[x][2]=n[x][1]-z[x],mxEdgeStyle.limits[x][4]=n[x][0]+n[x][2]+z[x],mxEdgeStyle.limits[x][8]=n[x][1]+n[x][3]+z[x];z=n[0][1]+n[0][3]/2;p=n[1][1]+n[1][3]/2;x=n[0][0]+n[0][2]/2-(n[1][0]+n[1][2]/2);F=z-p;z=0;0>x?z=0>F?2:1:0>=F&&(z=3,0==x&&(z=2));p=null;null!=c&&(p=l);c=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=p&&(c[x][0]=(p.x-n[x][0])/n[x][2],1>=Math.abs(p.x-n[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(p.x-n[x][0]-n[x][2])&&(a[x]=mxConstants.DIRECTION_MASK_EAST),
-c[x][1]=(p.y-n[x][1])/n[x][3],1>=Math.abs(p.y-n[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(p.y-n[x][1]-n[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),p=null,null!=f&&(p=m);x=n[0][1]-(n[1][1]+n[1][3]);m=n[0][0]-(n[1][0]+n[1][2]);p=n[1][1]-(n[0][1]+n[0][3]);r=n[1][0]-(n[0][0]+n[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(m-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(p-y,0);mxEdgeStyle.vertexSeperations[3]=Math.max(r-y,0);y=[];
+mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):c=2*mxEdgeStyle.orthBuffer);return c},OrthConnector:function(a,c,f,d,b){var e=a.view.graph,g=null==c?!1:e.getModel().isEdge(c.cell),k=null==f?!1:e.getModel().isEdge(f.cell),e=a.absolutePoints,l=e[0],m=e[e.length-1],n=null!=c?c.x:l.x,p=null!=c?c.y:l.y,r=null!=c?c.width:0,s=null!=c?c.height:0,q=null!=f?f.x:m.x,t=null!=f?f.y:m.y,v=null!=f?f.width:0,u=null!=f?f.height:0,e=a.view.scale*mxEdgeStyle.getJettySize(a,c,f,d,!0),y=a.view.scale*mxEdgeStyle.getJettySize(a,
+c,f,d,!1);null!=c&&f==c&&(e=y=Math.max(e,y));var z=y+e,x=!1;if(null!=l&&null!=m)var x=m.x-l.x,D=m.y-l.y,x=x*x+D*D<z*z;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,c,f,d,b);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=c&&(d[0]=mxUtils.getPortConstraints(c,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(n,p,r,s),x),n=x.x,
+p=x.y,r=x.width,s=x.height));null!=f&&(d[1]=mxUtils.getPortConstraints(f,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(f.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(q,t,v,u),x),q=x.x,t=x.y,v=x.width,u=x.height));n=Math.round(10*n)/10;p=Math.round(10*p)/10;r=Math.round(10*r)/10;s=Math.round(10*s)/10;q=Math.round(10*q)/10;t=Math.round(10*t)/10;v=Math.round(10*v)/10;u=Math.round(10*u)/10;a=[0,0];n=[[n,p,r,s],[q,t,v,u]];y=[e,y];for(x=0;2>x;x++)mxEdgeStyle.limits[x][1]=
+n[x][0]-y[x],mxEdgeStyle.limits[x][2]=n[x][1]-y[x],mxEdgeStyle.limits[x][4]=n[x][0]+n[x][2]+y[x],mxEdgeStyle.limits[x][8]=n[x][1]+n[x][3]+y[x];y=n[0][1]+n[0][3]/2;p=n[1][1]+n[1][3]/2;x=n[0][0]+n[0][2]/2-(n[1][0]+n[1][2]/2);D=y-p;y=0;0>x?y=0>D?2:1:0>=D&&(y=3,0==x&&(y=2));p=null;null!=c&&(p=l);c=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=p&&(c[x][0]=(p.x-n[x][0])/n[x][2],1>=Math.abs(p.x-n[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(p.x-n[x][0]-n[x][2])&&(a[x]=mxConstants.DIRECTION_MASK_EAST),
+c[x][1]=(p.y-n[x][1])/n[x][3],1>=Math.abs(p.y-n[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(p.y-n[x][1]-n[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),p=null,null!=f&&(p=m);x=n[0][1]-(n[1][1]+n[1][3]);m=n[0][0]-(n[1][0]+n[1][2]);p=n[1][1]-(n[0][1]+n[0][3]);r=n[1][0]-(n[0][0]+n[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(m-z,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-z,0);mxEdgeStyle.vertexSeperations[4]=Math.max(p-z,0);mxEdgeStyle.vertexSeperations[3]=Math.max(r-z,0);z=[];
f=[];l=[];f[0]=m>=r?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;l[0]=x>=p?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;f[1]=mxUtils.reversePortConstraints(f[0]);l[1]=mxUtils.reversePortConstraints(l[0]);m=m>=r?m:r;p=x>=p?x:p;r=[[0,0],[0,0]];s=!1;for(x=0;2>x;x++)0==a[x]&&(0==(f[x]&d[x])&&(f[x]=mxUtils.reversePortConstraints(f[x])),0==(l[x]&d[x])&&(l[x]=mxUtils.reversePortConstraints(l[x])),r[x][0]=l[x],r[x][1]=f[x]);0<p&&0<m&&(0<(f[0]&d[0])&&0<(l[1]&d[1])?(r[0][0]=
-f[0],r[0][1]=l[0],r[1][0]=l[1],r[1][1]=f[1],s=!0):0<(l[0]&d[0])&&0<(f[1]&d[1])&&(r[0][0]=l[0],r[0][1]=f[0],r[1][0]=f[1],r[1][1]=l[1],s=!0));0<p&&!s&&(r[0][0]=l[0],r[0][1]=f[0],r[1][0]=l[1],r[1][1]=f[1],s=!0);0<m&&!s&&(r[0][0]=f[0],r[0][1]=l[0],r[1][0]=f[1],r[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(r[x][0]&d[x])&&(r[x][0]=r[x][1]),y[x]=r[x][0]&d[x],y[x]|=(r[x][1]&d[x])<<8,y[x]|=(r[1-x][x]&d[x])<<16,y[x]|=(r[1-x][1-x]&d[x])<<24,0==(y[x]&15)&&(y[x]<<=8),0==(y[x]&3840)&&(y[x]=y[x]&15|y[x]>>8),0==
-(y[x]&983040)&&(y[x]=y[x]&65535|(y[x]&251658240)>>8),a[x]=y[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];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]=n[0][0];mxEdgeStyle.wayPoints1[0][1]=n[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=
-e;mxEdgeStyle.wayPoints1[0][1]+=c[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=c[0][0]*n[0][2];mxEdgeStyle.wayPoints1[0][1]+=n[0][3]+e;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=n[0][2]+e;mxEdgeStyle.wayPoints1[0][1]+=c[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=c[0][0]*n[0][2],mxEdgeStyle.wayPoints1[0][1]-=e}e=0;f=y=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?
-0:1;for(x=0;x<d.length;x++)l=d[x]&15,q=l==mxConstants.DIRECTION_MASK_EAST?3:l,q+=z,4<q&&(q-=4),m=mxEdgeStyle.dirVectors[q-1],l=0<q%2?0:1,l!=y&&(e++,mxEdgeStyle.wayPoints1[e][0]=mxEdgeStyle.wayPoints1[e-1][0],mxEdgeStyle.wayPoints1[e][1]=mxEdgeStyle.wayPoints1[e-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),s=0<(d[x]&mxEdgeStyle.SOURCE_MASK),p=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,p<<=z,15<p&&(p>>=4),r=0<(d[x]&mxEdgeStyle.CENTER_MASK),(s||t)&&9>p?(s=s?0:1,q=r&&0==l?n[s][0]+c[s][0]*n[s][2]:r?n[s][1]+c[s][1]*
-n[s][3]:mxEdgeStyle.limits[s][p],0==l?(p=(q-mxEdgeStyle.wayPoints1[e][0])*m[0],0<p&&(mxEdgeStyle.wayPoints1[e][0]+=m[0]*p)):(p=(q-mxEdgeStyle.wayPoints1[e][1])*m[1],0<p&&(mxEdgeStyle.wayPoints1[e][1]+=m[1]*p))):r&&(mxEdgeStyle.wayPoints1[e][0]+=m[0]*Math.abs(mxEdgeStyle.vertexSeperations[q]/2),mxEdgeStyle.wayPoints1[e][1]+=m[1]*Math.abs(mxEdgeStyle.vertexSeperations[q]/2)),0<e&&mxEdgeStyle.wayPoints1[e][l]==mxEdgeStyle.wayPoints1[e-1][l]?e--:y=l;for(x=0;x<=e&&!(x==e&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
+f[0],r[0][1]=l[0],r[1][0]=l[1],r[1][1]=f[1],s=!0):0<(l[0]&d[0])&&0<(f[1]&d[1])&&(r[0][0]=l[0],r[0][1]=f[0],r[1][0]=f[1],r[1][1]=l[1],s=!0));0<p&&!s&&(r[0][0]=l[0],r[0][1]=f[0],r[1][0]=l[1],r[1][1]=f[1],s=!0);0<m&&!s&&(r[0][0]=f[0],r[0][1]=l[0],r[1][0]=f[1],r[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(r[x][0]&d[x])&&(r[x][0]=r[x][1]),z[x]=r[x][0]&d[x],z[x]|=(r[x][1]&d[x])<<8,z[x]|=(r[1-x][x]&d[x])<<16,z[x]|=(r[1-x][1-x]&d[x])<<24,0==(z[x]&15)&&(z[x]<<=8),0==(z[x]&3840)&&(z[x]=z[x]&15|z[x]>>8),0==
+(z[x]&983040)&&(z[x]=z[x]&65535|(z[x]&251658240)>>8),a[x]=z[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];z=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=y;z-=y;1>d&&(d+=4);1>z&&(z+=4);d=mxEdgeStyle.routePatterns[d-1][z-1];mxEdgeStyle.wayPoints1[0][0]=n[0][0];mxEdgeStyle.wayPoints1[0][1]=n[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=
+e;mxEdgeStyle.wayPoints1[0][1]+=c[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=c[0][0]*n[0][2];mxEdgeStyle.wayPoints1[0][1]+=n[0][3]+e;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=n[0][2]+e;mxEdgeStyle.wayPoints1[0][1]+=c[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=c[0][0]*n[0][2],mxEdgeStyle.wayPoints1[0][1]-=e}e=0;f=z=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?
+0:1;for(x=0;x<d.length;x++)l=d[x]&15,q=l==mxConstants.DIRECTION_MASK_EAST?3:l,q+=y,4<q&&(q-=4),m=mxEdgeStyle.dirVectors[q-1],l=0<q%2?0:1,l!=z&&(e++,mxEdgeStyle.wayPoints1[e][0]=mxEdgeStyle.wayPoints1[e-1][0],mxEdgeStyle.wayPoints1[e][1]=mxEdgeStyle.wayPoints1[e-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),s=0<(d[x]&mxEdgeStyle.SOURCE_MASK),p=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,p<<=y,15<p&&(p>>=4),r=0<(d[x]&mxEdgeStyle.CENTER_MASK),(s||t)&&9>p?(s=s?0:1,q=r&&0==l?n[s][0]+c[s][0]*n[s][2]:r?n[s][1]+c[s][1]*
+n[s][3]:mxEdgeStyle.limits[s][p],0==l?(p=(q-mxEdgeStyle.wayPoints1[e][0])*m[0],0<p&&(mxEdgeStyle.wayPoints1[e][0]+=m[0]*p)):(p=(q-mxEdgeStyle.wayPoints1[e][1])*m[1],0<p&&(mxEdgeStyle.wayPoints1[e][1]+=m[1]*p))):r&&(mxEdgeStyle.wayPoints1[e][0]+=m[0]*Math.abs(mxEdgeStyle.vertexSeperations[q]/2),mxEdgeStyle.wayPoints1[e][1]+=m[1]*Math.abs(mxEdgeStyle.vertexSeperations[q]/2)),0<e&&mxEdgeStyle.wayPoints1[e][l]==mxEdgeStyle.wayPoints1[e-1][l]?e--:z=l;for(x=0;x<=e&&!(x==e&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
mxConstants.DIRECTION_MASK_WEST))?0:1)==f?0:1)!=(e+1)%2);x++)b.push(new mxPoint(Math.round(mxEdgeStyle.wayPoints1[x][0]),Math.round(mxEdgeStyle.wayPoints1[x][1])));for(a=1;a<b.length;)null==b[a-1]||null==b[a]||b[a-1].x!=b[a].x||b[a-1].y!=b[a].y?a++:b.splice(a,1)}},getRoutePattern:function(a,c,f,d){var b=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];a=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];b-=c;a-=c;1>b&&(b+=4);1>a&&(a+=4);c=routePatterns[b-1][a-1];if(0==f||0==d)null!=inlineRoutePatterns[b-1][a-
1]&&(c=inlineRoutePatterns[b-1][a-1]);return c}},mxStyleRegistry={values:[],putValue:function(a,c){mxStyleRegistry.values[a]=c},getValue:function(a){return mxStyleRegistry.values[a]},getName:function(a){for(var c in mxStyleRegistry.values)if(mxStyleRegistry.values[c]==a)return c;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);
@@ -2029,8 +2029,8 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
"geDiagramContainer geDiagramBackdrop",d.style.backgroundImage="none",d.style.backgroundColor=""):(b.container.className="geDiagramContainer",d.style.backgroundPosition=c,d.style.backgroundColor=a,d.style.backgroundImage=e)};mxGraphView.prototype.createSvgGrid=function(b){for(var a=this.graph.gridSize*this.scale;a<this.minGridSize;)a*=2;for(var d=this.gridSteps*a,e=[],c=1;c<this.gridSteps;c++){var f=c*a;e.push("M 0 "+f+" L "+d+" "+f+" M "+f+" 0 L "+f+" "+d)}return'\x3csvg width\x3d"'+d+'" height\x3d"'+
d+'" xmlns\x3d"'+mxConstants.NS_SVG+'"\x3e\x3cdefs\x3e\x3cpattern id\x3d"grid" width\x3d"'+d+'" height\x3d"'+d+'" patternUnits\x3d"userSpaceOnUse"\x3e\x3cpath d\x3d"'+e.join(" ")+'" fill\x3d"none" stroke\x3d"'+b+'" opacity\x3d"0.2" stroke-width\x3d"1"/\x3e\x3cpath d\x3d"M '+d+" 0 L 0 0 0 "+d+'" fill\x3d"none" stroke\x3d"'+b+'" stroke-width\x3d"1"/\x3e\x3c/pattern\x3e\x3c/defs\x3e\x3crect width\x3d"100%" height\x3d"100%" fill\x3d"url(#grid)"/\x3e\x3c/svg\x3e'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=
function(b,d){a.apply(this,arguments);if(null!=this.shiftPreview1){var e=this.view.canvas;null!=e.ownerSVGElement&&(e=e.ownerSVGElement);var c=this.gridSize*this.view.scale*this.view.gridSteps,c=-Math.round(c-mxUtils.mod(this.view.translate.x*this.view.scale+b,c))+"px "+-Math.round(c-mxUtils.mod(this.view.translate.y*this.view.scale+d,c))+"px";e.style.backgroundPosition=c}};mxGraph.prototype.updatePageBreaks=function(b,a,d){var e=this.view.scale,c=this.view.translate,f=this.pageFormat,g=e*this.pageScale,
-q=this.view.getBackgroundPageBounds();a=q.width;d=q.height;var t=new mxRectangle(e*c.x,e*c.y,f.width*g,f.height*g),v=(b=b&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(d/t.height)-1:0,u=b?Math.ceil(a/t.width)-1:0,z=q.x+a,y=q.y+d;null==this.horizontalPageBreaks&&0<v&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<u&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var a=b==this.horizontalPageBreaks?v:u,d=0;d<=a;d++){var e=b==this.horizontalPageBreaks?
-[new mxPoint(Math.round(q.x),Math.round(q.y+(d+1)*t.height)),new mxPoint(Math.round(z),Math.round(q.y+(d+1)*t.height))]:[new mxPoint(Math.round(q.x+(d+1)*t.width),Math.round(q.y)),new mxPoint(Math.round(q.x+(d+1)*t.width),Math.round(y))];null!=b[d]?(b[d].points=e,b[d].redraw()):(e=new mxPolyline(e,this.pageBreakColor),e.dialect=this.dialect,e.isDashed=this.pageBreakDashed,e.pointerEvents=!1,e.init(this.view.backgroundPane),e.redraw(),b[d]=e)}for(d=a;d<b.length;d++)b[d].destroy();b.splice(a,b.length-
+q=this.view.getBackgroundPageBounds();a=q.width;d=q.height;var t=new mxRectangle(e*c.x,e*c.y,f.width*g,f.height*g),v=(b=b&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(d/t.height)-1:0,u=b?Math.ceil(a/t.width)-1:0,y=q.x+a,z=q.y+d;null==this.horizontalPageBreaks&&0<v&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<u&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var a=b==this.horizontalPageBreaks?v:u,d=0;d<=a;d++){var e=b==this.horizontalPageBreaks?
+[new mxPoint(Math.round(q.x),Math.round(q.y+(d+1)*t.height)),new mxPoint(Math.round(y),Math.round(q.y+(d+1)*t.height))]:[new mxPoint(Math.round(q.x+(d+1)*t.width),Math.round(q.y)),new mxPoint(Math.round(q.x+(d+1)*t.width),Math.round(z))];null!=b[d]?(b[d].points=e,b[d].redraw()):(e=new mxPolyline(e,this.pageBreakColor),e.dialect=this.dialect,e.isDashed=this.pageBreakDashed,e.pointerEvents=!1,e.init(this.view.backgroundPane),e.redraw(),b[d]=e)}for(d=a;d<b.length;d++)b[d].destroy();b.splice(a,b.length-
a)}});b(this.horizontalPageBreaks);b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,a,d){for(var e=0;e<a.length;e++)if(this.graph.getModel().isVertex(a[e])){var f=this.graph.getCellGeometry(a[e]);if(null!=f&&f.relative)return!1}return c.apply(this,arguments)};var f=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=f.apply(this,arguments);b.intersects=
mxUtils.bind(this,function(a,d){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff","#cacaca")};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),a=0<b.width?b.x/this.scale-this.translate.x:0,d=0<b.height?b.y/this.scale-this.translate.y:0,e=b.width/this.scale,c=b.height/this.scale,f=this.graph.pageFormat,g=this.graph.pageScale,
b=f.width*g,f=f.height*g,g=Math.floor(Math.min(0,a)/b),q=Math.floor(Math.min(0,d)/f),a=Math.ceil(Math.max(1,a+e)/b),d=Math.ceil(Math.max(1,d+c)/f);return new mxRectangle(this.scale*(this.translate.x+g*b),this.scale*(this.translate.y+q*f),this.scale*(a-g)*b,this.scale*(d-q)*f)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,a){d.apply(this,arguments);if(this.dialect!=mxConstants.DIALECT_SVG&&null!=this.view.backgroundPageShape&&(!this.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.container)))this.view.backgroundPageShape.node.style.marginLeft=
@@ -2049,12 +2049,12 @@ mxClient.IS_MAC&&mxEvent.isMetaDown(b))};var l=!1,m=null,n=null,p=null,r=mxUtils
m;this.toolbar.sizeMenu=n}l=d.cellEditor.isContentEditing();m=b;n=e;p=a}}),s=this,q=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){q.apply(this,arguments);r();if(d.cellEditor.isContentEditing()){var b=!1,a=function(){b||(b=!0,window.setTimeout(function(){for(var a=d.getSelectedElement();null!=a&&a.nodeType!=mxConstants.NODETYPE_ELEMENT;)a=a.parentNode;if(null!=a&&(a=mxUtils.getCurrentStyle(a),null!=a&&null!=s.toolbar)){var e=a.fontFamily;"'"==e.charAt(0)&&(e=e.substring(1));"'"==e.charAt(e.length-
1)&&(e=e.substring(0,e.length-1));s.toolbar.setFontName(e);s.toolbar.setFontSize(parseInt(a.fontSize))}b=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",a);mxEvent.addListener(d.cellEditor.textarea,"touchend",a);mxEvent.addListener(d.cellEditor.textarea,"mouseup",a);mxEvent.addListener(d.cellEditor.textarea,"keyup",a);a()}};var t=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(b,a){t.apply(this,arguments);r()};d.container.setAttribute("tabindex","0");d.container.style.cursor=
"default";window.self===window.top&&null!=d.container.parentNode&&d.container.focus();var v=d.fireMouseEvent;d.fireMouseEvent=function(b,a,d){b==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,a,d){this.menus.createPopupMenu(b,a,d)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(b){var a=d.view.getState(b);if(null!=a){b=b.clone();b.style="";b=d.getCellStyle(b);var e=[],c=[],f;for(f in a.style)b[f]!=a.style[f]&&(e.push(a.style[f]),c.push(f));f=d.getModel().getStyle(a.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],m=l.indexOf("\x3d");
-0<=m&&(f=l.substring(0,m),l=l.substring(m+1),null!=b[f]&&"none"==l&&(e.push(l),c.push(f)))}d.getModel().isEdge(a.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",e,"cells",[a.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=d.defaultEdgeStyle;d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var y=["fontFamily","fontSize","fontColor"],x="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),
-F=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],y,["align"],["html"]];for(a=0;a<F.length;a++)for(c=0;c<F[a].length;c++)u.push(F[a][c]);for(a=0;a<z.length;a++)u.push(z[a]);var E=function(b,a){d.getModel().beginUpdate();try{if(a)for(var e=d.getModel().isEdge(k),c=e?d.currentEdgeStyle:d.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],f=0;f<e.length;f++){var g=c[e[f]];null!=g&&d.setCellStyles(e[f],
-g,b)}else for(g=0;g<b.length;g++){for(var k=b[g],l=d.getModel().getStyle(k),m=null!=l?l.split(";"):[],n=u.slice(),f=0;f<m.length;f++){var q=m[f],r=q.indexOf("\x3d");if(0<=r){var s=q.substring(0,r),p=mxUtils.indexOf(n,s);0<=p&&n.splice(p,1);for(var t=0;t<F.length;t++){var v=F[t];if(0<=mxUtils.indexOf(v,s))for(var y=0;y<v.length;y++){var x=mxUtils.indexOf(n,v[y]);0<=x&&n.splice(x,1)}}}}c=(e=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<n.length;f++){var s=n[f],E=c[s];if(null!=
-E&&("shape"!=s||e))(!e||0>mxUtils.indexOf(z,s))&&d.setCellStyles(s,E,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(b,a){E(a.getProperty("cells"))});d.addListener("textInserted",function(b,a){E(a.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(b,a){var d=[a.getProperty("cell")];a.getProperty("terminalInserted")&&d.push(a.getProperty("terminal"));E(d)});this.addListener("styleChanged",mxUtils.bind(this,function(b,a){var e=a.getProperty("cells"),
-c=!1,f=!1;if(0<e.length)for(var g=0;g<e.length&&!(c=d.getModel().isVertex(e[g])||c,(f=d.getModel().isEdge(e[g])||f)&&c);g++);else f=c=!0;for(var e=a.getProperty("keys"),k=a.getProperty("values"),g=0;g<e.length;g++){var l=0<=mxUtils.indexOf(y,e[g]);if("strokeColor"!=e[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(z,e[g]))f||0<=mxUtils.indexOf(x,e[g])?null==k[g]?delete d.currentEdgeStyle[e[g]]:d.currentEdgeStyle[e[g]]=k[g]:c&&0<=mxUtils.indexOf(u,e[g])&&(null==k[g]?delete d.currentVertexStyle[e[g]]:
+this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(b){var a=d.view.getState(b);if(null!=a){b=b.clone();b.style="";b=d.getCellStyle(b);var e=[],c=[],f;for(f in a.style)b[f]!=a.style[f]&&(e.push(a.style[f]),c.push(f));f=d.getModel().getStyle(a.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],m=l.indexOf("\x3d");
+0<=m&&(f=l.substring(0,m),l=l.substring(m+1),null!=b[f]&&"none"==l&&(e.push(l),c.push(f)))}d.getModel().isEdge(a.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",e,"cells",[a.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=d.defaultEdgeStyle;d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var z=["fontFamily","fontSize","fontColor"],x="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),
+D=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],z,["align"],["html"]];for(a=0;a<D.length;a++)for(c=0;c<D[a].length;c++)u.push(D[a][c]);for(a=0;a<y.length;a++)u.push(y[a]);var C=function(b,a){d.getModel().beginUpdate();try{if(a)for(var e=d.getModel().isEdge(k),c=e?d.currentEdgeStyle:d.currentVertexStyle,e=["fontSize","fontFamily","fontColor"],f=0;f<e.length;f++){var g=c[e[f]];null!=g&&d.setCellStyles(e[f],
+g,b)}else for(g=0;g<b.length;g++){for(var k=b[g],l=d.getModel().getStyle(k),m=null!=l?l.split(";"):[],n=u.slice(),f=0;f<m.length;f++){var p=m[f],q=p.indexOf("\x3d");if(0<=q){var r=p.substring(0,q),s=mxUtils.indexOf(n,r);0<=s&&n.splice(s,1);for(var t=0;t<D.length;t++){var v=D[t];if(0<=mxUtils.indexOf(v,r))for(var x=0;x<v.length;x++){var z=mxUtils.indexOf(n,v[x]);0<=z&&n.splice(z,1)}}}}c=(e=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<n.length;f++){var r=n[f],C=c[r];if(null!=
+C&&("shape"!=r||e))(!e||0>mxUtils.indexOf(y,r))&&d.setCellStyles(r,C,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(b,a){C(a.getProperty("cells"))});d.addListener("textInserted",function(b,a){C(a.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(b,a){var d=[a.getProperty("cell")];a.getProperty("terminalInserted")&&d.push(a.getProperty("terminal"));C(d)});this.addListener("styleChanged",mxUtils.bind(this,function(b,a){var e=a.getProperty("cells"),
+c=!1,f=!1;if(0<e.length)for(var g=0;g<e.length&&!(c=d.getModel().isVertex(e[g])||c,(f=d.getModel().isEdge(e[g])||f)&&c);g++);else f=c=!0;for(var e=a.getProperty("keys"),k=a.getProperty("values"),g=0;g<e.length;g++){var l=0<=mxUtils.indexOf(z,e[g]);if("strokeColor"!=e[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(y,e[g]))f||0<=mxUtils.indexOf(x,e[g])?null==k[g]?delete d.currentEdgeStyle[e[g]]:d.currentEdgeStyle[e[g]]=k[g]:c&&0<=mxUtils.indexOf(u,e[g])&&(null==k[g]?delete d.currentVertexStyle[e[g]]:
d.currentVertexStyle[e[g]]=k[g]);else if(0<=mxUtils.indexOf(u,e[g])){if(c||l)null==k[g]?delete d.currentVertexStyle[e[g]]:d.currentVertexStyle[e[g]]=k[g];if(f||l||0<=mxUtils.indexOf(x,e[g]))null==k[g]?delete d.currentEdgeStyle[e[g]]:d.currentEdgeStyle[e[g]]=k[g]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
"orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
@@ -2090,9 +2090,9 @@ mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=d.left+"px
"":"none"})}null!=this.editor.editButtonLink&&d(mxUtils.bind(this,function(b){"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml(),null,!0):window.open(this.editor.editButtonLink,"editWindow");mxEvent.consume(b)}),Editor.editLargeImage,mxResources.get("openInNewWindow")||"Open in New Window");a.lightbox&&this.container!=document.body&&d(mxUtils.bind(this,function(b){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeLargeImage,(mxResources.get("close")||
"Close")+" (Escape)");this.chromelessToolbar.style.display="none";a.container.appendChild(this.chromelessToolbar);this.chromelessToolbar.style.marginLeft=-(24*b+10)+"px";this.addChromelessClickHandler();mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||s(30),r())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,
"mouseenter",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?r():s(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?r():s(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||s(30)}));var v=a.getTolerance(),u=this;a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();
-this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(b,a){},mouseUp:function(b,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<v&&Math.abs(this.scrollTop-a.container.scrollTop)<v&&Math.abs(this.startX-d.getGraphX())<v&&Math.abs(this.startY-d.getGraphY())<v&&(0<parseFloat(u.chromelessToolbar.style.opacity||0)?r():s(30))}})}else if(this.editor.extendCanvas){var z=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&
-mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),a=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*a.width;this.translate.y=b.y-(this.y0||0)*a.height}z.apply(this,arguments)};var y=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),d=this.getPagePadding(),e=this.getPageSize(),c=Math.ceil(2*d.x+b.width*e.width),f=Math.ceil(2*d.y+b.height*e.height),g=a.minimumGraphSize;if(null==
-g||g.width!=c||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,c,f);c=d.x-b.x*e.width;d=d.y-b.y*e.height;!this.autoTranslate&&(this.view.translate.x!=c||this.view.translate.y!=d)?(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,e=a.view.translate.y,a.view.setTranslate(c,d),a.container.scrollLeft+=Math.round((c-b)*a.view.scale),a.container.scrollTop+=Math.round((d-e)*a.view.scale),this.autoTranslate=!1):y.apply(this,arguments)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=
+this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(b,a){},mouseUp:function(b,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<v&&Math.abs(this.scrollTop-a.container.scrollTop)<v&&Math.abs(this.startX-d.getGraphX())<v&&Math.abs(this.startY-d.getGraphY())<v&&(0<parseFloat(u.chromelessToolbar.style.opacity||0)?r():s(30))}})}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&
+mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),a=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*a.width;this.translate.y=b.y-(this.y0||0)*a.height}y.apply(this,arguments)};var z=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),d=this.getPagePadding(),e=this.getPageSize(),c=Math.ceil(2*d.x+b.width*e.width),f=Math.ceil(2*d.y+b.height*e.height),g=a.minimumGraphSize;if(null==
+g||g.width!=c||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,c,f);c=d.x-b.x*e.width;d=d.y-b.y*e.height;!this.autoTranslate&&(this.view.translate.x!=c||this.view.translate.y!=d)?(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,e=a.view.translate.y,a.view.setTranslate(c,d),a.container.scrollLeft+=Math.round((c-b)*a.view.scale),a.container.scrollTop+=Math.round((d-e)*a.view.scale),this.autoTranslate=!1):z.apply(this,arguments)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=
1;var x=null;a.lazyZoom=function(b){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);b?0.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+0.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale):0.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale-0.01)/this.view.scale:(this.cumulativeZoomFactor/=
this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(0.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){this.zoom(this.cumulativeZoomFactor);null!=c&&c(!1);if(null!=x&&mxUtils.hasScrollbars(a.container)){var b=mxUtils.getOffset(a.container),d=a.container.offsetHeight/2-x.y+b.y;a.container.scrollLeft-=(a.container.offsetWidth/
2-x.x+b.x)*(this.cumulativeZoomFactor-1);a.container.scrollTop-=d*(this.cumulativeZoomFactor-1)}this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),20)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(b,d){if((mxEvent.isAltDown(b)||mxEvent.isControlDown(b)&&!mxClient.IS_MAC||a.panningHandler.isActive())&&(null==this.dialogs||0==this.dialogs.length))for(var e=mxEvent.getSource(b);null!=e;){if(e==a.container){x=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));a.lazyZoom(d);mxEvent.consume(b);
@@ -2117,7 +2117,7 @@ EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),c=this.actions.get("redo"),f=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());c.setEnabled(this.canRedo())});f.addListener(mxEvent.ADD,d);f.addListener(mxEvent.UNDO,d);f.addListener(mxEvent.REDO,d);f.addListener(mxEvent.CLEAR,d);var b=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){b.apply(this,arguments);d()};var e=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(b,a){e.apply(this,arguments);d()};d()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),f=!1,d=!1,b=a.getSelectionCells();if(null!=b)for(var e=0;e<b.length;e++){var g=b[e];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(f=!0);if(d&&f)break}b="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,c=!a.isSelectionEmpty(),f=!1,d=!1,b=a.getSelectionCells();if(null!=b)for(var e=0;e<b.length;e++){var g=b[e];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(f=!0);if(d&&f)break}b="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(e=
0;e<b.length;e++)this.actions.get(b[e]).setEnabled(c);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("clearWaypoints").setEnabled(d);this.actions.get("rotation").setEnabled(f);this.actions.get("wordWrap").setEnabled(f);this.actions.get("autosize").setEnabled(f);this.actions.get("collapsible").setEnabled(f);d=f&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<
a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(c||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(f&&1==a.getSelectionCount()&&
(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));c=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(c);this.actions.get("collapse").setEnabled(c);this.actions.get("editLink").setEnabled(1==
@@ -2308,8 +2308,8 @@ Sidebar.prototype.createDropHandler=function(a,c,f,d){f=null!=f?f:!0;return mxUt
k,l,g));if(null!=b.layoutManager){var r=b.layoutManager.getLayout(g);if(null!=r){var s=b.view.scale,q=b.view.translate,t=(k+q.x)*s,v=(l+q.y)*s;for(g=0;g<n.length;g++)r.moveCell(n[g],t,v)}}f&&b.fireEvent(new mxEventObject("cellsInserted","cells",n))}finally{b.model.endUpdate()}null!=n&&0<n.length&&(b.scrollCellToVisible(n[0]),b.setSelectionCells(n))}}mxEvent.consume(e)}})};
Sidebar.prototype.createDragPreview=function(a,c){var f=document.createElement("div");f.style.border="1px dashed black";f.style.width=a+"px";f.style.height=c+"px";return f};
Sidebar.prototype.dropAndConnect=function(a,c,f,d){var b=this.getDropAndConnectGeometry(a,c[d],f,c);if(null!=b){var e=this.editorUi.editor.graph,g=[];e.model.beginUpdate();try{var k=e.getCellGeometry(a),l=e.getCellGeometry(c[d]),m=e.model.getParent(a),n=!0;if(null!=e.layoutManager){var p=e.layoutManager.getLayout(m);if(null!=p&&p.constructor==mxStackLayout&&(n=!1,g=e.view.getState(m),null!=g)){var r=new mxPoint(g.x/e.view.scale-e.view.translate.x,g.y/e.view.scale-e.view.translate.y);b.x+=r.x;b.y+=
-r.y;var s=b.getTerminalPoint(!1);null!=s&&(s.x+=r.x,s.y+=r.y)}}var q=l.x,t=l.y;e.model.isEdge(c[d])&&(t=q=0);var v=e.model.isEdge(a)||null!=k&&!k.relative&&n,g=c=e.importCells(c,b.x-(v?q:0),b.y-(v?t:0),v?m:null);if(e.model.isEdge(a))e.model.setTerminal(a,c[d],f==mxConstants.DIRECTION_NORTH);else if(e.model.isEdge(c[d])){e.model.setTerminal(c[d],a,!0);var u=e.getCellGeometry(c[d]);u.points=null;if(null!=u.getTerminalPoint(!1))u.setTerminalPoint(b.getTerminalPoint(!1),!1);else if(v&&e.model.isVertex(m)){var z=
-e.view.getState(m),r=new mxPoint(z.x/e.view.scale-e.view.translate.x,z.y/e.view.scale-e.view.translate.y);e.cellsMoved(c,r.x,r.y,null,null,!0)}}else l=e.getCellGeometry(c[d]),q=b.x-Math.round(l.x),t=b.y-Math.round(l.y),b.x=Math.round(l.x),b.y=Math.round(l.y),e.model.setGeometry(c[d],b),e.cellsMoved(c,q,t,null,null,!0),g=c.slice(),c.push(e.insertEdge(null,null,"",a,c[d],e.createCurrentEdgeStyle()));e.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{e.model.endUpdate()}e.setSelectionCells(g)}};
+r.y;var s=b.getTerminalPoint(!1);null!=s&&(s.x+=r.x,s.y+=r.y)}}var q=l.x,t=l.y;e.model.isEdge(c[d])&&(t=q=0);var v=e.model.isEdge(a)||null!=k&&!k.relative&&n,g=c=e.importCells(c,b.x-(v?q:0),b.y-(v?t:0),v?m:null);if(e.model.isEdge(a))e.model.setTerminal(a,c[d],f==mxConstants.DIRECTION_NORTH);else if(e.model.isEdge(c[d])){e.model.setTerminal(c[d],a,!0);var u=e.getCellGeometry(c[d]);u.points=null;if(null!=u.getTerminalPoint(!1))u.setTerminalPoint(b.getTerminalPoint(!1),!1);else if(v&&e.model.isVertex(m)){var y=
+e.view.getState(m),r=new mxPoint(y.x/e.view.scale-e.view.translate.x,y.y/e.view.scale-e.view.translate.y);e.cellsMoved(c,r.x,r.y,null,null,!0)}}else l=e.getCellGeometry(c[d]),q=b.x-Math.round(l.x),t=b.y-Math.round(l.y),b.x=Math.round(l.x),b.y=Math.round(l.y),e.model.setGeometry(c[d],b),e.cellsMoved(c,q,t,null,null,!0),g=c.slice(),c.push(e.insertEdge(null,null,"",a,c[d],e.createCurrentEdgeStyle()));e.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{e.model.endUpdate()}e.setSelectionCells(g)}};
Sidebar.prototype.getDropAndConnectGeometry=function(a,c,f,d){var b=this.editorUi.editor.graph,e=b.view,g=1<d.length,k=b.getCellGeometry(a);d=b.getCellGeometry(c);null!=k&&null!=d&&(d=d.clone(),b.model.isEdge(a)?(a=b.view.getState(a),k=a.absolutePoints,c=k[0],b=k[k.length-1],f==mxConstants.DIRECTION_NORTH?(d.x=c.x/e.scale-e.translate.x-d.width/2,d.y=c.y/e.scale-e.translate.y-d.height/2):(d.x=b.x/e.scale-e.translate.x-d.width/2,d.y=b.y/e.scale-e.translate.y-d.height/2)):(k.relative&&(a=b.view.getState(a),
k=k.clone(),k.x=(a.x-e.translate.x)/e.scale,k.y=(a.y-e.translate.y)/e.scale),e=b.defaultEdgeLength,b.model.isEdge(c)&&null!=d.getTerminalPoint(!0)&&null!=d.getTerminalPoint(!1)?(c=d.getTerminalPoint(!0),b=d.getTerminalPoint(!1),e=b.x-c.x,c=b.y-c.y,e=Math.sqrt(e*e+c*c),d.x=k.getCenterX(),d.y=k.getCenterY(),d.width=1,d.height=1,f==mxConstants.DIRECTION_NORTH?(d.height=e,d.y=k.y-e,d.setTerminalPoint(new mxPoint(d.x,d.y),!1)):f==mxConstants.DIRECTION_EAST?(d.width=e,d.x=k.x+k.width,d.setTerminalPoint(new mxPoint(d.x+
d.width,d.y),!1)):f==mxConstants.DIRECTION_SOUTH?(d.height=e,d.y=k.y+k.height,d.setTerminalPoint(new mxPoint(d.x,d.y+d.height),!1)):f==mxConstants.DIRECTION_WEST&&(d.width=e,d.x=k.x-e,d.setTerminalPoint(new mxPoint(d.x,d.y),!1))):(!g&&45<d.width&&45<d.height&&(45<k.width&&45<k.height)&&(d.width*=k.height/d.height,d.height=k.height),d.x=k.x+k.width/2-d.width/2,d.y=k.y+k.height/2-d.height/2,f==mxConstants.DIRECTION_NORTH?d.y=d.y-k.height/2-d.height/2-e:f==mxConstants.DIRECTION_EAST?d.x=d.x+k.width/
@@ -2319,24 +2319,24 @@ Sidebar.prototype.createDragSource=function(a,c,f,d,b){function e(b,a){var d=nul
mxClient.IS_QUIRKS?"inline":"inline-block"):(d=mxUtils.createImage(b.src),d.style.width=b.width+"px",d.style.height=b.height+"px");null!=a&&d.setAttribute("title",a);mxUtils.setOpacity(d,b==this.refreshTarget?30:20);d.style.position="absolute";d.style.cursor="crosshair";return d}function g(b,a,d,e){null!=e.parentNode&&(mxUtils.contains(d,b,a)?(mxUtils.setOpacity(e,100),J=e):mxUtils.setOpacity(e,e==A?30:20));return d}for(var k=this.editorUi,l=k.editor.graph,m=null,n=null,p=this,r=0;r<d.length&&!(null==
n&&this.editorUi.editor.graph.model.isVertex(d[r])?n=r:null==m&&this.editorUi.editor.graph.model.isEdge(d[r])&&null==this.editorUi.editor.graph.model.getTerminal(d[r],!0)&&(m=r),null!=n&&null!=m);r++);var s=mxUtils.makeDraggable(a,this.editorUi.editor.graph,mxUtils.bind(this,function(b,a,e,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=d&&null!=u&&J==A){var k=b.isCellSelected(u.cell)?b.getSelectionCells():[u.cell],k=this.updateShapes(b.model.isEdge(u.cell)?d[0]:d[n],
k);b.setSelectionCells(k)}else null!=d&&null!=J&&null!=t&&J!=A?(k=b.model.isEdge(t.cell)||null==m?n:m,this.dropAndConnect(t.cell,d,I,k)):c.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(b.view.getState(b.getSelectionCell()))}),f,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);this.editorUi.editor.graph.addListener(mxEvent.ESCAPE,function(b,a){s.isActive()&&s.reset()});var q=s.mouseDown;s.mouseDown=function(b){!mxEvent.isPopupTrigger(b)&&!mxEvent.isMultiTouchEvent(b)&&
-(l.stopEditing(),q.apply(this,arguments))};var t=null,v=null,u=null,z=!1,y=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),F=e(this.triangleDown,mxResources.get("connect")),E=e(this.triangleLeft,mxResources.get("connect")),A=e(this.refreshTarget,mxResources.get("replace")),D=null,G=e(this.roundDrop),H=e(this.roundDrop),I=mxConstants.DIRECTION_NORTH,J=null,K=s.createPreviewElement;s.createPreviewElement=function(b){var a=K.apply(this,arguments);mxClient.IS_SVG&&
-(a.style.pointerEvents="none");this.previewElementWidth=a.style.width;this.previewElementHeight=a.style.height;return a};var O=s.dragEnter;s.dragEnter=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("none");O.apply(this,arguments)};var U=s.dragExit;s.dragExit=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("");U.apply(this,arguments)};s.dragOver=function(a,e){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=J&&this.currentGuide.hide();if(null!=
+(l.stopEditing(),q.apply(this,arguments))};var t=null,v=null,u=null,y=!1,z=e(this.triangleUp,mxResources.get("connect")),x=e(this.triangleRight,mxResources.get("connect")),D=e(this.triangleDown,mxResources.get("connect")),C=e(this.triangleLeft,mxResources.get("connect")),A=e(this.refreshTarget,mxResources.get("replace")),F=null,G=e(this.roundDrop),H=e(this.roundDrop),I=mxConstants.DIRECTION_NORTH,J=null,M=s.createPreviewElement;s.createPreviewElement=function(b){var a=M.apply(this,arguments);mxClient.IS_SVG&&
+(a.style.pointerEvents="none");this.previewElementWidth=a.style.width;this.previewElementHeight=a.style.height;return a};var P=s.dragEnter;s.dragEnter=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("none");P.apply(this,arguments)};var U=s.dragExit;s.dragExit=function(b,a){null!=k.hoverIcons&&k.hoverIcons.setDisplay("");U.apply(this,arguments)};s.dragOver=function(a,e){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=J&&this.currentGuide.hide();if(null!=
this.previewElement){var c=a.view;if(null!=u&&J==A)this.previewElement.style.display=a.model.isEdge(u.cell)?"none":"",this.previewElement.style.left=u.x+"px",this.previewElement.style.top=u.y+"px",this.previewElement.style.width=u.width+"px",this.previewElement.style.height=u.height+"px";else if(null!=t&&null!=J){var f=a.model.isEdge(t.cell)||null==m?n:m,g=p.getDropAndConnectGeometry(t.cell,d[f],I,d),k=!a.model.isEdge(t.cell)?a.getCellGeometry(t.cell):null,l=a.getCellGeometry(d[f]),q=a.model.getParent(t.cell),
r=c.translate.x*c.scale,v=c.translate.y*c.scale;null!=k&&!k.relative&&a.model.isVertex(q)&&(v=c.getState(q),r=v.x,v=v.y);k=l.x;l=l.y;a.model.isEdge(d[f])&&(l=k=0);this.previewElement.style.left=(g.x-k)*c.scale+r+"px";this.previewElement.style.top=(g.y-l)*c.scale+v+"px";1==d.length&&(this.previewElement.style.width=g.width*c.scale+"px",this.previewElement.style.height=g.height*c.scale+"px");this.previewElement.style.display=""}else null!=s.currentHighlight.state&&a.model.isEdge(s.currentHighlight.state.cell)?
-(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-b.width*c.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-b.height*c.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var W=(new Date).getTime(),B=0,C=null,Q=this.editorUi.editor.graph.getCellStyle(d[0]);s.getDropTarget=mxUtils.bind(this,function(b,
-a,e,c){var f=!mxEvent.isAltDown(c)&&null!=d?b.getCellAt(a,e):null;if(null!=f&&!this.graph.isCellConnectable(f)){var k=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(k)&&this.graph.isCellConnectable(k)&&(f=k)}b.isCellLocked(f)&&(f=null);var l=b.view.getState(f),k=J=null;C!=l?(C=l,W=(new Date).getTime(),B=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=l&&(this.updateThread=window.setTimeout(function(){null==J&&(C=l,s.getDropTarget(b,a,e,c))},this.dropTargetDelay+
+(this.previewElement.style.left=Math.round(parseInt(this.previewElement.style.left)-b.width*c.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-b.height*c.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var W=(new Date).getTime(),B=0,E=null,Q=this.editorUi.editor.graph.getCellStyle(d[0]);s.getDropTarget=mxUtils.bind(this,function(b,
+a,e,c){var f=!mxEvent.isAltDown(c)&&null!=d?b.getCellAt(a,e):null;if(null!=f&&!this.graph.isCellConnectable(f)){var k=this.graph.getModel().getParent(f);this.graph.getModel().isVertex(k)&&this.graph.isCellConnectable(k)&&(f=k)}b.isCellLocked(f)&&(f=null);var l=b.view.getState(f),k=J=null;E!=l?(E=l,W=(new Date).getTime(),B=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=l&&(this.updateThread=window.setTimeout(function(){null==J&&(E=l,s.getDropTarget(b,a,e,c))},this.dropTargetDelay+
10))):B=(new Date).getTime()-W;if(2500>B&&null!=l&&!mxEvent.isShiftDown(c)&&(mxUtils.getValue(l.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(Q,mxConstants.STYLE_SHAPE)&&mxUtils.getValue(l.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||"image"==mxUtils.getValue(Q,mxConstants.STYLE_SHAPE)||1500<B||b.model.isEdge(l.cell))&&B>this.dropTargetDelay&&(b.model.isVertex(l.cell)&&null!=n||b.model.isEdge(l.cell)&&b.model.isEdge(d[0]))){u=l;var m=b.model.isEdge(l.cell)?b.view.getPoint(l):
-new mxPoint(l.getCenterX(),l.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);A.style.left=Math.floor(m.x)+"px";A.style.top=Math.floor(m.y)+"px";null==D&&(b.container.appendChild(A),D=A.parentNode);g(a,e,m,A)}else null==u||!mxUtils.contains(u,a,e)||1500<B&&!mxEvent.isShiftDown(c)?(u=null,null!=D&&(A.parentNode.removeChild(A),D=null)):null!=u&&null!=D&&(m=b.model.isEdge(u.cell)?b.view.getPoint(u):new mxPoint(u.getCenterX(),
-u.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),g(a,e,m,A));if(z&&null!=t&&!mxEvent.isAltDown(c)&&null==J){k=mxRectangle.fromRectangle(t);if(b.model.isEdge(t.cell)){var q=t.absolutePoints;null!=G.parentNode&&(m=q[0],k.add(g(a,e,new mxRectangle(m.x-this.roundDrop.width/2,m.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),G)));null!=H.parentNode&&(q=q[q.length-1],k.add(g(a,e,new mxRectangle(q.x-
-this.roundDrop.width/2,q.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),H)))}else m=mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(m=mxRectangle.fromRectangle(t.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),q=this.graph.selectionCellsHandler.getHandler(t.cell),null!=q&&(m.x-=q.horizontalOffset/2,m.y-=q.verticalOffset/2,m.width+=q.horizontalOffset,m.height+=q.verticalOffset,null!=q.rotationShape&&null!=q.rotationShape.node&&
-"hidden"!=q.rotationShape.node.style.visibility&&("none"!=q.rotationShape.node.style.display&&null!=q.rotationShape.boundingBox)&&m.add(q.rotationShape.boundingBox)),k.add(g(a,e,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,m.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),y)),k.add(g(a,e,new mxRectangle(m.x+m.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),k.add(g(a,e,new mxRectangle(t.getCenterX()-this.triangleDown.width/
-2,m.y+m.height,this.triangleDown.width,this.triangleDown.height),F)),k.add(g(a,e,new mxRectangle(m.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),E));null!=k&&k.grow(10)}I=mxConstants.DIRECTION_NORTH;J==x?I=mxConstants.DIRECTION_EAST:J==F||J==H?I=mxConstants.DIRECTION_SOUTH:J==E&&(I=mxConstants.DIRECTION_WEST);null!=u&&J==A&&(l=u);m=(null==n||b.isCellConnectable(d[n]))&&(b.model.isEdge(f)&&null!=n||b.model.isVertex(f)&&b.isCellConnectable(f));
-if(null!=t&&5E3<=B||t!=l&&(null==k||!mxUtils.contains(k,a,e)||500<B&&null==J&&m))if(z=!1,t=5E3>B&&B>this.dropTargetDelay||b.model.isEdge(f)?l:null,null!=t&&m){k=[G,H,y,x,F,E];for(m=0;m<k.length;m++)null!=k[m].parentNode&&k[m].parentNode.removeChild(k[m]);b.model.isEdge(f)?(q=l.absolutePoints,null!=q&&(m=q[0],q=q[q.length-1],k=b.tolerance,new mxRectangle(a-k,e-k,2*k,2*k),G.style.left=Math.floor(m.x-this.roundDrop.width/2)+"px",G.style.top=Math.floor(m.y-this.roundDrop.height/2)+"px",H.style.left=Math.floor(q.x-
-this.roundDrop.width/2)+"px",H.style.top=Math.floor(q.y-this.roundDrop.height/2)+"px",null==b.model.getTerminal(f,!0)&&b.container.appendChild(G),null==b.model.getTerminal(f,!1)&&b.container.appendChild(H))):(m=mxRectangle.fromRectangle(l),null!=l.shape&&null!=l.shape.boundingBox&&(m=mxRectangle.fromRectangle(l.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),q=this.graph.selectionCellsHandler.getHandler(l.cell),null!=q&&(m.x-=q.horizontalOffset/2,m.y-=q.verticalOffset/
-2,m.width+=q.horizontalOffset,m.height+=q.verticalOffset,null!=q.rotationShape&&null!=q.rotationShape.node&&"hidden"!=q.rotationShape.node.style.visibility&&("none"!=q.rotationShape.node.style.display&&null!=q.rotationShape.boundingBox)&&m.add(q.rotationShape.boundingBox)),y.style.left=Math.floor(l.getCenterX()-this.triangleUp.width/2)+"px",y.style.top=Math.floor(m.y-this.triangleUp.height)+"px",x.style.left=Math.floor(m.x+m.width)+"px",x.style.top=Math.floor(l.getCenterY()-this.triangleRight.height/
-2)+"px",F.style.left=y.style.left,F.style.top=Math.floor(m.y+m.height)+"px",E.style.left=Math.floor(m.x-this.triangleLeft.width)+"px",E.style.top=x.style.top,"eastwest"!=l.style.portConstraint&&(b.container.appendChild(y),b.container.appendChild(F)),b.container.appendChild(x),b.container.appendChild(E));null!=l&&(v=b.selectionCellsHandler.getHandler(l.cell),null!=v&&null!=v.setHandlesVisible&&v.setHandlesVisible(!1));z=!0}else{k=[G,H,y,x,F,E];for(m=0;m<k.length;m++)null!=k[m].parentNode&&k[m].parentNode.removeChild(k[m])}!z&&
+new mxPoint(l.getCenterX(),l.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height);A.style.left=Math.floor(m.x)+"px";A.style.top=Math.floor(m.y)+"px";null==F&&(b.container.appendChild(A),F=A.parentNode);g(a,e,m,A)}else null==u||!mxUtils.contains(u,a,e)||1500<B&&!mxEvent.isShiftDown(c)?(u=null,null!=F&&(A.parentNode.removeChild(A),F=null)):null!=u&&null!=F&&(m=b.model.isEdge(u.cell)?b.view.getPoint(u):new mxPoint(u.getCenterX(),
+u.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/2,this.refreshTarget.width,this.refreshTarget.height),g(a,e,m,A));if(y&&null!=t&&!mxEvent.isAltDown(c)&&null==J){k=mxRectangle.fromRectangle(t);if(b.model.isEdge(t.cell)){var p=t.absolutePoints;null!=G.parentNode&&(m=p[0],k.add(g(a,e,new mxRectangle(m.x-this.roundDrop.width/2,m.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),G)));null!=H.parentNode&&(p=p[p.length-1],k.add(g(a,e,new mxRectangle(p.x-
+this.roundDrop.width/2,p.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),H)))}else m=mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(m=mxRectangle.fromRectangle(t.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),p=this.graph.selectionCellsHandler.getHandler(t.cell),null!=p&&(m.x-=p.horizontalOffset/2,m.y-=p.verticalOffset/2,m.width+=p.horizontalOffset,m.height+=p.verticalOffset,null!=p.rotationShape&&null!=p.rotationShape.node&&
+"hidden"!=p.rotationShape.node.style.visibility&&("none"!=p.rotationShape.node.style.display&&null!=p.rotationShape.boundingBox)&&m.add(p.rotationShape.boundingBox)),k.add(g(a,e,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,m.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),z)),k.add(g(a,e,new mxRectangle(m.x+m.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),x)),k.add(g(a,e,new mxRectangle(t.getCenterX()-this.triangleDown.width/
+2,m.y+m.height,this.triangleDown.width,this.triangleDown.height),D)),k.add(g(a,e,new mxRectangle(m.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),C));null!=k&&k.grow(10)}I=mxConstants.DIRECTION_NORTH;J==x?I=mxConstants.DIRECTION_EAST:J==D||J==H?I=mxConstants.DIRECTION_SOUTH:J==C&&(I=mxConstants.DIRECTION_WEST);null!=u&&J==A&&(l=u);m=(null==n||b.isCellConnectable(d[n]))&&(b.model.isEdge(f)&&null!=n||b.model.isVertex(f)&&b.isCellConnectable(f));
+if(null!=t&&5E3<=B||t!=l&&(null==k||!mxUtils.contains(k,a,e)||500<B&&null==J&&m))if(y=!1,t=5E3>B&&B>this.dropTargetDelay||b.model.isEdge(f)?l:null,null!=t&&m){k=[G,H,z,x,D,C];for(m=0;m<k.length;m++)null!=k[m].parentNode&&k[m].parentNode.removeChild(k[m]);b.model.isEdge(f)?(p=l.absolutePoints,null!=p&&(m=p[0],p=p[p.length-1],k=b.tolerance,new mxRectangle(a-k,e-k,2*k,2*k),G.style.left=Math.floor(m.x-this.roundDrop.width/2)+"px",G.style.top=Math.floor(m.y-this.roundDrop.height/2)+"px",H.style.left=Math.floor(p.x-
+this.roundDrop.width/2)+"px",H.style.top=Math.floor(p.y-this.roundDrop.height/2)+"px",null==b.model.getTerminal(f,!0)&&b.container.appendChild(G),null==b.model.getTerminal(f,!1)&&b.container.appendChild(H))):(m=mxRectangle.fromRectangle(l),null!=l.shape&&null!=l.shape.boundingBox&&(m=mxRectangle.fromRectangle(l.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),p=this.graph.selectionCellsHandler.getHandler(l.cell),null!=p&&(m.x-=p.horizontalOffset/2,m.y-=p.verticalOffset/
+2,m.width+=p.horizontalOffset,m.height+=p.verticalOffset,null!=p.rotationShape&&null!=p.rotationShape.node&&"hidden"!=p.rotationShape.node.style.visibility&&("none"!=p.rotationShape.node.style.display&&null!=p.rotationShape.boundingBox)&&m.add(p.rotationShape.boundingBox)),z.style.left=Math.floor(l.getCenterX()-this.triangleUp.width/2)+"px",z.style.top=Math.floor(m.y-this.triangleUp.height)+"px",x.style.left=Math.floor(m.x+m.width)+"px",x.style.top=Math.floor(l.getCenterY()-this.triangleRight.height/
+2)+"px",D.style.left=z.style.left,D.style.top=Math.floor(m.y+m.height)+"px",C.style.left=Math.floor(m.x-this.triangleLeft.width)+"px",C.style.top=x.style.top,"eastwest"!=l.style.portConstraint&&(b.container.appendChild(z),b.container.appendChild(D)),b.container.appendChild(x),b.container.appendChild(C));null!=l&&(v=b.selectionCellsHandler.getHandler(l.cell),null!=v&&null!=v.setHandlesVisible&&v.setHandlesVisible(!1));y=!0}else{k=[G,H,z,x,D,C];for(m=0;m<k.length;m++)null!=k[m].parentNode&&k[m].parentNode.removeChild(k[m])}!y&&
null!=v&&v.setHandlesVisible(!0);f=(!mxEvent.isAltDown(c)||mxEvent.isShiftDown(c))&&!(null!=u&&J==A)?mxDragSource.prototype.getDropTarget.apply(this,arguments):null;k=b.getModel();if(null!=f&&(null!=J||!b.isSplitTarget(f,d,c))){for(;null!=f&&!b.isValidDropTarget(f,d,c)&&k.isVertex(k.getParent(f));)f=k.getParent(f);if(b.view.currentRoot==f||!b.isValidRoot(f)&&0==b.getModel().getChildCount(f)||b.isCellLocked(f)||k.isEdge(f))f=null}return f});s.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,
-arguments);for(var b=[G,H,A,y,x,F,E],a=0;a<b.length;a++)null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a]);null!=t&&null!=v&&v.reset();J=D=u=t=v=null};return s};
+arguments);for(var b=[G,H,A,z,x,D,C],a=0;a<b.length;a++)null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a]);null!=t&&null!=v&&v.reset();J=F=u=t=v=null};return s};
Sidebar.prototype.itemClicked=function(a,c,f,d){d=this.editorUi.editor.graph;if(mxEvent.isAltDown(f)){if(1==d.getSelectionCount()&&d.model.isVertex(d.getSelectionCell())){c=null;for(var b=0;b<a.length&&null==c;b++)d.model.isVertex(a[b])&&(c=b);null!=c&&(this.dropAndConnect(d.getSelectionCell(),a,mxEvent.isMetaDown(f)||mxEvent.isControlDown(f)?mxEvent.isShiftDown(f)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(f)?mxConstants.DIRECTION_EAST:mxConstants.DIRECTION_SOUTH,
c),d.scrollCellToVisible(d.getSelectionCell()))}}else mxEvent.isShiftDown(f)?d.isSelectionEmpty()||(this.updateShapes(a[0],d.getSelectionCells()),d.scrollCellToVisible(d.getSelectionCell())):(a=d.getFreeInsertPoint(),c.drop(d,f,null,a.x,a.y),null!=this.editorUi.hoverIcons&&mxEvent.isTouchEvent(f)&&this.editorUi.hoverIcons.update(d.view.getState(d.getSelectionCell())))};
Sidebar.prototype.addClickHandler=function(a,c,f){var d=this.editorUi.editor.graph,b=c.mouseUp,e=null;mxEvent.addGestureListeners(a,function(b){e=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b))});c.mouseUp=mxUtils.bind(this,function(g){if(!mxEvent.isPopupTrigger(g)&&null==this.currentGraph&&null!=e){var k=d.tolerance;Math.abs(e.x-mxEvent.getClientX(g))<=k&&Math.abs(e.y-mxEvent.getClientY(g))<=k&&this.itemClicked(f,c,g,a)}b.apply(c,arguments);e=null;this.currentElt=a})};
@@ -2360,22 +2360,22 @@ mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhC
Graph=function(a,c,f,d,b){mxGraph.call(this,a,c,f,d);this.themes=b||this.defaultThemes;a=this.baseUrl;c=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=a.indexOf("/",c+2),0<c&&(this.domainUrl=a.substring(0,c)),c=a.lastIndexOf("/"),0<c&&(this.domainPathUrl=a.substring(0,c+1)));this.isHtmlLabel=function(b){var a=this.view.getState(b);b=null!=a?a.style:this.getCellStyle(b);return"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var e=null,g=null,k=null,l=null,m=!1;
this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,a){if("mouseDown"==a.getProperty("eventName")&&this.isEnabled()){var d=a.getProperty("event");if(!mxEvent.isControlDown(d.getEvent())&&!mxEvent.isShiftDown(d.getEvent())){var c=d.getState();null!=c&&this.model.isEdge(c.cell)&&(e=new mxPoint(d.getGraphX(),d.getGraphY()),m=this.isCellSelected(c.cell),k=c,g=d,null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,d.getGraphX(),d.getGraphY())?l=mxEvent.LABEL_HANDLE:
(c=this.selectionCellsHandler.getHandler(c.cell),null!=c&&null!=c.bends&&0<c.bends.length&&(l=c.getHandleForEvent(d))))}}}));this.addMouseListener({mouseDown:function(b,a){},mouseMove:mxUtils.bind(this,function(b,a){if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(a.getEvent())&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isAltDown(a.getEvent())){var d=this.tolerance;if(null!=e&&null!=k&&null!=g){var c=k;if(Math.abs(e.x-a.getGraphX())>d*this.view.scale||Math.abs(e.y-a.getGraphY())>
-d*this.view.scale){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var n=f.getHandleForEvent(g),q=this.view.getEdgeStyle(c),d=q==mxEdgeStyle.EntityRelation;!m&&l==mxEvent.LABEL_HANDLE&&(n=l);if(!d||0==n||n==f.bends.length-1||n==mxEvent.LABEL_HANDLE){if(n==mxEvent.LABEL_HANDLE||0==n||null!=c.visibleSourceState||n==f.bends.length-1||null!=c.visibleTargetState){if(!d&&n!=mxEvent.LABEL_HANDLE){d=
-c.absolutePoints;if(null!=d&&(null==q&&null==n||q==mxEdgeStyle.OrthConnector))n=l,null==n&&(n=new mxRectangle(e.x,e.y),n.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(n,d[0].x,d[0].y)?n=0:mxUtils.contains(n,d[d.length-1].x,d[d.length-1].y)?n=f.bends.length-1:null!=q&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?n=2:(n=mxUtils.findNearestSegment(c,e.x,e.y),n=null==q?mxEvent.VIRTUAL_HANDLE-
+d*this.view.scale){this.isCellSelected(c.cell)||this.setSelectionCell(c.cell);var f=this.selectionCellsHandler.getHandler(c.cell);if(null!=f&&null!=f.bends&&0<f.bends.length){var n=f.getHandleForEvent(g),p=this.view.getEdgeStyle(c),d=p==mxEdgeStyle.EntityRelation;!m&&l==mxEvent.LABEL_HANDLE&&(n=l);if(!d||0==n||n==f.bends.length-1||n==mxEvent.LABEL_HANDLE){if(n==mxEvent.LABEL_HANDLE||0==n||null!=c.visibleSourceState||n==f.bends.length-1||null!=c.visibleTargetState){if(!d&&n!=mxEvent.LABEL_HANDLE){d=
+c.absolutePoints;if(null!=d&&(null==p&&null==n||p==mxEdgeStyle.OrthConnector))n=l,null==n&&(n=new mxRectangle(e.x,e.y),n.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(n,d[0].x,d[0].y)?n=0:mxUtils.contains(n,d[d.length-1].x,d[d.length-1].y)?n=f.bends.length-1:null!=p&&(2==d.length||3==d.length&&(0==Math.round(d[0].x-d[1].x)&&0==Math.round(d[1].x-d[2].x)||0==Math.round(d[0].y-d[1].y)&&0==Math.round(d[1].y-d[2].y)))?n=2:(n=mxUtils.findNearestSegment(c,e.x,e.y),n=null==p?mxEvent.VIRTUAL_HANDLE-
n:n+1));null==n&&(n=mxEvent.VIRTUAL_HANDLE)}f.start(a.getGraphX(),a.getGraphX(),n);l=e=g=k=null;m=!1;a.consume();this.graphHandler.reset()}}else if(d&&(null!=c.visibleSourceState||null!=c.visibleTargetState))this.graphHandler.reset(),a.consume()}}}else if(c=a.getState(),null!=c&&this.model.isEdge(c.cell)){f=null;d=c.absolutePoints;if(null!=d)if(n=new mxRectangle(a.getGraphX(),a.getGraphY()),n.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,
-a.getGraphX(),a.getGraphY()))f="move";else if(mxUtils.contains(n,d[0].x,d[0].y)||mxUtils.contains(n,d[d.length-1].x,d[d.length-1].y))f="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)q=this.view.getEdgeStyle(c),f="crosshair",q!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(q=mxUtils.findNearestSegment(c,a.getGraphX(),a.getGraphY()),q<d.length-1&&0<=q&&(f=0==Math.round(d[q].x-d[q+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}}),mouseUp:mxUtils.bind(this,function(b,
+a.getGraphX(),a.getGraphY()))f="move";else if(mxUtils.contains(n,d[0].x,d[0].y)||mxUtils.contains(n,d[d.length-1].x,d[d.length-1].y))f="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)p=this.view.getEdgeStyle(c),f="crosshair",p!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(p=mxUtils.findNearestSegment(c,a.getGraphX(),a.getGraphY()),p<d.length-1&&0<=p&&(f=0==Math.round(d[p].x-d[p+1].x)?"col-resize":"row-resize"));null!=f&&c.setCursor(f)}}}),mouseUp:mxUtils.bind(this,function(b,
a){l=e=g=k=null})})}this.cellRenderer.getLabelValue=function(b){var a=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);b.view.graph.isHtmlLabel(b.cell)&&(a=1!=b.style.html?mxUtils.htmlEntities(a,!1):b.view.graph.sanitizeHtml(a));return a};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=
!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(b,a){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var n=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=n.apply(this,arguments);if(this.graph.pageVisible){for(var a=[],d=this.graph.pageFormat,e=this.graph.pageScale,c=d.width*e,d=d.height*
e,e=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)a.push(new mxRectangle(((g.x+k)*c+e.x)*f,(g.y*d+e.y)*f,c*f,d*f));for(k=0;k<g.height;k++)a.push(new mxRectangle((g.x*c+e.x)*f,((g.y+k)*d+e.y)*f,c*f,d*f));b=a.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,a){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor=
"#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(b){for(var a=mxGraphHandler.prototype.getCells.apply(this,arguments),d=[],e=0;e<a.length;e++){var c=this.graph.view.getState(a[e]),c=null!=c?c.style:this.graph.getCellStyle(a[e]);"1"==mxUtils.getValue(c,"part","0")?(c=this.graph.model.getParent(a[e]),this.graph.model.isVertex(c)&&0>mxUtils.indexOf(a,c)&&d.push(c)):
d.push(a[e])}return d};this.connectionHandler.createTargetVertex=function(b,a){var d=this.graph.view.getState(a),d=null!=d?d.style:this.graph.getCellStyle(a);mxUtils.getValue(d,"part",!1)&&(d=this.graph.model.getParent(a),this.graph.model.isVertex(d)&&(a=d));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var p=new mxRubberband(this);this.getRubberband=function(){return p};var r=(new Date).getTime(),s=0,q=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=
function(){var b=this.currentState;q.apply(this,arguments);b!=this.currentState?(r=(new Date).getTime(),s=0):s=(new Date).getTime()-r};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<s||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var v=this.isToggleEvent;this.isToggleEvent=function(b){return v.apply(this,
-arguments)||mxEvent.isShiftDown(b)};var u=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(b){return u.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var z=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(z=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
-function(){this.isEnabled()&&(this.container.style.cursor=z)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var y=this.click;this.click=function(b){if(!this.isEnabled()&&!b.isConsumed()){var a=b.getCell();null!=a&&(a=this.getLinkForCell(a),null!=a&&window.open(a))}else return y.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(b){if(this.isEnabled())return x.apply(this,arguments);if(null!=
-this.getLinkForCell(b))return"pointer"};this.selectRegion=function(b,a){var d=this.getAllCells(b.x,b.y,b.width,b.height);this.selectCellsForEvent(d,a);return d};this.getAllCells=function(b,a,d,e,c,f){f=null!=f?f:[];if(0<d||0<e){var g=this.getModel(),k=b+d,l=a+e;null==c&&(c=this.getCurrentRoot(),null==c&&(c=g.getRoot()));if(null!=c)for(var m=g.getChildCount(c),n=0;n<m;n++){var q=g.getChildAt(c,n),r=this.view.getState(q);if(null!=r&&this.isCellVisible(q)&&"1"!=mxUtils.getValue(r.style,"locked","0")){var s=
-mxUtils.getValue(r.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(r=mxUtils.getBoundingBox(r,s));(g.isEdge(q)||g.isVertex(q))&&r.x>=b&&r.y+r.height<=l&&(r.y>=a&&r.x+r.width<=k)&&f.push(q);this.getAllCells(b,a,d,e,q,f)}}}return f};var F=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,a,d){return this.graph.isCellSelected(b)?!1:F.apply(this,arguments)};this.isCellLocked=function(b){for(b=this.view.getState(b);null!=b;){if("1"==mxUtils.getValue(b.style,
-"locked","0"))return!0;b=this.view.getState(this.model.getParent(b.cell))}return!1};var E=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,a){if("mouseDown"==a.getProperty("eventName")){var d=a.getProperty("event").getState();E=null!=d&&!this.isSelectionEmpty()&&!this.isCellSelected(d.cell)?this.getSelectionCells():null}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,a){if(!mxEvent.isMultiTouchEvent(a)){var d=a.getProperty("event"),e=a.getProperty("cell");
-null==e?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),p.start(d.x,d.y)):null!=E?this.addSelectionCells(E):1<this.getSelectionCount()&&this.isCellSelected(e)&&this.removeSelectionCell(e);E=null;a.consume()}}));this.connectionHandler.selectCells=function(b,a){this.graph.setSelectionCell(a||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,a){return a&&b.view.graph.isCellSelected(b.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
+arguments)||mxEvent.isShiftDown(b)};var u=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(b){return u.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var y=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(y=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
+function(){this.isEnabled()&&(this.container.style.cursor=y)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var z=this.click;this.click=function(b){if(!this.isEnabled()&&!b.isConsumed()){var a=b.getCell();null!=a&&(a=this.getLinkForCell(a),null!=a&&window.open(a))}else return z.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(b){if(this.isEnabled())return x.apply(this,arguments);if(null!=
+this.getLinkForCell(b))return"pointer"};this.selectRegion=function(b,a){var d=this.getAllCells(b.x,b.y,b.width,b.height);this.selectCellsForEvent(d,a);return d};this.getAllCells=function(b,a,d,e,c,f){f=null!=f?f:[];if(0<d||0<e){var g=this.getModel(),k=b+d,l=a+e;null==c&&(c=this.getCurrentRoot(),null==c&&(c=g.getRoot()));if(null!=c)for(var m=g.getChildCount(c),n=0;n<m;n++){var p=g.getChildAt(c,n),q=this.view.getState(p);if(null!=q&&this.isCellVisible(p)&&"1"!=mxUtils.getValue(q.style,"locked","0")){var r=
+mxUtils.getValue(q.style,mxConstants.STYLE_ROTATION)||0;0!=r&&(q=mxUtils.getBoundingBox(q,r));(g.isEdge(p)||g.isVertex(p))&&q.x>=b&&q.y+q.height<=l&&(q.y>=a&&q.x+q.width<=k)&&f.push(p);this.getAllCells(b,a,d,e,p,f)}}}return f};var D=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,a,d){return this.graph.isCellSelected(b)?!1:D.apply(this,arguments)};this.isCellLocked=function(b){for(b=this.view.getState(b);null!=b;){if("1"==mxUtils.getValue(b.style,
+"locked","0"))return!0;b=this.view.getState(this.model.getParent(b.cell))}return!1};var C=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,a){if("mouseDown"==a.getProperty("eventName")){var d=a.getProperty("event").getState();C=null!=d&&!this.isSelectionEmpty()&&!this.isCellSelected(d.cell)?this.getSelectionCells():null}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,a){if(!mxEvent.isMultiTouchEvent(a)){var d=a.getProperty("event"),e=a.getProperty("cell");
+null==e?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),p.start(d.x,d.y)):null!=C?this.addSelectionCells(C):1<this.getSelectionCount()&&this.isCellSelected(e)&&this.removeSelectionCell(e);C=null;a.consume()}}));this.connectionHandler.selectCells=function(b,a){this.graph.setSelectionCell(a||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,a){return a&&b.view.graph.isCellSelected(b.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var A=this.updateMouseEvent;this.updateMouseEvent=function(b){b=A.apply(this,arguments);this.isCellLocked(b.getCell())&&(b.state=null);return b}}};
Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkTarget="_blank";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;
Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};
@@ -2480,7 +2480,7 @@ f[1]),2<f.length?"0"!=f[2]:!0))}}catch(g){}return e}if(null!=b.shape)if(null!=b.
this.setCellStyles(mxConstants.STYLE_ELBOW,a,[b]))}};Graph.prototype.isValidRoot=function(b){for(var a=this.model.getChildCount(b),d=0,e=0;e<a;e++){var c=this.model.getChildAt(b,e);this.model.isVertex(c)&&(c=this.getCellGeometry(c),null!=c&&!c.relative&&d++)}return 0<d||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b){var a=this.view.getState(b),a=null!=a?a.style:this.getCellStyle(b);return"1"!=mxUtils.getValue(a,"part","0")&&(this.isContainer(b)||mxGraph.prototype.isValidDropTarget.apply(this,
arguments)&&"0"!=mxUtils.getValue(a,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var a=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(a&&null!=b&&null!=this.layoutManager){var d=this.model.getParent(b);null!=d&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(a=!1))}return a};Graph.prototype.getPreferredSizeForCell=
function(b){var a=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=a&&(a.width+=10,a.height+=4,this.gridEnabled&&(a.width=this.snap(a.width),a.height=this.snap(a.height)));return a};Graph.prototype.turnShapes=function(b){var a=this.getModel(),d=[];a.beginUpdate();try{for(var e=0;e<b.length;e++){var c=b[e];if(a.isEdge(c)){var f=a.getTerminal(c,!0),g=a.getTerminal(c,!1);a.setTerminal(c,g,!0);a.setTerminal(c,f,!1);var k=a.getGeometry(c);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();
-var l=k.getTerminalPoint(!0),m=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(m,!0);a.setGeometry(c,k);var n=this.view.getState(c),q=this.view.getState(f),r=this.view.getState(g);if(null!=n){var s=null!=q?this.getConnectionConstraint(n,q,!0):null,p=null!=r?this.getConnectionConstraint(n,r,!1):null;this.setConnectionConstraint(c,f,!0,p);this.setConnectionConstraint(c,g,!1,s)}d.push(c)}}else if(a.isVertex(c)&&(k=this.getCellGeometry(c),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
+var l=k.getTerminalPoint(!0),m=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(m,!0);a.setGeometry(c,k);var n=this.view.getState(c),p=this.view.getState(f),q=this.view.getState(g);if(null!=n){var r=null!=p?this.getConnectionConstraint(n,p,!0):null,s=null!=q?this.getConnectionConstraint(n,q,!1):null;this.setConnectionConstraint(c,f,!0,s);this.setConnectionConstraint(c,g,!1,r)}d.push(c)}}else if(a.isVertex(c)&&(k=this.getCellGeometry(c),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
2;k.y+=k.height/2-k.width/2;var t=k.width;k.width=k.height;k.height=t;a.setGeometry(c,k);var u=this.view.getState(c);if(null!=u){var v=u.style[mxConstants.STYLE_DIRECTION]||"east";"east"==v?v="south":"south"==v?v="west":"west"==v?v="north":"north"==v&&(v="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,v,[c])}d.push(c)}}}finally{a.endUpdate()}return d};Graph.prototype.processChange=function(b){mxGraph.prototype.processChange.apply(this,arguments);if(b instanceof mxValueChange&&null!=b.cell.value&&
"object"==typeof b.cell.value){var a=this.model.getDescendants(b.cell);if(0<a.length)for(var d=0;d<a.length;d++)this.isReplacePlaceholders(a[d])&&this.view.invalidate(a[d],!1,!1)}};Graph.prototype.cellLabelChanged=function(b,a,d){a=this.zapGremlins(a);this.model.beginUpdate();try{if(null!=b.value&&"object"==typeof b.value){if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var e=b.getAttribute("placeholder"),c=b;null!=c;){if(c==this.model.getRoot()||null!=c.value&&"object"==
typeof c.value&&c.hasAttribute(e)){this.setAttributeForCell(c,e,a);break}c=this.model.getParent(c)}var f=b.value.cloneNode(!0);f.setAttribute("label",a);a=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.removeCellsAfterUngroup=function(b){for(var a=[],d=0;d<b.length;d++)if(this.isCellDeletable(b[d])){var e=this.view.getState(b[d]);if(null!=e){var c=mxUtils.getValue(e.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),e=mxUtils.getValue(e.style,
@@ -2488,26 +2488,26 @@ mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);c==mxConstants.NONE&&e==mxConstant
e.setAttribute("label",b.value||""));null!=d&&0<d.length?e.setAttribute(a,d):e.removeAttribute(a);this.model.setValue(b,e)};Graph.prototype.getDropTarget=function(b,a,d,e){this.getModel();if(mxEvent.isAltDown(a))return null;for(var c=0;c<b.length;c++)if(this.model.isEdge(this.model.getParent(b[c])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,b);this.firstClickState=b.getState();this.firstClickSource=
b.getSource()};Graph.prototype.dblClick=function(b,a){if(this.isEnabled()){var d=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b));if(null!=b&&!this.model.isVertex(a)){var e=this.model.isEdge(a)?this.view.getState(a):null,c=mxEvent.getSource(b);if(this.firstClickState==e&&this.firstClickSource==c&&(null==e||null==e.text||null==e.text.node||!mxUtils.contains(e.text.boundingBox,d.x,d.y)&&!mxUtils.isAncestorNode(e.text.node,mxEvent.getSource(b))))if(null==e&&!this.isCellLocked(this.getDefaultParent())||
null!=e&&!this.isCellLocked(e.cell))if(null!=e||mxClient.IS_VML&&c==this.view.getCanvas()||mxClient.IS_SVG&&c==this.view.getCanvas().ownerSVGElement)a=this.addText(d.x,d.y,e)}mxGraph.prototype.dblClick.call(this,b,a)}};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),a=this.container.scrollLeft/this.view.scale-this.view.translate.x,d=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var e=this.getPageLayout(),c=this.getPageSize(),a=Math.max(a,e.x*
-c.width),d=Math.max(d,e.y*c.height);return new mxPoint(this.snap(a+b),this.snap(d+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,a=this.getGraphBounds(),d=this.getInsertPoint(),e=this.snap(Math.max(d.x,a.x/b.scale-b.translate.x+(0==a.width?this.gridSize:0))),b=this.snap(Math.max(d.y,(a.y+a.height)/b.scale-b.translate.y+(0==a.height?1:2)*this.gridSize));return new mxPoint(e,b)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(b,a,d){var e=
-new mxCell;e.value="Text";e.style="text;html\x3d1;resizable\x3d0;points\x3d[];";e.geometry=new mxGeometry(0,0,0,0);e.vertex=!0;if(null!=d){e.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";e.geometry.relative=!0;e.connectable=!1;var c=this.view.getRelativePoint(d,b,a);e.geometry.x=Math.round(1E4*c.x)/1E4;e.geometry.y=Math.round(c.y);e.geometry.offset=new mxPoint(0,0);var c=this.view.getPoint(d,e.geometry),f=this.view.scale;e.geometry.offset=new mxPoint(Math.round((b-
-c.x)/f),Math.round((a-c.y)/f))}else e.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",c=this.view.translate,e.geometry.width=40,e.geometry.height=20,e.geometry.x=Math.round(b/this.view.scale)-c.x,e.geometry.y=Math.round(a/this.view.scale)-c.y;this.getModel().beginUpdate();try{this.addCells([e],null!=d?d.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[e])),this.autoSizeCell(e)}finally{this.getModel().endUpdate()}return e};Graph.prototype.getLinkUrl=function(b){return b};
-Graph.prototype.getAbsoluteUrl=function(b){null!=b&&this.isRelativeUrl(b)&&(b="/"==b.charAt(0)?this.domainUrl+b:this.domainPathUrl+b);return b};Graph.prototype.isBlankLink=function(b){var a=this.domainUrl;return"self"!=urlParams.target&&null!=b&&"#"!=b.charAt(0)&&b.substring(0,a.length)!=a&&!this.isRelativeUrl(b)};Graph.prototype.isRelativeUrl=function(b){return!/^(?:[a-z]+:)?\/\//i.test(b)&&"data:image"!=b.substring(0,10)&&"mailto:"!=b.substring(0,7)};Graph.prototype.addClickHandler=function(b,a,
-d){var e=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var d=0;d<b.length;d++){var e=this.getLinkUrl(b[d].getAttribute("href"));b[d].setAttribute("href",e);null!=e&&!this.isBlankLink(e)&&(window!=window.top?(b[d].setAttribute("target","_top"),e.charAt("#")?b[d].setAttribute("href",this.baseUrl+e):b[d].setAttribute("href",this.getAbsoluteUrl(e))):"_blank"==b[d].getAttribute("target")&&b[d].removeAttribute("target"),null!=a&&mxEvent.addListener(b[d],"click",
-a))}});this.model.addListener(mxEvent.CHANGE,e);e();var c=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(g,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){b=g.view.getState(b.getCell());b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(b,a){this.startX=
-a.getGraphX();this.startY=a.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(a)},mouseMove:function(b,a){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-a.getGraphX()),e=Math.abs(this.startY-a.getGraphY());(d>f||e>f)&&this.clear()}}else"a"==a.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&(a.getState()==
-this.currentState||null==a.getState())&&g.intersects(this.currentState,a.getGraphX(),a.getGraphY())||this.updateCurrentState(a)},mouseUp:function(b,e){var c=e.getSource(),k=this.currentLink;this.clear();if("a"!=c.nodeName.toLowerCase()&&!e.isConsumed()&&(null==e.getState()||!e.isSource(e.getState().control))&&(mxEvent.isLeftMouseButton(e.getEvent())||mxEvent.isTouchEvent(e.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=a&&a(e.getEvent()),"#"==k.charAt(0)?window!=window.top?window.open(g.baseUrl+
-k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),e.consume()):null!=d&&!e.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&(Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-e.getGraphX())<f&&Math.abs(this.startY-e.getGraphY())<f)&&d(e.getEvent())},activate:function(b){var a=g.getLinkForCell(b.cell);this.currentLink=null!=a?g.getLinkUrl(a):null;null!=this.currentLink&&(g.container.style.cursor="pointer",
-null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=g.container&&(g.container.style.cursor=c);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(b){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,a){b=null!=b?b:this.getSelectionCells();a=null!=a?a:!0;b=this.model.getTopmostCells(b);var d=this.getModel(),e=this.gridSize,c=[];d.beginUpdate();
+c.width),d=Math.max(d,e.y*c.height);return new mxPoint(this.snap(a+b),this.snap(d+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,a=this.getGraphBounds(),d=this.getInsertPoint(),e=this.snap(Math.round(Math.max(d.x,a.x/b.scale-b.translate.x+(0==a.width?this.gridSize:0)))),b=this.snap(Math.round(Math.max(d.y,(a.y+a.height)/b.scale-b.translate.y+(0==a.height?1:2)*this.gridSize)));return new mxPoint(e,b)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(b,a,d){var e=new mxCell;e.value="Text";e.style="text;html\x3d1;resizable\x3d0;points\x3d[];";e.geometry=new mxGeometry(0,0,0,0);e.vertex=!0;if(null!=d){e.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";e.geometry.relative=!0;e.connectable=!1;var c=this.view.getRelativePoint(d,b,a);e.geometry.x=Math.round(1E4*c.x)/1E4;e.geometry.y=Math.round(c.y);e.geometry.offset=new mxPoint(0,0);var c=this.view.getPoint(d,e.geometry),f=this.view.scale;e.geometry.offset=
+new mxPoint(Math.round((b-c.x)/f),Math.round((a-c.y)/f))}else e.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",c=this.view.translate,e.geometry.width=40,e.geometry.height=20,e.geometry.x=Math.round(b/this.view.scale)-c.x,e.geometry.y=Math.round(a/this.view.scale)-c.y;this.getModel().beginUpdate();try{this.addCells([e],null!=d?d.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[e])),this.autoSizeCell(e)}finally{this.getModel().endUpdate()}return e};Graph.prototype.getLinkUrl=
+function(b){return b};Graph.prototype.getAbsoluteUrl=function(b){null!=b&&this.isRelativeUrl(b)&&(b="/"==b.charAt(0)?this.domainUrl+b:this.domainPathUrl+b);return b};Graph.prototype.isBlankLink=function(b){var a=this.domainUrl;return"self"!=urlParams.target&&null!=b&&"#"!=b.charAt(0)&&b.substring(0,a.length)!=a&&!this.isRelativeUrl(b)};Graph.prototype.isRelativeUrl=function(b){return!/^(?:[a-z]+:)?\/\//i.test(b)&&"data:image"!=b.substring(0,10)&&"mailto:"!=b.substring(0,7)};Graph.prototype.addClickHandler=
+function(b,a,d){var e=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var d=0;d<b.length;d++){var e=this.getLinkUrl(b[d].getAttribute("href"));b[d].setAttribute("href",e);null!=e&&!this.isBlankLink(e)&&(window!=window.top?(b[d].setAttribute("target","_top"),e.charAt("#")?b[d].setAttribute("href",this.baseUrl+e):b[d].setAttribute("href",this.getAbsoluteUrl(e))):"_blank"==b[d].getAttribute("target")&&b[d].removeAttribute("target"),null!=a&&mxEvent.addListener(b[d],
+"click",a))}});this.model.addListener(mxEvent.CHANGE,e);e();var c=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(g,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){b=g.view.getState(b.getCell());b!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=b,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(b,
+a){this.startX=a.getGraphX();this.startY=a.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(a)},mouseMove:function(b,a){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-a.getGraphX()),e=Math.abs(this.startY-a.getGraphY());(d>f||e>f)&&this.clear()}}else"a"==a.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&
+(a.getState()==this.currentState||null==a.getState())&&g.intersects(this.currentState,a.getGraphX(),a.getGraphY())||this.updateCurrentState(a)},mouseUp:function(b,e){var c=e.getSource(),k=this.currentLink;this.clear();if("a"!=c.nodeName.toLowerCase()&&!e.isConsumed()&&(null==e.getState()||!e.isSource(e.getState().control))&&(mxEvent.isLeftMouseButton(e.getEvent())||mxEvent.isTouchEvent(e.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=a&&a(e.getEvent()),"#"==k.charAt(0)?window!=window.top?
+window.open(g.baseUrl+k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),e.consume()):null!=d&&!e.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&(Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-e.getGraphX())<f&&Math.abs(this.startY-e.getGraphY())<f)&&d(e.getEvent())},activate:function(b){var a=g.getLinkForCell(b.cell);this.currentLink=null!=a?g.getLinkUrl(a):null;null!=this.currentLink&&(g.container.style.cursor=
+"pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=g.container&&(g.container.style.cursor=c);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(b){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,a){b=null!=b?b:this.getSelectionCells();a=null!=a?a:!0;b=this.model.getTopmostCells(b);var d=this.getModel(),e=this.gridSize,c=[];d.beginUpdate();
try{for(var f=this.cloneCells(b,!1),g=0;g<b.length;g++){var k=d.getParent(b[g]),l=this.moveCells([f[g]],e,e,!1,k)[0];c.push(l);if(a)d.add(k,f[g]);else{var m=k.getIndex(b[g]);d.add(k,f[g],m+1)}}}finally{d.endUpdate()}return c};Graph.prototype.insertImage=function(b,a,d){if(null!=b){for(var e=this.cellEditor.textarea.getElementsByTagName("img"),c=[],f=0;f<e.length;f++)c.push(e[f]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==c.length+1)for(f=
b.length-1;0<=f;f--)if(0==f||b[f]!=c[f-1]){b[f].setAttribute("width",a);b[f].setAttribute("height",d);break}}};Graph.prototype.isCellResizable=function(b){var a=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(b),d=null!=d?d.style:this.getCellStyle(b);return a||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(b,a){null==a&&(a=this.getSelectionCells());if(null!=a&&1<a.length){for(var d=
[],e=null,c=null,f=0;f<a.length;f++)if(this.getModel().isVertex(a[f])){var g=this.view.getState(a[f]);if(null!=g){var k=b?g.getCenterX():g.getCenterY(),e=null!=e?Math.max(e,k):k,c=null!=c?Math.min(c,k):k;d.push(g)}}if(2<d.length){d.sort(function(a,d){return b?a.x-d.x:a.y-d.y});g=this.view.translate;k=this.view.scale;c=c/k-(b?g.x:g.y);e=e/k-(b?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(e-c)/(d.length-1),e=c,f=1;f<d.length-1;f++){var m=this.getCellGeometry(d[f].cell),e=e+l;null!=m&&(m=m.clone(),
b?m.x=Math.round(e-m.width/2):m.y=Math.round(e-m.height/2),this.getModel().setGeometry(d[f].cell,m))}}finally{this.getModel().endUpdate()}}}return a};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.encodeCells=function(b){for(var a=this.cloneCells(b),d=0;d<a.length;d++){var e=this.view.getState(b[d]);if(null!=e){var c=this.getCellGeometry(a[d]);null!=c&&c.relative&&(c.relative=!1,c.x=e.x/e.view.scale-e.view.translate.x,
c.y=e.y/e.view.scale-e.view.translate.y)}}for(var e=new mxCodec,c=new mxGraphModel,f=c.getChildAt(c.getRoot(),0),d=0;d<b.length;d++)c.add(f,a[d]);return e.encode(c)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,a){return this.getLinkForCell(b.cell)});return b};Graph.prototype.getSvg=function(b,a,d,e,c,f,g){a=null!=a?a:1;d=null!=d?d:1;c=null!=c?c:!0;f=null!=f?f:!0;g=null!=g?g:!0;e=e?this.view.getBackgroundPageBounds():f?
-this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==e)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(b,a){(f||b.view.graph.isCellSelected(b.cell))&&l.apply(this,arguments)};var m=this.view.scale,n=mxUtils.createXmlDocument(),q=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"svg"):n.createElement("svg");null!=b&&(null!=q.style?q.style.backgroundColor=b:q.setAttribute("style","background-color:"+
-b));null==n.createElementNS?(q.setAttribute("xmlns",mxConstants.NS_SVG),q.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):q.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=a/m;q.setAttribute("width",Math.ceil(e.width*b)+2*d+"px");q.setAttribute("height",Math.ceil(e.height*b)+2*d+"px");q.setAttribute("version","1.1");var r=q;c&&(r=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"g"):n.createElement("g"),r.setAttribute("transform","translate(0.5,0.5)"),
-q.appendChild(r));n.appendChild(q);n=new mxSvgCanvas2D(r);n.foOffset=c?-0.5:0;n.textOffset=c?-0.5:0;n.translate(Math.floor((d/a-e.x)/m),Math.floor((d/a-e.y)/m));var s=n.createAlternateContent;n.createAlternateContent=function(b,a,d,e,c,f,g,k,l,m,n,q,r){var p=this.state;if(null!=this.foAltText&&(0==e||0!=p.fontSize&&f.length<5*e/p.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(e/2));t.setAttribute("y",Math.round((c+p.fontSize)/2));t.setAttribute("fill",p.fontColor||"black");
-t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(p.fontSize)+"px");t.setAttribute("font-family",p.fontFamily);(p.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(p.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(p.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration","underline");mxUtils.write(t,f);return t}return s.apply(this,
-arguments)};d=this.backgroundImage;null!=d&&(c=m/a,a=this.view.translate,c=new mxRectangle(a.x*c,a.y*c,d.width*c,d.height*c),mxUtils.intersects(e,c)&&n.image(a.x,a.y,d.width,d.height,d.src,!0));n.scale(b);n.textEnabled=g;k.drawState(this.getView().getState(this.model.root),n);return q};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var a=window.getSelection();a.getRangeAt&&a.rangeCount&&(b=a.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());
+this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==e)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(b,a){(f||b.view.graph.isCellSelected(b.cell))&&l.apply(this,arguments)};var m=this.view.scale,n=mxUtils.createXmlDocument(),p=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"svg"):n.createElement("svg");null!=b&&(null!=p.style?p.style.backgroundColor=b:p.setAttribute("style","background-color:"+
+b));null==n.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=a/m;p.setAttribute("width",Math.ceil(e.width*b)+2*d+"px");p.setAttribute("height",Math.ceil(e.height*b)+2*d+"px");p.setAttribute("version","1.1");var q=p;c&&(q=null!=n.createElementNS?n.createElementNS(mxConstants.NS_SVG,"g"):n.createElement("g"),q.setAttribute("transform","translate(0.5,0.5)"),
+p.appendChild(q));n.appendChild(p);n=new mxSvgCanvas2D(q);n.foOffset=c?-0.5:0;n.textOffset=c?-0.5:0;n.translate(Math.floor((d/a-e.x)/m),Math.floor((d/a-e.y)/m));var r=n.createAlternateContent;n.createAlternateContent=function(b,a,d,e,c,f,g,k,l,m,n,p,q){var s=this.state;if(null!=this.foAltText&&(0==e||0!=s.fontSize&&f.length<5*e/s.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(e/2));t.setAttribute("y",Math.round((c+s.fontSize)/2));t.setAttribute("fill",s.fontColor||"black");
+t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(s.fontSize)+"px");t.setAttribute("font-family",s.fontFamily);(s.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(s.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(s.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration","underline");mxUtils.write(t,f);return t}return r.apply(this,
+arguments)};d=this.backgroundImage;null!=d&&(c=m/a,a=this.view.translate,c=new mxRectangle(a.x*c,a.y*c,d.width*c,d.height*c),mxUtils.intersects(e,c)&&n.image(a.x,a.y,d.width,d.height,d.src,!0));n.scale(b);n.textEnabled=g;k.drawState(this.getView().getState(this.model.root),n);return p};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var a=window.getSelection();a.getRangeAt&&a.rangeCount&&(b=a.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());
return b};Graph.prototype.getParentByName=function(b,a,d){for(;null!=b&&b.nodeName!=a;){if(b==d)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var a=null;if(window.getSelection){if(a=window.getSelection(),a.getRangeAt&&a.rangeCount){var d=document.createRange();d.selectNode(b);a.removeAllRanges();a.addRange(d)}}else if((a=document.selection)&&"Control"!=a.type)b=a.createRange(),b.collapse(!0),d=a.createRange(),d.setEndPoint("StartToStart",b),d.select()};Graph.prototype.insertRow=
function(b,a){for(var d=b.tBodies[0],e=0<d.rows.length?d.rows[0].cells.length:1,d=d.insertRow(a),c=0;c<e;c++)mxUtils.br(d.insertCell(-1));return d.cells[0]};Graph.prototype.deleteRow=function(b,a){b.tBodies[0].deleteRow(a)};Graph.prototype.insertColumn=function(b,a){var d=b.tHead;if(null!=d)for(var e=0;e<d.rows.length;e++){var c=document.createElement("th");d.rows[e].appendChild(c);mxUtils.br(c)}d=b.tBodies[0];for(e=0;e<d.rows.length;e++)c=d.rows[e].insertCell(a),mxUtils.br(c);return d.rows[0].cells[0<=
a?a:d.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(b,a){if(0<=a)for(var d=b.tBodies[0].rows,e=0;e<d.length;e++)d[e].cells.length>a&&d[e].deleteCell(a)};Graph.prototype.pasteHtmlAtCaret=function(b){var a;if(window.getSelection){if(a=window.getSelection(),a.getRangeAt&&a.rangeCount){a=a.getRangeAt(0);a.deleteContents();var d=document.createElement("div");d.innerHTML=b;b=document.createDocumentFragment();for(var e;e=d.firstChild;)lastNode=b.appendChild(e);a.insertNode(b)}}else(a=document.selection)&&
@@ -2560,12 +2560,12 @@ this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.sec
this.secondDiv=null)),a.consume()}};var s=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);s.apply(this,arguments)};var q=(new Date).getTime(),t=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,a,d,e){v.apply(this,arguments);d!=this.currentTerminalState?(q=(new Date).getTime(),t=0):t=(new Date).getTime()-q;this.currentTerminalState=
d};var u=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<t||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&u.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(b,a){var d=null!=
b&&0==b,e=this.state.getVisibleTerminalState(d),c=null!=b&&(0==b||b>=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 z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var y=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 y.apply(this,arguments)};var x=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))):x.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()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};
-var E=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,a){E.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var A=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,a){A.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":
-"none")};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);var b=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var a=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
+this.preferHtml&&(d-=1);return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(b,a,d){this.handleImage=a==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:a==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var z=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 z.apply(this,arguments)};var x=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))):x.apply(this,arguments)};var D=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)&&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()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};
+var C=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,a){C.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var A=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,a){A.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":
+"none")};var F=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){F.apply(this,arguments);var b=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var a=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(b,d){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(b,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));a()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(b,a){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,
this.editingHandler);var d=this.graph.getLinkForCell(this.state.cell);this.updateLinkHint(d);null!=d&&(b=!0);b&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(b){if(null==b||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=b){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="4px 10px 6px 10px",this.linkHint.style.fontSize="90%",this.linkHint.style.opacity="1",this.linkHint.style.filter=
"",this.updateLinkHint(b),this.graph.container.appendChild(this.linkHint));var d=b;60<d.length&&(d=d.substring(0,36)+"..."+d.substring(d.length-20));var e=document.createElement("a");e.setAttribute("href",this.graph.getLinkUrl(b));e.setAttribute("title",b);null!=this.graph.linkTarget&&e.setAttribute("target",this.graph.linkTarget);mxUtils.write(e,d);this.linkHint.innerHTML="";this.linkHint.appendChild(e);this.graph.isEnabled()&&"function"===typeof this.graph.editLink&&(b=document.createElement("img"),
@@ -2574,15 +2574,15 @@ mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){G.apply(thi
this.selectionHandler=mxUtils.bind(this,function(a,d){b()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));b();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var a=this.graph.getLinkForCell(this.state.cell);null!=a&&(this.updateLinkHint(a),this.redrawHandles())};var H=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=
function(){H.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var I=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){I.apply(this);if(null!=this.state&&null!=this.linkHint){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),a=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(a,this.state.style[mxConstants.STYLE_ROTATION]||
"0",b),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state;null==b&&(b=this.state);this.linkHint.style.left=Math.round(a.x+(a.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(b.y+b.height+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var J=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){J.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
-1==this.graph.getSelectionCount()?"":"none")};var K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){K.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&
-(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var O=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(O.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(b.y+
+1==this.graph.getSelectionCount()?"":"none")};var M=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){M.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&
+(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var P=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(P.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(b.y+
b.height+6+this.state.view.graph.tolerance)+"px"}};var U=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){U.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var W=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){W.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),
this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();
(function(){function a(){mxCylinder.call(this)}function c(){mxActor.call(this)}function f(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function e(){mxActor.call(this)}function g(){mxCylinder.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function n(){mxActor.call(this)}function p(){mxActor.call(this)}function r(){mxActor.call(this)}function s(){mxActor.call(this)}function q(b,a){this.canvas=
b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=a;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,q.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,q.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,q.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,q.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function z(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function F(){mxShape.call(this)}function E(){mxShape.call(this)}function A(){mxEllipse.call(this)}function D(){mxShape.call(this)}
-function G(){mxShape.call(this)}function H(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function J(){mxShape.call(this)}function K(){mxShape.call(this)}function O(){mxCylinder.call(this)}function U(){mxDoubleEllipse.call(this)}function W(){mxDoubleEllipse.call(this)}function B(){mxArrowConnector.call(this);this.spacing=0}function C(){mxArrowConnector.call(this);this.spacing=0}function Q(){mxActor.call(this)}function P(){mxRectangleShape.call(this)}function N(){mxActor.call(this)}
-function V(){mxActor.call(this)}function L(){mxActor.call(this)}function M(){mxActor.call(this)}function R(){mxActor.call(this)}function X(){mxActor.call(this)}function da(){mxActor.call(this)}function ca(){mxActor.call(this)}function S(){mxActor.call(this)}function Z(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function T(){mxRhombus.call(this)}function ia(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function aa(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}
+this.canvas.curveTo=mxUtils.bind(this,q.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,q.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function D(){mxShape.call(this)}function C(){mxShape.call(this)}function A(){mxEllipse.call(this)}function F(){mxShape.call(this)}
+function G(){mxShape.call(this)}function H(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function J(){mxShape.call(this)}function M(){mxShape.call(this)}function P(){mxCylinder.call(this)}function U(){mxDoubleEllipse.call(this)}function W(){mxDoubleEllipse.call(this)}function B(){mxArrowConnector.call(this);this.spacing=0}function E(){mxArrowConnector.call(this);this.spacing=0}function Q(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function N(){mxActor.call(this)}
+function V(){mxActor.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function R(){mxActor.call(this)}function X(){mxActor.call(this)}function da(){mxActor.call(this)}function ca(){mxActor.call(this)}function T(){mxActor.call(this)}function Z(){mxEllipse.call(this)}function ba(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function S(){mxRhombus.call(this)}function ia(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function aa(){mxEllipse.call(this)}function fa(){mxEllipse.call(this)}
function ja(){mxActor.call(this)}function ga(){mxActor.call(this)}function oa(){mxActor.call(this)}function wa(b,a,d,e,c,f,g,k,l,m){g+=l;var n=e.clone();e.x-=c*(2*g+l);e.y-=f*(2*g+l);c*=g+l;f*=g+l;return function(){b.ellipse(n.x-c-g,n.y-f-g,2*g,2*g);m?b.fillAndStroke():b.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(b,a,d,e,c,f){a=Math.max(0,Math.min(e,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(b.moveTo(a,c),b.lineTo(a,a),
b.lineTo(0,0),b.moveTo(a,a),b.lineTo(e,a)):(b.moveTo(0,0),b.lineTo(e-a,0),b.lineTo(e,a),b.lineTo(e,c),b.lineTo(a,c),b.lineTo(0,c-a),b.lineTo(0,0),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var ta=Math.tan(mxUtils.toRadians(30)),na=(0.5-ta)/2;mxUtils.extend(c,mxActor);c.prototype.size=20;c.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(e,c/ta);b.translate((e-a)/2,(c-a)/2+a/4);b.moveTo(0,0.25*a);b.lineTo(0.5*a,a*na);b.lineTo(a,0.25*a);b.lineTo(0.5*a,(0.5-na)*a);b.lineTo(0,
0.25*a);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=c;mxUtils.extend(f,mxCylinder);f.prototype.size=20;f.prototype.redrawPath=function(b,a,d,e,c,f){a=Math.min(e,c/(0.5+ta));f?(b.moveTo(0,0.25*a),b.lineTo(0.5*a,(0.5-na)*a),b.lineTo(a,0.25*a),b.moveTo(0.5*a,(0.5-na)*a),b.lineTo(0.5*a,(1-na)*a)):(b.translate((e-a)/2,(c-a)/2),b.moveTo(0,0.25*a),b.lineTo(0.5*a,a*na),b.lineTo(a,0.25*a),b.lineTo(a,0.75*a),b.lineTo(0.5*a,(1-na)*a),b.lineTo(0,0.75*a),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.isoCube=
@@ -2599,7 +2599,7 @@ mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,c),new mxPoint(a,0),
0),new mxPoint(a,0),new mxPoint(a,c/2),new mxPoint(0,c/2),new mxPoint(a,c/2),new mxPoint(a,c),new mxPoint(e,c)],this.isRounded,d,!1);b.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=r;mxUtils.extend(s,mxActor);s.prototype.redrawPath=function(b,a,d,e,c){b.setStrokeWidth(1);b.setFillColor(this.stroke);a=e/5;b.rect(0,0,a,c);b.fillAndStroke();b.rect(2*a,0,a,c);b.fillAndStroke();b.rect(4*a,0,a,c);b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=s;q.prototype.moveTo=
function(b,a){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=a;this.firstX=b;this.firstY=a};q.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};q.prototype.quadTo=function(b,a,d,e){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=d;this.lastY=e};q.prototype.curveTo=function(b,a,d,e,c,f){this.originalCurveTo.apply(this.canvas,
arguments);this.lastX=c;this.lastY=f};q.prototype.arcTo=function(b,a,d,e,c,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};q.prototype.lineTo=function(b,a){if(null!=this.lastX&&null!=this.lastY){var d=Math.abs(b-this.lastX),e=Math.abs(a-this.lastY),c=Math.sqrt(d*d+e*e);if(2>c)this.originalLineTo.apply(this.canvas,arguments);else{var f=Math.round(c/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=function(b){return"number"===typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},
-l=k(b-this.lastX)*d/f,k=k(a-this.lastY)*e/f,d=d/c,e=e/c,c=0;c<f;c++){var m=l*c+this.lastX,n=k*c+this.lastY,q=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,m-q*e,n-q*d)}this.originalLineTo.call(this.canvas,b,a)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=a};q.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
+l=k(b-this.lastX)*d/f,k=k(a-this.lastY)*e/f,d=d/c,e=e/c,c=0;c<f;c++){var m=l*c+this.lastX,n=k*c+this.lastY,p=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,m-p*e,n-p*d)}this.originalLineTo.call(this.canvas,b,a)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=a};q.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Aa=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(b){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==b.handHiggle&&(b.handJiggle=new q(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Aa.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ba=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ba.apply(this,arguments)};var Ca=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,a,d,e,c){if(null==b.handJiggle)Ca.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
mxConstants.NONE){if(!f&&(null==this.fill||this.fill==mxConstants.NONE))b.pointerEvents=!1;b.begin();this.isRounded?(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(e*f,c*f),b.moveTo(a+f,d),b.lineTo(a+e-f,d),b.quadTo(a+e,d,a+e,d+f),b.lineTo(a+e,d+c-f),b.quadTo(a+e,d+c,a+e-f,d+c),b.lineTo(a+f,d+c),b.quadTo(a,d+c,a,d+c-f),b.lineTo(a,d+f),b.quadTo(a,d,a+f,d)):(b.moveTo(a,d),b.lineTo(a+e,d),b.lineTo(a+e,d+c),b.lineTo(a,d+c),b.lineTo(a,
@@ -2607,15 +2607,15 @@ d));b.close();b.end();b.fillAndStroke()}}};var Da=mxRectangleShape.prototype.pai
b.width,d=b.height;b=new mxRectangle(b.x,b.y,a,d);var e=a*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(a*c,d*c));b.x+=e;b.width-=2*e}return b};t.prototype.paintForeground=function(b,a,d,e,c){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(e*g,c*g));b.begin();b.moveTo(a+f,d);b.lineTo(a+f,d+c);b.moveTo(a+e-f,d);b.lineTo(a+e-f,d+c);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.process=t;mxUtils.extend(v,mxActor);v.prototype.size=0.2;v.prototype.redrawPath=function(b,a,d,e,c){a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(e-a,0),new mxPoint(e,c/2),new mxPoint(e-a,c),new mxPoint(0,c),new mxPoint(a,c/2)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.step=v;mxUtils.extend(u,mxHexagon);u.prototype.size=0.25;u.prototype.redrawPath=function(b,a,d,e,c){a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;this.addPoints(b,[new mxPoint(a,0),new mxPoint(e-a,0),new mxPoint(e,0.5*c),new mxPoint(e-a,c),new mxPoint(a,c),new mxPoint(0,0.5*c)],this.isRounded,d,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=u;mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.paintForeground=function(b,a,d,e,c){var f=Math.min(e/5,c/5)+1;b.begin();b.moveTo(a+e/2,d+f);b.lineTo(a+e/2,d+c-f);b.moveTo(a+f,d+c/2);b.lineTo(a+e-f,d+c/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var a=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+a,b.y+a,b.width-2*a,b.height-2*a)}return b};mxRhombus.prototype.paintVertexShape=function(b,a,d,e,c){xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
-1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);a+=f;d+=f;e-=2*f;c-=2*f;0<e&&0<c&&(b.setShadow(!1),xa.apply(this,[b,a,d,e,c]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var a=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+a,b.y+a,b.width-2*a,b.height-2*a)}return b};y.prototype.paintForeground=function(b,a,d,
+2;this.addPoints(b,[new mxPoint(a,0),new mxPoint(e-a,0),new mxPoint(e,0.5*c),new mxPoint(e-a,c),new mxPoint(a,c),new mxPoint(0,0.5*c)],this.isRounded,d,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=u;mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.paintForeground=function(b,a,d,e,c){var f=Math.min(e/5,c/5)+1;b.begin();b.moveTo(a+e/2,d+f);b.lineTo(a+e/2,d+c-f);b.moveTo(a+f,d+c/2);b.lineTo(a+e-f,d+c/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.prototype.defaultShapes.plus=y;var xa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var a=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+a,b.y+a,b.width-2*a,b.height-2*a)}return b};mxRhombus.prototype.paintVertexShape=function(b,a,d,e,c){xa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);a+=f;d+=f;e-=2*f;c-=2*f;0<e&&0<c&&(b.setShadow(!1),xa.apply(this,[b,a,d,e,c]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var a=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+a,b.y+a,b.width-2*a,b.height-2*a)}return b};z.prototype.paintForeground=function(b,a,d,
e,c){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);a+=f;d+=f;e-=2*f;c-=2*f;0<e&&0<c&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var f=0,g=null;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var k=this.style["symbol"+f+"Align"],l=this.style["symbol"+f+"VerticalAlign"],m=this.style["symbol"+f+"Width"],n=this.style["symbol"+
-f+"Height"],q=this.style["symbol"+f+"Spacing"]||0,r=this.style["symbol"+f+"ArcSpacing"];null!=r&&(q+=this.getArcSize(e+this.strokewidth,c+this.strokewidth)*r);var r=a,s=d,r=k==mxConstants.ALIGN_CENTER?r+(e-m)/2:k==mxConstants.ALIGN_RIGHT?r+(e-m-q):r+q,s=l==mxConstants.ALIGN_MIDDLE?s+(c-n)/2:l==mxConstants.ALIGN_BOTTOM?s+(c-n-q):s+q;b.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,b,r,s,m,n);b.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.prototype.defaultShapes.ext=y;mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(b,a,d,e,c,f){f?(b.moveTo(0,0),b.lineTo(e/2,c/2),b.lineTo(e,0),b.end()):(b.moveTo(0,0),b.lineTo(e,0),b.lineTo(e,c),b.lineTo(0,c),b.close())};mxCellRenderer.prototype.defaultShapes.message=x;mxUtils.extend(F,mxShape);F.prototype.paintBackground=function(b,a,d,e,c){b.translate(a,d);b.ellipse(e/4,0,e/2,c/4);b.fillAndStroke();b.begin();b.moveTo(e/2,c/4);b.lineTo(e/2,2*c/3);b.moveTo(e/2,
-c/3);b.lineTo(0,c/3);b.moveTo(e/2,c/3);b.lineTo(e,c/3);b.moveTo(e/2,2*c/3);b.lineTo(0,c);b.moveTo(e/2,2*c/3);b.lineTo(e,c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=F;mxUtils.extend(E,mxShape);E.prototype.getLabelBounds=function(b){return new mxRectangle(b.x+b.width/6,b.y,5*b.width/6,b.height)};E.prototype.paintBackground=function(b,a,d,e,c){b.translate(a,d);b.begin();b.moveTo(0,c/4);b.lineTo(0,3*c/4);b.end();b.stroke();b.begin();b.moveTo(0,c/2);b.lineTo(e/6,c/2);b.end();
-b.stroke();b.ellipse(e/6,0,5*e/6,c);b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=E;mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(a+e/8,d+c);b.lineTo(a+7*e/8,d+c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=A;mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=function(b,a,d,e,c){b.translate(a,d);b.begin();b.moveTo(e,0);b.lineTo(0,c);b.moveTo(0,
-0);b.lineTo(e,c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=D;mxUtils.extend(G,mxShape);G.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};G.prototype.paintBackground=function(b,a,d,e,c){b.translate(a,d);b.begin();b.moveTo(3*e/8,1.1*(c/8));b.lineTo(5*e/8,0);b.end();b.stroke();b.ellipse(0,c/8,e,7*c/8);b.fillAndStroke()};G.prototype.paintForeground=function(b,a,d,e,c){b.begin();b.moveTo(3*e/8,1.1*(c/8));b.lineTo(5*e/8,c/
+f+"Height"],p=this.style["symbol"+f+"Spacing"]||0,q=this.style["symbol"+f+"ArcSpacing"];null!=q&&(p+=this.getArcSize(e+this.strokewidth,c+this.strokewidth)*q);var q=a,r=d,q=k==mxConstants.ALIGN_CENTER?q+(e-m)/2:k==mxConstants.ALIGN_RIGHT?q+(e-m-p):q+p,r=l==mxConstants.ALIGN_MIDDLE?r+(c-n)/2:l==mxConstants.ALIGN_BOTTOM?r+(c-n-p):r+p;b.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,b,q,r,m,n);b.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.prototype.defaultShapes.ext=z;mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(b,a,d,e,c,f){f?(b.moveTo(0,0),b.lineTo(e/2,c/2),b.lineTo(e,0),b.end()):(b.moveTo(0,0),b.lineTo(e,0),b.lineTo(e,c),b.lineTo(0,c),b.close())};mxCellRenderer.prototype.defaultShapes.message=x;mxUtils.extend(D,mxShape);D.prototype.paintBackground=function(b,a,d,e,c){b.translate(a,d);b.ellipse(e/4,0,e/2,c/4);b.fillAndStroke();b.begin();b.moveTo(e/2,c/4);b.lineTo(e/2,2*c/3);b.moveTo(e/2,
+c/3);b.lineTo(0,c/3);b.moveTo(e/2,c/3);b.lineTo(e,c/3);b.moveTo(e/2,2*c/3);b.lineTo(0,c);b.moveTo(e/2,2*c/3);b.lineTo(e,c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=D;mxUtils.extend(C,mxShape);C.prototype.getLabelBounds=function(b){return new mxRectangle(b.x+b.width/6,b.y,5*b.width/6,b.height)};C.prototype.paintBackground=function(b,a,d,e,c){b.translate(a,d);b.begin();b.moveTo(0,c/4);b.lineTo(0,3*c/4);b.end();b.stroke();b.begin();b.moveTo(0,c/2);b.lineTo(e/6,c/2);b.end();
+b.stroke();b.ellipse(e/6,0,5*e/6,c);b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=C;mxUtils.extend(A,mxEllipse);A.prototype.paintVertexShape=function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(a+e/8,d+c);b.lineTo(a+7*e/8,d+c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=A;mxUtils.extend(F,mxShape);F.prototype.paintVertexShape=function(b,a,d,e,c){b.translate(a,d);b.begin();b.moveTo(e,0);b.lineTo(0,c);b.moveTo(0,
+0);b.lineTo(e,c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=F;mxUtils.extend(G,mxShape);G.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};G.prototype.paintBackground=function(b,a,d,e,c){b.translate(a,d);b.begin();b.moveTo(3*e/8,1.1*(c/8));b.lineTo(5*e/8,0);b.end();b.stroke();b.ellipse(0,c/8,e,7*c/8);b.fillAndStroke()};G.prototype.paintForeground=function(b,a,d,e,c){b.begin();b.moveTo(3*e/8,1.1*(c/8));b.lineTo(5*e/8,c/
4);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.umlControl=G;mxUtils.extend(H,mxRectangleShape);H.prototype.size=40;H.prototype.isHtmlAllowed=function(){return!1};H.prototype.getLabelBounds=function(b){var a=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,a)};H.prototype.paintBackground=function(b,a,d,e,c){var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),
g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,a,d,e,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=H&&(g=new g,g.apply(this.state),b.save(),g.paintVertexShape(b,a,d,e,f),b.restore()));f<c&&(b.setDashed(!0),b.begin(),b.moveTo(a+e/2,d+f),b.lineTo(a+e/2,d+c),b.end(),b.stroke())};H.prototype.paintForeground=function(b,a,d,e,c){var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
mxRectangleShape.prototype.paintForeground.call(this,b,a,d,e,Math.min(c,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=H;mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.prototype.getLabelBounds=function(b){var a=Math.max(0,Math.min(b.width,parseFloat(mxUtils.getValue(this.style,"width",this.width))*this.scale)),d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"height",this.height))*this.scale));return new mxRectangle(b.x,b.y,
@@ -2623,39 +2623,39 @@ a,d)};I.prototype.paintBackground=function(b,a,d,e,c){var f=this.corner,g=Math.m
mxCellRenderer.prototype.defaultShapes.umlFrame=I;mxPerimeter.LifelinePerimeter=function(b,a,d,e){e=H.prototype.size;null!=a&&(e=mxUtils.getValue(a.style,"size",e)*a.view.scale);a=parseFloat(a.style[mxConstants.STYLE_STROKEWIDTH]||1)*a.view.scale/2-1;d.x<b.getCenterX()&&(a=-1*(a+1));return new mxPoint(b.getCenterX()+a,Math.min(b.y+b.height,Math.max(b.y+e,d.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,a,d,e){e=!0;return mxPerimeter.RectanglePerimeter.apply(this,
arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(b,a,d,e){e=parseFloat(a.style[mxConstants.STYLE_STROKEWIDTH]||1)*a.view.scale/2-1;null!=a.style.backboneSize&&(e+=parseFloat(a.style.backboneSize)*a.view.scale/2-1);if("south"==a.style[mxConstants.STYLE_DIRECTION]||"north"==a.style[mxConstants.STYLE_DIRECTION])return d.x<b.getCenterX()&&(e=-1*(e+1)),new mxPoint(b.getCenterX()+e,Math.min(b.y+b.height,Math.max(b.y,d.y)));
d.y<b.getCenterY()&&(e+=1,e*=-1);return new mxPoint(Math.min(b.x+b.width,Math.max(b.x,d.x)),b.getCenterY()+e)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.paintBackground=function(b,a,d,e,c){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(a,d);b.ellipse((e-f)/2,0,f,f);b.fillAndStroke();b.begin();b.moveTo(e/2,f);b.lineTo(e/2,c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.lollipop=
-J;mxUtils.extend(K,mxShape);K.prototype.size=10;K.prototype.inset=2;K.prototype.paintBackground=function(b,a,d,e,c){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(a,d);b.begin();b.moveTo(e/2,f+g);b.lineTo(e/2,c);b.end();b.stroke();b.begin();b.moveTo((e-f)/2-g,f/2);b.quadTo((e-f)/2-g,f+g,e/2,f+g);b.quadTo((e+f)/2+g,f+g,(e+f)/2+g,f/2);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
-K;mxUtils.extend(O,mxCylinder);O.prototype.jettyWidth=32;O.prototype.jettyHeight=12;O.prototype.redrawPath=function(b,a,d,e,c,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));a=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=0.3*c-a/2,l=0.7*c-a/2;f?(b.moveTo(d,k),b.lineTo(g,k),b.lineTo(g,k+a),b.lineTo(d,k+a),b.moveTo(d,l),b.lineTo(g,l),b.lineTo(g,l+a),b.lineTo(d,l+a)):(b.moveTo(d,0),b.lineTo(e,0),b.lineTo(e,c),b.lineTo(d,c),
-b.lineTo(d,l+a),b.lineTo(0,l+a),b.lineTo(0,l),b.lineTo(d,l),b.lineTo(d,k+a),b.lineTo(0,k+a),b.lineTo(0,k),b.lineTo(d,k),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.component=O;mxUtils.extend(U,mxDoubleEllipse);U.prototype.outerStroke=!0;U.prototype.paintVertexShape=function(b,a,d,e,c){var f=Math.min(4,Math.min(e/5,c/5));0<e&&0<c&&(b.ellipse(a+f,d+f,e-2*f,c-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(a,d,e,c),b.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
-U;mxUtils.extend(W,U);W.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=W;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=B;mxUtils.extend(C,mxArrowConnector);C.prototype.defaultWidth=
-10;C.prototype.defaultArrowWidth=20;C.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};C.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};C.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=C;mxUtils.extend(Q,
-mxActor);Q.prototype.size=30;Q.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,c),new mxPoint(0,a),new mxPoint(e,0),new mxPoint(e,c)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.manualInput=Q;mxUtils.extend(P,mxRectangleShape);P.prototype.dx=20;P.prototype.dy=20;P.prototype.isHtmlAllowed=function(){return!1};
-P.prototype.paintForeground=function(b,a,d,e,c){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(e*g,c*g));g=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(a,d+f);b.lineTo(a+e,d+f);b.end();b.stroke();
-b.begin();b.moveTo(a+g,d);b.lineTo(a+g,d+c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.internalStorage=P;mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(b,a,d,e,c){a=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));Math.min(e/2,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,
+J;mxUtils.extend(M,mxShape);M.prototype.size=10;M.prototype.inset=2;M.prototype.paintBackground=function(b,a,d,e,c){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(a,d);b.begin();b.moveTo(e/2,f+g);b.lineTo(e/2,c);b.end();b.stroke();b.begin();b.moveTo((e-f)/2-g,f/2);b.quadTo((e-f)/2-g,f+g,e/2,f+g);b.quadTo((e+f)/2+g,f+g,(e+f)/2+g,f/2);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
+M;mxUtils.extend(P,mxCylinder);P.prototype.jettyWidth=32;P.prototype.jettyHeight=12;P.prototype.redrawPath=function(b,a,d,e,c,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));a=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=0.3*c-a/2,l=0.7*c-a/2;f?(b.moveTo(d,k),b.lineTo(g,k),b.lineTo(g,k+a),b.lineTo(d,k+a),b.moveTo(d,l),b.lineTo(g,l),b.lineTo(g,l+a),b.lineTo(d,l+a)):(b.moveTo(d,0),b.lineTo(e,0),b.lineTo(e,c),b.lineTo(d,c),
+b.lineTo(d,l+a),b.lineTo(0,l+a),b.lineTo(0,l),b.lineTo(d,l),b.lineTo(d,k+a),b.lineTo(0,k+a),b.lineTo(0,k),b.lineTo(d,k),b.close());b.end()};mxCellRenderer.prototype.defaultShapes.component=P;mxUtils.extend(U,mxDoubleEllipse);U.prototype.outerStroke=!0;U.prototype.paintVertexShape=function(b,a,d,e,c){var f=Math.min(4,Math.min(e/5,c/5));0<e&&0<c&&(b.ellipse(a+f,d+f,e-2*f,c-2*f),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(a,d,e,c),b.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
+U;mxUtils.extend(W,U);W.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=W;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=B;mxUtils.extend(E,mxArrowConnector);E.prototype.defaultWidth=
+10;E.prototype.defaultArrowWidth=20;E.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};E.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};E.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=E;mxUtils.extend(Q,
+mxActor);Q.prototype.size=30;Q.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,c),new mxPoint(0,a),new mxPoint(e,0),new mxPoint(e,c)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.manualInput=Q;mxUtils.extend(O,mxRectangleShape);O.prototype.dx=20;O.prototype.dy=20;O.prototype.isHtmlAllowed=function(){return!1};
+O.prototype.paintForeground=function(b,a,d,e,c){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(e*g,c*g));g=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(a,d+f);b.lineTo(a+e,d+f);b.end();b.stroke();
+b.begin();b.moveTo(a+g,d);b.lineTo(a+g,d+c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.internalStorage=O;mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(b,a,d,e,c){a=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));Math.min(e/2,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,d),new mxPoint(a,d),new mxPoint(a,c),new mxPoint(0,c)],this.isRounded,f,!0);b.end()};mxCellRenderer.prototype.defaultShapes.corner=N;mxUtils.extend(V,mxActor);V.prototype.dx=20;V.prototype.dy=20;V.prototype.redrawPath=function(b,a,d,e,c){a=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));Math.abs(e-a);Math.min(e/2,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,d),new mxPoint((e+a)/2,d),new mxPoint((e+a)/2,c),new mxPoint((e-a)/2,c),new mxPoint((e-a)/2,d),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.prototype.defaultShapes.tee=V;mxUtils.extend(L,mxActor);L.prototype.arrowWidth=
-0.3;L.prototype.arrowSize=0.2;L.prototype.redrawPath=function(b,a,d,e,c){var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(c-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,d),new mxPoint(e-a,d),new mxPoint(e-a,0),new mxPoint(e,c/2),new mxPoint(e-a,c),new mxPoint(e-a,
-f),new mxPoint(0,f)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=L;mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(b,a,d,e,c){var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",L.prototype.arrowWidth))));a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",L.prototype.arrowSize))));d=(c-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,
-[new mxPoint(0,c/2),new mxPoint(a,0),new mxPoint(a,d),new mxPoint(e-a,d),new mxPoint(e-a,0),new mxPoint(e,c/2),new mxPoint(e-a,c),new mxPoint(e-a,f),new mxPoint(a,f),new mxPoint(a,c)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.doubleArrow=M;mxUtils.extend(R,mxActor);R.prototype.size=0.1;R.prototype.redrawPath=function(b,a,d,e,c){a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(a,0);b.lineTo(e,0);b.quadTo(e-2*a,c/2,e,c);b.lineTo(a,
+"dy",this.dy))));Math.abs(e-a);Math.min(e/2,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,d),new mxPoint((e+a)/2,d),new mxPoint((e+a)/2,c),new mxPoint((e-a)/2,c),new mxPoint((e-a)/2,d),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.prototype.defaultShapes.tee=V;mxUtils.extend(K,mxActor);K.prototype.arrowWidth=
+0.3;K.prototype.arrowSize=0.2;K.prototype.redrawPath=function(b,a,d,e,c){var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(c-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,d),new mxPoint(e-a,d),new mxPoint(e-a,0),new mxPoint(e,c/2),new mxPoint(e-a,c),new mxPoint(e-a,
+f),new mxPoint(0,f)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=K;mxUtils.extend(L,mxActor);L.prototype.redrawPath=function(b,a,d,e,c){var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",K.prototype.arrowWidth))));a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",K.prototype.arrowSize))));d=(c-f)/2;var f=d+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,
+[new mxPoint(0,c/2),new mxPoint(a,0),new mxPoint(a,d),new mxPoint(e-a,d),new mxPoint(e-a,0),new mxPoint(e,c/2),new mxPoint(e-a,c),new mxPoint(e-a,f),new mxPoint(a,f),new mxPoint(a,c)],this.isRounded,g,!0);b.end()};mxCellRenderer.prototype.defaultShapes.doubleArrow=L;mxUtils.extend(R,mxActor);R.prototype.size=0.1;R.prototype.redrawPath=function(b,a,d,e,c){a=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(a,0);b.lineTo(e,0);b.quadTo(e-2*a,c/2,e,c);b.lineTo(a,
c);b.quadTo(a-2*a,c/2,a,0);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.dataStorage=R;mxUtils.extend(X,mxActor);X.prototype.redrawPath=function(b,a,d,e,c){b.moveTo(0,0);b.quadTo(e,0,e,c/2);b.quadTo(e,c,0,c);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.or=X;mxUtils.extend(da,mxActor);da.prototype.redrawPath=function(b,a,d,e,c){b.moveTo(0,0);b.quadTo(e,0,e,c/2);b.quadTo(e,c,0,c);b.quadTo(e/2,c/2,0,0);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.xor=da;mxUtils.extend(ca,
-mxActor);ca.prototype.size=20;ca.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(e/2,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(a,0),new mxPoint(e-a,0),new mxPoint(e,0.8*a),new mxPoint(e,c),new mxPoint(0,c),new mxPoint(0,0.8*a)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.loopLimit=ca;mxUtils.extend(S,mxActor);S.prototype.size=0.375;
-S.prototype.redrawPath=function(b,a,d,e,c){a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,c-a),new mxPoint(e/2,c),new mxPoint(0,c-a)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.offPageConnector=S;mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,
+mxActor);ca.prototype.size=20;ca.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(e/2,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(a,0),new mxPoint(e-a,0),new mxPoint(e,0.8*a),new mxPoint(e,c),new mxPoint(0,c),new mxPoint(0,0.8*a)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.loopLimit=ca;mxUtils.extend(T,mxActor);T.prototype.size=0.375;
+T.prototype.redrawPath=function(b,a,d,e,c){a=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(e,0),new mxPoint(e,c-a),new mxPoint(e/2,c),new mxPoint(0,c-a)],this.isRounded,d,!0);b.end()};mxCellRenderer.prototype.defaultShapes.offPageConnector=T;mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);b.begin();b.moveTo(a+e/2,d+c);b.lineTo(a+e,d+c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.tapeData=Z;mxUtils.extend(ba,mxEllipse);ba.prototype.paintVertexShape=function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(a,d+c/2);b.lineTo(a+e,d+c/2);b.end();b.stroke();b.begin();b.moveTo(a+e/2,d);b.lineTo(a+e/2,d+c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.orEllipse=ba;mxUtils.extend(Y,mxEllipse);Y.prototype.paintVertexShape=
-function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(a+0.145*e,d+0.145*c);b.lineTo(a+0.855*e,d+0.855*c);b.end();b.stroke();b.begin();b.moveTo(a+0.855*e,d+0.145*c);b.lineTo(a+0.145*e,d+0.855*c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.sumEllipse=Y;mxUtils.extend(T,mxRhombus);T.prototype.paintVertexShape=function(b,a,d,e,c){mxRhombus.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(a,d+
-c/2);b.lineTo(a+e,d+c/2);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.sortShape=T;mxUtils.extend(ia,mxEllipse);ia.prototype.paintVertexShape=function(b,a,d,e,c){b.begin();b.moveTo(a,d);b.lineTo(a+e,d);b.lineTo(a+e/2,d+c/2);b.close();b.fillAndStroke();b.begin();b.moveTo(a,d+c);b.lineTo(a+e,d+c);b.lineTo(a+e/2,d+c/2);b.close();b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.collate=ia;mxUtils.extend(ea,mxEllipse);ea.prototype.paintVertexShape=function(b,a,d,e,c){var f=d+c-5;
+function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(a+0.145*e,d+0.145*c);b.lineTo(a+0.855*e,d+0.855*c);b.end();b.stroke();b.begin();b.moveTo(a+0.855*e,d+0.145*c);b.lineTo(a+0.145*e,d+0.855*c);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.sumEllipse=Y;mxUtils.extend(S,mxRhombus);S.prototype.paintVertexShape=function(b,a,d,e,c){mxRhombus.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(a,d+
+c/2);b.lineTo(a+e,d+c/2);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.sortShape=S;mxUtils.extend(ia,mxEllipse);ia.prototype.paintVertexShape=function(b,a,d,e,c){b.begin();b.moveTo(a,d);b.lineTo(a+e,d);b.lineTo(a+e/2,d+c/2);b.close();b.fillAndStroke();b.begin();b.moveTo(a,d+c);b.lineTo(a+e,d+c);b.lineTo(a+e/2,d+c/2);b.close();b.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.collate=ia;mxUtils.extend(ea,mxEllipse);ea.prototype.paintVertexShape=function(b,a,d,e,c){var f=d+c-5;
b.begin();b.moveTo(a,d);b.lineTo(a,d+c);b.moveTo(a,f);b.lineTo(a+10,f-5);b.moveTo(a,f);b.lineTo(a+10,f+5);b.moveTo(a,f);b.lineTo(a+e,f);b.moveTo(a+e,d);b.lineTo(a+e,d+c);b.moveTo(a+e,f);b.lineTo(a+e-10,f-5);b.moveTo(a+e,f);b.lineTo(a+e-10,f+5);b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.dimension=ea;mxUtils.extend(aa,mxEllipse);aa.prototype.paintVertexShape=function(b,a,d,e,c){this.outline||b.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=
this.style&&(b.setStrokeColor(this.stroke),b.rect(a,d,e,c),b.fill(),"1"==mxUtils.getValue(this.style,"top","1")&&(b.begin(),b.moveTo(a,d),b.lineTo(a+e,d),b.end(),b.stroke()),"1"==mxUtils.getValue(this.style,"right","1")&&(b.begin(),b.moveTo(a+e,d),b.lineTo(a+e,d+c),b.end(),b.stroke()),"1"==mxUtils.getValue(this.style,"bottom","1")&&(b.begin(),b.moveTo(a+e,d+c),b.lineTo(a,d+c),b.end(),b.stroke()),"1"==mxUtils.getValue(this.style,"left","1")&&(b.begin(),b.moveTo(a,d+c),b.lineTo(a,d),b.end(),b.stroke()))};
mxCellRenderer.prototype.defaultShapes.partialRectangle=aa;mxUtils.extend(fa,mxEllipse);fa.prototype.paintVertexShape=function(b,a,d,e,c){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(a+e/2,d),b.lineTo(a+e/2,d+c)):(b.moveTo(a,d+c/2),b.lineTo(a+e,d+c/2));b.end();b.stroke()};mxCellRenderer.prototype.defaultShapes.lineEllipse=fa;mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(e,
c/2);b.moveTo(0,0);b.lineTo(e-a,0);b.quadTo(e,0,e,c/2);b.quadTo(e,c,e-a,c);b.lineTo(0,c);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.delay=ja;mxUtils.extend(ga,mxActor);ga.prototype.size=0.2;ga.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(c,e);var f=Math.max(0,Math.min(a,a*parseFloat(mxUtils.getValue(this.style,"size",this.size))));a=(c-f)/2;d=a+f;var g=(e-f)/2,f=g+f;b.moveTo(0,a);b.lineTo(g,a);b.lineTo(g,0);b.lineTo(f,0);b.lineTo(f,a);b.lineTo(e,a);b.lineTo(e,d);b.lineTo(f,d);
b.lineTo(f,c);b.lineTo(g,c);b.lineTo(g,d);b.lineTo(0,d);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.cross=ga;mxUtils.extend(oa,mxActor);oa.prototype.size=0.25;oa.prototype.redrawPath=function(b,a,d,e,c){a=Math.min(e,c/2);d=Math.min(e-a,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*e);b.moveTo(0,c/2);b.lineTo(d,0);b.lineTo(e-a,0);b.quadTo(e,0,e,c/2);b.quadTo(e,c,e-a,c);b.lineTo(d,c);b.close();b.end()};mxCellRenderer.prototype.defaultShapes.display=oa;mxMarker.addMarker("dash",
-function(b,a,d,e,c,f,g,k,l,m){var n=c*(g+l+1),q=f*(g+l+1);return function(){b.begin();b.moveTo(e.x-n/2-q/2,e.y-q/2+n/2);b.lineTo(e.x+q/2-3*n/2,e.y-3*q/2-n/2);b.stroke()}});mxMarker.addMarker("cross",function(b,a,d,e,c,f,g,k,l,m){var n=c*(g+l+1),q=f*(g+l+1);return function(){b.begin();b.moveTo(e.x-n/2-q/2,e.y-q/2+n/2);b.lineTo(e.x+q/2-3*n/2,e.y-3*q/2-n/2);b.moveTo(e.x-n/2+q/2,e.y-q/2-n/2);b.lineTo(e.x-q/2-3*n/2,e.y-3*q/2+n/2);b.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",
-function(b,a,d,e,c,f,g,k,l,m){var n=e.clone(),q=wa.apply(this,arguments),r=c*(g+2*l),s=f*(g+2*l);return function(){q.apply(this,arguments);b.begin();b.moveTo(n.x-c*l,n.y-f*l);b.lineTo(n.x-2*r+c*l,n.y-2*s+f*l);b.moveTo(n.x-r-s+f*l,n.y-s+r-c*l);b.lineTo(n.x+s-r-f*l,n.y-s-r+c*l);b.stroke()}});mxMarker.addMarker("async",function(b,a,d,e,c,f,g,k,l,m){a=1.118*c*l;d=1.118*f*l;c*=g+l;f*=g+l;var n=e.clone();n.x-=a;n.y-=d;e.x+=1*-c-a;e.y+=1*-f-d;return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-
-c-f/2,n.y-f+c/2):b.lineTo(n.x+f/2-c,n.y-f-c/2);b.lineTo(n.x-c,n.y-f);b.close();m?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(a,d,e,c,f,g,k,l,m,n){f*=k+m;g*=k+m;var q=c.clone();return function(){a.begin();a.moveTo(q.x,q.y);l?a.lineTo(q.x-f-g/b,q.y-g+f/b):a.lineTo(q.x+g/b-f,q.y-g-f/b);a.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ha=function(b,a,d,e,c){b=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);
+function(b,a,d,e,c,f,g,k,l,m){var n=c*(g+l+1),p=f*(g+l+1);return function(){b.begin();b.moveTo(e.x-n/2-p/2,e.y-p/2+n/2);b.lineTo(e.x+p/2-3*n/2,e.y-3*p/2-n/2);b.stroke()}});mxMarker.addMarker("cross",function(b,a,d,e,c,f,g,k,l,m){var n=c*(g+l+1),p=f*(g+l+1);return function(){b.begin();b.moveTo(e.x-n/2-p/2,e.y-p/2+n/2);b.lineTo(e.x+p/2-3*n/2,e.y-3*p/2-n/2);b.moveTo(e.x-n/2+p/2,e.y-p/2-n/2);b.lineTo(e.x-p/2-3*n/2,e.y-3*p/2+n/2);b.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",
+function(b,a,d,e,c,f,g,k,l,m){var n=e.clone(),p=wa.apply(this,arguments),q=c*(g+2*l),r=f*(g+2*l);return function(){p.apply(this,arguments);b.begin();b.moveTo(n.x-c*l,n.y-f*l);b.lineTo(n.x-2*q+c*l,n.y-2*r+f*l);b.moveTo(n.x-q-r+f*l,n.y-r+q-c*l);b.lineTo(n.x+r-q-f*l,n.y-r-q+c*l);b.stroke()}});mxMarker.addMarker("async",function(b,a,d,e,c,f,g,k,l,m){a=1.118*c*l;d=1.118*f*l;c*=g+l;f*=g+l;var n=e.clone();n.x-=a;n.y-=d;e.x+=1*-c-a;e.y+=1*-f-d;return function(){b.begin();b.moveTo(n.x,n.y);k?b.lineTo(n.x-
+c-f/2,n.y-f+c/2):b.lineTo(n.x+f/2-c,n.y-f-c/2);b.lineTo(n.x-c,n.y-f);b.close();m?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(a,d,e,c,f,g,k,l,m,n){f*=k+m;g*=k+m;var p=c.clone();return function(){a.begin();a.moveTo(p.x,p.y);l?a.lineTo(p.x-f-g/b,p.y-g+f/b):a.lineTo(p.x+g/b-f,p.y-g-f/b);a.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var ha=function(b,a,d,e,c){b=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);
b.execute=function(){for(var b=0;b<a.length;b++)this.copyStyle(a[b])};b.getPosition=d;b.setPosition=e;b.ignoreGrid=null!=c?c:!0;return b},ma=function(b,a){return ha(b,[mxConstants.STYLE_ARCSIZE],function(d){var e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100,c=null!=a?a:d.height/8;return new mxPoint(d.x+d.width-Math.min(Math.max(d.width/2,d.height/2),Math.min(d.width,d.height)*e),d.y+c)},function(b,a,d){b=Math.min(50,Math.max(0,
100*(b.width-a.x+b.x)/Math.min(b.width,b.height)));this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(b)})},la=function(){return function(b){var a=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a}},ka=function(b){return function(a){var d=[ha(a,["size"],function(a){var d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size))));return new mxPoint(a.x+0.75*d*a.width,a.y+a.height/4)},function(a,d){this.state.style.size=Math.max(0,
Math.min(b,(d.x-a.x)/(0.75*a.width)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(ma(a));return d}},qa=function(b,a,d){d=null!=d?d:1;return function(e){var c=[ha(e,["size"],function(a){var d=parseFloat(mxUtils.getValue(this.state.style,"size",b));return new mxPoint(a.x+d*a.width,a.getCenterY())},function(b,a){this.state.style.size=Math.max(0,Math.min(d,(a.x-b.x)/b.width))})];a&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ma(e));return c}},ua=function(b,a,d){return function(e){var c=
[ha(e,["size"],function(d){var e=Math.max(0,Math.min(d.width,Math.min(d.height,parseFloat(mxUtils.getValue(this.state.style,"size",a)))))*b;return new mxPoint(d.x+e,d.y+e)},function(a,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,d.x-a.x),Math.min(a.height,d.y-a.y)))/b)})];d&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ma(e));return c}},ya=function(b){return function(a){return[ha(a,["arrowWidth","arrowSize"],function(a){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"arrowWidth",L.prototype.arrowWidth))),e=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",L.prototype.arrowSize)));return new mxPoint(a.x+(1-e)*a.width,a.y+(1-d)*a.height/2)},function(a,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(a.y+a.height/2-d.y)/a.height)));this.state.style.arrowSize=Math.max(0,Math.min(b,(a.x+a.width-d.x)/a.width))})]}},pa=function(b,a,d,e,c){var f=b.absolutePoints,g=f.length-1,k=b.view.translate,l=b.view.scale,m=d?f[0]:f[g],n=d?f[1]:f[g-
-1],q=n.x-m.x,r=n.y-m.y,s=Math.sqrt(q*q+r*r);return ha(b,a,function(b){b=e.call(this,s,q/s,r/s,m,n);return new mxPoint(b.x/l-k.x,b.y/l-k.y)},function(b,a,d){b=Math.sqrt(q*q+r*r);a.x=(a.x+k.x)*l;a.y=(a.y+k.y)*l;c.call(this,b,q/b,r/b,m,n,a,d)})},za=function(b,a,d){return pa(b,["width"],a,function(a,e,c,f,g){g=b.shape.getEdgeWidth()*b.view.scale+d;return new mxPoint(f.x+e*a/4+c*g/2,f.y+c*a/4-e*g/2)},function(a,e,c,f,g,k){a=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));b.style.width=Math.round(2*
+"arrowWidth",K.prototype.arrowWidth))),e=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",K.prototype.arrowSize)));return new mxPoint(a.x+(1-e)*a.width,a.y+(1-d)*a.height/2)},function(a,d){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(a.y+a.height/2-d.y)/a.height)));this.state.style.arrowSize=Math.max(0,Math.min(b,(a.x+a.width-d.x)/a.width))})]}},pa=function(b,a,d,e,c){var f=b.absolutePoints,g=f.length-1,k=b.view.translate,l=b.view.scale,m=d?f[0]:f[g],n=d?f[1]:f[g-
+1],p=n.x-m.x,q=n.y-m.y,r=Math.sqrt(p*p+q*q);return ha(b,a,function(b){b=e.call(this,r,p/r,q/r,m,n);return new mxPoint(b.x/l-k.x,b.y/l-k.y)},function(b,a,d){b=Math.sqrt(p*p+q*q);a.x=(a.x+k.x)*l;a.y=(a.y+k.y)*l;c.call(this,b,p/b,q/b,m,n,a,d)})},za=function(b,a,d){return pa(b,["width"],a,function(a,e,c,f,g){g=b.shape.getEdgeWidth()*b.view.scale+d;return new mxPoint(f.x+e*a/4+c*g/2,f.y+c*a/4-e*g/2)},function(a,e,c,f,g,k){a=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));b.style.width=Math.round(2*
a)/b.view.scale-d})},va={link:function(b){return[za(b,!0,10),za(b,!1,10)]},flexArrow:function(b){var a=b.view.graph.gridSize/b.view.scale,d=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(d.push(pa(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(a,d,e,c,f){a=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(c.x+
d*(f+b.shape.strokewidth*b.view.scale)+e*a/2,c.y+e*(f+b.shape.strokewidth*b.view.scale)-d*a/2)},function(d,e,c,f,g,k,l){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));e=mxUtils.ptLineDist(f.x,f.y,f.x+c,f.y-e,k.x,k.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(e-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*d)/b.view.scale;mxEvent.isControlDown(l.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||
Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<a/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),d.push(pa(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(a,d,e,c,f){a=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(c.x+d*(f+b.shape.strokewidth*
@@ -2672,23 +2672,23 @@ a){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(b.widt
Math.max(0,Math.min(0.5,(a.x-b.x)/b.width))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a},cross:function(b){return[ha(b,["size"],function(b){var a=Math.min(b.width,b.height),a=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ga.prototype.size)))*a/2;return new mxPoint(b.getCenterX()-a,b.getCenterY()-a)},function(b,a){var d=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(2*(Math.max(0,b.getCenterY()-a.y)/d),2*(Math.max(0,
b.getCenterX()-a.x)/d))))})]},note:function(a){return[ha(a,["size"],function(a){var d=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",b.prototype.size)))));return new mxPoint(a.x+a.width-d,a.y+d)},function(b,a){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-a.x),Math.min(b.height,a.y-b.y))))})]},manualInput:function(b){var a=[ha(b,["size"],function(b){var a=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
"size",Q.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*a/4)},function(b,a){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(a.y-b.y)/3)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a},dataStorage:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",R.prototype.size))));return new mxPoint(b.x+(1-a)*b.width,b.getCenterY())},function(b,a){this.state.style.size=Math.max(0,
-Math.min(1,(b.x+b.width-a.x)/b.width))})]},internalStorage:function(b){var a=[ha(b,["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",P.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",P.prototype.dy)));return new mxPoint(b.x+a,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,a.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})];mxUtils.getValue(b.style,
+Math.min(1,(b.x+b.width-a.x)/b.width))})]},internalStorage:function(b){var a=[ha(b,["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",O.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",O.prototype.dy)));return new mxPoint(b.x+a,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,a.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})];mxUtils.getValue(b.style,
mxConstants.STYLE_ROUNDED,!1)&&a.push(ma(b));return a},corner:function(b){return[ha(b,["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",N.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",N.prototype.dy)));return new mxPoint(b.x+a,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,a.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})]},tee:function(b){return[ha(b,
["dx","dy"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",V.prototype.dx))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",V.prototype.dy)));return new mxPoint(b.x+(b.width+a)/2,b.y+d)},function(b,a){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,a.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})]},singleArrow:ya(1),doubleArrow:ya(0.5),folder:function(b){return[ha(b,["tabWidth",
"tabHeight"],function(b){var a=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(a=b.width-a);return new mxPoint(b.x+a,b.y+d)},function(b,a){var d=Math.max(0,Math.min(b.width,a.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==
mxConstants.ALIGN_RIGHT&&(d=b.width-d);this.state.style.tabWidth=Math.round(d);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,a.y-b.y)))})]},document:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-a)*b.height)},function(b,a){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-a.y)/b.height))})]},tape:function(b){return[ha(b,["size"],
-function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(b.getCenterX(),b.y+a*b.height/2)},function(b,a){this.state.style.size=Math.max(0,Math.min(1,2*((a.y-b.y)/b.height)))})]},offPageConnector:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",S.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-a)*b.height)},function(b,a){this.state.style.size=
+function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(b.getCenterX(),b.y+a*b.height/2)},function(b,a){this.state.style.size=Math.max(0,Math.min(1,2*((a.y-b.y)/b.height)))})]},offPageConnector:function(b){return[ha(b,["size"],function(b){var a=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",T.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-a)*b.height)},function(b,a){this.state.style.size=
Math.max(0,Math.min(1,(b.y+b.height-a.y)/b.height))})]},step:qa(v.prototype.size,!0),hexagon:qa(u.prototype.size,!0,0.5),curlyBracket:qa(r.prototype.size,!1),display:qa(oa.prototype.size,!1),cube:ua(1,a.prototype.size,!1),card:ua(0.5,k.prototype.size,!0),loopLimit:ua(0.5,ca.prototype.size,!0),trapezoid:ka(0.5),parallelogram:ka(1)};Graph.createHandle=ha;Graph.handleFactory=va;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var b=
va[this.state.style.shape];if(null!=b)return b(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var b=va[this.state.style.shape];if(null!=b)return b(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var ra=new mxPoint(1,0),sa=new mxPoint(1,0),ka=mxUtils.toRadians(-30),la=Math.cos(ka),ka=Math.sin(ka),ra=mxUtils.getRotatedPoint(ra,la,ka),ka=mxUtils.toRadians(-150),la=Math.cos(ka),ka=Math.sin(ka),
-sa=mxUtils.getRotatedPoint(sa,la,ka);mxEdgeStyle.IsometricConnector=function(b,a,d,e,c){var f=b.view;e=null!=e&&0<e.length?e[0]:null;var g=b.absolutePoints,k=g[0],g=g[g.length-1];null!=e&&(e=f.transformControlPoint(b,e));null==k&&null!=a&&(k=new mxPoint(a.getCenterX(),a.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var l=ra.x,m=ra.y,n=sa.x,q=sa.y,r="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=g&&null!=k){var s=k;b=function(b,a,d){b-=s.x;var e=
-a-s.y;a=(q*b-n*e)/(l*q-m*n);b=(m*b-l*e)/(m*n-l*q);r?(d&&(s=new mxPoint(s.x+l*a,s.y+m*a),c.push(s)),s=new mxPoint(s.x+n*b,s.y+q*b)):(d&&(s=new mxPoint(s.x+n*b,s.y+q*b),c.push(s)),s=new mxPoint(s.x+l*a,s.y+m*a));c.push(s)};null==e&&(e=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));b(e.x,e.y,!0);b(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ea=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,a){if(a==mxEdgeStyle.IsometricConnector){var d=
+sa=mxUtils.getRotatedPoint(sa,la,ka);mxEdgeStyle.IsometricConnector=function(b,a,d,e,c){var f=b.view;e=null!=e&&0<e.length?e[0]:null;var g=b.absolutePoints,k=g[0],g=g[g.length-1];null!=e&&(e=f.transformControlPoint(b,e));null==k&&null!=a&&(k=new mxPoint(a.getCenterX(),a.getCenterY()));null==g&&null!=d&&(g=new mxPoint(d.getCenterX(),d.getCenterY()));var l=ra.x,m=ra.y,n=sa.x,p=sa.y,q="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=g&&null!=k){var r=k;b=function(b,a,d){b-=r.x;var e=
+a-r.y;a=(p*b-n*e)/(l*p-m*n);b=(m*b-l*e)/(m*n-l*p);q?(d&&(r=new mxPoint(r.x+l*a,r.y+m*a),c.push(r)),r=new mxPoint(r.x+n*b,r.y+p*b)):(d&&(r=new mxPoint(r.x+n*b,r.y+p*b),c.push(r)),r=new mxPoint(r.x+l*a,r.y+m*a));c.push(r)};null==e&&(e=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));b(e.x,e.y,!0);b(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Ea=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,a){if(a==mxEdgeStyle.IsometricConnector){var d=
new mxElbowEdgeHandler(b);d.snapToTerminals=!1;return d}return Ea.apply(this,arguments)};c.prototype.constraints=[];f.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,
0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0.5,
-0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;b.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
-mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;
-Q.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxRectangleShape.prototype.constraints;oa.prototype.constraints=mxRectangleShape.prototype.constraints;ca.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.15,0.05),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.85,0.05),
-!1),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.3),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.7),!0),new mxConnectionConstraint(new mxPoint(0.15,0.95),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.85,0.95),!1)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,
-0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];O.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
+0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;b.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
+mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;R.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;ba.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;fa.prototype.constraints=mxEllipse.prototype.constraints;
+Q.prototype.constraints=mxRectangleShape.prototype.constraints;ja.prototype.constraints=mxRectangleShape.prototype.constraints;oa.prototype.constraints=mxRectangleShape.prototype.constraints;ca.prototype.constraints=mxRectangleShape.prototype.constraints;T.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.15,0.05),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.85,0.05),
+!1),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.3),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.7),!0),new mxConnectionConstraint(new mxPoint(0.15,0.95),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.85,0.95),!1)];D.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,
+0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.25,
0.2),!1),new mxConnectionConstraint(new mxPoint(0.1,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(0.75,0.25),!1),new mxConnectionConstraint(new mxPoint(0.9,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];e.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0.5,
0.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.75,0.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];l.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.35),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.65),!1),new mxConnectionConstraint(new mxPoint(1,
@@ -2699,7 +2699,7 @@ new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new
0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(0.875,0.75),!1),new mxConnectionConstraint(new mxPoint(0.375,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0.25),!1),new mxConnectionConstraint(new mxPoint(0.4,0.1),!1),new mxConnectionConstraint(new mxPoint(0.16,
0.55),!1),new mxConnectionConstraint(new mxPoint(0.07,0.4),!1),new mxConnectionConstraint(new mxPoint(0.31,0.8),!1),new mxConnectionConstraint(new mxPoint(0.13,0.77),!1),new mxConnectionConstraint(new mxPoint(0.8,0.8),!1),new mxConnectionConstraint(new mxPoint(0.55,0.95),!1),new mxConnectionConstraint(new mxPoint(0.875,0.5),!1),new mxConnectionConstraint(new mxPoint(0.96,0.7),!1),new mxConnectionConstraint(new mxPoint(0.625,0.2),!1),new mxConnectionConstraint(new mxPoint(0.88,0.25),!1)];n.prototype.constraints=
mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,
-0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;V.prototype.constraints=null;N.prototype.constraints=null;L.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
+0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;V.prototype.constraints=null;N.prototype.constraints=null;K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];L.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
0.5),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];H.prototype.constraints=null;X.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)];da.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.175,
0.25),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.175,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(b){d.escape();var a=d.getDeletableCells(d.getSelectionCells());if(null!=a&&0<a.length){var e=d.model.getParents(a);d.removeCells(a,b);if(null!=e){b=[];for(a=0;a<e.length;a++)(d.model.isVertex(e[a])||d.model.isEdge(e[a]))&&b.push(e[a]);d.setSelectionCells(b)}}}var c=this.editorUi,f=c.editor,d=f.graph,b=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){window.open(c.getUrl())});this.addAction("open...",
@@ -2711,45 +2711,45 @@ if(null!=e){var c=d.view.translate,f=d.view.scale,p=c.y,r=Math.round(d.snap(d.po
function(){d.setSelectionCells(d.turnShapes(d.getSelectionCells()))},null,null,"Ctrl+R");this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,"Ctrl+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,"Ctrl+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var b=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,b);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,b);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,b);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,b);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,b);d.toggleCellStyles("connectable",b)}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},
null,null,"Ctrl+Shift+Page Up");this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Ctrl+Shift+Page Down");this.addAction("expand",function(){d.foldCells(!1)},null,null,"Ctrl+Page Down");this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Ctrl+Page Up");this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container",
-"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("editData...",function(){var b=d.getSelectionCell()||d.getModel().getRoot();null!=b&&(b=new EditDataDialog(c,b),c.showDialog(b.container,
-320,320,!0,!1),b.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(c,mxResources.get("editTooltip")+":",d,function(d){b.setTooltipForCell(a,d)});c.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",function(){var b=d.getLinkForCell(d.getSelectionCell());null!=
-b&&window.open(b)});this.addAction("editLink...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d=b.getLinkForCell(a)||"";c.showLinkDialog(d,mxResources.get("apply"),function(d){d=mxUtils.trim(d);b.setLinkForCell(a,0<d.length?d:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=new LinkDialog(c,"",mxResources.get("insert"),function(b,a){b=mxUtils.trim(b);if(0<b.length){var e=b.substring(b.lastIndexOf("/")+
-1),c=null;null!=a&&0<a.length&&(c=a[0].iconUrl,e=a[0].name||a[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),e=new mxCell(e,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=c?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+c:"spacing\x3d10;"));e.vertex=!0;d.setLinkForCell(e,b);d.cellSizeUpdated(e,!0);d.setSelectionCell(d.addCell(e));
-d.scrollCellToVisible(d.getSelectionCell())}});c.showDialog(b.container,420,90,!0,!0);b.init()}}).isEnabled=b;this.addAction("link...",mxUtils.bind(this,function(){var b=c.editor.graph;if(b.isEnabled())if(b.cellEditor.isContentEditing()){var a=b.getParentByName(b.getSelectedElement(),"A",b.cellEditor.textarea),d="";null!=a&&(d=a.getAttribute("href")||"");var e=b.cellEditor.saveSelection();c.showLinkDialog(d,mxResources.get("apply"),mxUtils.bind(this,function(a){b.cellEditor.restoreSelection(e);if(null!=
-a)if(0==a.length)document.execCommand("unlink",!1);else{for(var d=b.cellEditor.textarea.getElementsByTagName("a"),c=[],f=0;f<d.length;f++)c.push(d[f]);document.execCommand("createlink",!1,mxUtils.trim(a));a=b.cellEditor.textarea.getElementsByTagName("a");if(a.length==c.length+1)for(f=a.length-1;0<=f;f--)if(0==f||a[f]!=c[f-1]){a[f].setAttribute("target","_blank");break}}}))}else b.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=b;this.addAction("autosize",
-function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var e=b[a];if(d.getModel().getChildCount(e))d.updateGroupBounds([e],20);else{var c=d.view.getState(e),f=d.getCellGeometry(e);d.getModel().isVertex(e)&&null!=c&&null!=c.text&&null!=f&&d.isWrapping(e)?(f=f.clone(),f.height=c.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(e,f)):d.updateCellSize(e)}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+Shift+Y");this.addAction("formattedText",
-function(){var b=d.getView().getState(d.getSelectionCell());if(null!=b){var a="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==b.style.html)a=null,"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&d.cellLabelChanged(b.cell,d.convertValueToString(b.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(b.cell);"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(b.cell,d.sanitizeHtml(e))}d.setCellStyles("html",a);c.fireEvent(new mxEventObject("styleChanged",
-"keys",["html"],"values",[null!=a?a:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var b=d.getView().getState(d.getSelectionCell()),a="wrap";d.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(a=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,a)});this.addAction("rotation",function(){var b="0",a=d.getView().getState(d.getSelectionCell());null!=a&&(b=a.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(c,
-b,mxResources.get("apply"),function(b){null!=b&&0<b.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,b)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");c.showDialog(b.container,300,80,!0,!0);b.init()});this.addAction("resetView",function(){d.zoomTo(1);c.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(b){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",function(b){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",
-function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/b.width/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=b.y*d.view.scale,d.container.scrollLeft=Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),
-null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*b.width)/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=Math.min(b.y,(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(b.x,(d.container.scrollWidth-d.container.clientWidth)/
-2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var b=d.getPagePadding();d.container.scrollLeft=Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,
-parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&d.zoomTo(b/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&c.setPageScale(b/100)}),mxResources.get("pageScale")+
-" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}));var e=null,e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());c.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.isGridEnabled()});e.setEnabled(!1);e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;c.fireEvent(new mxEventObject("guidesEnabledChanged"))});e.setToggleAction(!0);
-e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});e.setEnabled(!1);e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});e=this.addAction("collapseExpand",function(){c.setFoldingEnabled(!d.foldingEnabled)});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.foldingEnabled});e.isEnabled=b;e=this.addAction("scrollbars",function(){c.setScrollbars(!c.hasScrollbars())});
-e.setToggleAction(!0);e.setSelectedCallback(function(){return d.scrollbars});e=this.addAction("pageView",mxUtils.bind(this,function(){c.setPageVisible(!d.pageVisible)}));e.setToggleAction(!0);e.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){c.pickColor(d.background||"none",function(b){c.setBackgroundColor(b)})}));e=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;
-c.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionArrowsEnabled});e=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());c.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());
-c.fireEvent(new mxEventObject("copyConnectChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});e.isEnabled=b;e=this.addAction("autosave",function(){c.editor.setAutosave(!c.editor.autosave)});e.setToggleAction(!0);e.setSelectedCallback(function(){return c.editor.autosave});e.isEnabled=b;e.visible=!1;this.addAction("help",function(){var b="";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);window.open(RESOURCES_PATH+
-"/help"+b+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){c.showDialog((new AboutDialog(c)).container,320,280,!0,!0)},null,null,"F1"));e=mxUtils.bind(this,function(b,a,e,c){return this.addAction(b,function(){null!=e&&d.cellEditor.isContentEditing()?e():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,a))},null,null,c)});e("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");e("italic",mxConstants.FONT_ITALIC,
-function(){document.execCommand("italic",!1,null)},"Ctrl+I");e("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){c.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){c.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){c.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){c.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
-this.addAction("backgroundColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){c.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){c.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,
-null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,
-mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",
-function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged",
-"keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var b=d.getSelectionCells(),a=d.view.getState(b[0]),e=null!=a?a.style:d.getCellStyle(b[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,
-null);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
-this.addAction("collapsible",function(){var b=d.view.getState(d.getSelectionCell()),a="1";null!=b&&null!=d.getFoldingImage(b)&&(a="0");d.setCellStyles("collapsible",a);c.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[a],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var b=d.getSelectionCells();if(null!=b&&0<b.length){var a=d.getModel(),a=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",a.getStyle(b[0])||"",
-function(a){null!=a&&d.setCellStyle(mxUtils.trim(a),b)},null,null,400,220);this.editorUi.showDialog(a.container,420,300,!0,!0);a.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&c.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&c.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var b=d.getSelectionCell();if(null!=b&&d.getModel().isEdge(b)){var a=
-f.graph.selectionCellsHandler.getHandler(b);if(a instanceof mxEdgeHandler){for(var e=d.view.translate,c=d.view.scale,n=e.x,e=e.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=p;)n+=p.x,e+=p.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);n=Math.round(d.snap(d.popupMenuHandler.triggerX/c-n));c=Math.round(d.snap(d.popupMenuHandler.triggerY/c-e));a.addPointAt(a.state,n,c)}}});this.addAction("removeWaypoint",function(){var b=c.actions.get("removeWaypoint");null!=
-b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var e=b[a];if(d.getModel().isEdge(e)){var c=d.getCellGeometry(e);null!=c&&(c=c.clone(),c.points=null,d.getModel().setGeometry(e,c))}}}finally{d.getModel().endUpdate()}}});e=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),
-null,null,"Ctrl+,");e=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",a=d.getView().getState(d.getSelectionCell()),e="";null!=a&&(e=a.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();c.showImageDialog(b,e,function(b,
-a,e){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(b,a,e);else{var c=d.getSelectionCells();if(null!=b){var g=null;d.getModel().beginUpdate();try{if(0==c.length)var k=d.getFreeInsertPoint(),g=c=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,a,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,b,c);var l=d.view.getState(c[0]),u=null!=l?l.style:d.getCellStyle(c[0]);"image"!=u[mxConstants.STYLE_SHAPE]&&
-"label"!=u[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",c);if(1==d.getSelectionCount()&&null!=a&&null!=e){var z=c[0],y=d.getModel().getGeometry(z);null!=y&&(y=y.clone(),y.width=a,y.height=e,d.getModel().setGeometry(z,y))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=b;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
-(d.clearSelection(),c.actions.get("image").funct())}).isEnabled=b;e=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("layers"))):
-this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));e=this.addAction("formatPanel",mxUtils.bind(this,function(){c.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return 0<c.formatWidth}));e=this.addAction("outline",mxUtils.bind(this,
-function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(c,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());c.fireEvent(new mxEventObject("outline"))}),
-null,null,"Ctrl+Shift+O");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,c,f,d,b){var e;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),e=mxResources.get(a)+"..."):e=mxResources.get(a);return this.put(a,new Action(e,c,f,d,b))};Actions.prototype.put=function(a,c){return this.actions[a]=c};Actions.prototype.get=function(a){return this.actions[a]};
-function Action(a,c,f,d,b){mxEventSource.call(this);this.label=a;this.funct=c;this.enabled=null!=f?f:!0;this.iconCls=d;this.shortcut=b;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
+"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var b=d.getSelectionCell()||
+d.getModel().getRoot();null!=b&&(b=new EditDataDialog(c,b),c.showDialog(b.container,320,320,!0,!1),b.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(c,mxResources.get("editTooltip")+":",d,function(d){b.setTooltipForCell(a,d)});c.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",
+function(){var b=d.getLinkForCell(d.getSelectionCell());null!=b&&window.open(b)});this.addAction("editLink...",function(){var b=c.editor.graph;if(b.isEnabled()&&!b.isSelectionEmpty()){var a=b.getSelectionCell(),d=b.getLinkForCell(a)||"";c.showLinkDialog(d,mxResources.get("apply"),function(d){d=mxUtils.trim(d);b.setLinkForCell(a,0<d.length?d:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=new LinkDialog(c,"",mxResources.get("insert"),
+function(b,a){b=mxUtils.trim(b);if(0<b.length){var e=b.substring(b.lastIndexOf("/")+1),c=null;null!=a&&0<a.length&&(c=a[0].iconUrl,e=a[0].name||a[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),e=new mxCell(e,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=c?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+c:"spacing\x3d10;"));
+e.vertex=!0;d.setLinkForCell(e,b);d.cellSizeUpdated(e,!0);d.setSelectionCell(d.addCell(e));d.scrollCellToVisible(d.getSelectionCell())}});c.showDialog(b.container,420,90,!0,!0);b.init()}}).isEnabled=b;this.addAction("link...",mxUtils.bind(this,function(){var b=c.editor.graph;if(b.isEnabled())if(b.cellEditor.isContentEditing()){var a=b.getParentByName(b.getSelectedElement(),"A",b.cellEditor.textarea),d="";null!=a&&(d=a.getAttribute("href")||"");var e=b.cellEditor.saveSelection();c.showLinkDialog(d,
+mxResources.get("apply"),mxUtils.bind(this,function(a){b.cellEditor.restoreSelection(e);if(null!=a)if(0==a.length)document.execCommand("unlink",!1);else{for(var d=b.cellEditor.textarea.getElementsByTagName("a"),c=[],f=0;f<d.length;f++)c.push(d[f]);document.execCommand("createlink",!1,mxUtils.trim(a));a=b.cellEditor.textarea.getElementsByTagName("a");if(a.length==c.length+1)for(f=a.length-1;0<=f;f--)if(0==f||a[f]!=c[f-1]){a[f].setAttribute("target","_blank");break}}}))}else b.isSelectionEmpty()?this.get("insertLink").funct():
+this.get("editLink").funct()})).isEnabled=b;this.addAction("autosize",function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var e=b[a];if(d.getModel().getChildCount(e))d.updateGroupBounds([e],20);else{var c=d.view.getState(e),f=d.getCellGeometry(e);d.getModel().isVertex(e)&&null!=c&&null!=c.text&&null!=f&&d.isWrapping(e)?(f=f.clone(),f.height=c.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(e,f)):d.updateCellSize(e)}}}finally{d.getModel().endUpdate()}}},
+null,null,"Ctrl+Shift+Y");this.addAction("formattedText",function(){var b=d.getView().getState(d.getSelectionCell());if(null!=b){var a="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==b.style.html)a=null,"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&d.cellLabelChanged(b.cell,d.convertValueToString(b.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(b.cell);"0"!=mxUtils.getValue(b.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(b.cell,
+d.sanitizeHtml(e))}d.setCellStyles("html",a);c.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=a?a:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var b=d.getView().getState(d.getSelectionCell()),a="wrap";d.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(a=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,a)});this.addAction("rotation",function(){var b="0",a=d.getView().getState(d.getSelectionCell());
+null!=a&&(b=a.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(c,b,mxResources.get("apply"),function(b){null!=b&&0<b.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,b)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");c.showDialog(b.container,300,80,!0,!0);b.init()});this.addAction("resetView",function(){d.zoomTo(1);c.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(b){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",
+function(b){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/b.width/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=b.y*d.view.scale,d.container.scrollLeft=
+Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var b=d.pageFormat,a=d.pageScale,b=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*b.width)/a,(d.container.clientHeight-10)/b.height/a))/20;d.zoomTo(b);mxUtils.hasScrollbars(d.container)&&(b=d.getPagePadding(),d.container.scrollTop=Math.min(b.y,(d.container.scrollHeight-d.container.clientHeight)/
+2),d.container.scrollLeft=Math.min(b.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var b=d.getPagePadding();d.container.scrollLeft=Math.min(b.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",
+new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&d.zoomTo(b/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),
+mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&c.setPageScale(b/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}));var e=null,e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());c.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.isGridEnabled()});e.setEnabled(!1);e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=
+!d.graphHandler.guidesEnabled;c.fireEvent(new mxEventObject("guidesEnabledChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});e.setEnabled(!1);e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});e=this.addAction("collapseExpand",function(){c.setFoldingEnabled(!d.foldingEnabled)});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.foldingEnabled});
+e.isEnabled=b;e=this.addAction("scrollbars",function(){c.setScrollbars(!c.hasScrollbars())});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.scrollbars});e=this.addAction("pageView",mxUtils.bind(this,function(){c.setPageVisible(!d.pageVisible)}));e.setToggleAction(!0);e.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){c.pickColor(d.background||"none",function(b){c.setBackgroundColor(b)})}));
+e=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;c.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionArrowsEnabled});e=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());c.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});
+e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());c.fireEvent(new mxEventObject("copyConnectChanged"))});e.setToggleAction(!0);e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});e.isEnabled=b;e=this.addAction("autosave",function(){c.editor.setAutosave(!c.editor.autosave)});e.setToggleAction(!0);e.setSelectedCallback(function(){return c.editor.autosave});e.isEnabled=b;e.visible=!1;this.addAction("help",function(){var b=
+"";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);window.open(RESOURCES_PATH+"/help"+b+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){c.showDialog((new AboutDialog(c)).container,320,280,!0,!0)},null,null,"F1"));e=mxUtils.bind(this,function(b,a,e,c){return this.addAction(b,function(){null!=e&&d.cellEditor.isContentEditing()?e():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,a))},null,null,c)});e("bold",
+mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");e("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},"Ctrl+I");e("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){c.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){c.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",
+function(){c.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){c.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){c.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){c.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){c.menus.toggleStyle(mxConstants.STYLE_SHADOW)});
+this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
+null),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],
+"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,
+"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var b=d.getSelectionCells(),a=d.view.getState(b[0]),e=null!=a?a.style:d.getCellStyle(b[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?
+"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),c.fireEvent(new mxEventObject("styleChanged","keys",
+[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var b=d.view.getState(d.getSelectionCell()),a="1";null!=b&&null!=d.getFoldingImage(b)&&(a="0");d.setCellStyles("collapsible",a);c.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[a],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var b=d.getSelectionCells();
+if(null!=b&&0<b.length){var a=d.getModel(),a=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",a.getStyle(b[0])||"",function(a){null!=a&&d.setCellStyle(mxUtils.trim(a),b)},null,null,400,220);this.editorUi.showDialog(a.container,420,300,!0,!0);a.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&c.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&
+c.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var b=d.getSelectionCell();if(null!=b&&d.getModel().isEdge(b)){var a=f.graph.selectionCellsHandler.getHandler(b);if(a instanceof mxEdgeHandler){for(var e=d.view.translate,c=d.view.scale,n=e.x,e=e.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);d.getModel().isVertex(b)&&null!=p;)n+=p.x,e+=p.y,b=d.getModel().getParent(b),p=d.getCellGeometry(b);n=Math.round(d.snap(d.popupMenuHandler.triggerX/c-n));c=Math.round(d.snap(d.popupMenuHandler.triggerY/
+c-e));a.addPointAt(a.state,n,c)}}});this.addAction("removeWaypoint",function(){var b=c.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(){var b=d.getSelectionCells();if(null!=b){d.getModel().beginUpdate();try{for(var a=0;a<b.length;a++){var e=b[a];if(d.getModel().isEdge(e)){var c=d.getCellGeometry(e);null!=c&&(c=c.clone(),c.points=null,d.getModel().setGeometry(e,c))}}}finally{d.getModel().endUpdate()}}});e=this.addAction("subscript",
+mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,"Ctrl+,");e=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",a=d.getView().getState(d.getSelectionCell()),e="";null!=a&&
+(e=a.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();c.showImageDialog(b,e,function(b,a,e){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(b,a,e);else{var c=d.getSelectionCells();if(null!=b){var g=null;d.getModel().beginUpdate();try{if(0==c.length)var k=d.getFreeInsertPoint(),g=c=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,a,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,
+b,c);var l=d.view.getState(c[0]),u=null!=l?l.style:d.getCellStyle(c[0]);"image"!=u[mxConstants.STYLE_SHAPE]&&"label"!=u[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",c);if(1==d.getSelectionCount()&&null!=a&&null!=e){var y=c[0],z=d.getModel().getGeometry(y);null!=z&&(z=z.clone(),z.width=a,z.height=e,d.getModel().setGeometry(y,z))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=
+b;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),c.actions.get("image").funct())}).isEnabled=b;e=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("layers"))}),
+this.layersWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("layers"))):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));e=this.addAction("formatPanel",mxUtils.bind(this,function(){c.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,
+function(){return 0<c.formatWidth}));e=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(c,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());
+c.fireEvent(new mxEventObject("outline"))}),null,null,"Ctrl+Shift+O");e.setToggleAction(!0);e.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,c,f,d,b){var e;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),e=mxResources.get(a)+"..."):e=mxResources.get(a);return this.put(a,new Action(e,c,f,d,b))};Actions.prototype.put=function(a,c){return this.actions[a]=c};
+Actions.prototype.get=function(a){return this.actions[a]};function Action(a,c,f,d,b){mxEventSource.call(this);this.label=a;this.funct=c;this.enabled=null!=f?f:!0;this.iconCls=d;this.shortcut=b;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};Menus=function(a){this.editorUi=a;this.menus={};this.init();mxClient.IS_SVG||((new Image).src=this.checkmarkImage)};Menus.prototype.defaultFont="Helvetica";Menus.prototype.defaultFontSize="12";Menus.prototype.defaultMenuItems="file edit view arrange extras help".split(" ");Menus.prototype.defaultFonts="Helvetica;Verdana;Times New Roman;Garamond;Comic Sans MS;Courier New;Georgia;Lucida Console;Tahoma".split(";");
Menus.prototype.init=function(){var a=this.editorUi.editor.graph,c=mxUtils.bind(a,a.isEnabled);this.customFonts=[];this.customFontSizes=[];this.put("fontFamily",new Menu(mxUtils.bind(this,function(a,d){for(var b=mxUtils.bind(this,function(b){this.styleChange(a,b,[mxConstants.STYLE_FONTFAMILY],[b],null,d,function(){document.execCommand("fontname",!1,b)}).firstChild.nextSibling.style.fontFamily=b}),e=0;e<this.defaultFonts.length;e++)b(this.defaultFonts[e]);a.addSeparator(d);if(0<this.customFonts.length){for(e=
0;e<this.customFonts.length;e++)b(this.customFonts[e]);a.addSeparator(d);a.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFonts=[]}),d);a.addSeparator(d)}this.promptChange(a,mxResources.get("custom")+"...","",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,d,!0,mxUtils.bind(this,function(b){this.customFonts.push(b)}))})));this.put("formatBlock",new Menu(mxUtils.bind(this,function(c,d){function b(b,g){return c.addItem(b,null,mxUtils.bind(this,function(){a.cellEditor.textarea.focus();
@@ -2768,8 +2768,8 @@ null,mxUtils.bind(this,function(){var b=new mxCircleLayout(a);this.editorUi.exec
d){this.addMenuItems(a,["toFront","toBack","-"],d);this.addSubmenu("direction",a,d);this.addMenuItems(a,["turn","-"],d);this.addSubmenu("align",a,d);this.addSubmenu("distribute",a,d);a.addSeparator(d);this.addSubmenu("navigation",a,d);this.addSubmenu("insert",a,d);this.addSubmenu("layout",a,d);this.addMenuItems(a,"- group ungroup removeFromGroup - clearWaypoints autosize".split(" "),d)}))).isEnabled=c;this.put("insert",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["insertLink","insertImage"],
d)})));this.put("view",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,(null!=this.editorUi.format?["formatPanel"]:[]).concat("outline layers - pageView pageScale - scrollbars tooltips - grid guides - connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),d))})));this.put("viewPanels",new Menu(mxUtils.bind(this,function(a,d){null!=this.editorUi.format&&this.addMenuItems(a,["formatPanel"],d);this.addMenuItems(a,["outline","layers"],d)})));this.put("viewZoom",new Menu(mxUtils.bind(this,
function(c,d){this.addMenuItems(c,["resetView","-"],d);for(var b=[0.25,0.5,0.75,1,1.25,1.5,2,3,4],e=0;e<b.length;e++)(function(b){c.addItem(100*b+"%",null,function(){a.zoomTo(b)},d)})(b[e]);this.addMenuItems(c,"- fitWindow fitPageWidth fitPage fitTwoPages - customZoom".split(" "),d)})));this.put("file",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,"new open - save saveAs - import export - pageSetup print".split(" "),d)})));this.put("edit",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,
-"undo redo - cut copy paste delete - duplicate - editData editTooltip editStyle - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("extras",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["copyConnect","collapseExpand","-","editDiagram"])})));this.put("help",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["help","-","about"])})))};Menus.prototype.put=function(a,c){return this.menus[a]=c};Menus.prototype.get=function(a){return this.menus[a]};
-Menus.prototype.addSubmenu=function(a,c,f){var d=this.get(a).isEnabled();if(c.showDisabled||d)f=c.addItem(mxResources.get(a),null,null,f,null,d),this.addMenu(a,c,f)};Menus.prototype.addMenu=function(a,c,f){var d=this.get(a);null!=d&&(c.showDisabled||d.isEnabled())&&this.get(a).execute(c,f)};
+"undo redo - cut copy paste delete - duplicate - editData editTooltip editStyle - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("extras",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["copyConnect","collapseExpand","-","editDiagram"])})));this.put("help",new Menu(mxUtils.bind(this,function(a,d){this.addMenuItems(a,["help","-","about"])})))};Menus.prototype.put=function(a,c){return this.menus[a]=c};
+Menus.prototype.get=function(a){return this.menus[a]};Menus.prototype.addSubmenu=function(a,c,f){var d=this.get(a).isEnabled();if(c.showDisabled||d)f=c.addItem(mxResources.get(a),null,null,f,null,d),this.addMenu(a,c,f)};Menus.prototype.addMenu=function(a,c,f){var d=this.get(a);null!=d&&(c.showDisabled||d.isEnabled())&&this.get(a).execute(c,f)};
Menus.prototype.addInsertTableItem=function(a){function c(b,a){for(var d=["\x3ctable\x3e"],e=0;e<b;e++){d.push("\x3ctr\x3e");for(var c=0;c<a;c++)d.push("\x3ctd\x3e\x3cbr\x3e\x3c/td\x3e");d.push("\x3c/tr\x3e")}d.push("\x3c/table\x3e");return d.join("")}var f=this.editorUi.editor.graph;a=a.addItem("",null,mxUtils.bind(this,function(b){var a=f.getParentByName(mxEvent.getSource(b),"TD");if(null!=a){var d=f.getParentByName(a,"TR"),e=f.cellEditor.textarea.getElementsByTagName("table");b=[];for(var n=0;n<
e.length;n++)b.push(e[n]);f.container.focus();f.pasteHtmlAtCaret(c(d.sectionRowIndex+1,a.cellIndex+1));a=f.cellEditor.textarea.getElementsByTagName("table");if(a.length==b.length+1)for(n=a.length-1;0<=n;n--)if(0==n||a[n]!=b[n-1]){f.selectNode(a[n].rows[0].cells[0]);break}}}));var d='\x3cimg src\x3d"'+mxClient.imageBasePath+'/transparent.gif" width\x3d"16" height\x3d"16"/\x3e';a.firstChild.innerHTML="";var b=function(b,a){var e=document.createElement("table");e.setAttribute("border","1");e.style.borderCollapse=
"collapse";mxClient.IS_QUIRKS||e.setAttribute("cellPadding","8");for(var c=0;c<b;c++)for(var f=e.insertRow(c),p=0;p<a;p++){var r=f.insertCell(-1);mxClient.IS_QUIRKS&&(r.innerHTML=d)}return e}(5,5);a.firstChild.appendChild(b);var e=document.createElement("div");e.style.padding="4px";e.style.fontSize=Menus.prototype.defaultFontSize+"px";e.innerHTML="1x1";a.firstChild.appendChild(e);mxEvent.addListener(b,"mouseover",function(a){var c=f.getParentByName(mxEvent.getSource(a),"TD");if(null!=c){for(var l=
@@ -2787,7 +2787,7 @@ Menus.prototype.addMenuItem=function(a,c,f,d,b){var e=this.editorUi.actions.get(
Menus.prototype.addShortcut=function(a,c){if(null!=c.shortcut){var f=a.firstChild.nextSibling.nextSibling,d=document.createElement("span");d.style.color="gray";mxUtils.write(d,c.shortcut);f.appendChild(d)}};Menus.prototype.addMenuItems=function(a,c,f,d,b){for(var e=0;e<c.length;e++)"-"==c[e]?a.addSeparator(f):this.addMenuItem(a,c[e],f,d,null!=b?b[e]:null)};
Menus.prototype.createPopupMenu=function(a,c,f){var d=this.editorUi.editor.graph;a.smartSeparators=!0;d.isSelectionEmpty()?this.addMenuItems(a,["undo","redo","-","pasteHere"],null,f):this.addMenuItems(a,"delete - cut copy - duplicate".split(" "),null,f);if(0<d.getSelectionCount()){1==d.getSelectionCount()&&this.addMenuItems(a,["setAsDefaultStyle"],null,f);a.addSeparator();c=d.getSelectionCell();var b=d.view.getState(c);if(null!=b){1==d.getSelectionCount()&&this.addMenuItems(a,["toFront","toBack",
"-"],null,f);if(d.getModel().isEdge(c)&&"entityRelationEdgeStyle"!=mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&"arrow"!=mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null)){var e=d.selectionCellsHandler.getHandler(c),g=!1;if(e instanceof mxEdgeHandler&&null!=e.bends&&2<e.bends.length){var g=e.getHandleForEvent(d.updateMouseEvent(new mxMouseEvent(f))),k=this.editorUi.actions.get("removeWaypoint");k.handler=e;k.index=g;g=0<g&&g<e.bends.length-1}this.addMenuItems(a,["-",g?"removeWaypoint":
-"addWaypoint"],null,f);e=d.getModel().getGeometry(c);null!=e&&null!=e.points&&0<e.points.length&&this.addMenuItems(a,["clearWaypoints"],null,f)}1<d.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,f)):1==d.getSelectionCount()&&!d.getModel().isEdge(c)&&!d.isSwimlane(c)&&0<d.getModel().getChildCount(c)&&(a.addSeparator(),this.addMenuItems(a,["ungroup"],null,f));1==d.getSelectionCount()&&(a.addSeparator(),this.addMenuItems(a,["editData","editLink"],null,f),d.getModel().isVertex(c)&&
+"addWaypoint"],null,f);e=d.getModel().getGeometry(c);null!=e&&null!=e.points&&0<e.points.length&&this.addMenuItems(a,["clearWaypoints"],null,f)}1<d.getSelectionCount()?(a.addSeparator(),this.addMenuItems(a,["group"],null,f)):1==d.getSelectionCount()&&!d.getModel().isEdge(c)&&!d.isSwimlane(c)&&0<d.getModel().getChildCount(c)&&(a.addSeparator(),this.addMenuItems(a,["ungroup"],null,f));1==d.getSelectionCount()&&(a.addSeparator(),this.addMenuItems(a,["edit","-","editData","editLink"],null,f),d.getModel().isVertex(c)&&
null!=mxUtils.getValue(b.style,mxConstants.STYLE_IMAGE,null)&&(a.addSeparator(),this.addMenuItem(a,"image",null,f).firstChild.nextSibling.innerHTML=mxResources.get("editImage")+"..."))}}else this.addMenuItems(a,["-","selectVertices","selectEdges","-","selectAll"],null,f)};
Menus.prototype.createMenubar=function(a){for(var c=new Menubar(this.editorUi,a),f=this.defaultMenuItems,d=0;d<f.length;d++)mxUtils.bind(this,function(b){var a=c.addMenu(mxResources.get(f[d]),mxUtils.bind(this,function(){b.funct.apply(this,arguments)}));null!=a&&b.addListener("stateChanged",function(){(a.enabled=b.enabled)?(a.className="geItem",8==document.documentMode&&(a.style.color="")):(a.className="geItem mxDisabled",8==document.documentMode&&(a.style.color="#c3c3c3"))})})(this.get(f[d]));return c};
function Menubar(a,c){this.editorUi=a;this.container=c}Menubar.prototype.hideMenu=function(){this.editorUi.hideCurrentMenu()};Menubar.prototype.addMenu=function(a,c){var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");f.className="geItem";mxUtils.write(f,a);this.addMenuHandler(f,c);this.container.appendChild(f);return f};
@@ -2814,8 +2814,8 @@ m=l.cloneNode(!1);l.style.backgroundColor="#d7d7d7";m.style.backgroundColor="#d7
mxUtils.write(m,mxResources.get("arrange"));f.appendChild(m);f=f.cloneNode(!1);f.style.display="none";this.panels.push(new ArrangePanel(this,a,f));this.container.appendChild(f);c(l,d,k++);c(m,f,k++)}}};BaseFormatPanel=function(a,c,f){this.format=a;this.editorUi=c;this.container=f;this.listeners=[]};
BaseFormatPanel.prototype.getSelectionState=function(){for(var a=this.editorUi.editor.graph,c=a.getSelectionCells(),f=null,d=0;d<c.length;d++){var b=a.view.getState(c[d]);if(null!=b&&(b=mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null),null!=b))if(null==f)f=b;else if(f!=b)return null}return f};
BaseFormatPanel.prototype.installInputHandler=function(a,c,f,d,b,e,g,k){e=null!=e?e:"";k=null!=k?k:!1;var l=this.editorUi,m=l.editor.graph;d=null!=d?d:1;b=null!=b?b:999;var n=null,p=!1,r=mxUtils.bind(this,function(r){var q=k?parseFloat(a.value):parseInt(a.value);!isNaN(q)&&c==mxConstants.STYLE_ROTATION&&(q=mxUtils.mod(Math.round(100*q),36E3)/100);q=Math.min(b,Math.max(d,isNaN(q)?f:q));if(m.cellEditor.isContentEditing()&&g)p||(p=!0,null!=n&&(m.cellEditor.restoreSelection(n),n=null),g(q),a.value=q+
-e,p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,f)){m.isEditing()&&m.stopEditing(!0);m.getModel().beginUpdate();try{if(m.setCellStyles(c,q,m.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE)for(var t=m.getSelectionCells(),v=0;v<t.length;v++){var u=t[v];if(m.isHtmlLabel(u)){var z=document.createElement("div");z.innerHTML=m.convertValueToString(u);for(var y=z.getElementsByTagName("font"),x=0;x<y.length;x++)y[x].removeAttribute("size"),y[x].style.fontSize=q+"px";m.cellLabelChanged(u,
-z.innerHTML)}}}finally{m.getModel().endUpdate()}l.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",m.getSelectionCells()))}a.value=q+e;mxEvent.consume(r)});g&&m.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){n=m.cellEditor.saveSelection()}),mxEvent.addListener(a,"touchstart",function(){n=m.cellEditor.saveSelection()}));mxEvent.addListener(a,"change",r);mxEvent.addListener(a,"blur",r);return r};
+e,p=!1);else if(q!=mxUtils.getValue(this.format.getSelectionState().style,c,f)){m.isEditing()&&m.stopEditing(!0);m.getModel().beginUpdate();try{if(m.setCellStyles(c,q,m.getSelectionCells()),c==mxConstants.STYLE_FONTSIZE)for(var t=m.getSelectionCells(),v=0;v<t.length;v++){var u=t[v];if(m.isHtmlLabel(u)){var y=document.createElement("div");y.innerHTML=m.convertValueToString(u);for(var z=y.getElementsByTagName("font"),x=0;x<z.length;x++)z[x].removeAttribute("size"),z[x].style.fontSize=q+"px";m.cellLabelChanged(u,
+y.innerHTML)}}}finally{m.getModel().endUpdate()}l.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[q],"cells",m.getSelectionCells()))}a.value=q+e;mxEvent.consume(r)});g&&m.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){n=m.cellEditor.saveSelection()}),mxEvent.addListener(a,"touchstart",function(){n=m.cellEditor.saveSelection()}));mxEvent.addListener(a,"change",r);mxEvent.addListener(a,"blur",r);return r};
BaseFormatPanel.prototype.createPanel=function(){var a=document.createElement("div");a.style.padding="12px 0px 12px 18px";a.style.borderBottom="1px solid #c0c0c0";return a};BaseFormatPanel.prototype.createTitle=function(a){var c=document.createElement("div");c.style.padding="0px 0px 6px 0px";c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.width="200px";c.style.fontWeight="bold";mxUtils.write(c,a);return c};
BaseFormatPanel.prototype.createStepper=function(a,c,f,d,b,e){f=null!=f?f:1;d=null!=d?d:8;if(mxClient.IS_QUIRKS)d-=2;else if(mxClient.IS_MT||8<=document.documentMode)d+=1;var g=document.createElement("div");mxUtils.setPrefixedStyle(g.style,"borderRadius","3px");g.style.border="1px solid rgb(192, 192, 192)";g.style.position="absolute";var k=document.createElement("div");k.style.borderBottom="1px solid rgb(192, 192, 192)";k.style.position="relative";k.style.height=d+"px";k.style.width="10px";k.className=
"geBtnUp";g.appendChild(k);var l=k.cloneNode(!1);l.style.border="none";l.style.height=d+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addListener(l,"click",function(b){""==a.value&&(a.value=e||"2");var d=parseInt(a.value);isNaN(d)||(a.value=d-f,null!=c&&c(b));mxEvent.consume(b)});mxEvent.addListener(k,"click",function(b){""==a.value&&(a.value=e||"0");var d=parseInt(a.value);isNaN(d)||(a.value=d+f,null!=c&&c(b));mxEvent.consume(b)});if(b){var m=null;mxEvent.addGestureListeners(g,function(b){if(mxClient.IS_QUIRKS||
@@ -2878,43 +2878,43 @@ l.style.margin="0px";this.addArrow(l);l.style.width="192px";l.style.height="15px
")");var n=this.editorUi.toolbar.addItems(["vertical"],k,!0)[0];mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(k);this.styleButtons(m);this.styleButtons([n]);var p=e.cloneNode(!1);p.style.marginLeft="-3px";p.style.paddingBottom="0px";var r=this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifyleft",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT]),p),
s=this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifycenter",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER]),p),q=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),d.cellEditor.isContentEditing()?function(){document.execCommand("justifyright",!1,null)}:this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],
[mxConstants.ALIGN_RIGHT]),p);this.styleButtons([r,s,q]);if(d.cellEditor.isContentEditing()){var t=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("removeFormat"),function(){document.execCommand("removeformat",!1,null)},k);this.styleButtons([t])}var v=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP]),p),u=this.editorUi.toolbar.addButton("geSprite-middle",
-mxResources.get("middle"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE]),p),z=this.editorUi.toolbar.addButton("geSprite-bottom",mxResources.get("bottom"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM]),p);this.styleButtons([v,u,z]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(p);var y,x,F,E,A,D,G;d.cellEditor.isContentEditing()?(v.style.display="none",u.style.display="none",
-z.style.display="none",n.style.display="none",F=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},p),this.styleButtons([F,y=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" (Ctrl+,)",function(){document.execCommand("subscript",!1,null)},p),x=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" (Ctrl+.)",function(){document.execCommand("superscript",!1,null)},p)]),
-F.style.marginRight="9px",t=p.cloneNode(!1),t.style.paddingTop="4px",p=[this.editorUi.toolbar.addButton("geSprite-orderedlist",mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",
+mxResources.get("middle"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE]),p),y=this.editorUi.toolbar.addButton("geSprite-bottom",mxResources.get("bottom"),this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM]),p);this.styleButtons([v,u,y]);mxClient.IS_QUIRKS&&mxUtils.br(a);a.appendChild(p);var z,x,D,C,A,F,G;d.cellEditor.isContentEditing()?(v.style.display="none",u.style.display="none",
+y.style.display="none",n.style.display="none",D=this.editorUi.toolbar.addButton("geSprite-justifyfull",null,function(){document.execCommand("justifyfull",!1,null)},p),this.styleButtons([D,z=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" (Ctrl+,)",function(){document.execCommand("subscript",!1,null)},p),x=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" (Ctrl+.)",function(){document.execCommand("superscript",!1,null)},p)]),
+D.style.marginRight="9px",t=p.cloneNode(!1),t.style.paddingTop="4px",p=[this.editorUi.toolbar.addButton("geSprite-orderedlist",mxResources.get("numberedList"),function(){document.execCommand("insertorderedlist",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-unorderedlist",mxResources.get("bulletedList"),function(){document.execCommand("insertunorderedlist",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-outdent",mxResources.get("decreaseIndent"),function(){document.execCommand("outdent",
!1,null)},t),this.editorUi.toolbar.addButton("geSprite-indent",mxResources.get("increaseIndent"),function(){document.execCommand("indent",!1,null)},t),this.editorUi.toolbar.addButton("geSprite-code",mxResources.get("html"),function(){d.cellEditor.toggleViewMode()},t)],this.styleButtons(p),p[p.length-1].style.marginLeft="9px",mxClient.IS_QUIRKS&&(mxUtils.br(a),t.style.height="40"),a.appendChild(t)):(m[2].style.marginRight="9px",q.style.marginRight="9px");p=e.cloneNode(!1);p.style.marginLeft="0px";
p.style.paddingTop="8px";p.style.paddingBottom="4px";p.style.fontWeight="normal";mxUtils.write(p,mxResources.get("position"));var H=document.createElement("select");H.style.position="absolute";H.style.right="20px";H.style.width="97px";H.style.marginTop="-2px";for(var I="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),J={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP,
mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM],topRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM],left:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE],center:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE],right:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE],bottomLeft:[mxConstants.ALIGN_LEFT,
-mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},t=0;t<I.length;t++){var K=document.createElement("option");K.setAttribute("value",I[t]);mxUtils.write(K,mxResources.get(I[t]));H.appendChild(K)}p.appendChild(H);I=e.cloneNode(!1);I.style.marginLeft="0px";I.style.paddingTop=
-"4px";I.style.paddingBottom="4px";I.style.fontWeight="normal";mxUtils.write(I,mxResources.get("writingDirection"));var O=document.createElement("select");O.style.position="absolute";O.style.right="20px";O.style.width="97px";O.style.marginTop="-2px";for(var K=["automatic","leftToRight","rightToLeft"],U={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},t=0;t<K.length;t++){var W=document.createElement("option");W.setAttribute("value",K[t]);mxUtils.write(W,
-mxResources.get(K[t]));O.appendChild(W)}I.appendChild(O);d.isEditing()||(a.appendChild(p),mxEvent.addListener(H,"change",function(b){d.getModel().beginUpdate();try{var a=J[H.value];null!=a&&(d.setCellStyles(mxConstants.STYLE_LABEL_POSITION,a[0],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,a[1],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_ALIGN,a[2],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,a[3],d.getSelectionCells()))}finally{d.getModel().endUpdate()}mxEvent.consume(b)}),
-a.appendChild(I),mxEvent.addListener(O,"change",function(b){d.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,U[O.value],d.getSelectionCells());mxEvent.consume(b)}));var B=document.createElement("input");B.style.textAlign="right";B.style.marginTop="4px";mxClient.IS_QUIRKS||(B.style.position="absolute",B.style.right="32px");B.style.width="46px";B.style.height=mxClient.IS_QUIRKS?"21px":"17px";k.appendChild(B);var C=null,p=this.installInputHandler(B,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,
-1,999," pt",function(b){C=b;document.execCommand("fontSize",!1,"4");b=d.cellEditor.textarea.getElementsByTagName("font");for(var a=0;a<b.length;a++)if("4"==b[a].getAttribute("size")){b[a].removeAttribute("size");b[a].style.fontSize=C+"px";window.setTimeout(function(){B.value=C+" pt";C=null},0);break}},!0),p=this.createStepper(B,p,1,10,!0,Menus.prototype.defaultFontSize);p.style.display=B.style.display;p.style.marginTop="4px";mxClient.IS_QUIRKS||(p.style.right="20px");k.appendChild(p);k=l.getElementsByTagName("div")[0];
-k.style.cssFloat="right";var Q=null,P="#ffffff",N=null,V="#000000",L=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return P},function(b){document.execCommand("backcolor",!1,b!=mxConstants.NONE?b:"transparent")},"#ffffff",{install:function(b){Q=b},destroy:function(){Q=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff");L.style.fontWeight="bold";var M=this.createCellColorOption(mxResources.get("borderColor"),
-mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");M.style.fontWeight="bold";k=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return V},function(b){document.execCommand("forecolor",!1,b!=mxConstants.NONE?b:"transparent")},"#000000",{install:function(b){N=b},destroy:function(){N=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"#000000",function(b){L.style.display=null==b||b==mxConstants.NONE?"none":"";M.style.display=
-L.style.display},function(b){null==b||b==mxConstants.NONE?d.setCellStyles(mxConstants.STYLE_NOLABEL,"1",d.getSelectionCells()):d.setCellStyles(mxConstants.STYLE_NOLABEL,null,d.getSelectionCells())});k.style.fontWeight="bold";g.appendChild(k);g.appendChild(L);d.cellEditor.isContentEditing()||g.appendChild(M);a.appendChild(g);g=this.createPanel();g.style.paddingTop="2px";g.style.paddingBottom="4px";k=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",
+mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_TOP],bottom:[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_TOP],bottomRight:[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP]},t=0;t<I.length;t++){var M=document.createElement("option");M.setAttribute("value",I[t]);mxUtils.write(M,mxResources.get(I[t]));H.appendChild(M)}p.appendChild(H);I=e.cloneNode(!1);I.style.marginLeft="0px";I.style.paddingTop=
+"4px";I.style.paddingBottom="4px";I.style.fontWeight="normal";mxUtils.write(I,mxResources.get("writingDirection"));var P=document.createElement("select");P.style.position="absolute";P.style.right="20px";P.style.width="97px";P.style.marginTop="-2px";for(var M=["automatic","leftToRight","rightToLeft"],U={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},t=0;t<M.length;t++){var W=document.createElement("option");W.setAttribute("value",M[t]);mxUtils.write(W,
+mxResources.get(M[t]));P.appendChild(W)}I.appendChild(P);d.isEditing()||(a.appendChild(p),mxEvent.addListener(H,"change",function(b){d.getModel().beginUpdate();try{var a=J[H.value];null!=a&&(d.setCellStyles(mxConstants.STYLE_LABEL_POSITION,a[0],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,a[1],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_ALIGN,a[2],d.getSelectionCells()),d.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,a[3],d.getSelectionCells()))}finally{d.getModel().endUpdate()}mxEvent.consume(b)}),
+a.appendChild(I),mxEvent.addListener(P,"change",function(b){d.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,U[P.value],d.getSelectionCells());mxEvent.consume(b)}));var B=document.createElement("input");B.style.textAlign="right";B.style.marginTop="4px";mxClient.IS_QUIRKS||(B.style.position="absolute",B.style.right="32px");B.style.width="46px";B.style.height=mxClient.IS_QUIRKS?"21px":"17px";k.appendChild(B);var E=null,p=this.installInputHandler(B,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,
+1,999," pt",function(b){E=b;document.execCommand("fontSize",!1,"4");b=d.cellEditor.textarea.getElementsByTagName("font");for(var a=0;a<b.length;a++)if("4"==b[a].getAttribute("size")){b[a].removeAttribute("size");b[a].style.fontSize=E+"px";window.setTimeout(function(){B.value=E+" pt";E=null},0);break}},!0),p=this.createStepper(B,p,1,10,!0,Menus.prototype.defaultFontSize);p.style.display=B.style.display;p.style.marginTop="4px";mxClient.IS_QUIRKS||(p.style.right="20px");k.appendChild(p);k=l.getElementsByTagName("div")[0];
+k.style.cssFloat="right";var Q=null,O="#ffffff",N=null,V="#000000",K=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),function(){return O},function(b){document.execCommand("backcolor",!1,b!=mxConstants.NONE?b:"transparent")},"#ffffff",{install:function(b){Q=b},destroy:function(){Q=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"#ffffff");K.style.fontWeight="bold";var L=this.createCellColorOption(mxResources.get("borderColor"),
+mxConstants.STYLE_LABEL_BORDERCOLOR,"#000000");L.style.fontWeight="bold";k=d.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return V},function(b){document.execCommand("forecolor",!1,b!=mxConstants.NONE?b:"transparent")},"#000000",{install:function(b){N=b},destroy:function(){N=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"#000000",function(b){K.style.display=null==b||b==mxConstants.NONE?"none":"";L.style.display=
+K.style.display},function(b){null==b||b==mxConstants.NONE?d.setCellStyles(mxConstants.STYLE_NOLABEL,"1",d.getSelectionCells()):d.setCellStyles(mxConstants.STYLE_NOLABEL,null,d.getSelectionCells())});k.style.fontWeight="bold";g.appendChild(k);g.appendChild(K);d.cellEditor.isContentEditing()||g.appendChild(L);a.appendChild(g);g=this.createPanel();g.style.paddingTop="2px";g.style.paddingBottom="4px";k=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",
null,null,!0);k.style.fontWeight="bold";!b.containsLabel&&!b.autoSize&&0==b.edges.length&&g.appendChild(k);k=this.createCellOption(mxResources.get("formattedText"),"html","0",null,null,null,f.actions.get("formattedText"));k.style.fontWeight="bold";g.appendChild(k);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="28px";k.style.fontWeight="normal";p=document.createElement("div");p.style.position="absolute";p.style.width="70px";p.style.marginTop="0px";p.style.fontWeight="bold";mxUtils.write(p,
-mxResources.get("spacing"));k.appendChild(p);var R,X,da,ca,S,Z=this.addUnitInput(k,"pt",91,44,function(){R.apply(this,arguments)}),ba=this.addUnitInput(k,"pt",20,44,function(){X.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("top"),91);this.addLabel(k,mxResources.get("global"),20);mxUtils.br(k);mxUtils.br(k);var Y=this.addUnitInput(k,"pt",162,44,function(){da.apply(this,arguments)}),T=this.addUnitInput(k,"pt",91,44,function(){ca.apply(this,arguments)}),ia=this.addUnitInput(k,
-"pt",20,44,function(){S.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("left"),162);this.addLabel(k,mxResources.get("bottom"),91);this.addLabel(k,mxResources.get("right"),20);if(d.cellEditor.isContentEditing()){var ea=null,aa=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(b){var a=""==b.value?120:parseInt(b.value),a=Math.max(120,isNaN(a)?120:a);null!=ea&&(d.cellEditor.restoreSelection(ea),ea=null);for(var e=d.getSelectedElement();null!=
+mxResources.get("spacing"));k.appendChild(p);var R,X,da,ca,T,Z=this.addUnitInput(k,"pt",91,44,function(){R.apply(this,arguments)}),ba=this.addUnitInput(k,"pt",20,44,function(){X.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("top"),91);this.addLabel(k,mxResources.get("global"),20);mxUtils.br(k);mxUtils.br(k);var Y=this.addUnitInput(k,"pt",162,44,function(){da.apply(this,arguments)}),S=this.addUnitInput(k,"pt",91,44,function(){ca.apply(this,arguments)}),ia=this.addUnitInput(k,
+"pt",20,44,function(){T.apply(this,arguments)});mxUtils.br(k);this.addLabel(k,mxResources.get("left"),162);this.addLabel(k,mxResources.get("bottom"),91);this.addLabel(k,mxResources.get("right"),20);if(d.cellEditor.isContentEditing()){var ea=null,aa=null;a.appendChild(this.createRelativeOption(mxResources.get("lineheight"),null,null,function(b){var a=""==b.value?120:parseInt(b.value),a=Math.max(120,isNaN(a)?120:a);null!=ea&&(d.cellEditor.restoreSelection(ea),ea=null);for(var e=d.getSelectedElement();null!=
e&&e.nodeType!=mxConstants.NODETYPE_ELEMENT;)e=e.parentNode;null!=e&&e==d.cellEditor.textarea&&null!=d.cellEditor.textarea.firstChild&&("FONT"!=d.cellEditor.textarea.firstChild.nodeName&&(d.cellEditor.textarea.innerHTML="\x3cfont\x3e"+d.cellEditor.textarea.innerHTML+"\x3c/font\x3e"),e=d.cellEditor.textarea.firstChild);null!=e&&e!=d.cellEditor.textarea&&(e.style.lineHeight=a+"%");b.value=a+" %"},function(b){aa=b;mxEvent.addListener(b,"mousedown",function(){ea=d.cellEditor.saveSelection()});mxEvent.addListener(b,
"touchstart",function(){ea=d.cellEditor.saveSelection()});b.value="120 %"}));g=e.cloneNode(!1);g.style.paddingLeft="0px";k=this.editorUi.toolbar.addItems(["link","image"],g,!0);p=[this.editorUi.toolbar.addButton("geSprite-horizontalrule",mxResources.get("insertHorizontalRule"),function(){document.execCommand("inserthorizontalrule",!1,null)},g),this.editorUi.toolbar.addMenuFunctionInContainer(g,"geSprite-table",mxResources.get("table"),!1,mxUtils.bind(this,function(b){this.editorUi.menus.addInsertTableItem(b)}))];
-this.styleButtons(k);this.styleButtons(p);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("insert")));k.appendChild(g);a.appendChild(k);mxClient.IS_QUIRKS&&(k.style.height="70");k=e.cloneNode(!1);k.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=A&&d.selectNode(d.insertColumn(A,null!=D?D.cellIndex:0))}catch(b){alert(b)}},k),
-this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=A&&d.selectNode(d.insertColumn(A,null!=D?D.cellIndex+1:-1))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),function(){try{null!=A&&null!=D&&d.deleteColumn(A,D.cellIndex)}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=A&&null!=G&&
+this.styleButtons(k);this.styleButtons(p);k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";k.appendChild(this.createTitle(mxResources.get("insert")));k.appendChild(g);a.appendChild(k);mxClient.IS_QUIRKS&&(k.style.height="70");k=e.cloneNode(!1);k.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),function(){try{null!=A&&d.selectNode(d.insertColumn(A,null!=F?F.cellIndex:0))}catch(b){alert(b)}},k),
+this.editorUi.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),function(){try{null!=A&&d.selectNode(d.insertColumn(A,null!=F?F.cellIndex+1:-1))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),function(){try{null!=A&&null!=F&&d.deleteColumn(A,F.cellIndex)}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),function(){try{null!=A&&null!=G&&
d.selectNode(d.insertRow(A,G.sectionRowIndex))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),function(){try{null!=A&&null!=G&&d.selectNode(d.insertRow(A,G.sectionRowIndex+1))}catch(b){alert(b)}},k),this.editorUi.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),function(){try{null!=A&&null!=G&&d.deleteRow(A,G.sectionRowIndex)}catch(b){alert(b)}},k)];this.styleButtons(p);p[2].style.marginRight="9px";g=this.createPanel();
g.style.paddingTop="10px";g.style.paddingBottom="10px";g.appendChild(this.createTitle(mxResources.get("table")));g.appendChild(k);mxClient.IS_QUIRKS&&(mxUtils.br(a),g.style.height="70");e=e.cloneNode(!1);e.style.paddingLeft="0px";p=[this.editorUi.toolbar.addButton("geSprite-strokecolor",mxResources.get("borderColor"),mxUtils.bind(this,function(){if(null!=A){var b=A.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(b,a,d,e){return"#"+("0"+Number(a).toString(16)).substr(-2)+
("0"+Number(d).toString(16)).substr(-2)+("0"+Number(e).toString(16)).substr(-2)});this.editorUi.pickColor(b,function(b){null==b||b==mxConstants.NONE?(A.removeAttribute("border"),A.style.border="",A.style.borderCollapse=""):(A.setAttribute("border","1"),A.style.border="1px solid "+b,A.style.borderCollapse="collapse")})}}),e),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(){if(null!=A){var b=A.style.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,
function(b,a,d,e){return"#"+("0"+Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(e).toString(16)).substr(-2)});this.editorUi.pickColor(b,function(b){A.style.backgroundColor=null==b||b==mxConstants.NONE?"":b})}}),e),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=A){var b=A.getAttribute("cellPadding")||0,b=new FilenameDialog(f,b,mxResources.get("apply"),mxUtils.bind(this,function(b){null!=b&&0<b.length?A.setAttribute("cellPadding",
b):A.removeAttribute("cellPadding")}),mxResources.get("spacing"));f.showDialog(b.container,300,80,!0,!0);b.init()}},e),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=A&&A.setAttribute("align","left")},e),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=A&&A.setAttribute("align","center")},e),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=A&&A.setAttribute("align","right")},
-e)];this.styleButtons(p);p[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(g),mxUtils.br(g));g.appendChild(e);a.appendChild(g);E=g}else a.appendChild(g),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var fa=mxUtils.bind(this,function(a,d,e){b=this.format.getSelectionState();a=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0);c(m[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(m[1],(a&mxConstants.FONT_ITALIC)==
+e)];this.styleButtons(p);p[2].style.marginRight="9px";mxClient.IS_QUIRKS&&(mxUtils.br(g),mxUtils.br(g));g.appendChild(e);a.appendChild(g);C=g}else a.appendChild(g),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var fa=mxUtils.bind(this,function(a,d,e){b=this.format.getSelectionState();a=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0);c(m[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);c(m[1],(a&mxConstants.FONT_ITALIC)==
mxConstants.FONT_ITALIC);c(m[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);l.firstChild.nodeValue=mxUtils.htmlEntities(mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont));c(n,"0"==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,"1"));if(e||document.activeElement!=B)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),B.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);
-c(r,a==mxConstants.ALIGN_LEFT);c(s,a==mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(v,a==mxConstants.ALIGN_TOP);c(u,a==mxConstants.ALIGN_MIDDLE);c(z,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);d=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);H.value=a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_TOP?
+c(r,a==mxConstants.ALIGN_LEFT);c(s,a==mxConstants.ALIGN_CENTER);c(q,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);c(v,a==mxConstants.ALIGN_TOP);c(u,a==mxConstants.ALIGN_MIDDLE);c(y,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);d=mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);H.value=a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_TOP?
"topLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&d==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&d==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(b.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);
-a==mxConstants.TEXT_DIRECTION_RTL?O.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?O.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(O.value="automatic");if(e||document.activeElement!=ba)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING,2)),ba.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=Z)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_TOP,0)),Z.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ia)a=parseFloat(mxUtils.getValue(b.style,
-mxConstants.STYLE_SPACING_RIGHT,0)),ia.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=T)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_BOTTOM,0)),T.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=Y)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_LEFT,0)),Y.value=isNaN(a)?"":a+" pt"});X=this.installInputHandler(ba,mxConstants.STYLE_SPACING,2,-999,999," pt");R=this.installInputHandler(Z,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");S=this.installInputHandler(ia,
-mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ca=this.installInputHandler(T,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");da=this.installInputHandler(Y,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(B,fa);this.addKeyHandler(ba,fa);this.addKeyHandler(Z,fa);this.addKeyHandler(ia,fa);this.addKeyHandler(T,fa);this.addKeyHandler(Y,fa);d.getModel().addListener(mxEvent.CHANGE,fa);this.listeners.push({destroy:function(){d.getModel().removeListener(fa)}});fa();if(d.cellEditor.isContentEditing()){var ja=
+a==mxConstants.TEXT_DIRECTION_RTL?P.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?P.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(P.value="automatic");if(e||document.activeElement!=ba)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING,2)),ba.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=Z)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_TOP,0)),Z.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=ia)a=parseFloat(mxUtils.getValue(b.style,
+mxConstants.STYLE_SPACING_RIGHT,0)),ia.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=S)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_BOTTOM,0)),S.value=isNaN(a)?"":a+" pt";if(e||document.activeElement!=Y)a=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_SPACING_LEFT,0)),Y.value=isNaN(a)?"":a+" pt"});X=this.installInputHandler(ba,mxConstants.STYLE_SPACING,2,-999,999," pt");R=this.installInputHandler(Z,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");T=this.installInputHandler(ia,
+mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ca=this.installInputHandler(S,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");da=this.installInputHandler(Y,mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(B,fa);this.addKeyHandler(ba,fa);this.addKeyHandler(Z,fa);this.addKeyHandler(ia,fa);this.addKeyHandler(S,fa);this.addKeyHandler(Y,fa);d.getModel().addListener(mxEvent.CHANGE,fa);this.listeners.push({destroy:function(){d.getModel().removeListener(fa)}});fa();if(d.cellEditor.isContentEditing()){var ja=
!1,e=function(){ja||(ja=!0,window.setTimeout(function(){for(var b=d.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;if(null!=b){var a=mxUtils.getCurrentStyle(b);if(null!=a){c(m[0],"bold"==a.fontWeight||null!=d.getParentByName(b,"B",d.cellEditor.textarea));c(m[1],"italic"==a.fontStyle||null!=d.getParentByName(b,"I",d.cellEditor.textarea));c(m[2],null!=d.getParentByName(b,"U",d.cellEditor.textarea));c(r,"left"==a.textAlign);c(s,"center"==a.textAlign);c(q,"right"==
-a.textAlign);c(F,"justify"==a.textAlign);c(x,null!=d.getParentByName(b,"SUP",d.cellEditor.textarea));c(y,null!=d.getParentByName(b,"SUB",d.cellEditor.textarea));A=d.getParentByName(b,"TABLE",d.cellEditor.textarea);G=null==A?null:d.getParentByName(b,"TR",A);D=null==A?null:d.getParentByName(b,"TD",A);E.style.display=null!=A?"":"none";if(document.activeElement!=B){"FONT"==b.nodeName&&"4"==b.getAttribute("size")&&null!=C?(b.removeAttribute("size"),b.style.fontSize=C+"px",C=null):B.value=parseFloat(a.fontSize)+
+a.textAlign);c(D,"justify"==a.textAlign);c(x,null!=d.getParentByName(b,"SUP",d.cellEditor.textarea));c(z,null!=d.getParentByName(b,"SUB",d.cellEditor.textarea));A=d.getParentByName(b,"TABLE",d.cellEditor.textarea);G=null==A?null:d.getParentByName(b,"TR",A);F=null==A?null:d.getParentByName(b,"TD",A);C.style.display=null!=A?"":"none";if(document.activeElement!=B){"FONT"==b.nodeName&&"4"==b.getAttribute("size")&&null!=E?(b.removeAttribute("size"),b.style.fontSize=E+"px",E=null):B.value=parseFloat(a.fontSize)+
" pt";var b=b.style.lineHeight||a.lineHeight,e=parseFloat(b);"px"==b.substring(b.length-2)&&(e/=parseFloat(a.fontSize));"%"!=b.substring(b.length-1)&&(e*=100);aa.value=e+" %"}b=a.color.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(b,a,d,e){return"#"+("0"+Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(e).toString(16)).substr(-2)});e=a.backgroundColor.replace(/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,function(b,a,d,e){return"#"+
-("0"+Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(e).toString(16)).substr(-2)});null!=N&&(V="#"==b.charAt(0)?b:"#000000",N(V,!0));null!=Q&&(P="#"==e.charAt(0)?e:null,Q(P,!0));null!=l.firstChild&&(a=a.fontFamily,"'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),l.firstChild.nodeValue=a)}}ja=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",e);mxEvent.addListener(d.cellEditor.textarea,"touchend",e);mxEvent.addListener(d.cellEditor.textarea,
+("0"+Number(a).toString(16)).substr(-2)+("0"+Number(d).toString(16)).substr(-2)+("0"+Number(e).toString(16)).substr(-2)});null!=N&&(V="#"==b.charAt(0)?b:"#000000",N(V,!0));null!=Q&&(O="#"==e.charAt(0)?e:null,Q(O,!0));null!=l.firstChild&&(a=a.fontFamily,"'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),l.firstChild.nodeValue=a)}}ja=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",e);mxEvent.addListener(d.cellEditor.textarea,"touchend",e);mxEvent.addListener(d.cellEditor.textarea,
"mouseup",e);mxEvent.addListener(d.cellEditor.textarea,"keyup",e);this.listeners.push({destroy:function(){}});e()}return a};StyleFormatPanel=function(a,c,f){BaseFormatPanel.call(this,a,c,f);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);
StyleFormatPanel.prototype.init=function(){var a=this.format.getSelectionState();(!a.containsImage||"image"==a.style.shape)&&this.container.appendChild(this.addFill(this.createPanel()));this.container.appendChild(this.addStroke(this.createPanel()));a=this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_OPACITY,41);a.style.paddingTop="8px";a.style.paddingBottom="8px";this.container.appendChild(a);this.container.appendChild(this.addEffects(this.createPanel()));a=this.addEditOps(this.createPanel());
null!=a.firstChild&&mxUtils.br(a);this.container.appendChild(this.addStyleOps(a))};
@@ -2935,12 +2935,12 @@ mxResources.get("connection"),!1,mxUtils.bind(this,function(b){this.editorUi.men
mxResources.get("link"));this.editorUi.menus.styleChange(b,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["flexArrow",null,null,null],"geIcon geSprite geSprite-arrow",null,!0).setAttribute("title",mxResources.get("arrow"));this.editorUi.menus.styleChange(b,"",[mxConstants.STYLE_SHAPE,mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE,"width"],["arrow",null,null,null],"geIcon geSprite geSprite-simplearrow",null,!0).setAttribute("title",mxResources.get("simpleArrow"))})),
n=this.editorUi.toolbar.addMenuFunctionInContainer(q,"geSprite-orthogonal",mxResources.get("pattern"),!1,mxUtils.bind(this,function(b){s(b,33,"solid",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],[null,null]).setAttribute("title",mxResources.get("solid"));s(b,33,"dashed",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1",null]).setAttribute("title",mxResources.get("dashed"));s(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 1"]).setAttribute("title",
mxResources.get("dotted")+" (1)");s(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 2"]).setAttribute("title",mxResources.get("dotted")+" (2)");s(b,33,"dotted",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],["1","1 4"]).setAttribute("title",mxResources.get("dotted")+" (3)")})),l=r.cloneNode(!1),v=document.createElement("input");v.style.textAlign="right";v.style.marginTop="2px";v.style.width="41px";v.setAttribute("title",mxResources.get("linewidth"));r.appendChild(v);
-var u=v.cloneNode(!0);q.appendChild(u);var z=this.createStepper(v,c,1,9);z.style.display=v.style.display;z.style.marginTop="2px";r.appendChild(z);var y=this.createStepper(u,f,1,9);y.style.display=u.style.display;y.style.marginTop="2px";q.appendChild(y);mxClient.IS_QUIRKS?(v.style.height="17px",u.style.height="17px"):(v.style.position="absolute",v.style.right="32px",v.style.height="15px",z.style.right="20px",u.style.position="absolute",u.style.right="32px",u.style.height="15px",y.style.right="20px");
+var u=v.cloneNode(!0);q.appendChild(u);var y=this.createStepper(v,c,1,9);y.style.display=v.style.display;y.style.marginTop="2px";r.appendChild(y);var z=this.createStepper(u,f,1,9);z.style.display=u.style.display;z.style.marginTop="2px";q.appendChild(z);mxClient.IS_QUIRKS?(v.style.height="17px",u.style.height="17px"):(v.style.position="absolute",v.style.right="32px",v.style.height="15px",y.style.right="20px",u.style.position="absolute",u.style.right="32px",u.style.height="15px",z.style.right="20px");
mxEvent.addListener(v,"blur",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(u,"blur",f);mxEvent.addListener(u,"change",f);mxClient.IS_QUIRKS&&(mxUtils.br(l),mxUtils.br(l));var x=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,function(b){"arrow"!=e.style.shape&&(this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",
null,!0).setAttribute("title",mxResources.get("straight")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle",null,null],"geIcon geSprite geSprite-orthogonal",null,!0).setAttribute("title",mxResources.get("orthogonal")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle",null,null,null],"geIcon geSprite geSprite-horizontalelbow",
null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["elbowEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalelbow",null,!0).setAttribute("title",mxResources.get("simple")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle",
null,null,null],"geIcon geSprite geSprite-horizontalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["isometricEdgeStyle","vertical",null,null],"geIcon geSprite geSprite-verticalisometric",null,!0).setAttribute("title",mxResources.get("isometric")),"connector"==e.style.shape&&this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,
-mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),F=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-startclassic",
+mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["orthogonalEdgeStyle","1",null],"geIcon geSprite geSprite-curved",null,!0).setAttribute("title",mxResources.get("curved")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],["entityRelationEdgeStyle",null,null],"geIcon geSprite geSprite-entity",null,!0).setAttribute("title",mxResources.get("entityRelation")))})),D=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-startclassic",
mxResources.get("linestart"),!1,mxUtils.bind(this,function(b){if("connector"==e.style.shape||"flexArrow"==e.style.shape)this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.NONE,0],"geIcon geSprite geSprite-noarrow",null,!1).setAttribute("title",mxResources.get("none")),"connector"==e.style.shape?(this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC,1],"geIcon geSprite geSprite-startclassic",null,
!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-startclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-startopen",null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,
"startFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-startopenthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["openAsync",0],"geIcon geSprite geSprite-startopenasync",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-startblock",null,!1).setAttribute("title",mxResources.get("block")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,
@@ -2952,7 +2952,7 @@ null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.ed
null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["cross",0],"geIcon geSprite geSprite-startcross",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["circlePlus",0],"geIcon geSprite geSprite-startcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["circle",1],"geIcon geSprite geSprite-startcircle",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,
"startFill"],["ERone",0],"geIcon geSprite geSprite-starterone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmandOne",0],"geIcon geSprite geSprite-starteronetoone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERmany",0],"geIcon geSprite geSprite-startermany",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERoneToMany",0],"geIcon geSprite geSprite-starteronetomany",
null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-starteroneopt",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW,"startFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-startermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-startblocktrans",null,!1).setAttribute("title",mxResources.get("block"))})),
-E=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(b){if("connector"==e.style.shape||"flexArrow"==e.style.shape)this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon geSprite geSprite-noarrow",null,!1).setAttribute("title",mxResources.get("none")),"connector"==e.style.shape?(this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC,
+C=this.editorUi.toolbar.addMenuFunctionInContainer(l,"geSprite-endclassic",mxResources.get("lineend"),!1,mxUtils.bind(this,function(b){if("connector"==e.style.shape||"flexArrow"==e.style.shape)this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.NONE,0],"geIcon geSprite geSprite-noarrow",null,!1).setAttribute("title",mxResources.get("none")),"connector"==e.style.shape?(this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC,
1],"geIcon geSprite geSprite-endclassic",null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_CLASSIC_THIN,1],"geIcon geSprite geSprite-endclassicthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN,0],"geIcon geSprite geSprite-endopen",null,!1).setAttribute("title",mxResources.get("openArrow")),this.editorUi.menus.edgeStyleChange(b,
"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OPEN_THIN,0],"geIcon geSprite geSprite-endopenthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["openAsync",0],"geIcon geSprite geSprite-endopenasync",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK,1],"geIcon geSprite geSprite-endblock",null,!1).setAttribute("title",mxResources.get("block")),this.editorUi.menus.edgeStyleChange(b,
"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_BLOCK_THIN,1],"geIcon geSprite geSprite-endblockthin",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["async",1],"geIcon geSprite geSprite-endasync",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_OVAL,1],"geIcon geSprite geSprite-endoval",null,!1).setAttribute("title",mxResources.get("oval")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,
@@ -2962,20 +2962,20 @@ null,!1).setAttribute("title",mxResources.get("classic")),this.editorUi.menus.ed
"endFill"],[mxConstants.ARROW_DIAMOND,0],"geIcon geSprite geSprite-enddiamondtrans",null,!1).setAttribute("title",mxResources.get("diamond")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],[mxConstants.ARROW_DIAMOND_THIN,0],"geIcon geSprite geSprite-endthindiamondtrans",null,!1).setAttribute("title",mxResources.get("diamondThin")),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["dash",0],"geIcon geSprite geSprite-enddash",null,!1),
this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["cross",0],"geIcon geSprite geSprite-endcross",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circlePlus",0],"geIcon geSprite geSprite-endcircleplus",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["circle",1],"geIcon geSprite geSprite-endcircle",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],
["ERone",0],"geIcon geSprite geSprite-enderone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmandOne",0],"geIcon geSprite geSprite-enderonetoone",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],"geIcon geSprite geSprite-endermany",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],"geIcon geSprite geSprite-enderonetomany",null,!1),this.editorUi.menus.edgeStyleChange(b,
-"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}));this.addArrow(t,8);this.addArrow(x);this.addArrow(F);
-this.addArrow(E);z=this.addArrow(m,9);z.className="geIcon";z.style.width="84px";y=this.addArrow(n,9);y.className="geIcon";y.style.width="22px";var A=document.createElement("div");A.style.width="85px";A.style.height="1px";A.style.borderBottom="1px solid black";A.style.marginBottom="9px";z.appendChild(A);var D=document.createElement("div");D.style.width="23px";D.style.height="1px";D.style.borderBottom="1px solid black";D.style.marginBottom="9px";y.appendChild(D);m.style.height="15px";n.style.height=
-"15px";t.style.height="15px";x.style.height="17px";F.style.marginLeft="3px";F.style.height="17px";E.style.marginLeft="3px";E.style.height="17px";a.appendChild(g);a.appendChild(q);a.appendChild(r);m=r.cloneNode(!1);m.style.paddingBottom="6px";m.style.paddingTop="4px";m.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.marginLeft="3px";n.style.marginBottom="12px";n.style.marginTop="2px";n.style.fontWeight="normal";n.style.width="76px";mxUtils.write(n,mxResources.get("lineend"));
-m.appendChild(n);var G,H,I=this.addUnitInput(m,"pt",74,33,function(){G.apply(this,arguments)}),J=this.addUnitInput(m,"pt",20,33,function(){H.apply(this,arguments)});mxUtils.br(m);z=document.createElement("div");z.style.height="8px";m.appendChild(z);n=n.cloneNode(!1);mxUtils.write(n,mxResources.get("linestart"));m.appendChild(n);var K,O,U=this.addUnitInput(m,"pt",74,33,function(){K.apply(this,arguments)}),W=this.addUnitInput(m,"pt",20,33,function(){O.apply(this,arguments)});mxUtils.br(m);this.addLabel(m,
+"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",1],"geIcon geSprite geSprite-enderoneopt",null,!1),this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",1],"geIcon geSprite geSprite-endermanyopt",null,!1)):this.editorUi.menus.edgeStyleChange(b,"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"))}));this.addArrow(t,8);this.addArrow(x);this.addArrow(D);
+this.addArrow(C);y=this.addArrow(m,9);y.className="geIcon";y.style.width="84px";z=this.addArrow(n,9);z.className="geIcon";z.style.width="22px";var A=document.createElement("div");A.style.width="85px";A.style.height="1px";A.style.borderBottom="1px solid black";A.style.marginBottom="9px";y.appendChild(A);var F=document.createElement("div");F.style.width="23px";F.style.height="1px";F.style.borderBottom="1px solid black";F.style.marginBottom="9px";z.appendChild(F);m.style.height="15px";n.style.height=
+"15px";t.style.height="15px";x.style.height="17px";D.style.marginLeft="3px";D.style.height="17px";C.style.marginLeft="3px";C.style.height="17px";a.appendChild(g);a.appendChild(q);a.appendChild(r);m=r.cloneNode(!1);m.style.paddingBottom="6px";m.style.paddingTop="4px";m.style.fontWeight="normal";n=document.createElement("div");n.style.position="absolute";n.style.marginLeft="3px";n.style.marginBottom="12px";n.style.marginTop="2px";n.style.fontWeight="normal";n.style.width="76px";mxUtils.write(n,mxResources.get("lineend"));
+m.appendChild(n);var G,H,I=this.addUnitInput(m,"pt",74,33,function(){G.apply(this,arguments)}),J=this.addUnitInput(m,"pt",20,33,function(){H.apply(this,arguments)});mxUtils.br(m);y=document.createElement("div");y.style.height="8px";m.appendChild(y);n=n.cloneNode(!1);mxUtils.write(n,mxResources.get("linestart"));m.appendChild(n);var M,P,U=this.addUnitInput(m,"pt",74,33,function(){M.apply(this,arguments)}),W=this.addUnitInput(m,"pt",20,33,function(){P.apply(this,arguments)});mxUtils.br(m);this.addLabel(m,
mxResources.get("spacing"),74,50);this.addLabel(m,mxResources.get("size"),20,50);mxUtils.br(m);g=g.cloneNode(!1);g.style.fontWeight="normal";g.style.position="relative";g.style.paddingLeft="16px";g.style.marginBottom="2px";g.style.marginTop="6px";g.style.borderWidth="0px";g.style.paddingBottom="18px";n=document.createElement("div");n.style.position="absolute";n.style.marginLeft="3px";n.style.marginBottom="12px";n.style.marginTop="1px";n.style.fontWeight="normal";n.style.width="120px";mxUtils.write(n,
-mxResources.get("perimeter"));g.appendChild(n);var B,C=this.addUnitInput(g,"pt",20,41,function(){B.apply(this,arguments)});e.edges.length==b.getSelectionCount()?(a.appendChild(l),mxClient.IS_QUIRKS&&(mxUtils.br(a),mxUtils.br(a)),a.appendChild(m)):e.vertices.length==b.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(g));var Q=mxUtils.bind(this,function(a,c,f){function g(b,a,c,f){c=c.getElementsByTagName("div")[0];c.className=d.getCssClassForMarker(f,e.style.shape,b,a);return c}
+mxResources.get("perimeter"));g.appendChild(n);var B,E=this.addUnitInput(g,"pt",20,41,function(){B.apply(this,arguments)});e.edges.length==b.getSelectionCount()?(a.appendChild(l),mxClient.IS_QUIRKS&&(mxUtils.br(a),mxUtils.br(a)),a.appendChild(m)):e.vertices.length==b.getSelectionCount()&&(mxClient.IS_QUIRKS&&mxUtils.br(a),a.appendChild(g));var Q=mxUtils.bind(this,function(a,c,f){function g(b,a,c,f){c=c.getElementsByTagName("div")[0];c.className=d.getCssClassForMarker(f,e.style.shape,b,a);return c}
e=this.format.getSelectionState();mxUtils.getValue(e.style,p,null);if(f||document.activeElement!=v)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),v.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=u)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STROKEWIDTH,1)),u.value=isNaN(a)?"":a+" pt";k.style.visibility="connector"==e.style.shape?"":"hidden";"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?k.value="curved":"1"==mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,
-null)&&(k.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?A.style.borderBottom="1px dashed black":A.style.borderBottom="1px dotted black":A.style.borderBottom="1px solid black";D.style.borderBottom=A.style.borderBottom;a=x.getElementsByTagName("div")[0];c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==
+null)&&(k.value="rounded");"1"==mxUtils.getValue(e.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(e.style,mxConstants.STYLE_DASH_PATTERN,null)?A.style.borderBottom="1px dashed black":A.style.borderBottom="1px dotted black":A.style.borderBottom="1px solid black";F.style.borderBottom=A.style.borderBottom;a=x.getElementsByTagName("div")[0];c=mxUtils.getValue(e.style,mxConstants.STYLE_EDGE,null);"1"==mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null);"orthogonalEdgeStyle"==
c&&"1"==mxUtils.getValue(e.style,mxConstants.STYLE_CURVED,null)?a.className="geSprite geSprite-curved":a.className="straight"==c||"none"==c||null==c?"geSprite geSprite-straight":"entityRelationEdgeStyle"==c?"geSprite geSprite-entity":"elbowEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalelbow":"geSprite-horizontalelbow"):"isometricEdgeStyle"==c?"geSprite "+("vertical"==mxUtils.getValue(e.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":
"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal";t.getElementsByTagName("div")[0].className="link"==e.style.shape?"geSprite geSprite-linkedge":"flexArrow"==e.style.shape?"geSprite geSprite-arrow":"arrow"==e.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection";e.edges.length==b.getSelectionCount()?(q.style.display="",r.style.display="none"):(q.style.display="none",r.style.display="");a=g(mxUtils.getValue(e.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(e.style,
-"startFill","1"),F,"start");c=g(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),E,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape?(mxUtils.setOpacity(F,30),mxUtils.setOpacity(E,
-30)):(mxUtils.setOpacity(F,100),mxUtils.setOpacity(E,100));if(f||document.activeElement!=W)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),W.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=U)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),U.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=J)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),J.value=isNaN(a)?
-"":a+" pt";if(f||document.activeElement!=U)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),I.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=C)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),C.value=isNaN(a)?"":a+" pt"});O=this.installInputHandler(W,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");K=this.installInputHandler(U,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");H=this.installInputHandler(J,
-mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");G=this.installInputHandler(I,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");B=this.installInputHandler(C,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(v,Q);this.addKeyHandler(W,Q);this.addKeyHandler(U,Q);this.addKeyHandler(J,Q);this.addKeyHandler(I,Q);this.addKeyHandler(C,Q);b.getModel().addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){b.getModel().removeListener(Q)}});
+"startFill","1"),D,"start");c=g(mxUtils.getValue(e.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(e.style,"endFill","1"),C,"end");"arrow"==e.style.shape?(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==e.style.shape&&(a.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow");mxUtils.setOpacity(x,"arrow"==e.style.shape?30:100);"connector"!=e.style.shape&&"flexArrow"!=e.style.shape?(mxUtils.setOpacity(D,30),mxUtils.setOpacity(C,
+30)):(mxUtils.setOpacity(D,100),mxUtils.setOpacity(C,100));if(f||document.activeElement!=W)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),W.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=U)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),U.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=J)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),J.value=isNaN(a)?
+"":a+" pt";if(f||document.activeElement!=U)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),I.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=E)a=parseInt(mxUtils.getValue(e.style,mxConstants.STYLE_PERIMETER_SPACING,0)),E.value=isNaN(a)?"":a+" pt"});P=this.installInputHandler(W,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");M=this.installInputHandler(U,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");H=this.installInputHandler(J,
+mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");G=this.installInputHandler(I,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");B=this.installInputHandler(E,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(v,Q);this.addKeyHandler(W,Q);this.addKeyHandler(U,Q);this.addKeyHandler(J,Q);this.addKeyHandler(I,Q);this.addKeyHandler(E,Q);b.getModel().addListener(mxEvent.CHANGE,Q);this.listeners.push({destroy:function(){b.getModel().removeListener(Q)}});
Q();return a};
StyleFormatPanel.prototype.addEffects=function(a){var c=this.editorUi.editor.graph,f=this.format.getSelectionState();a.style.paddingTop="0px";a.style.paddingBottom="2px";var d=document.createElement("table");mxClient.IS_QUIRKS&&(d.style.fontSize="1em");d.style.width="100%";d.style.fontWeight="bold";d.style.paddingRight="20px";var b=document.createElement("tbody"),e=document.createElement("tr");e.style.padding="0px";var g=document.createElement("td");g.style.padding="0px";g.style.width="50%";g.setAttribute("valign",
"top");var k=g.cloneNode(!0);k.style.paddingLeft="8px";e.appendChild(g);e.appendChild(k);b.appendChild(e);d.appendChild(b);a.appendChild(d);var l=g,m=0,n=mxUtils.bind(this,function(b,a,d){b=this.createCellOption(b,a,d);b.style.width="100%";l.appendChild(b);l=l==g?k:g;m++}),p=mxUtils.bind(this,function(b,d,e){f=this.format.getSelectionState();g.innerHTML="";k.innerHTML="";l=g;f.rounded&&n(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==f.style.shape&&n(mxResources.get("divider"),
@@ -3050,9 +3050,9 @@ Dialog.prototype.lockedImage=!mxClient.IS_SVG?IMAGE_PATH+"/locked.png":"data:ima
Dialog.prototype.unlockedImage=!mxClient.IS_SVG?IMAGE_PATH+"/unlocked.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg\x3d\x3d";
Dialog.prototype.bgOpacity=80;Dialog.prototype.close=function(a){null!=this.onDialogClose&&(this.onDialogClose(a),this.onDialogClose=null);null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);this.container.parentNode.removeChild(this.container)};
var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.frameBorder="0";var c=mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)?20:0;a.setAttribute("width",(Editor.useLocalStorage?640:320)+c+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+c+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=
-function(a,c,f,d){function b(){var b=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);b.style.marginBottom="8px";return b}function e(a,d,e,c){d=null!=d?d:12;var f=document.createElement("table");f.style.borderCollapse="collapse";f.setAttribute("cellspacing","0");f.style.marginBottom="20px";f.style.cellSpacing="0px";var l=document.createElement("tbody");f.appendChild(l);for(var n=a.length/d,r=0;r<n;r++){for(var p=document.createElement("tr"),E=0;E<d;E++)(function(b){var a=
-document.createElement("td");a.style.border="1px solid black";a.style.padding="0px";a.style.width="16px";a.style.height="16px";null==b&&(b=e);"none"==b?a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor="#"+b;p.appendChild(a);null!=b&&(a.style.cursor="pointer",mxEvent.addListener(a,"click",function(){"none"==b?(k.fromString("ffffff"),g.value="none"):k.fromString(b)}))})(a[r*d+E]);l.appendChild(p)}c&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
-a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",p.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();f.parentNode.replaceChild(b(),f)}));m.appendChild(f);return f}this.editorUi=a;var g=document.createElement("input");g.style.marginBottom="10px";
+function(a,c,f,d){function b(){var b=e(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);b.style.marginBottom="8px";return b}function e(a,d,e,c){d=null!=d?d:12;var f=document.createElement("table");f.style.borderCollapse="collapse";f.setAttribute("cellspacing","0");f.style.marginBottom="20px";f.style.cellSpacing="0px";var l=document.createElement("tbody");f.appendChild(l);for(var n=a.length/d,p=0;p<n;p++){for(var r=document.createElement("tr"),C=0;C<d;C++)(function(b){var a=
+document.createElement("td");a.style.border="1px solid black";a.style.padding="0px";a.style.width="16px";a.style.height="16px";null==b&&(b=e);"none"==b?a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor="#"+b;r.appendChild(a);null!=b&&(a.style.cursor="pointer",mxEvent.addListener(a,"click",function(){"none"==b?(k.fromString("ffffff"),g.value="none"):k.fromString(b)}))})(a[p*d+C]);l.appendChild(r)}c&&(a=document.createElement("td"),a.setAttribute("title",mxResources.get("reset")),
+a.style.border="1px solid black",a.style.padding="0px",a.style.width="16px",a.style.height="16px",a.style.backgroundImage="url('"+Dialog.prototype.closeImage+"')",a.style.backgroundPosition="center center",a.style.backgroundRepeat="no-repeat",a.style.cursor="pointer",r.appendChild(a),mxEvent.addListener(a,"click",function(){ColorDialog.resetRecentColors();f.parentNode.replaceChild(b(),f)}));m.appendChild(f);return f}this.editorUi=a;var g=document.createElement("input");g.style.marginBottom="10px";
g.style.width="216px";mxClient.IS_IE&&(g.style.marginTop="10px",document.body.appendChild(g));this.init=function(){mxClient.IS_TOUCH||g.focus()};var k=new jscolor.color(g);k.pickerOnfocus=!1;k.showPicker();var l=document.createElement("div");jscolor.picker.box.style.position="relative";jscolor.picker.box.style.width="230px";jscolor.picker.box.style.height="100px";jscolor.picker.box.style.paddingBottom="10px";l.appendChild(jscolor.picker.box);var m=document.createElement("center");l.appendChild(g);
mxUtils.br(l);b();var n=e("E6D0DE CDA2BE B5739D E1D5E7 C3ABD0 A680B8 D4E1F5 A9C4EB 7EA6E0 D5E8D4 9AC7BF 67AB9F D5E8D4 B9E0A5 97D077 FFF2CC FFE599 FFD966 FFF4C3 FFCE9F FFB570 F8CECC F19C99 EA6B66".split(" "),12);n.style.marginBottom="8px";n=e("none FFFFFF E6E6E6 CCCCCC B3B3B3 999999 808080 666666 4D4D4D 333333 1A1A1A 000000 FFCCCC FFE6CC FFFFCC E6FFCC CCFFCC CCFFE6 CCFFFF CCE5FF CCCCFF E5CCFF FFCCFF FFCCE6 FF9999 FFCC99 FFFF99 CCFF99 99FF99 99FFCC 99FFFF 99CCFF 9999FF CC99FF FF99FF FF99CC FF6666 FFB366 FFFF66 B3FF66 66FF66 66FFB3 66FFFF 66B2FF 6666FF B266FF FF66FF FF66B3 FF3333 FF9933 FFFF33 99FF33 33FF33 33FF99 33FFFF 3399FF 3333FF 9933FF FF33FF FF3399 FF0000 FF8000 FFFF00 80FF00 00FF00 00FF80 00FFFF 007FFF 0000FF 7F00FF FF00FF FF0080 CC0000 CC6600 CCCC00 66CC00 00CC00 00CC66 00CCCC 0066CC 0000CC 6600CC CC00CC CC0066 990000 994C00 999900 4D9900 009900 00994D 009999 004C99 000099 4C0099 990099 99004D 660000 663300 666600 336600 006600 006633 006666 003366 000066 330066 660066 660033 330000 331A00 333300 1A3300 003300 00331A 003333 001933 000033 190033 330033 33001A".split(" "));
n.style.marginBottom="16px";l.appendChild(m);n=document.createElement("div");n.style.textAlign="right";n.style.whiteSpace="nowrap";var p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});p.className="geBtn";a.editor.cancelFirst&&n.appendChild(p);var r=null!=f?f:this.createApplyFunction();f=mxUtils.button(mxResources.get("apply"),function(){var b=g.value;ColorDialog.addRecentColor(b,12);"none"!=b&&"#"!=b.charAt(0)&&(b="#"+b);r(b);a.hideDialog()});f.className="geBtn gePrimaryBtn";
@@ -3067,13 +3067,13 @@ m.style.height="18px";m.style.marginRight="20px";m.style.backgroundPosition="cen
mxEvent.addListener(p,"change",function(){var b=parseInt(p.value);p.value=Math.max(1,isNaN(b)?d.getGridSize():b)});b.appendChild(e);k.appendChild(b);b=document.createElement("tr");e=document.createElement("td");mxUtils.write(e,mxResources.get("image")+":");b.appendChild(e);e=document.createElement("td");var r=document.createElement("a");r.style.textDecoration="underline";r.style.cursor="pointer";r.style.color="#a0a0a0";var s=d.backgroundImage;mxEvent.addListener(r,"click",function(b){a.showBackgroundImageDialog(function(b){s=
b;f()});mxEvent.consume(b)});f();e.appendChild(r);b.appendChild(e);k.appendChild(b);b=document.createElement("tr");e=document.createElement("td");e.colSpan=2;e.style.paddingTop="16px";e.setAttribute("align","right");var q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});q.className="geBtn";a.editor.cancelFirst&&e.appendChild(q);var t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();a.setPageFormat(l.get());d.background!=n&&a.setBackgroundColor(n);d.backgroundImage!==
s&&a.setBackgroundImage(s);d.gridSize!==p.value&&d.setGridSize(parseInt(p.value))});t.className="geBtn gePrimaryBtn";e.appendChild(t);a.editor.cancelFirst||e.appendChild(q);b.appendChild(e);k.appendChild(b);g.appendChild(k);this.container=g};
-PageSetupDialog.addPageFormatPanel=function(a,c,f,d){function b(b,a,d){if(d||p!=document.activeElement&&r!=document.activeElement){b=!1;for(a=0;a<q.length;a++)d=q[a],z?"custom"==d.key&&(k.value=d.key,z=!1):null!=d.format&&(f.width==d.format.width&&f.height==d.format.height?(k.value=d.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,g.removeAttribute("checked"),g.defaultChecked=!1,g.checked=!1,b=!0):f.width==d.format.height&&f.height==d.format.width&&(k.value=d.key,e.removeAttribute("checked"),
+PageSetupDialog.addPageFormatPanel=function(a,c,f,d){function b(b,a,d){if(d||p!=document.activeElement&&r!=document.activeElement){b=!1;for(a=0;a<q.length;a++)d=q[a],y?"custom"==d.key&&(k.value=d.key,y=!1):null!=d.format&&(f.width==d.format.width&&f.height==d.format.height?(k.value=d.key,e.setAttribute("checked","checked"),e.defaultChecked=!0,e.checked=!0,g.removeAttribute("checked"),g.defaultChecked=!1,g.checked=!1,b=!0):f.width==d.format.height&&f.height==d.format.width&&(k.value=d.key,e.removeAttribute("checked"),
e.defaultChecked=!1,e.checked=!1,g.setAttribute("checked","checked"),g.defaultChecked=!0,b=g.checked=!0));b?(l.style.display="",n.style.display="none"):(p.value=f.width,r.value=f.height,u.setAttribute("selected","selected"),e.setAttribute("checked","checked"),e.defaultChecked=!0,l.style.display="none",n.style.display="")}}c="format-"+c;var e=document.createElement("input");e.setAttribute("name",c);e.setAttribute("type","radio");e.setAttribute("value","portrait");var g=document.createElement("input");
g.setAttribute("name",c);g.setAttribute("type","radio");g.setAttribute("value","landscape");var k=document.createElement("select");k.style.marginBottom="8px";k.style.width="202px";var l=document.createElement("div");l.style.marginLeft="4px";l.style.width="210px";l.style.height="24px";e.style.marginRight="6px";l.appendChild(e);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));l.appendChild(c);g.style.marginLeft="10px";g.style.marginRight="6px";l.appendChild(g);
var m=document.createElement("span");m.style.width="100px";mxUtils.write(m,mxResources.get("landscape"));l.appendChild(m);var n=document.createElement("div");n.style.marginLeft="4px";n.style.width="210px";n.style.height="24px";var p=document.createElement("input");p.setAttribute("size","6");p.setAttribute("value",f.width);n.appendChild(p);mxUtils.write(n," x ");var r=document.createElement("input");r.setAttribute("size","6");r.setAttribute("value",f.height);n.appendChild(r);mxUtils.write(n," pt");
-l.style.display="none";n.style.display="none";for(var s={},q=PageSetupDialog.getFormats(),t=0;t<q.length;t++){var v=q[t];s[v.key]=v;var u=document.createElement("option");u.setAttribute("value",v.key);mxUtils.write(u,v.title);k.appendChild(u)}var z=!1;b();a.appendChild(k);mxUtils.br(a);a.appendChild(l);a.appendChild(n);var y=f,x=function(){var b=s[k.value];null!=b.format?(p.value=b.format.width,r.value=b.format.height,n.style.display="none",l.style.display=""):(l.style.display="none",n.style.display=
-"");b=new mxRectangle(0,0,parseInt(p.value),parseInt(r.value));"custom"!=k.value&&g.checked&&(b=new mxRectangle(0,0,b.height,b.width));if(b.width!=y.width||b.height!=y.height)y=b,null!=d&&d(y)};mxEvent.addListener(c,"click",function(b){e.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(m,"click",function(b){g.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(r,"blur",x);mxEvent.addListener(r,"click",x);mxEvent.addListener(g,
-"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(k,"change",function(){z="custom"==k.value;x()});x();return{set:function(a){f=a;b(null,null,!0)},get:function(){return y},widthInput:p,heightInput:r}};
+l.style.display="none";n.style.display="none";for(var s={},q=PageSetupDialog.getFormats(),t=0;t<q.length;t++){var v=q[t];s[v.key]=v;var u=document.createElement("option");u.setAttribute("value",v.key);mxUtils.write(u,v.title);k.appendChild(u)}var y=!1;b();a.appendChild(k);mxUtils.br(a);a.appendChild(l);a.appendChild(n);var z=f,x=function(){var b=s[k.value];null!=b.format?(p.value=b.format.width,r.value=b.format.height,n.style.display="none",l.style.display=""):(l.style.display="none",n.style.display=
+"");b=new mxRectangle(0,0,parseInt(p.value),parseInt(r.value));"custom"!=k.value&&g.checked&&(b=new mxRectangle(0,0,b.height,b.width));if(b.width!=z.width||b.height!=z.height)z=b,null!=d&&d(z)};mxEvent.addListener(c,"click",function(b){e.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(m,"click",function(b){g.checked=!0;x();mxEvent.consume(b)});mxEvent.addListener(p,"blur",x);mxEvent.addListener(p,"click",x);mxEvent.addListener(r,"blur",x);mxEvent.addListener(r,"click",x);mxEvent.addListener(g,
+"change",x);mxEvent.addListener(e,"change",x);mxEvent.addListener(k,"change",function(){y="custom"==k.value;x()});x();return{set:function(a){f=a;b(null,null,!0)},get:function(){return z},widthInput:p,heightInput:r}};
PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:"US-Tabloid (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1652)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",
format:new mxRectangle(0,0,584,826)},{key:"custom",title:mxResources.get("custom"),format:null}]};var PrintDialog=function(a){this.create(a)};
PrintDialog.prototype.create=function(a){function c(b){var a=k.checked||m.checked,d=parseInt(p.value)/100;isNaN(d)&&(d=1,p.value="100%");var d=0.75*d,e=f.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,c=1/f.pageScale;if(a){var g=k.checked?1:parseInt(n.value);isNaN(g)||(c=mxUtils.getScaleForPageCount(g,f,e))}f.getGraphBounds();var l=g=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*d);e.height=Math.ceil(e.height*d);c*=d;!a&&f.pageVisible?(d=f.getPageLayout(),g-=d.x*e.width,l-=d.y*e.height):
@@ -3104,21 +3104,21 @@ r.appendChild(m));m=document.createElement("option");m.setAttribute("value","jpg
mxResources.get("formatXml")),r.appendChild(m));m=document.createElement("td");m.appendChild(r);e.appendChild(m);n.appendChild(e);e=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("backgroundColor")+":");e.appendChild(m);var s=document.createElement("input");s.setAttribute("value",null==b.background||b.background==mxConstants.NONE?"#ffffff":b.background);s.style.width="80px";var q=document.createElement("input");q.setAttribute("type",
"checkbox");q.checked=null==b.background||b.background==mxConstants.NONE;m=document.createElement("td");m.appendChild(s);m.appendChild(q);mxUtils.write(m,mxResources.get("transparent"));e.appendChild(m);n.appendChild(e);e=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("width")+":");e.appendChild(m);var t=document.createElement("input");t.setAttribute("value",k);t.style.width="180px";m=document.createElement("td");m.appendChild(t);
e.appendChild(m);n.appendChild(e);e=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("height")+":");e.appendChild(m);var v=document.createElement("input");v.setAttribute("value",l);v.style.width="180px";m=document.createElement("td");m.appendChild(v);e.appendChild(m);n.appendChild(e);e=document.createElement("tr");m=document.createElement("td");m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("borderWidth")+":");e.appendChild(m);
-var u=document.createElement("input");u.setAttribute("value",k);u.style.width="180px";u.value="0";m=document.createElement("td");m.appendChild(u);e.appendChild(m);n.appendChild(e);g.appendChild(n);mxEvent.addListener(r,"change",c);c();mxEvent.addListener(t,"change",function(){v.value=0<k?Math.ceil(parseInt(t.value)*l/k):"0";f()});mxEvent.addListener(v,"change",function(){t.value=0<l?Math.ceil(parseInt(v.value)*k/l):"0";f()});var z=new mxImageExport,e=document.createElement("tr");m=document.createElement("td");
-m.setAttribute("align","right");m.style.paddingTop="24px";m.colSpan=2;var y=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(t.value)&&0>=parseInt(v.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var e=r.value,c=p.value;if("xml"==e)a.hideDialog(),ExportDialog.saveLocalFile(mxUtils.getXml(a.editor.getGraphXml()),c,e);else if("svg"==e){var f=mxUtils.getXml(d());f.length<MAX_REQUEST_SIZE?(a.hideDialog(),ExportDialog.saveLocalFile(f,c,e)):(mxUtils.alert(mxResources.get("drawingTooLarge")),
-mxUtils.popup(f))}else{var g=null,l=parseInt(t.value)||0,m=parseInt(v.value)||0,n=Math.max(0,parseInt(u.value))+1,f=ExportDialog.getExportParameter(a,e);if("function"==typeof f)g=f();else{var f=parseInt(t.value)/k,x=b.getGraphBounds(),y=b.view.scale,O=mxUtils.createXmlDocument(),U=O.createElement("output");O.appendChild(U);O=new mxXmlCanvas2D(U);O.translate(Math.floor((n/f-x.x)/y),Math.floor((n/f-x.y)/y));O.scale(f/y);z.drawState(b.getView().getState(b.model.root),O);l=Math.ceil(x.width*f/y+2*n);
-m=Math.ceil(x.height*f/y+2*n);g="xml\x3d"+encodeURIComponent(mxUtils.getXml(U))}if(null!=g&&g.length<=MAX_REQUEST_SIZE&&l*m<MAX_AREA){var W="\x26bg\x3dnone";if(""!=s.value&&s.value!=mxConstants.NONE&&("png"!=e||!q.checked))W="\x26bg\x3d"+s.value;a.hideDialog();f=decodeURIComponent(g.substring(g.indexOf("\x3d")+1));ExportDialog.saveRequest(f,c,e,function(b,a){return new mxXmlRequest(EXPORT_URL,"format\x3d"+e+"\x26base64\x3d"+(a||"0")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+W+"\x26w\x3d"+
-l+"\x26h\x3d"+m+"\x26border\x3d"+n+"\x26"+g)})}else mxUtils.alert(mxResources.get("drawingTooLarge"))}}}));y.className="geBtn gePrimaryBtn";var x=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});x.className="geBtn";a.editor.cancelFirst?(m.appendChild(x),m.appendChild(y)):(m.appendChild(y),m.appendChild(x));e.appendChild(m);n.appendChild(e);g.appendChild(n);this.container=g};ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
+var u=document.createElement("input");u.setAttribute("value",k);u.style.width="180px";u.value="0";m=document.createElement("td");m.appendChild(u);e.appendChild(m);n.appendChild(e);g.appendChild(n);mxEvent.addListener(r,"change",c);c();mxEvent.addListener(t,"change",function(){v.value=0<k?Math.ceil(parseInt(t.value)*l/k):"0";f()});mxEvent.addListener(v,"change",function(){t.value=0<l?Math.ceil(parseInt(v.value)*k/l):"0";f()});var y=new mxImageExport,e=document.createElement("tr");m=document.createElement("td");
+m.setAttribute("align","right");m.style.paddingTop="24px";m.colSpan=2;var z=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(t.value)&&0>=parseInt(v.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var e=r.value,c=p.value;if("xml"==e)a.hideDialog(),ExportDialog.saveLocalFile(mxUtils.getXml(a.editor.getGraphXml()),c,e);else if("svg"==e){var f=mxUtils.getXml(d());f.length<MAX_REQUEST_SIZE?(a.hideDialog(),ExportDialog.saveLocalFile(f,c,e)):(mxUtils.alert(mxResources.get("drawingTooLarge")),
+mxUtils.popup(f))}else{var g=null,l=parseInt(t.value)||0,m=parseInt(v.value)||0,n=Math.max(0,parseInt(u.value))+1,f=ExportDialog.getExportParameter(a,e);if("function"==typeof f)g=f();else{var f=parseInt(t.value)/k,x=b.getGraphBounds(),z=b.view.scale,P=mxUtils.createXmlDocument(),U=P.createElement("output");P.appendChild(U);P=new mxXmlCanvas2D(U);P.translate(Math.floor((n/f-x.x)/z),Math.floor((n/f-x.y)/z));P.scale(f/z);y.drawState(b.getView().getState(b.model.root),P);l=Math.ceil(x.width*f/z+2*n);
+m=Math.ceil(x.height*f/z+2*n);g="xml\x3d"+encodeURIComponent(mxUtils.getXml(U))}if(null!=g&&g.length<=MAX_REQUEST_SIZE&&l*m<MAX_AREA){var W="\x26bg\x3dnone";if(""!=s.value&&s.value!=mxConstants.NONE&&("png"!=e||!q.checked))W="\x26bg\x3d"+s.value;a.hideDialog();f=decodeURIComponent(g.substring(g.indexOf("\x3d")+1));ExportDialog.saveRequest(f,c,e,function(b,a){return new mxXmlRequest(EXPORT_URL,"format\x3d"+e+"\x26base64\x3d"+(a||"0")+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):"")+W+"\x26w\x3d"+
+l+"\x26h\x3d"+m+"\x26border\x3d"+n+"\x26"+g)})}else mxUtils.alert(mxResources.get("drawingTooLarge"))}}}));z.className="geBtn gePrimaryBtn";var x=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});x.className="geBtn";a.editor.cancelFirst?(m.appendChild(x),m.appendChild(z)):(m.appendChild(z),m.appendChild(x));e.appendChild(m);n.appendChild(e);g.appendChild(n);this.container=g};ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
ExportDialog.saveLocalFile=function(a,c,f){(new mxXmlRequest(SAVE_URL,"xml\x3d"+encodeURIComponent(a)+"\x26filename\x3d"+encodeURIComponent(c)+"\x26format\x3d"+f)).simulate(document,"_blank")};ExportDialog.saveRequest=function(a,c,f,d){d(c).simulate(document,"_blank")};ExportDialog.getExportParameter=function(a,c){return null};
var EditDataDialog=function(a,c){function f(){0<q.value.length?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}var d=document.createElement("div"),b=a.editor.graph;d.style.height="310px";d.style.overflow="auto";var e=b.getModel().getValue(c);if(!mxUtils.isNode(e)){var g=mxUtils.createXmlDocument().createElement("object");g.setAttribute("label",e||"");e=g}var k=new mxForm("properties");k.table.style.width="100%";k.table.style.paddingRight="20px";for(var g=e.attributes,l=[],m=[],
n=0,p=function(b,a){b.parentNode.style.marginRight="12px";var d=document.createElement("a"),e=mxUtils.createImage(Dialog.prototype.closeImage);e.style.height="9px";e.style.fontSize="9px";e.style.marginBottom="7px";d.className="geButton";d.setAttribute("title",mxResources.get("delete"));d.style.margin="0px";d.style.width="14px";d.style.height="14px";d.style.fontSize="14px";d.style.cursor="pointer";d.style.marginLeft="6px";d.appendChild(e);e=function(b){return function(){for(var a=0,d=0;d<l.length;d++){if(l[d]==
b){m[d]=null;k.table.deleteRow(a);break}null!=m[d]&&a++}}}(a);mxEvent.addListener(d,"click",e);b.parentNode.style.whiteSpace="nowrap";b.parentNode.appendChild(d)},r=function(b,a,d){l[b]=a;m[b]=k.addTextarea(l[n]+":",d,2);m[b].style.width="100%";p(m[b],a)},s=0;s<g.length;s++)"label"!=g[s].nodeName&&"placeholders"!=g[s].nodeName&&(r(n,g[s].nodeName,g[s].nodeValue),n++);d.appendChild(k.table);g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.marginTop="6px";var q=document.createElement("input");
-q.setAttribute("placeholder",mxResources.get("enterPropertyName"));q.setAttribute("type","text");q.setAttribute("size",mxClient.IS_QUIRKS?"18":"22");q.style.marginLeft="2px";g.appendChild(q);d.appendChild(g);var t=mxUtils.button(mxResources.get("addProperty"),function(){if(0<q.value.length){var b=q.value;if(null!=b&&0<b.length&&"label"!=b&&"placeholders"!=b)try{var a=mxUtils.indexOf(l,b);if(0<=a&&null!=m[a])m[a].focus();else{e.cloneNode(!1).setAttribute(b,"");0<=a&&(l.splice(a,1),m.splice(a,1));l.push(b);
-var d=k.addTextarea(b+":","",2);d.style.width="100%";m.push(d);p(d,b);d.focus()}q.value=""}catch(c){mxUtils.alert(c)}}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<m.length?m[0].focus():q.focus()};t.setAttribute("disabled","disabled");t.style.marginLeft="10px";t.style.width="144px";g.appendChild(t);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});g.className="geBtn";r=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,
-arguments);e=e.cloneNode(!0);for(var d=0;d<l.length;d++)null==m[d]?e.removeAttribute(l[d]):e.setAttribute(l[d],m[d].value);b.getModel().setValue(c,e)}catch(f){mxUtils.alert(f)}});r.className="geBtn gePrimaryBtn";mxEvent.addListener(q,"keyup",f);mxEvent.addListener(q,"change",f);s=document.createElement("div");s.style.marginTop="18px";s.style.textAlign="right";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){var v=document.createElement("span");v.style.marginRight="10px";
-var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(u.setAttribute("checked","checked"),u.defaultChecked=!0);mxEvent.addListener(u,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(u);mxUtils.write(v,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){u=document.createElement("a");u.setAttribute("href",
-EditDataDialog.placeholderHelpLink);u.setAttribute("title",mxResources.get("help"));u.setAttribute("target","_blank");u.style.marginLeft="10px";u.style.cursor="help";var z=document.createElement("img");z.setAttribute("border","0");z.setAttribute("valign","middle");z.style.marginTop="-4px";z.setAttribute("src",Editor.helpImage);u.appendChild(z);v.appendChild(u)}s.appendChild(v)}a.editor.cancelFirst?(s.appendChild(g),s.appendChild(r)):(s.appendChild(r),s.appendChild(g));d.appendChild(s);this.container=
-d};EditDataDialog.placeholderHelpLink=null;
+q.setAttribute("placeholder",mxResources.get("enterPropertyName"));q.setAttribute("type","text");q.setAttribute("size",mxClient.IS_QUIRKS?"18":"22");q.style.marginLeft="2px";g.appendChild(q);d.appendChild(g);var t=mxUtils.button(mxResources.get("addProperty"),function(){var b=q.value;if(0<b.length&&"label"!=b&&"placeholders"!=b)try{var a=mxUtils.indexOf(l,b);if(0<=a&&null!=m[a])m[a].focus();else{e.cloneNode(!1).setAttribute(b,"");0<=a&&(l.splice(a,1),m.splice(a,1));l.push(b);var d=k.addTextarea(b+
+":","",2);d.style.width="100%";m.push(d);p(d,b);d.focus()}q.value=""}catch(c){mxUtils.alert(c)}else mxUtils.alert(mxResources.get("invalidName"))});this.init=function(){0<m.length?m[0].focus():q.focus()};t.setAttribute("disabled","disabled");t.style.marginLeft="10px";t.style.width="144px";g.appendChild(t);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});g.className="geBtn";r=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);
+e=e.cloneNode(!0);for(var d=!1,f=0;f<l.length;f++)null==m[f]?e.removeAttribute(l[f]):(e.setAttribute(l[f],m[f].value),d=d||"placeholder"==l[f]&&"1"==e.getAttribute("placeholders"));d&&e.removeAttribute("label");b.getModel().setValue(c,e)}catch(g){mxUtils.alert(g)}});r.className="geBtn gePrimaryBtn";mxEvent.addListener(q,"keyup",f);mxEvent.addListener(q,"change",f);s=document.createElement("div");s.style.marginTop="18px";s.style.textAlign="right";if(a.editor.graph.getModel().isVertex(c)||a.editor.graph.getModel().isEdge(c)){var v=
+document.createElement("span");v.style.marginRight="10px";var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.marginRight="6px";"1"==e.getAttribute("placeholders")&&(u.setAttribute("checked","checked"),u.defaultChecked=!0);mxEvent.addListener(u,"click",function(){"1"==e.getAttribute("placeholders")?e.removeAttribute("placeholders"):e.setAttribute("placeholders","1")});v.appendChild(u);mxUtils.write(v,mxResources.get("placeholders"));if(null!=EditDataDialog.placeholderHelpLink){u=
+document.createElement("a");u.setAttribute("href",EditDataDialog.placeholderHelpLink);u.setAttribute("title",mxResources.get("help"));u.setAttribute("target","_blank");u.style.marginLeft="10px";u.style.cursor="help";var y=document.createElement("img");y.setAttribute("border","0");y.setAttribute("valign","middle");y.style.marginTop="-4px";y.setAttribute("src",Editor.helpImage);u.appendChild(y);v.appendChild(u)}s.appendChild(v)}a.editor.cancelFirst?(s.appendChild(g),s.appendChild(r)):(s.appendChild(r),
+s.appendChild(g));d.appendChild(s);this.container=d};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,c,f,d){var b=document.createElement("div");mxUtils.write(b,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var g=document.createElement("input");g.setAttribute("value",c);g.setAttribute("placeholder","http://www.example.com/");g.setAttribute("type",
"text");g.style.marginTop="6px";g.style.width="400px";g.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";g.style.backgroundRepeat="no-repeat";g.style.backgroundPosition="100% 50%";g.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?
0:3)+"px";c.style.background="url("+IMAGE_PATH+"/transparent.gif)";mxEvent.addListener(c,"click",function(){g.value="";g.focus()});e.appendChild(g);e.appendChild(c);b.appendChild(e);this.init=function(){g.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?g.select():document.execCommand("selectAll",!1,null)};e=document.createElement("div");e.style.marginTop="18px";e.style.textAlign="right";mxEvent.addListener(g,"keypress",function(b){13==b.keyCode&&(a.hideDialog(),d(g.value))});
@@ -3137,44 +3137,44 @@ mxEvent.consume(b)}});m.appendChild(t);t=document.createElement("input");t.setAt
"none",m.innerHTML="\x26#9650;",m.style.width="14px",m.style.height="14px",m.style.fontSize="14px",m.style.margin="0px",m.style.marginTop="-1px",d.appendChild(m),mxEvent.addListener(m,"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<s-1&&(m=document.createElement("a"),m.setAttribute("title",mxResources.get("toFront")),m.className="geButton",m.style.cssFloat="none",m.innerHTML="\x26#9660;",m.style.width="14px",m.style.height="14px",m.style.fontSize="14px",
m.style.margin="0px",m.style.marginTop="-1px",d.appendChild(m),mxEvent.addListener(m,"click",function(b){k.isEnabled()&&k.addCell(c,k.model.root,a+1);mxEvent.consume(b)})),l.appendChild(d);if(mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode))l.setAttribute("draggable","true"),l.style.cursor="move"}mxEvent.addListener(l,"dblclick",function(b){var a=mxEvent.getSource(b).nodeName;"INPUT"!=a&&"IMG"!=a&&(e(c),mxEvent.consume(b))});k.getDefaultParent()==c?(l.style.background="#e6eff8",q=c):
mxEvent.addListener(l,"click",function(b){k.isEnabled()&&(k.setDefaultParent(f),k.view.setCurrentRoot(null),g())});n.appendChild(l)}s=k.model.getChildCount(k.model.root);n.innerHTML="";for(var a=0;a<s;a++)mxUtils.bind(this,function(d){b(a,d.value||mxResources.get("background"),d,d)})(k.model.getChildAt(k.model.root,a));v.setAttribute("title",mxResources.get("removeIt",[q.value||mxResources.get("background")]));u.setAttribute("title",mxResources.get("moveSelectionTo",[q.value||mxResources.get("background")]));
-y.setAttribute("title",mxResources.get("duplicateIt",[q.value||mxResources.get("background")]));z.setAttribute("title",mxResources.get("renameIt",[q.value||mxResources.get("background")]));k.isSelectionEmpty()&&(u.className="geButton mxDisabled")}var k=a.editor.graph,l=document.createElement("div");l.style.userSelect="none";l.style.background="whiteSmoke";l.style.border="1px solid whiteSmoke";l.style.height="100%";l.style.marginBottom="10px";l.style.overflow="auto";var m=!EditorUi.compactUi?"30px":
-"26px",n=document.createElement("div");n.style.backgroundColor="#e5e5e5";n.style.position="absolute";n.style.overflow="auto";n.style.left="0px";n.style.right="0px";n.style.top="0px";n.style.bottom=m;l.appendChild(n);var p=null,r=null;mxEvent.addListener(l,"dragover",function(b){b.dataTransfer.dropEffect="move";r=null;b.stopPropagation();b.preventDefault()});var s=null,q=null,t=document.createElement("div");t.className="geToolbarContainer";t.style.position="absolute";t.style.bottom="0px";t.style.left=
-"0px";t.style.right="0px";t.style.height=m;t.style.overflow="hidden";t.style.padding=!EditorUi.compactUi?"1px":"4px 0px 3px 0px";t.style.backgroundColor="whiteSmoke";t.style.borderWidth="1px 0px 0px 0px";t.style.borderColor="#c3c3c3";t.style.borderStyle="solid";t.style.display="block";t.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(t.style.filter="none");m=document.createElement("a");m.className="geButton";mxClient.IS_QUIRKS&&(m.style.filter="none");var v=m.cloneNode();v.innerHTML='\x3cdiv class\x3d"geSprite geSprite-delete" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';
-mxEvent.addListener(v,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.model.root.getIndex(q);k.removeCells([q],!1);0==k.model.getChildCount(k.model.root)?(k.model.add(k.model.root,new mxCell),k.setDefaultParent(null)):0<a&&a<=k.model.getChildCount(k.model.root)?k.setDefaultParent(k.model.getChildAt(k.model.root,a-1)):k.setDefaultParent(null)}finally{k.model.endUpdate()}}mxEvent.consume(b)});k.isEnabled()||(v.className="geButton mxDisabled");t.appendChild(v);var u=m.cloneNode();
-u.innerHTML='\x3cdiv class\x3d"geSprite geSprite-insert" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(u,"click",function(b){k.isEnabled()&&!k.isSelectionEmpty()&&k.moveCells(k.getSelectionCells(),0,0,!1,q)});t.appendChild(u);var z=m.cloneNode();z.innerHTML='\x3cdiv class\x3d"geSprite geSprite-dots" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';z.setAttribute("title",mxResources.get("rename"));mxEvent.addListener(z,"click",function(b){k.isEnabled()&&e(q);mxEvent.consume(b)});
-k.isEnabled()||(z.className="geButton mxDisabled");t.appendChild(z);var y=m.cloneNode();y.innerHTML='\x3cdiv class\x3d"geSprite geSprite-duplicate" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(y,"click",function(b){if(k.isEnabled()){b=null;k.model.beginUpdate();try{b=k.cloneCells([q])[0],b.value=mxResources.get("untitledLayer"),b.setVisible(!0),b=k.addCell(b,k.model.root),k.setDefaultParent(b)}finally{k.model.endUpdate()}null!=b&&!k.isCellLocked(b)&&k.selectAll(b)}});k.isEnabled()||
-(y.className="geButton mxDisabled");t.appendChild(y);m=m.cloneNode();m.innerHTML='\x3cdiv class\x3d"geSprite geSprite-plus" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';m.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(m,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.addCell(new mxCell(mxResources.get("untitledLayer")),k.model.root);k.setDefaultParent(a)}finally{k.model.endUpdate()}}mxEvent.consume(b)});k.isEnabled()||(m.className="geButton mxDisabled");
-t.appendChild(m);l.appendChild(t);g();k.model.addListener(mxEvent.CHANGE,function(){g()});k.selectionModel.addListener(mxEvent.CHANGE,function(){k.isSelectionEmpty()?u.className="geButton mxDisabled":u.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),l,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=g;this.window.setLocation=function(b,a){b=Math.max(0,
-b);a=Math.max(0,a);mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var b=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,d=this.window.getX(),e=this.window.getY();d+this.window.table.clientWidth>b&&(d=Math.max(0,b-this.window.table.clientWidth));e+this.window.table.clientHeight>a&&(e=Math.max(0,a-this.window.table.clientHeight));
-(this.window.getX()!=d||this.window.getY()!=e)&&this.window.setLocation(d,e)}))};
+z.setAttribute("title",mxResources.get("duplicateIt",[q.value||mxResources.get("background")]));y.setAttribute("title",mxResources.get("renameIt",[q.value||mxResources.get("background")]));k.isSelectionEmpty()&&(u.className="geButton mxDisabled")}var k=a.editor.graph,l=document.createElement("div");l.style.userSelect="none";l.style.background="whiteSmoke";l.style.border="1px solid whiteSmoke";l.style.height="100%";l.style.marginBottom="10px";l.style.overflow="auto";var m=!EditorUi.compactUi?"30px":
+"26px",n=document.createElement("div");n.style.backgroundColor="#e5e5e5";n.style.position="absolute";n.style.overflow="auto";n.style.left="0px";n.style.right="0px";n.style.top="0px";n.style.bottom=m;l.appendChild(n);var p=null,r=null;mxEvent.addListener(l,"dragover",function(b){b.dataTransfer.dropEffect="move";r=null;b.stopPropagation();b.preventDefault()});mxEvent.addListener(l,"drop",function(b){b.stopPropagation();b.preventDefault()});var s=null,q=null,t=document.createElement("div");t.className=
+"geToolbarContainer";t.style.position="absolute";t.style.bottom="0px";t.style.left="0px";t.style.right="0px";t.style.height=m;t.style.overflow="hidden";t.style.padding=!EditorUi.compactUi?"1px":"4px 0px 3px 0px";t.style.backgroundColor="whiteSmoke";t.style.borderWidth="1px 0px 0px 0px";t.style.borderColor="#c3c3c3";t.style.borderStyle="solid";t.style.display="block";t.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(t.style.filter="none");m=document.createElement("a");m.className="geButton";mxClient.IS_QUIRKS&&
+(m.style.filter="none");var v=m.cloneNode();v.innerHTML='\x3cdiv class\x3d"geSprite geSprite-delete" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(v,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.model.root.getIndex(q);k.removeCells([q],!1);0==k.model.getChildCount(k.model.root)?(k.model.add(k.model.root,new mxCell),k.setDefaultParent(null)):0<a&&a<=k.model.getChildCount(k.model.root)?k.setDefaultParent(k.model.getChildAt(k.model.root,a-1)):k.setDefaultParent(null)}finally{k.model.endUpdate()}}mxEvent.consume(b)});
+k.isEnabled()||(v.className="geButton mxDisabled");t.appendChild(v);var u=m.cloneNode();u.innerHTML='\x3cdiv class\x3d"geSprite geSprite-insert" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(u,"click",function(b){k.isEnabled()&&!k.isSelectionEmpty()&&k.moveCells(k.getSelectionCells(),0,0,!1,q)});t.appendChild(u);var y=m.cloneNode();y.innerHTML='\x3cdiv class\x3d"geSprite geSprite-dots" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';y.setAttribute("title",mxResources.get("rename"));
+mxEvent.addListener(y,"click",function(b){k.isEnabled()&&e(q);mxEvent.consume(b)});k.isEnabled()||(y.className="geButton mxDisabled");t.appendChild(y);var z=m.cloneNode();z.innerHTML='\x3cdiv class\x3d"geSprite geSprite-duplicate" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';mxEvent.addListener(z,"click",function(b){if(k.isEnabled()){b=null;k.model.beginUpdate();try{b=k.cloneCells([q])[0],b.value=mxResources.get("untitledLayer"),b.setVisible(!0),b=k.addCell(b,k.model.root),k.setDefaultParent(b)}finally{k.model.endUpdate()}null!=
+b&&!k.isCellLocked(b)&&k.selectAll(b)}});k.isEnabled()||(z.className="geButton mxDisabled");t.appendChild(z);m=m.cloneNode();m.innerHTML='\x3cdiv class\x3d"geSprite geSprite-plus" style\x3d"display:inline-block;"\x3e\x3c/div\x3e';m.setAttribute("title",mxResources.get("addLayer"));mxEvent.addListener(m,"click",function(b){if(k.isEnabled()){k.model.beginUpdate();try{var a=k.addCell(new mxCell(mxResources.get("untitledLayer")),k.model.root);k.setDefaultParent(a)}finally{k.model.endUpdate()}}mxEvent.consume(b)});
+k.isEnabled()||(m.className="geButton mxDisabled");t.appendChild(m);l.appendChild(t);g();k.model.addListener(mxEvent.CHANGE,function(){g()});k.selectionModel.addListener(mxEvent.CHANGE,function(){k.isSelectionEmpty()?u.className="geButton mxDisabled":u.className="geButton"});this.window=new mxWindow(mxResources.get("layers"),l,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.refreshLayers=
+g;this.window.setLocation=function(b,a){b=Math.max(0,b);a=Math.max(0,a);mxWindow.prototype.setLocation.apply(this,arguments)};mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){var b=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,d=this.window.getX(),e=this.window.getY();d+this.window.table.clientWidth>b&&(d=Math.max(0,b-this.window.table.clientWidth));e+this.window.table.clientHeight>
+a&&(e=Math.max(0,a-this.window.table.clientHeight));(this.window.getX()!=d||this.window.getY()!=e)&&this.window.setLocation(d,e)}))};
(function(){Sidebar.prototype.tagIndex="vX3ZcttI0vXTTPz/XIihlrvb31xqt2YsWy3K9tw5QBISMSIBNhbL6qefczKrsJBYCosmgkGCJPJUoZasrNxq+/M69nbrmRfH0Uvyt+N/yAU+D16n1VtnZ36Y/u3k+KP/yI9TQ+aFTxt/hYs0i0NXjPvgaT0a5MuuhJDt2mH2Mc69zSbKCHMRZYuNX4JKXyJ8e/FeXRqlwPkj81YllMcoi3vArP0fcRSW6MMoXa7lYZLgKfQ2+CvobprzIF5mG48lW6AlftoE4ZNLNf6ZbXdHKMZSnxz/gvtif7fhUyy85TObOlxF8qt8uEOdDIUyI84L2b6VXo/idB09RWwex7HzyTTryfFcmrVcRbSV6QaHphrV3fONH658EuzNpuQ5CENChHZaJptg6wr2ICP3G+pQg7jScd4M3Yz7LVhxgjx4AafXuNo+xEGl4dJ17BPcseUOH/Hk+EMUB39FYSqjYF3+Mgjuqx+nwVLofxSXLVB/ZbE/O10u/SQB+TkKjyOSJP4yi4OUz/Xs8/3ghyasLI22XhrISPTwBR9PPmb18T825JyhTudlxPfHjZesW4DmqD+7Xe82MO2Pwnc2yAaPzxqAobBXwZKCRzSHqZgTxrmHObVXb1vjlZd6Cy/h36tFN9StFz/76W7jLUmxlW/CSoiZrCOuAN0o84t/8fboMX3x5IeV/8PfRLutLirPATGTZey/rOIA/e/6oPNsAapgZxpniVWBzHvnh8vgcPw0gHzzF0mQ8vEWWFfYXZtowa+t1Gdgplj/UAc//hFI69ji8SmMNkmj3YsH1scZF2zLkPtgQXqWLdm0HMoy7+fgbYK60D+6J8NZ8NeDt3kuqkRBw9api/ick07GmTwJFgd0TSCTcOXLirgKdhtMELZP5sVemIKDcIgt/VBG086Pt9KPh9hSh0pLOU+LPVoz1x+DpyzWKXFyfAUGKax2mcl4Ijzv6AmNqzv0qffEK4O5iH66tJ322GE9ugm3uyyV4b6NwiCNeLUKEky3Q758QIsekNlz4W84Z8hNP/mQo2KOPdvvdtqXWUEz6EUDc2i8P452Z2ijmlErLbczDdoBc4lHiXdxIAUvsmCz0oousiQIyeA76Pu3vFCodNSD6jpIP2QL+7RoZI9U0TKN9OrJjP8m+g8XNyEES0jhzXy4ntD3NumaY2KNOSNDfO0Lj8F3/ONATF6uY0zb1gIZQberAq+Y3lymuY/wl5EZb7deiO7lqHXlMx+9HbiizNF87HfR3GII6CjaQhjCh28/Q1lF9sbXPnW00OGxW0chP9MoE5bsQlXhpUnOv1qg9nGyTRqQOXgYJbJDyNI1WWu+opfkE7Nu7LyVuWrBfZ3/8ZGTvxhGyZ/CrZvH1R4EpPJCsoBAh5HNIa1bq+5e2SN/iHbBUuSWqvxSC7gH9RmDCzgYl2jv1yT1t7i42WqfR2z6tReTVYM3yqBf7Q21Pby76MWP52sfq/kQtnx/cSfDfIsnlDr1h5hzv5OhKYql30oFHXSUZoYVidEp5cW6zXO5X5e9s4zL6h+Zn8kw/5MXAwDu/bply4lUBg8vdLtZFutYI3AMGVtJVdxrL2J/ejgtaHtUqIr8oKKiwahndY1A89eQdd+fl4n+HPvL16V0dSvQvb/Dtls59z5SaYw86qhpgkrB8kVmffBkHrmLYXMwL52OKLtSRhvFPNjudBvkuDo8EJwPsrVM24lZfwmxVwZPfQxkp2xkkc+L//hLgmWP3Mt5m8DvHDVfwOPJYLKtx3t3fqQPoF+9H2j6clvtUX/9cGF5VQ2Tqr9fBwk/DG9Tanc2/jVAp4qq6hbbPshL3EKT83aIlJ0wYEK+B/0OAR/zqzpUKa4TtxBOw/yqq4W+nV6cX11L63hPYZRg3SSb6M8d7Sbv5PjaD/1Y2Ind5zVV5xCCMzGSouv3iG1EZGTOVKiOyFu2NJ2iOl/dKaXIVtInIcVAC5azX7kDigLZU5BVWAVbfXXLlL8fUiZB086pTPh/h4S+kY+7SM+8EP2oO5wmNWv5fuyXtCWjrZ+i/xv1SxWiOJLdx26DZQrzv35KlykuDpgxFDgiMnqUoNtIr9q3arU0kO1F2sq3ARuI5oLxfCgVlwlvI1lCQ8fW/kSN3fx1uxAd22MUL4IVWK4D5edCW4x1B3pImgtEaXkguNfSz7doRjIZEcewsxceudvVbpArhGYIY2/M5pdR1kWSEX0lPA3v0hFdNA+BSFt2PyafVJN10X3zpF5m9C7saG6l+bdRKolYHS599kXIta2uQwraKEqTFJez7krW0902bru2+dasHSHrva4ahN2WN5QUAbs4Ep0vV6KVtEAT3eyUwsCHiKzetZlJBpFUCwMThQhfiEttok+J/mOkPWStQk3Wvhoqo28tsbW8xqK/X8vDNGJgO65LranwmuJ0Z33zPYehMgwLgphuz1s5lwDk0ryTXFmiFHGrqG7f0bH0FuipVPScesnR+WcWqGK5sWxLNzs/o7Ut7y2ob06OF7HvaRfoirHTJdgJ5+T45y/H06CdNNWKltJ+OG216on2rrFWYlHqh4R6/TYV3K9NFTMiTB+glnr1QLs91/b/DW+/vzvlI99xTAdhYGXpHk/ugv+rC379EzTC//5Oyjh+s/qXC5j2ASLqOv9Ss/NLQDOMfYT8Hyyn+k+fetfhas3H43L3KrxEuvXXYzRLfSs4MLcqIB/+ZCq0dydaxwnw7mIsN0ujRAT4YMB7PwlWuvydZ3FsbSNmZTphB8XL9uXQEUs62xlrnsViUqo86C+EaFoR3GHkqZpYuDuMzIpmlusOJC3TyCNrcR5oNtTdwa/H2y0Hlq5Wi1p9aSfGBBDkSuNhfpvgabixPvltPM77nhh+wOUUw74wy2H75ONPo3rdeRQOD929lPxxE0UxdEP8HxqiZnvC3u1wMiNXNc5hqKgYcR/hYhSYBcERYY7dsyA00zaQR9HzUtVufUnP114g61NfOii3hcfBJ0KtS25UqheFTwVN8r3a6Pz+gUL314oOr6TXq6lHDcqFD6GdytZYNyh2d9SrKlUQNcgOA4qxY7OWyEQ2AnA1WcWqb2uAqsG53PjYbkg7+AmURObapQrQ38guamS7XvGKTmrelpOwXglRT1pnXN1xx7j1zDtmcaRuQLYy1HwmaeFeVAP7+RF2PvErMkN82TnUa1DuoPoRnyr4jnDpDEKoBurVt3XUeFNFV0x1OP6Aic+JEPZubYle8+seeio+Ml0xoW3aoPK9aTmYe9P6j3EAk7oZd33J58oOloY79OogMb5IO8lu3J1EW8mQDSjS+GGMoH83kv7XkfTcLg6ij6Dc5LAG68A4FbUL1R0RvCtoG8QMiaJD3859mG/w2hLZPILMxWEDrzM/XtpvLjWh3aBgA5sBjKRkiuDsBI8QzTSvlWWouwnUM4VnGYw6sVdrPMohZqchFFLWy4ADDXUyXANN3m0ObkDikBuMdB5t0GN86jWE3Sco7g99lOop9w3SUOcaw2o3aaOdt41KHFCOSrRb/uBkOStA7kQFSEWdaH07tan79POi1429k8t8o/7/gJyGa9P7cOoIdtJ+4mPv1HKWnn0+jD6CQ2RR9aZOa6DOtpDDxY8kC3WnRFcGDvsGg9I+wgOWzORR1cBGlYxFot42obQb3wu/b7F6qBnph7eBS8fJMfiJX5lv7ZRwkwuDRD33r6NoRZU4/KK5KUYTbIdWaHYt1iTxQMf2cZXZ7aPxmtE6y6wSE6Yj6ucsxa698EIUtXBR0STjWto2XitocEiHO3BJK21MGC60p4EwVVblPZtIhaXYmjb1v3qODNkojgKOii02aRJg08y+zc3qC/rTmNlPbWueidJ81WXm6QahLBquIA3LhJ0YEP7Xa+N9XT+E+kKPhZtjlEh0yBTtWAs2RXt2Ar9RQwyCvaO7pEjDpdFtHHxad0UW4I8MVlas0Fh2NVBALxbqaiBf9doVRNeCgUAwmOl94hRaItrDa8UAo9AtL/x+KEWSx15hVU7U2d51ULTiYDyYPurRWQXineypB1bHEg+qA+Rqowmw+oCWTWJOhJELD7CNxCLiWuQk/dpFSQ9NVBnjQ3h8n5pWSCkhSEt1N9hLIhNi6yFuihI7/IRyD2PxNZE40Vq6GZaZ7/ZWDWOYw9YqOz7raZfYH1rKb8ZhxM4V3uEq49ETbRTwpXEbMB99SOeXc/ElMm6E1gGhcMR2hPlUgdkLqRqCdnKsTwWvtj2wSQv58PBAV+Q3LcM6bk+G+kelsa038RAYuEPk/iUTAYqX8yRw367KMFSjma3uECRal5YQXtV1bipM4ww4GNLs/r+D2X03TpIUby/PdSPl0R2zzSHaDQoSxu1NEyBUDcanNTDxAH3Bha9BQyJM67AMG6A3rOYXtIaKcITIntQo6g4LUT/tYutP3WdZq9ejxEsDjhJpbDssS0w3w56m9RlGo3I9q6nuXlP0gb+9r0Bi+4VtelajLHWG43DBllEmzcTAHy6uyIC68NfeSv3HYEKATnABPInjU2k50egY56K/3p1z+298sOk9F0C92OCS74xYUgBAMQA8jSOfvpgbqu7p1vW2xdzDQildMj3017tPGrIaGiP52xUysoXaAxIbb59dvIbeNgIjBJ1cDqHFGpCa0T4VDtlNDgRzdY7eF/FGZ9yYShGiUh9soQ/VcN04uYmmb13MqmETA5TYsPmlPwrFUomC7QM2e4qjbCdxCbzo8QT3FxQrYxTGaSSDu1aCaUcwK3ZpoRuPmIMxTEvcdBGthbh47pomRYcaO1wt1DI0FvaWbxpbNmlj5HGpkzfzZ8Q1irFtSmiNUBPmlcvIvWnpsYLdYGVr1gWCERK90gIjHB0aZgi3/Krb8KsozlOR5JH8pd8mgZYBpfEAb1fEg48Gqa5AE5ViRfoWQX4YJHOwmNjlSaBvTm/J8SVCUcK8Pc1aI/7t5qbhyKjtanUkjfl2RcwfyHyH44dReGRm5vdkh50u9AszDJNMVkUMCLGGdbRwsnoWhetKcqvYXDKiQc5zySDHTyUHwyHCDGGIEjqYarhAV6Fq6pNmQfARU258R9iJJNwwox25qyQjgx3e5vsUqOQsL+EmklUFCl4VYvb4wqTlXa7EdeUjM1q8ZTlzsUSqWfStHuzyjKO2EE+s3yOJWvebnaiof+jtkP5IAk7epICv0QYW+jeAn9NZJl+nClO2gz6oC5fh/CZZ0RsXgNRlgeQ00SBv4QttJUY2FnxouaPLWQbJMprZ5DYEKiW6afHmrZLNzuAKIGuUccoTZ4x2PrYPYQOg2Zh5DXqj3F58yZ1JXuhUITAZfJ9q0Rpx5lsm3ZJEEDbEDz41sg3tqox1Tkqk3+ChEuzgHuhtktnNGVcthC2Gj/Av0oxTuSNTalwH6bClXk7i2jS0ELhIcBGeI1ijxmFq1AM8mJpOBNroHjoQD4kCcjewEqT6iBWtW/UwLQp0LyeAXdWm3Cn+GDVCRC9WqnRTdQdiUypDa6tXnmZ0mK7iVmG1nBY4d5SdCBA5EI1/2FSAOxsONBUg4r3VSlJ0+ERzY57hWwlrItg8QUqlBdROPhTSholMVskv+5NrDNhX7DrE5Qx8PKZKZaK+18QcZ0xIOuWQahxMDatNHbakMoXrrqIjzB1R6Mnsl+PrS/p2nEeXGvzO2HSXqtbDvfvlPQOd/j8jMFCvv5dME3k6VXUfLhDGFPdvLU6iG966sCI3Yh6geWvba3TDXQVIU6oySxH4buD5gC/z279PUc4B+BSYNrna9G1e5PnJ27xUCBrm6/z83fHxMdumV4ErtDdz54n+3Fz3IUNmBcTxlCixi3Ka5GtkG5NHfFLDCqcgfOASn9FTmi0PtwwCOufvo1HGUVvBexzKvunJ/NFghDrMtLRXwBbvs3/5r+zsarbmVor7uzle1AWLbcGJpjaxoxNlbtND6ltkN9FR5fa4NYgwomzNOkIRF4ND8xaK02TZU7KzbgdIH5B/JZebzWd/lDwVZp5tG54HRf2QhsZlNtXh4heTx6Vd/deEgGin3s+XJxexft1dBLBTcaXn4LJm4i6SUkrP0mU3FRM42vHoWJCQMJHwFltv1dmxh/JkkAxxyf/pgcgMa3k1WsJNmmjLdSB570eSTR+8InPCLX/IPSXbMWQF0qlt8zB00bxggUA1SfMC9XRr2AFuXGoOsZm3YIKjJaJzTin0rgLkABYuAL34RtLgYLFjRvuaFDotYP42Y/40DHgqWDBgf3Zkyq1DQT9osQjUWe26YpTqEG6zn0e2LtWatNesC/QArh+CyRdrkoqdIk7WBGpCM8ckkNMgqn/uYMQHZjRhrZApK8fGXo2xPBgTjHoxBsyGQhzgWcU3hKem+E3gGRJlLYSa/89GRDk1MgIcoHoyMmH+pT81DpKxtNpVkuVvDAg7ZDQIm13vijavqvqvwewByPDWrD3dZjcIY1xH10qiEbn+0pGxhMX9fVEUlzNJGKr8c4sYepGmIFxqNr+3K/NO0k3nZe4iZA11LXMVQELRbYp6xjhRmTY92voI9uNKvZmdHOnhKGYnZVO8DIX7CHsarK5Gd1ZcDcW7y6DyLe3zPnHlC2nV38g5Q5KBoSWwsSf65yo6GFJLjG47tqao1p0p+NDkda/BH1r7wF/++sv72en5EQQLQcyliFy06Al00QhUiC3ueExdPBmYpLrovdiWqKHKC3SPb5eqoWhILGuFJQiuXScU1NObJJ2D6C+48pYbtkamdAerGT4j8Q5GUYHXIOp2QAaPCG3Oo8PHDYXLcBm/IpklkxctezBhQ/4hGNPzH6Oh1N/RDcFStCriG6nqAzdqkcVUFLLXvWlnN5bSCNKa5uXAzaAPDqWYKXAodwzG0ch5sF/RQfLRAj1qbjQWJb3+WDbljfZWYwKcbnoyPRhufMN7t3B/yi8d5191zMm3prHXQQ69MpwS0Bgw3NM6Sf+Vj8Znzpxz4ARJ7Rq0SYiOB9Dsil4AptP8cRjSWb6ktxsOIruhRYKkKu6zsxaI4vjw2txs4BgEg505m+Qs21AfEthf83Pf7OdCb+hVhuSe0qa3WHkBdR4rzojsiKkQzXGm+w2gaIftMaQdPvmyRTWpuDqLGANvBukERURIFZIm7Du9lOMbWlJz1NDOLtSUQ70+DVCf51eXtHp8qm7DKPeG+zm4B0IzmK202xoEnYPdUEaZorJVxEnrSBuCpNXHANZDMSaqqkYMF8Bja/zpyJKVuovDq3FDPgiRw39aRDLsaRHJuadFpHQzLeLvYxDvmvq6UREyCJF9PS0i+3paRPb1tIjs62kR2dcDEdkFQ9eHk8l5QgPiCJ7QgDiCJzQgjuAJDYgjeEID4giecDI5T2hAHMETGhBH8IQGxBE8oQFxBE9oQBzCEyI4Bn83+kxoMpPZe7HfPpnzmRGgYbLZJoi1aT+pvT9q7suPYxeLElaIEoLStP7oHqfS/tHwDDhaaXjD1INWH8EUMP4JPl5SyVrehfk4YtkeA3hoZOgBWt6ITQFKqCOovMX1RVJwnzM5AzJiScgEwmGNqsR4flHFLtraPSWfU2mf8cMRctzCqCMnq+Br8W1YvwqkWDcRjCQaNN5S+WEYMNxk0sg2K5xU5Fz5egNRPd537A4lIZTsQavm2B62190GWkbkm/RjntzKAJIshW+qtVF3HPnqBCTW6EFAE9RlcC0YY4HEOXAvUbO2qlIrP4zBml0/fC6mQ/dEMPo3ZBDmbdHjoxzN8Ios/FIR52Jvrs/tOm1T90tZBl/8guCnLL+V8Ps/nylItBdvWtAncbu7uT4rnivBAVuV0hYBjp2Q5Hu1U3dYWfpo/5uyKLP8r8oSPeTblXX3iZqI/01/Vcp64/6qlPXG/VUp6437iyxKO6rHet2/AEm8+UYF3FgvPAlBq+M2zYjIVyk3i6enuXZl/HqI/vckzzusV8PIYarPcxjLucXMgWSYqTmMaAComG0NqEnYL+byKVEljf/kqJLcfwLUr5Js+0e0Sbtyd7dgiH13NAYbqidIigCjLeQ+2Nw0Za44GrUdaeEAodKp8eC2wmmtQ3ctXs5u5JD23rJyib6itvhnrTrpP65Kqg7YPZ3SINjyxrtU277b7g7IIRqRFxwrSxu1+DGb61baIErez8hExSStTNnlbpyuyum0RBqHDnNomUYSq0hORslkkDJ7LtktjFya/LIb40xz1sRIWdLkVV9Lw+OAJDoDQ592akK8oFhHAO6OkfCBe7BFdHi2dS2RTiQcIiR90O8pcRCVFBW1HdRbQ8aqFZkJmKu31X2xTBsH/qM5/CrF2SF1j9lAeu5t/BA5jzXLpfNwwHlCkosFRtEsSZoDFA4Jq+PHtrADIQIy4eBHpceqkiimg0qEFN0XiqrEnESMzXga1JxRUAsi6c7+g+NdXIs1p020J+arJQRDkF7AkNPzwN3IikNBllHNAdsdZLIgFRDwhWrzJKkAvIjGz6a6EUHQdx22l/Y0asQYXm536atEX+Z5g8Gf3KZ4GcekHSZSFtYiNIG8FqnxTTaLwqTfdrZMCUPOga+4cLiWfhVtlL9E8RM8Uv9y7nklNK5rHWduVMhiw1VDk28dfe5Eee1l0jucwO3yQploo6e5PeGzMYLzgOrgiHw3KmQ37UhFckAjSlDjZnLo5CK9XxkZnXChHqZdyh3qVg+bvCk/5agz+KdK/Sy7sZ23Mmy29rzIetqIaUnp3mHORGpIF99Abw6aL2Zv6ah5m/y9CyKnhTylrMwe8uRMLInN9nEcqMt5Sn5EKpmzeD3wDkwtekJ+HJvEPS4HmdXiFUcH5sYLt4pEGjBhxuAqCv+ffqJjkN3dJBfO5CS9dhxMZ6SiCvwXGRFbdXRsWgOh+5bwwy5QMHZzjlDOsODg2ecBoXiWikSZtOwWuYO44SfEBk/WDfAZsg5c9M0s4ZBXY4UvticcaWsnbG3L1yFKGJMGWEAUcn0QnJIhzs+6nSsa0EHMqIeD/WUphjr1QHeqBKIW7LKLQ4oknQ+ka8j1cpHKWXSdEPn9BUSO6gihtw2vxLzcaPXtut+emJFcUMCkmlFxBBcHG+xL+jxObTrHVkEO35L8P3L8SeY8vOdYhM1ZbTLOoSrQXHAUkRzIsWPI46Jbw8cPSXFSGhu83imzkSja2RSZiJ/pkMwbEA42LKvYazji85AceXwoJ7OBHWWvOhhzup1w7pbDSg7psFnam7RudDEEPSRJ0rXhVbPb4vBmV/ovnOH9huUXTXbDMyalo6l+ZaCSC22ekbCb/1ennwOoMUgjUE3qV5MZuo74G4KqRHujc8tszx3ogiuuvaWQ7w4ySftwbs8LLI4QdCLLD5AvJdVUtY6LSCcYvTd0SqXcwp7Q50Jy+XOnwool6uwJIfvoP7Ib+pT0EaPW8Efbrok5PMoN4N42BRI1dnnkl6iMTNSnqnreF/eFH6I4wHlNiHbi1rDhvDAHHBwuiAjUgSii7RO51G88xv2AqB9fFxphL23tpOkT9JzCmbdi6FeAJI4tR4PW0KEVRHWkody5GsmBDuk4En8DJ/qf6RHkqB9V5Z47wBBaHsupqUjkdDJIXghRMUfc2s9ulEKtZC5dqKjRpYeJVbmYSxdS3JdprZFsNxXVC/i3yTIspy2Fmay80c5IGqTohjVsLpF4rVMzYsTpyW0MVAE+KAfqS3+tQpxKdFiihHOZpaprcaoFNJtRKwoUG8L2ymBAiDnEgyag8/T4nRyGuAvMOa1FgFe+UMQwz8gS5YdP8CtDqrnKBC4jib1gGqiZx5hOY9mx17KtCLCatRy8XqGdnVpK8LzzOEqSozNkfZYUYPxGRlF3Hq0DGg/b94/O4Pwjx+/BB2gj6rqWPLbK3wRyt/PACjEXnOdRQSxJn4JH6K9k4ubfugmhh+GhiCZtRf6tD6HahnG+rGYsKBB6WYn3Qc/tQ0hkTgn35PiIaWihKaBLI/gE9pfqncmLPhX/fvQ9SMS62OO5Y6QCYJ65J4xUk6dYfqucCyZ/2k/NeaR0bpizc/4ikgib9toWxfTBtog9wMYKo1VUiyoX8vnatoUhjc7FYlbKlq3VZ6FEhRNZ1PInWQLN1Dg950ToPSDaIC8E0t0IX8aTdNN22o6sWwVrSKUefd8quuWqs0s1lNsxqLtEAO3tnxmYO3RcSocKnwWRBM2q3LcI2nN6KFi+0zKX3SQ43Q9+MaFhM3rVSQXlePrd/0kT9JM+bv5FVef66LxwR0ECqp/qCwxDt4nWfMgWGOxY5ImEhCylUlL81bei1O5XcbjSRHIypxTFlp4MGMehh/JA5inIMK68cNIy9ttqMPgXNvwaKo1ShQc3+6DIdRJuMQRkPMmF4+0I/z+C9UNOVIIqFro/5llX+iBEqvnuCh8AYQekSX96AqlAVQIaSy/KvWUviEw9wPnpdjNWWyxiBYl+aaFKfJGILM8wXzoLSzC+8HQ4MEaWSj0Qxq6a7aQ/eDy07H30ypUAWo2Mh6BpAk5ohnn54FlTWYqc/yoEwA6ARcYNU+hlOn+1lRmHNbouWC2QvNMmyx0FVGonZq+dCpPrGCEj7CRVpJ8O9D6KHt8AEh/cW05caeg9/NWUWDoSJ+t/BCmtZRGYrFUriFrbNxkQV8ioLsN2Qkhoy03mjMmaYw9zRPchOeKzyUdqU0SfQ1O/QdpuQprdbp4a7d3xyTE+oBHi0s7Qs7X/AmWout8sn9U3Y6KyfhlbVl8ius3qgTtPcrqZnAVbOunvdbsQjZn5v54eB/UzCE/UGHIlzm1IyStWYr2iAiL/sx0GlmdRl6lIHmFfjOCjdi2+0j9GkQTA1BTdSQf3OknqW/Au9dFR09FCvjvhXNE9h1Z3qcsWDjGONYeyHYcaZHBXtUFa5nlqMToBqKjqAaCeO9DXikeOdePZwoMP58+olw5MBwcp5xpR0J4SrPlRjs2ATWbN3EnBX205khuQbiS7slKKZFz63g9pHi01AZpzXvIGoIeLCw4vWgn2cj/n3uIr35OwMtyznzZ7DxfzLQPmJTTabHO4QuipeQlmb+eYM8T/zNA5esaGJX+SvsdohM47ehLb3R5gPdStp3k8P+oDYAJ4q3Z3yj1ykW/HVwNHu2TikTAeSl11EmywYVXsMGNVKD/5uzTT1OdjK3G3ycTzfzTQnB+y7xiNFEYv0OU+8054aXdpXqq0cqyPBDKp2asXncQnDaCTY/UG0DGqqx/dF7BRsVONbuWvNAiNAnJKp39IMLuCWUXoXnB0bg+6W6XqSWPHgymzF50kSulF900eyayT9jl70soS6UqbeAhiYWetvb/qRKomCkoz/cSYgg4L1VadPSnXPqntjZ+Q7jpXhmQJ97ulj6xwCzj+QNPAym9qTrGqId1FML3KwMRF6dOBimklcfyQirVbOX2UdsZGu2sNwr+8V0/CTyJwJbF0Q/bXpShqSpxQAbiXc28WEK+VPj8HRy/4R3fzWagXU/p+bZyov6rfEQN4VD744a8D9cRwoZ/TLEpxVEpM8K1LPb1HDudWVe0xi0aUqPCTWyuLQ7SgEBWTz8thQEEDNIxyouqj46rNvfEDYreLqGAxnrEiozVj001J/r0HBtYwIVG3UPutfN2a+rAKZkesDTXrM2pLxBpU5kScwqWh8TSaOuGxBWXvMDg9IxLv+QGS1WMXcas9lK4R090+f0B6P+dhQTQBcQ4EmqhUpS8cQwD3ybKrZh3AQ/70pjtaTp9pJZbuGEosCY6GEksuo6HEkrbIlZhRjhyHpQkNr3694Cm2/QBmsH6LvGKbXq77VqOMIn0wGkU6YzSK9MpoFOme0SiSSWo0yvvhKDgT2HYydP4yUPI7BkFJT08DJd09DZT0+VgoeJnb5N3YzDl4fbegyMk3o1EkAfhoFDbOGBQe1whjpXhKPuJamli/9oG5hrOgqN8kC/geN2vosE7QuVpjEScsIhS+LfSyJ44xOcHVXn2B+Cn6eUeJbh8OFmi7fxk9Li3YJFPPgk0y+QDGWPSpnpJYEz0kh6dWbMTgsjCs0wQwbPIJYDidJ4DhAjcBDFe4CWC4xPWEMQJQgxGgiWSmzrXI78wzgHGsTLo+8jXmVr6Y615I33KkF+jo7Rdz3QdpzjohJK+ok3wZUKc566RIph7ypUedkK/hSTcDm8xeOZPGC3HFYQiX6FQQn9CRT64KwNQNcNKU5QJZbOAxKf6aBo8pHfJEEriE9sOFQRNZQ0kQ31d48GiOODcjgUGBgx/Cf/Qo3EDiNhwJJTJYvYBtuJYjpeiL7pDHQve7fTROBuHOhHqql5+EONacaFZPy4YXjZG2ep8W/7LDnjRQrxh7sff6Lw\x3d\x3d";Sidebar.prototype.searchFileUrl=
"search.xml";Sidebar.prototype.gearImage=GRAPH_IMAGE_PATH+"/clipart/Gear_128x128.png";Sidebar.prototype.defaultEntries="general;images;uml;er;bpmn;flowchart;basic;arrows2";Sidebar.prototype.signs="Animals Food Healthcare Nature People Safety Science Sports Tech Transportation Travel".split(" ");Sidebar.prototype.rack="General APC Cisco Dell F5 HP IBM Oracle".split(" ");Sidebar.prototype.pids="Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";");
Sidebar.prototype.cisco="Buildings;Computers and Peripherals;Controllers and Modules;Directors;Hubs and Gateways;Misc;Modems and Phones;People;Routers;Security;Servers;Storage;Switches;Wireless".split(";");Sidebar.prototype.sysml="Model Elements;Blocks;Ports and Flows;Constraint Blocks;Activities;Interactions;State Machines;Use Cases;Allocations;Requirements;Profiles;Stereotypes".split(";");Sidebar.prototype.eip="Message Construction;Message Routing;Message Transformation;Messaging Channels;Messaging Endpoints;Messaging Systems;System Management".split(";");
Sidebar.prototype.gmdl="Bottom Navigation;Bottom Sheets;Buttons;Cards;Chips;Dialogs;Dividers;Grid Lists;Icons;Lists;Menus;Misc;Pickers;Selection Controls;Sliders;Steppers;Tabs;Text Fields".split(";");Sidebar.prototype.aws2="Analytics;Application Services;Compute;Database;Developer Tools;Enterprise Applications;Game Development;General;Internet of Things;Management Tools;Mobile Services;Networking;On-Demand Workforce;SDKs;Security and Identity;Storage and Content Delivery;Groups".split(";");Sidebar.prototype.office=
-"Clouds Communications Concepts Databases Devices Security Servers Services Sites Users".split(" ");Sidebar.prototype.veeam=["2D","3D"];Sidebar.prototype.archimate3="Application;Business;Composite;Implementation and Migration;Motivation;Physical;Relationships;Strategy;Technology".split(";");Sidebar.prototype.configuration=[{id:"general",libs:["general","misc","advanced"]},{id:"uml"},{id:"search"},{id:"er"},{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},
-{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;Intune;Other;System Center;Deprecated".split(";")},{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},
-{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"ee",libs:"LogicGates Resistors Capacitors Inductors SwitchesRelays Diodes Sources Transistors Misc Audio PlcLadder Abstract Optical VacuumTubes Waveforms Instruments".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;t<q.length;t++)if(0<=mxUtils.indexOf(r,q[t])){s="Need help with connections?";
-break}null!=s&&(q=document.createElement("a"),q.setAttribute("href","https://www.youtube.com/watch?v\x3d8OaMWa4R1SE\x26t\x3d1"),q.setAttribute("target","_blank"),q.className="geTitle",q.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;",mxUtils.write(q,s),b.appendChild(q))}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,
-a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,d){for(var c=0;c<a.length;c++)this.showPalette(b+a[c],d)};Sidebar.prototype.showPalette=function(b,a){var d=this.palettes[b];if(null!=d)for(var c=null!=a?a?"block":"none":"none"==d[0].style.display?"block":"none",f=0;f<d.length;f++)d[f].style.display=c};Sidebar.prototype.isEntryVisible=function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var d=this.palettes[null!=
-this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=d)return"none"!=d[0].style.display}return!1};Sidebar.prototype.showEntries=function(b,a,d){this.libs=null!=b&&(d||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();d=this.libs.split(";");for(var c=0;c<this.configuration.length;c++)"search"!=this.configuration[c].id&&this.showPalettes(this.configuration[c].prefix||"",this.configuration[c].libs||
-[this.configuration[c].id],0<=mxUtils.indexOf(d,this.configuration[c].id));a&&(mxSettings.setLibraries(b),mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),
-id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.jpg"},{title:mxResources.get("flowchart"),id:"flowchart",image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+
-"/sidebar-ios.png"},{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws2",image:IMAGE_PATH+"/sidebar-aws.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),id:"azure",image:IMAGE_PATH+"/sidebar-azure.png"},{title:"Cloud \x26 Enterprise",
-id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),
-entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),
-id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:mxResources.get("signs"),
-id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=this.editorUi.isOffline();this.shapetags={};if(null!=this.tagIndex)for(var b=this.editorUi.editor.graph.decompress(this.tagIndex).split("\n"),a=0;a<b.length;a++)if(null!=b[a]){var d=b[a].split("\t");if(1<d.length){var c=d[0].toLowerCase().replace(" ","_"),d=mxUtils.trim(d.slice(1,d.length).join(" ").toLowerCase());0<d.length&&(this.shapetags[c]=d)}}this.initPalettes();this.editorUi.isOffline()||mxUtils.get(this.searchFileUrl,
-mxUtils.bind(this,function(b){b=b.getDocumentElement();if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var d=b[a].getAttribute("style"),e=this.extractShapeStyle(d);if(null!=d&&null!=e){var c=e.lastIndexOf(".");if(0<c){var f=e.substring(0,c),e=e.substring(c+1,e.length),c=this.getTagsForStencil(f,e,b[a].getAttribute("tags"));if(null!=c){var g=d.indexOf(";"),d="shape\x3d"+f+"."+e.toLowerCase()+";"+(0>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.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(" "),
+"Clouds Communications Concepts Databases Devices Security Servers Services Sites Users".split(" ");Sidebar.prototype.veeam=["2D","3D"];Sidebar.prototype.archimate3="Application;Business;Composite;Implementation and Migration;Motivation;Physical;Relationships;Strategy;Technology".split(";");Sidebar.prototype.electrical="LogicGates Resistors Capacitors Inductors SwitchesRelays Diodes Sources Transistors Misc Audio PlcLadder Abstract Optical VacuumTubes Waveforms Instruments RotMech Transmission".split(" ");
+Sidebar.prototype.configuration=[{id:"general",libs:["general","misc","advanced"]},{id:"uml"},{id:"search"},{id:"er"},{id:"ios",prefix:"ios",libs:["","7icons","7ui"]},{id:"android",prefix:"android",libs:[""]},{id:"aws3d"},{id:"flowchart"},{id:"basic"},{id:"arrows"},{id:"arrows2"},{id:"lean_mapping"},{id:"citrix"},{id:"azure"},{id:"network"},{id:"mscae",prefix:"mscae",libs:"Cloud;Enterprise;General;Intune;Other;System Center;Deprecated".split(";")},{id:"bpmn",prefix:"bpmn",libs:["","Gateways","Events"]},
+{id:"clipart",prefix:null,libs:"computer finance clipart networking people telco".split(" ")},{id:"eip",prefix:"eip",libs:Sidebar.prototype.eip},{id:"mockups",prefix:"mockup",libs:"Buttons Containers Forms Graphics Markup Misc Navigation Text".split(" ")},{id:"pid2",prefix:"pid2",libs:"Agitators;Apparatus Elements;Centrifuges;Compressors;Compressors ISO;Crushers Grinding;Driers;Engines;Feeders;Filters;Fittings;Flow Sensors;Heat Exchangers;Instruments;Misc;Mixers;Piping;Pumps;Pumps DIN;Pumps ISO;Separators;Shaping Machines;Valves;Vessels".split(";")},
+{id:"signs",prefix:"signs",libs:Sidebar.prototype.signs},{id:"rack",prefix:"rack",libs:Sidebar.prototype.rack},{id:"electrical",prefix:"electrical",libs:Sidebar.prototype.electrical},{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;t<q.length;t++)if(0<=mxUtils.indexOf(r,q[t])){s="Need help with connections?";break}null!=s&&(q=document.createElement("a"),q.setAttribute("href","https://www.youtube.com/watch?v\x3d8OaMWa4R1SE\x26t\x3d1"),q.setAttribute("target","_blank"),q.className="geTitle",q.style.cssText="background-color:#ffd350;border-radius:6px;color:black;border:1px solid black !important;text-align:center;white-space:normal;padding:6px 0px 6px 0px !important;margin:4px 4px 8px 2px;",
+mxUtils.write(q,s),b.appendChild(q))}a.apply(this,arguments)};Sidebar.prototype.togglePalettes=function(b,a){this.showPalettes(b,a)};Sidebar.prototype.togglePalette=function(b){this.showPalette(b)};Sidebar.prototype.showPalettes=function(b,a,d){for(var c=0;c<a.length;c++)this.showPalette(b+a[c],d)};Sidebar.prototype.showPalette=function(b,a){var d=this.palettes[b];if(null!=d)for(var c=null!=a?a?"block":"none":"none"==d[0].style.display?"block":"none",f=0;f<d.length;f++)d[f].style.display=c};Sidebar.prototype.isEntryVisible=
+function(b){for(var a=0;a<this.configuration.length;a++)if(this.configuration[a].id==b){var d=this.palettes[null!=this.configuration[a].libs?(this.configuration[a].prefix||"")+this.configuration[a].libs[0]:b];if(null!=d)return"none"!=d[0].style.display}return!1};Sidebar.prototype.showEntries=function(b,a,d){this.libs=null!=b&&(d||0<b.length)?b:null!=urlParams.libs&&0<urlParams.libs.length?decodeURIComponent(urlParams.libs):mxSettings.getLibraries();d=this.libs.split(";");for(var c=0;c<this.configuration.length;c++)"search"!=
+this.configuration[c].id&&this.showPalettes(this.configuration[c].prefix||"",this.configuration[c].libs||[this.configuration[c].id],0<=mxUtils.indexOf(d,this.configuration[c].id));a&&(mxSettings.setLibraries(b),mxSettings.save())};Sidebar.prototype.init=function(){this.entries=[{title:mxResources.get("standard"),entries:[{title:mxResources.get("general"),id:"general",image:IMAGE_PATH+"/sidebar-general.png"},{title:mxResources.get("arrows"),id:"arrows2",image:IMAGE_PATH+"/sidebar-arrows2.png"},{title:mxResources.get("basic"),
+id:"basic",image:IMAGE_PATH+"/sidebar-basic.png"},{title:mxResources.get("clipart"),id:"clipart",image:IMAGE_PATH+"/sidebar-clipart.jpg"},{title:mxResources.get("flowchart"),id:"flowchart",image:IMAGE_PATH+"/sidebar-flowchart.png"}]},{title:mxResources.get("software"),entries:[{title:mxResources.get("android"),id:"android",image:IMAGE_PATH+"/sidebar-android.png"},{title:mxResources.get("bootstrap"),id:"bootstrap",image:IMAGE_PATH+"/sidebar-bootstrap.png"},{title:mxResources.get("entityRelation"),
+id:"er",image:IMAGE_PATH+"/sidebar-er.png"},{title:mxResources.get("ios"),id:"ios",image:IMAGE_PATH+"/sidebar-ios.png"},{title:mxResources.get("mockups"),id:"mockups",image:IMAGE_PATH+"/sidebar-mockups.png"},{title:mxResources.get("uml"),id:"uml",image:IMAGE_PATH+"/sidebar-uml.png"}]},{title:mxResources.get("networking"),entries:[{title:mxResources.get("aws"),id:"aws2",image:IMAGE_PATH+"/sidebar-aws.png"},{title:mxResources.get("aws3d"),id:"aws3d",image:IMAGE_PATH+"/sidebar-aws3d.png"},{title:mxResources.get("azure"),
+id:"azure",image:IMAGE_PATH+"/sidebar-azure.png"},{title:"Cloud \x26 Enterprise",id:"mscae",image:IMAGE_PATH+"/sidebar-mscae.png"},{title:mxResources.get("cisco"),id:"cisco",image:IMAGE_PATH+"/sidebar-cisco.png"},{title:"Citrix",id:"citrix",image:IMAGE_PATH+"/sidebar-citrix.png"},{title:"Network",id:"network",image:IMAGE_PATH+"/sidebar-network.png"},{title:"Office",id:"office",image:IMAGE_PATH+"/sidebar-office.png"},{title:mxResources.get("rack"),id:"rack",image:IMAGE_PATH+"/sidebar-rack.png"},{title:"Veeam",
+id:"veeam",image:IMAGE_PATH+"/sidebar-veeam.png"}]},{title:mxResources.get("business"),entries:[{title:"ArchiMate 3.0",id:"archimate3",image:IMAGE_PATH+"/sidebar-archimate3.png"},{title:mxResources.get("archiMate21"),id:"archimate",image:IMAGE_PATH+"/sidebar-archimate.png"},{title:mxResources.get("bpmn"),id:"bpmn",image:IMAGE_PATH+"/sidebar-bpmn.png"},{title:mxResources.get("leanMapping"),id:"lean_mapping",image:IMAGE_PATH+"/sidebar-leanmapping.png"},{title:mxResources.get("sysml"),id:"sysml",image:IMAGE_PATH+
+"/sidebar-sysml.png"}]},{title:mxResources.get("other"),entries:[{title:mxResources.get("cabinets"),id:"cabinets",image:IMAGE_PATH+"/sidebar-cabinets.png"},{title:mxResources.get("eip"),id:"eip",image:IMAGE_PATH+"/sidebar-eip.png"},{title:mxResources.get("electrical"),id:"electrical",image:IMAGE_PATH+"/sidebar-electrical.png"},{title:mxResources.get("floorplans"),id:"floorplan",image:IMAGE_PATH+"/sidebar-floorplans.png"},{title:mxResources.get("gmdl"),id:"gmdl",image:IMAGE_PATH+"/sidebar-gmdl.png"},
+{title:mxResources.get("procEng"),id:"pid",image:IMAGE_PATH+"/sidebar-pid.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}];this.addStencilsToIndex=this.editorUi.isOffline();this.shapetags={};if(null!=this.tagIndex)for(var b=this.editorUi.editor.graph.decompress(this.tagIndex).split("\n"),a=0;a<b.length;a++)if(null!=b[a]){var d=b[a].split("\t");if(1<d.length){var c=d[0].toLowerCase().replace(" ","_"),d=mxUtils.trim(d.slice(1,d.length).join(" ").toLowerCase());
+0<d.length&&(this.shapetags[c]=d)}}this.initPalettes();this.editorUi.isOffline()||mxUtils.get(this.searchFileUrl,mxUtils.bind(this,function(b){b=b.getDocumentElement();if(null!=b){b=b.getElementsByTagName("shape");for(var a=0;a<b.length;a++){var d=b[a].getAttribute("style"),e=this.extractShapeStyle(d);if(null!=d&&null!=e){var c=e.lastIndexOf(".");if(0<c){var f=e.substring(0,c),e=e.substring(c+1,e.length),c=this.getTagsForStencil(f,e,b[a].getAttribute("tags"));if(null!=c){var g=d.indexOf(";"),d="shape\x3d"+
+f+"."+e.toLowerCase()+";"+(0>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.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(" "),
@@ -3190,8 +3190,8 @@ r[b]?this.addEipMessagingSystemsPalette():"System Management"==r[b]&&this.addEip
this.addGMDLPickersPalette():"Selection Controls"==s[b]?this.addGMDLSelectionControlsPalette():"Sliders"==s[b]?this.addGMDLSlidersPalette():"Steppers"==s[b]?this.addGMDLSteppersPalette():"Tabs"==s[b]?this.addGMDLTabsPalette():"Text Fields"==s[b]&&this.addGMDLTextFieldsPalette();this.addCabinetsPalette();this.addArchimate3Palette();this.addArchiMatePalette();this.showEntries()};if("1"==urlParams.createindex){var f=Sidebar.prototype.addStencilPalette;Sidebar.prototype.addStencilPalette=function(b,a,
d,c,m,n,p,r){f.apply(this,arguments);p=null!=p?p:1;mxStencilRegistry.loadStencilSet(d,mxUtils.bind(this,function(b,a,d,e,f){if(null==m||0>mxUtils.indexOf(m,a))d=null!=r?r[a]:null,mxLog.debug('\x3cshape style\x3d"shape\x3d'+b+a+c+'" w\x3d"'+Math.round(e*p)+'" h\x3d"'+Math.round(f*p)+'"'+(null!=d?' tags\x3d"'+d+'"':"")+"/\x3e")}),!0)}}var d=Sidebar.prototype.searchEntries;Sidebar.prototype.searchEntries=function(b,a,c,f,m){var n=f;this.editorUi.enableLogging&&!this.editorUi.isOffline()&&0==c&&((new Image).src=
(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dshapesearch:"+encodeURIComponent(b)+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION));f=mxUtils.bind(this,function(d,f,l,m){!this.editorUi.isOffline()&&d.length<=a/4?(l=c-Math.ceil((f-a/4)/a),mxUtils.get(ICONSEARCH_PATH+"?v\x3d2\x26q\x3d"+encodeURIComponent(b)+"\x26p\x3d"+l+"\x26c\x3d"+a,mxUtils.bind(this,function(b){try{if(200<=b.getStatus()&&299>=b.getStatus()){var e=JSON.parse(b.getText());for(b=0;b<e.icons.length;b++){for(var l=
-e.icons[b].raster_sizes,s=l.length-1;0<s&&128<l[s].size;)s--;var y=l[s].size,x=l[s].formats[0].preview_url;null!=y&&null!=x&&mxUtils.bind(this,function(b,a){d.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape\x3dimage;html\x3d1;verticalAlign\x3dtop;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;imageAspect\x3d0;aspect\x3dfixed;image\x3d"+a,b,b,"")}))})(y,x)}n(d,(c-1)*a+d.length,e.icons.length==a,m)}else n(d,f,!1,m),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(F){n(d,
-f,!1,m),this.editorUi.handleError(F)}},function(){n(d,f,!1,m)}))):n(d,f,l||!this.editorUi.isOffline(),m)});d.apply(this,arguments)};var b=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(a,d,c){var f=this.editorUi.editor.graph,m=!1;if(null!=a&&1==f.getSelectionCount()&&f.getModel().isVertex(a[0])){var n=f.cloneCells(a)[0];if(f.getModel().isEdge(f.getSelectionCell())&&null==f.getModel().getTerminal(f.getSelectionCell(),!1)&&f.getModel().isVertex(n)){f.getModel().beginUpdate();try{var p=
+e.icons[b].raster_sizes,s=l.length-1;0<s&&128<l[s].size;)s--;var z=l[s].size,x=l[s].formats[0].preview_url;null!=z&&null!=x&&mxUtils.bind(this,function(b,a){d.push(mxUtils.bind(this,function(){return this.createVertexTemplate("shape\x3dimage;html\x3d1;verticalAlign\x3dtop;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;imageAspect\x3d0;aspect\x3dfixed;image\x3d"+a,b,b,"")}))})(z,x)}n(d,(c-1)*a+d.length,e.icons.length==a,m)}else n(d,f,!1,m),this.editorUi.handleError({message:mxResources.get("unknownError")})}catch(D){n(d,
+f,!1,m),this.editorUi.handleError(D)}},function(){n(d,f,!1,m)}))):n(d,f,l||!this.editorUi.isOffline(),m)});d.apply(this,arguments)};var b=Sidebar.prototype.itemClicked;Sidebar.prototype.itemClicked=function(a,d,c){var f=this.editorUi.editor.graph,m=!1;if(null!=a&&1==f.getSelectionCount()&&f.getModel().isVertex(a[0])){var n=f.cloneCells(a)[0];if(f.getModel().isEdge(f.getSelectionCell())&&null==f.getModel().getTerminal(f.getSelectionCell(),!1)&&f.getModel().isVertex(n)){f.getModel().beginUpdate();try{var p=
f.view.getState(f.getSelectionCell());if(null!=p){var r=f.view.translate,s=f.view.scale,q=p.absolutePoints[p.absolutePoints.length-1];n.geometry.x=q.x/s-r.x-n.geometry.width/2;n.geometry.y=q.y/s-r.y-n.geometry.height/2}f.addCell(n);f.getModel().setTerminal(f.getSelectionCell(),n,!1)}finally{f.getModel().endUpdate()}f.scrollCellToVisible(n);f.setSelectionCell(n);m=!0}}m||b.apply(this,arguments)}})();
(function(){var a=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var c=a.apply(this,arguments),f=this,d=new mxCell("Vertical Flow Layout",new mxGeometry(0,0,270,280),"swimlane;html\x3d1;startSize\x3d20;horizontal\x3d1;childLayout\x3dflowLayout;flowOrientation\x3dnorth;resizable\x3d0;interRankCellSpacing\x3d50;");d.vertex=!0;var b=new mxCell("Start",new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");b.vertex=!0;d.insert(b);var e=new mxCell("Task",
new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");e.vertex=!0;d.insert(e);var g=new mxCell("",new mxGeometry(0,0,0,0),"html\x3d1;curved\x3d1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);d.insert(g);var k=new mxCell("Task",new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");k.vertex=!0;d.insert(k);g=g.clone();b.insertEdge(g,!0);k.insertEdge(g,!1);d.insert(g);b=new mxCell("End",new mxGeometry(20,20,100,40),"whiteSpace\x3dwrap;html\x3d1;");b.vertex=
@@ -3941,15 +3941,15 @@ new mxGeometry(0,180,800,240),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgrap
new mxGeometry(772,167,8,4),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");p.vertex=!0;var r=new mxCell("%USER_FULL_NAME%\n%USER_EMAIL%\n%USER_PROFILE_COMPLETENESS%\n%USER_NUM_SUCCESS_TRADES%\n%USER_FULL_NAME%\n%USER_EMAIL%\n%USER_PROFILE_COMPLETENESS%\n%USER_NUM_SUCCESS_SELLS%",new mxGeometry(550,175,240,140),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d2;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;verticalAlign\x3dtop;spacing\x3d10;shadow\x3d1;whiteSpace\x3dwrap;");
r.vertex=!0;var s=new mxCell("Message Type",new mxGeometry(0,440,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");s.vertex=!0;var q=new mxCell("Email + Push",new mxGeometry(0,460,390,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacingLeft\x3d10;fontSize\x3d16;whiteSpace\x3dwrap;");
q.vertex=!0;var t=new mxCell("",new mxGeometry(370,477,10,5),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");t.vertex=!0;var v=new mxCell("Tap target",new mxGeometry(410,440,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");v.vertex=!0;var u=new mxCell("Profile Screen",new mxGeometry(410,460,390,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;align\x3dleft;spacingLeft\x3d10;fontSize\x3d16;whiteSpace\x3dwrap;");
-u.vertex=!0;var z=new mxCell("",new mxGeometry(780,477,10,5),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");z.vertex=!0;var y=new mxCell("Send to Group",new mxGeometry(0,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");y.vertex=!0;var x=new mxCell("Top Management",new mxGeometry(10,543,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
-x.vertex=!0;var F=new mxCell("Marketing Department",new mxGeometry(10,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");F.vertex=!0;var E=new mxCell("Design Department",new mxGeometry(10,583,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
-E.vertex=!0;var A=new mxCell("Financial Department",new mxGeometry(10,603,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");A.vertex=!0;var D=new mxCell("Supply Department",new mxGeometry(10,623,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
-D.vertex=!0;var G=new mxCell("Set Type",new mxGeometry(410,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");G.vertex=!0;var H=new mxCell("",new mxGeometry(420,543,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");H.vertex=!0;var I=new mxCell("News",new mxGeometry(440,543,40,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");
-I.vertex=!0;var J=new mxCell("",new mxGeometry(420,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.radioButton;strokeColor\x3d#999999;fillColor\x3d#ffffff;");J.vertex=!0;var K=new mxCell("Reports",new mxGeometry(440,563,50,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#55BFE0;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");K.vertex=!0;var O=new mxCell("",new mxGeometry(420,
-583,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");O.vertex=!0;var U=new mxCell("Documents",new mxGeometry(440,583,70,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#EFAC43;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");U.vertex=!0;var W=new mxCell("",new mxGeometry(420,603,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");
-W.vertex=!0;var B=new mxCell("Media",new mxGeometry(440,603,40,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#3D8BCD;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");B.vertex=!0;var C=new mxCell("",new mxGeometry(420,623,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");C.vertex=!0;var Q=new mxCell("Text",new mxGeometry(440,623,30,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#999999;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");
-Q.vertex=!0;var P=new mxCell("Save Template",new mxGeometry(0,680,150,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#3D8BCD;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");P.vertex=!0;var N=new mxCell("Cancel",new mxGeometry(170,680,100,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fillColor\x3d#ffffff;align\x3dcenter;rSize\x3d5;strokeColor\x3d#dddddd;fontSize\x3d16;whiteSpace\x3dwrap;");
-N.vertex=!0;var V=new mxCell("Delete Template",new mxGeometry(630,680,170,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#DB524C;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");V.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,z,y,x,F,E,A,D,G,H,I,J,K,O,U,W,B,C,Q,P,N,V],800,720,"Edit Template")}),this.addEntry("bootstrap business contact",function(){var c=new mxCell("",new mxGeometry(0,
+u.vertex=!0;var y=new mxCell("",new mxGeometry(780,477,10,5),"shape\x3dtriangle;strokeColor\x3dnone;fillColor\x3d#000000;direction\x3dsouth;");y.vertex=!0;var z=new mxCell("Send to Group",new mxGeometry(0,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");z.vertex=!0;var x=new mxCell("Top Management",new mxGeometry(10,543,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
+x.vertex=!0;var D=new mxCell("Marketing Department",new mxGeometry(10,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");D.vertex=!0;var C=new mxCell("Design Department",new mxGeometry(10,583,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;fontSize\x3d12;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
+C.vertex=!0;var A=new mxCell("Financial Department",new mxGeometry(10,603,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");A.vertex=!0;var F=new mxCell("Supply Department",new mxGeometry(10,623,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fontSize\x3d12;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d5;");
+F.vertex=!0;var G=new mxCell("Set Type",new mxGeometry(410,520,200,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");G.vertex=!0;var H=new mxCell("",new mxGeometry(420,543,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");H.vertex=!0;var I=new mxCell("News",new mxGeometry(440,543,40,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");
+I.vertex=!0;var J=new mxCell("",new mxGeometry(420,563,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.radioButton;strokeColor\x3d#999999;fillColor\x3d#ffffff;");J.vertex=!0;var M=new mxCell("Reports",new mxGeometry(440,563,50,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#55BFE0;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");M.vertex=!0;var P=new mxCell("",new mxGeometry(420,
+583,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");P.vertex=!0;var U=new mxCell("Documents",new mxGeometry(440,583,70,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#EFAC43;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");U.vertex=!0;var W=new mxCell("",new mxGeometry(420,603,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");
+W.vertex=!0;var B=new mxCell("Media",new mxGeometry(440,603,40,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#3D8BCD;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");B.vertex=!0;var E=new mxCell("",new mxGeometry(420,623,14,14),"shape\x3dellipse;dashed\x3d0;strokeColor\x3d#999999;fillColor\x3d#ffffff;html\x3d1;");E.vertex=!0;var Q=new mxCell("Text",new mxGeometry(440,623,30,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#999999;fontColor\x3d#ffffff;fontStyle\x3d1;fontSize\x3d10;whiteSpace\x3dwrap;");
+Q.vertex=!0;var O=new mxCell("Save Template",new mxGeometry(0,680,150,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#3D8BCD;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");O.vertex=!0;var N=new mxCell("Cancel",new mxGeometry(170,680,100,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;fillColor\x3d#ffffff;align\x3dcenter;rSize\x3d5;strokeColor\x3d#dddddd;fontSize\x3d16;whiteSpace\x3dwrap;");
+N.vertex=!0;var V=new mxCell("Delete Template",new mxGeometry(630,680,170,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#DB524C;fontColor\x3d#ffffff;fontSize\x3d16;whiteSpace\x3dwrap;");V.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,y,z,x,D,C,A,F,G,H,I,J,M,P,U,W,B,E,Q,O,N,V],800,720,"Edit Template")}),this.addEntry("bootstrap business contact",function(){var c=new mxCell("",new mxGeometry(0,
0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("2 fields selected",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.checkbox;strokeColor\x3d#dddddd;fillColor\x3dnone;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(13,-7);d.vertex=!0;c.insert(d);d=new mxCell("Mark as OK",new mxGeometry(0,
0.5,90,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(150,-15);d.vertex=!0;c.insert(d);d=new mxCell("Mark as Violation",new mxGeometry(0,0.5,120,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(250,
-15);d.vertex=!0;c.insert(d);d=new mxCell("Mark all as OK",new mxGeometry(1,0.5,100,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(-110,-15);d.vertex=!0;c.insert(d);d=new mxCell("Phone",new mxGeometry(40,70,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");
@@ -3966,10 +3966,10 @@ g.vertex=!0;var k=new mxCell("Company",new mxGeometry(40,140,100,20),"html\x3d1;
new mxGeometry(40,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");p.vertex=!0;var r=new mxCell("",new mxGeometry(13,243,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");r.vertex=!0;var s=new mxCell("October",new mxGeometry(40,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
s.vertex=!0;var q=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;whiteSpace\x3dwrap;");q.geometry.relative=!0;q.geometry.offset=new mxPoint(-30,-3);q.vertex=!0;s.insert(q);q=new mxCell("2011",new mxGeometry(190,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
q.vertex=!0;var t=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;whiteSpace\x3dwrap;");t.geometry.relative=!0;t.geometry.offset=new mxPoint(-30,-3);t.vertex=!0;q.insert(t);t=new mxCell("Working to",new mxGeometry(400,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;fontColor\x3d#999999;align\x3dleft;spacingLeft\x3d5;whiteSpace\x3dwrap;");t.vertex=
-!0;var v=new mxCell("Current time",new mxGeometry(580,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;align\x3dright;spacingRight\x3d5;fontColor\x3d#55C0E0;whiteSpace\x3dwrap;");v.vertex=!0;var u=new mxCell("",new mxGeometry(340,240,40,20),"shape\x3dline;strokeWidth\x3d2;shadow\x3d0;dashed\x3d0;");u.vertex=!0;var z=new mxCell("December",new mxGeometry(400,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
-z.vertex=!0;var y=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;");y.geometry.relative=!0;y.geometry.offset=new mxPoint(-30,-3);y.vertex=!0;z.insert(y);y=new mxCell("2012",new mxGeometry(550,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");y.vertex=!0;var x=
-new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;");x.geometry.relative=!0;x.geometry.offset=new mxPoint(-30,-3);x.vertex=!0;y.insert(x);x=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");x.vertex=!0;return a.createVertexTemplateFromCells([c,
-d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,z,y,x],800,270,"Experience")}),this.addEntry("bootstrap skills",function(){var c=new mxCell("",new mxGeometry(0,0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("Select fields to update status",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");
+!0;var v=new mxCell("Current time",new mxGeometry(580,210,100,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3dnone;fillColor\x3dnone;align\x3dright;spacingRight\x3d5;fontColor\x3d#55C0E0;whiteSpace\x3dwrap;");v.vertex=!0;var u=new mxCell("",new mxGeometry(340,240,40,20),"shape\x3dline;strokeWidth\x3d2;shadow\x3d0;dashed\x3d0;");u.vertex=!0;var y=new mxCell("December",new mxGeometry(400,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");
+y.vertex=!0;var z=new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;");z.geometry.relative=!0;z.geometry.offset=new mxPoint(-30,-3);z.vertex=!0;y.insert(z);z=new mxCell("2012",new mxGeometry(550,230,130,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");z.vertex=!0;var x=
+new mxCell("",new mxGeometry(1,0.5,10,5),"shape\x3dtriangle;direction\x3dsouth;fillColor\x3d#000000;strokeColor\x3dnone;perimeter\x3dnone;");x.geometry.relative=!0;x.geometry.offset=new mxPoint(-30,-3);x.vertex=!0;z.insert(x);x=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;align\x3dcenter;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");x.vertex=!0;return a.createVertexTemplateFromCells([c,
+d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,y,z,x],800,270,"Experience")}),this.addEntry("bootstrap skills",function(){var c=new mxCell("",new mxGeometry(0,0,800,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.horLines;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;");c.vertex=!0;var d=new mxCell("Select fields to update status",new mxGeometry(0,0.5,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#dddddd;fillColor\x3d#ffffff;align\x3dleft;labelPosition\x3dright;spacingLeft\x3d10;fontStyle\x3d1;");
d.geometry.relative=!0;d.geometry.offset=new mxPoint(13,-7);d.vertex=!0;c.insert(d);d=new mxCell("Mark all as OK",new mxGeometry(1,0.5,100,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#dddddd;fillColor\x3d#fdfdfd;whiteSpace\x3dwrap;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(-120,-15);d.vertex=!0;c.insert(d);d=new mxCell("",new mxGeometry(13,103,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");
d.vertex=!0;var b=new mxCell("Engineering",new mxGeometry(40,90,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");b.vertex=!0;var e=new mxCell("ok",new mxGeometry(700,100,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");
e.vertex=!0;var g=new mxCell("",new mxGeometry(13,173,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");g.vertex=!0;var k=new mxCell("Thinking",new mxGeometry(40,160,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#FDF8E4;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");k.vertex=!0;var l=new mxCell("To Moderate",new mxGeometry(700,
@@ -3977,8 +3977,8 @@ e.vertex=!0;var g=new mxCell("",new mxGeometry(13,173,14,14),"html\x3d1;shadow\x
n.vertex=!0;var p=new mxCell("ok",new mxGeometry(700,240,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");p.vertex=!0;var r=new mxCell("",new mxGeometry(13,313,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");r.vertex=!0;var s=new mxCell("Sleeping",new mxGeometry(40,
300,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");s.vertex=!0;var q=new mxCell("ok",new mxGeometry(700,310,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");q.vertex=!0;var t=new mxCell("",
new mxGeometry(13,383,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");t.vertex=!0;var v=new mxCell("Eating",new mxGeometry(40,370,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");v.vertex=!0;var u=new mxCell("ok",new mxGeometry(700,380,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");
-u.vertex=!0;var z=new mxCell("",new mxGeometry(13,453,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");z.vertex=!0;var y=new mxCell("Walking",new mxGeometry(40,440,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");y.vertex=!0;var x=new mxCell("ok",new mxGeometry(700,
-450,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");x.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,z,y,x],800,480,"Skills")}),this.addEntry("bootstrap chat",function(){var c=new mxCell("",new mxGeometry(0,0,400,660),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3d#333333;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");
+u.vertex=!0;var y=new mxCell("",new mxGeometry(13,453,14,14),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d3;strokeColor\x3d#999999;fillColor\x3d#ffffff;");y.vertex=!0;var z=new mxCell("Walking",new mxGeometry(40,440,640,40),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3d#999999;fillColor\x3d#ffffff;align\x3dleft;fontSize\x3d16;spacingLeft\x3d10;whiteSpace\x3dwrap;");z.vertex=!0;var x=new mxCell("ok",new mxGeometry(700,
+450,30,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;align\x3dcenter;rSize\x3d3;strokeColor\x3dnone;fillColor\x3d#58B957;fontSize\x3d12;fontStyle\x3d1;fontColor\x3d#ffffff;whiteSpace\x3dwrap;");x.vertex=!0;return a.createVertexTemplateFromCells([c,d,b,e,g,k,l,m,n,p,r,s,q,t,v,u,y,z,x],800,480,"Skills")}),this.addEntry("bootstrap chat",function(){var c=new mxCell("",new mxGeometry(0,0,400,660),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3d#333333;fillColor\x3d#ffffff;whiteSpace\x3dwrap;");
c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,400,50),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rect;strokeColor\x3d#333333;fillColor\x3d#333333;whiteSpace\x3dwrap;resizeWidth\x3d1;");d.geometry.relative=!0;d.vertex=!0;c.insert(d);var b=new mxCell("John Boo",new mxGeometry(0,0.5,30,30),"shape\x3dellipse;strokeColor\x3dnone;fillColor\x3d#f0f0f0;labelPosition\x3dright;align\x3dleft;spacingLeft\x3d10;fontColor\x3d#f0f0f0;html\x3d1;");b.geometry.relative=!0;b.geometry.offset=
new mxPoint(15,-15);b.vertex=!0;d.insert(b);var e=new mxCell("",new mxGeometry(0.5,0.5,20,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.user;strokeColor\x3dnone;fillColor\x3d#999999;");e.geometry.relative=!0;e.geometry.offset=new mxPoint(-10,-10);e.vertex=!0;b.insert(e);b=new mxCell("Michael Robinson",new mxGeometry(1,0.5,30,30),"shape\x3dellipse;strokeColor\x3dnone;fillColor\x3d#f0f0f0;labelPosition\x3dleft;align\x3dright;spacingRight\x3d10;fontColor\x3d#f0f0f0;html\x3d1;");b.geometry.relative=
!0;b.geometry.offset=new mxPoint(-45,-15);b.vertex=!0;d.insert(b);d=new mxCell("",new mxGeometry(0.5,0.5,20,20),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.user;strokeColor\x3dnone;fillColor\x3d#999999;");d.geometry.relative=!0;d.geometry.offset=new mxPoint(-10,-10);d.vertex=!0;b.insert(d);d=new mxCell("15 September 2013",new mxGeometry(0,0,400,30),"html\x3d1;shadow\x3d0;dashed\x3d0;shape\x3dmxgraph.bootstrap.rrect;rSize\x3d5;strokeColor\x3dnone;fillColor\x3d#fdfdfd;fontColor\x3d#999999;whiteSpace\x3dwrap;resizeWidth\x3d1;");
@@ -4179,89 +4179,163 @@ this.createVertexTemplateEntry("strokeWidth\x3d2;dashed\x3d0;align\x3dcenter;fon
150,90,"","Wire Tap",null,null,this.getTagsForStencil("mxgraph.eip","wire_tap","eip enterprise integration pattern system management ").join(" "))])}})();
(function(){Sidebar.prototype.addElectricalPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;strokeWidth\x3d1;"+mxConstants.STYLE_SHAPE,c=a+"\x3dmxgraph.electrical.abstract.",f=a+"\x3dmxgraph.electrical.capacitors.",d="fillColor\x3d#000000;"+a+"\x3dmxgraph.electrical.diodes.",b=a+"\x3dmxgraph.electrical.inductors.",e=a+"\x3dmxgraph.electrical.miscellaneous.",
g=a+"\x3dmxgraph.electrical.electro-mechanical.",k=a+"\x3dmxgraph.electrical.logic_gates.",l=a+"\x3dmxgraph.electrical.mosfets1.",m=a+"\x3dmxgraph.electrical.transistors.",n=a+"\x3dmxgraph.electrical.opto_electronics.",p=a+"\x3dmxgraph.electrical.plc_ladder.",r=a+"\x3dmxgraph.electrical.radio.",s=a+"\x3dmxgraph.electrical.resistors.",q=a+"\x3dmxgraph.electrical.signal_sources.",t=a+"\x3dmxgraph.electrical.thermionic_devices.",v=a+"\x3dmxgraph.electrical.waveforms.",u="perimeter\x3dellipsePerimeter;"+
-a+"\x3dmxgraph.electrical.instruments.",z=a+"\x3dmxgraph.electrical.iec_logic_gates.";this.addPaletteFunctions("eeLogicGates","Electrical / Logic Gates",!1,[this.createVertexTemplateEntry(k+"and;",100,60,"","AND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","and","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"buffer;",100,60,"","Buffer",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","buffer","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+
-"d_type_flip-flop;",100,80,"","D Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_flip-flop_with_clear;",100,90,"","D Type Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_rs_flip-flop;",100,100,"","D Type RS Flip-Flop",null,
-null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_rs_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverter;",100,60,"","Inverter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverter","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverting_contact;",5,5,"","Inverting Contact",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverting_contact","electrical logic gate ").join(" ")),
-this.createVertexTemplateEntry(k+"jk_flip-flop;",100,80,"","JK Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop_with_clear;",100,90,"","JK Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop_with_sr;",100,100,"","JK Flip-Flop With SR",
-null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_sr","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nand;",100,60,"","NAND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nand","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nor;",100,60,"","NOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"or;",100,
-60,"","OR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","or","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"rs_latch;",100,80,"","RS Latch",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","rs_latch","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"synchronous_rs_latch;",100,80,"","RS Latch (Synchronous)",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","synchronous_rs_latch","electrical logic gate ").join(" ")),
-this.createVertexTemplateEntry(k+"schmitt_trigger;",100,60,"","Schmitt Trigger",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","schmitt_trigger","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"t_type_flip-flop;",100,80,"","T Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","t_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xnor;",100,60,"","XNOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
-"xnor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xor;",100,60,"","XOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","xor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(z+"and;",60,80,"","AND (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","and","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"nand;",66,80,"","NAND (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates",
-"nand","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"or;",60,80,"","OR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","or","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"nor;",66,80,"","NOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","nor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"not;",66,80,"","NOT (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates",
-"xor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(z+"xor;",60,80,"","XOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","xor","electrical iec logic gate ").join(" "))]);this.addPaletteFunctions("eeResistors","Electrical / Resistors",!1,[this.createVertexTemplateEntry(s+"resistor_1;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+
-"resistor_2;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"potentiometer_1;",100,40,"","Potentiometer",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"potentiometer_2;",100,40,"","Potentiometer",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_2",
-"electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_pot_1;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_pot_2;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_resistor_1;",100,65.5,
-"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_resistor_2;",100,65.5,"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"variable_resistor_1;",100,60,"","Resistor (Variable)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
-"variable_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"variable_resistor_2;",100,60,"","Resistor (Variable)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","variable_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor_with_instrument_or_relay_shunt;",100,20,"","Resistor (Instrument/Relay Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_with_instrument_or_relay_shunt","electrical resistor ").join(" ")),
-this.createVertexTemplateEntry(s+"resistor,_adjustable_contact;",100,40,"","Resistor (Adjustable Contact)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_adjustable_contact","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor,_shunt;",100,45,"","Resistor (Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_shunt","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"symmetrical_varistor;",100,60,"",
-"Varistor (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","symmetrical_varistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"tapped_resistor;",100,40,"","Resistor (Tapped)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","tapped_resistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"nonlinear_resistor;",100,60,"","Resistor (Nonlinear)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","nonlinear_resistor",
-"electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"memristor_1;",100,20,"","Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"memristor_2;",100,24,"","Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"magnetoresistor;",100,60,"","Magnetoresistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
-"magnetoresistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"symmetrical_photoconductive_transducer;",100,40,"","Photoconductive Transducer (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","symmetrical_photoconductive_transducer","electrical resistor ").join(" "))]);this.addPaletteFunctions("eeCapacitors","Electrical / Capacitors",!1,[this.createVertexTemplateEntry(f+"capacitor_1;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors",
-"capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_2;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_3;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_3","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_4;",100,60,"",
-"Capacitor (UK)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_4","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_5;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_5","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_6;",100,60,"","Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_6","electrical capacitor ").join(" ")),
-this.createVertexTemplateEntry(f+"differential_capacitor;",100,80,"","Differential Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","differential_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_1;",100,65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_2;",100,
-65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_1;",100,60,"","Trimmer Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","variable_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_2;",100,60,"","Trimmer Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors",
-"variable_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"feed_through_capacitor;",100,90,"","Feed Through Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","feed_through_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"ganged_capacitor;",100,130,"","Ganged Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","ganged_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+
-"multiple_capacitor;",100,130,"","Multiple Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_neg;",100,130,"","Multiple Electrolytic Capacitor (Common Negative)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_neg","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_pos;",
-100,130,"","Multiple Electrolytic Capacitor (Common Positive)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_pos","electrical capacitor ").join(" "))]);this.addPaletteFunctions("eeInductors","Electrical / Inductors",!1,[this.createVertexTemplateEntry(b+"inductor_3;",100,8,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_3","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_5;",
-100,14,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_5","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_1;",100,15,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_1","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"variable_inductor;",100,60,"","Variable",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","variable_inductor","electrical inductor ").join(" ")),
-this.createVertexTemplateEntry(b+"ferrite_core;",64,4,"","Ferrite Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","ferrite_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"iron_core;",64,4,"","Iron Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","iron_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer_1;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
-"transformer_1","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer_2;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transformer_2","electrical inductor ").join(" "))]);this.addPaletteFunctions("eeSwitchesRelays","Electrical / Switches and Relays",!1,[this.createVertexTemplateEntry(g+"2-way_switch;",75,26,"","SPDT",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","2-way_switch","electrical switch relay ").join(" ")),
-this.createVertexTemplateEntry(g+"push_switch_nc;",75,10,"","Pushbutton NC",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push_switch_nc","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"push_switch_no;",75,19,"","Pushbutton NO",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push_switch_no","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"reed_switch;",75,20,"","Reed Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
-"reed_switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay_coil;",70,35,"","Relay Coil",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay_coil","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"resonator;",100,50,"","Resonator",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","resonator","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"simple_switch;",75,32,"","SPST",
-null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","simple_switch","electrical switch relay ").join(" "))]);this.addPaletteFunctions("eeDiodes","Electrical / Diodes",!1,[this.createVertexTemplateEntry(d+"diode;",100,60,"","PN Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"gunn_diode;",100,60,"","Gunn Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","gunn_diode","electrical diode ").join(" ")),
-this.createVertexTemplateEntry(d+"schottky_diode;",100,60,"","Schottky Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","schottky_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_2;",100,60,"","Breakdown",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_2","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"tunnel_diode;",100,60,"","Tunnel Diode 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes",
+a+"\x3dmxgraph.electrical.instruments.",y=a+"\x3dmxgraph.electrical.iec_logic_gates.",z=a+"\x3dmxgraph.electrical.rot_mech.",x=a+"\x3dmxgraph.electrical.transmission.";this.addPaletteFunctions("electricalLogicGates","Electrical / Logic Gates",!1,[this.createVertexTemplateEntry(k+"and;",100,60,"","AND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","and","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"buffer;",100,60,"","Buffer",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
+"buffer","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_flip-flop;",100,80,"","D Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"d_type_flip-flop_with_clear;",100,90,"","D Type Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+
+"d_type_rs_flip-flop;",100,100,"","D Type RS Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","d_type_rs_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverter;",100,60,"","Inverter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","inverter","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"inverting_contact;",5,5,"","Inverting Contact",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
+"inverting_contact","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop;",100,80,"","JK Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"jk_flip-flop_with_clear;",100,90,"","JK Flip-Flop With Clear",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_clear","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+
+"jk_flip-flop_with_sr;",100,100,"","JK Flip-Flop With SR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","jk_flip-flop_with_sr","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nand;",100,60,"","NAND",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nand","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"nor;",100,60,"","NOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","nor","electrical logic gate ").join(" ")),
+this.createVertexTemplateEntry(k+"or;",100,60,"","OR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","or","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"rs_latch;",100,80,"","RS Latch",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","rs_latch","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"synchronous_rs_latch;",100,80,"","RS Latch (Synchronous)",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","synchronous_rs_latch",
+"electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"schmitt_trigger;",100,60,"","Schmitt Trigger",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","schmitt_trigger","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"t_type_flip-flop;",100,80,"","T Type Flip-Flop",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","t_type_flip-flop","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xnor;",100,60,"","XNOR",null,
+null,this.getTagsForStencil("mxgraph.electrical.logic_gates","xnor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(k+"xor;",100,60,"","XOR",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","xor","electrical logic gate ").join(" ")),this.createVertexTemplateEntry(y+"and;",60,80,"","AND (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","and","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(y+"nand;",66,80,"","NAND (IEC)",
+null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","nand","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(y+"or;",60,80,"","OR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","or","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(y+"nor;",66,80,"","NOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","nor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(y+
+"not;",66,80,"","NOT (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","xor","electrical iec logic gate ").join(" ")),this.createVertexTemplateEntry(y+"xor;",60,80,"","XOR (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.iec_logic_gates","xor","electrical iec logic gate ").join(" "))]);this.addPaletteFunctions("electricalResistors","Electrical / Resistors",!1,[this.createVertexTemplateEntry(s+"resistor_1;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor_2;",100,20,"","Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"potentiometer_1;",100,40,"","Potentiometer",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"potentiometer_2;",100,40,"","Potentiometer",
+null,null,this.getTagsForStencil("mxgraph.electrical.resistors","potentiometer_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_pot_1;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_pot_2;",100,40,"","Potentiometer (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_pot_2","electrical resistor ").join(" ")),
+this.createVertexTemplateEntry(s+"trimmer_resistor_1;",100,65.5,"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"trimmer_resistor_2;",100,65.5,"","Resistor (Trimmer)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","trimmer_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"variable_resistor_1;",100,60,"","Resistor (Variable)",
+null,null,this.getTagsForStencil("mxgraph.electrical.resistors","variable_resistor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"variable_resistor_2;",100,60,"","Resistor (Variable)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","variable_resistor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor_with_instrument_or_relay_shunt;",100,20,"","Resistor (Instrument/Relay Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"resistor_with_instrument_or_relay_shunt","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"attenuator;",100,60,"","Attenuator",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","attenuator","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"resistor,_adjustable_contact;",100,40,"","Resistor (Adjustable Contact)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_adjustable_contact","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+
+"resistor,_shunt;",100,45,"","Resistor (Shunt)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","resistor,_shunt","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"symmetrical_varistor;",100,60,"","Varistor (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","symmetrical_varistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"tapped_resistor;",100,40,"","Resistor (Tapped)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"tapped_resistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"nonlinear_resistor;",100,60,"","Resistor (Nonlinear)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","nonlinear_resistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"memristor_1;",100,20,"","Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_1","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"memristor_2;",100,24,"",
+"Memristor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","memristor_2","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"magnetoresistor;",100,60,"","Magnetoresistor",null,null,this.getTagsForStencil("mxgraph.electrical.resistors","magnetoresistor","electrical resistor ").join(" ")),this.createVertexTemplateEntry(s+"symmetrical_photoconductive_transducer;",100,40,"","Photoconductive Transducer (Symmetrical)",null,null,this.getTagsForStencil("mxgraph.electrical.resistors",
+"symmetrical_photoconductive_transducer","electrical resistor ").join(" "))]);this.addPaletteFunctions("electricalCapacitors","Electrical / Capacitors",!1,[this.createVertexTemplateEntry(f+"capacitor_1;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_2;",100,60,"","Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_2","electrical capacitor ").join(" ")),
+this.createVertexTemplateEntry(f+"capacitor_3;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_3","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_4;",100,60,"","Capacitor (UK)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_4","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_5;",100,60,"","Electrolytic Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors",
+"capacitor_5","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"capacitor_6;",100,60,"","Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","capacitor_6","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"differential_capacitor;",100,80,"","Differential Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","differential_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_1;",
+100,65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"trimmer_capacitor_2;",100,65.5,"","Tuning Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","trimmer_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_1;",100,60,"","Trimmer Variable Capacitor (US)",null,null,
+this.getTagsForStencil("mxgraph.electrical.capacitors","variable_capacitor_1","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"variable_capacitor_2;",100,60,"","Trimmer Variable Capacitor (US)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","variable_capacitor_2","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"feed_through_capacitor;",100,90,"","Feed Through Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","feed_through_capacitor",
+"electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"ganged_capacitor;",100,130,"","Ganged Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","ganged_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_capacitor;",100,130,"","Multiple Capacitor",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_capacitor","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_neg;",
+100,130,"","Multiple Electrolytic Capacitor (Common Negative)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_neg","electrical capacitor ").join(" ")),this.createVertexTemplateEntry(f+"multiple_electrolytic_capacitor_comm_pos;",100,130,"","Multiple Electrolytic Capacitor (Common Positive)",null,null,this.getTagsForStencil("mxgraph.electrical.capacitors","multiple_electrolytic_capacitor_comm_pos","electrical capacitor ").join(" "))]);this.addPaletteFunctions("electricalInductors",
+"Electrical / Inductors",!1,[this.createVertexTemplateEntry(b+"inductor_3;",100,8,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_3","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_5;",100,14,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor_5","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor_1;",100,15,"","Inductor (Air Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"inductor_1","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"variable_inductor;",100,60,"","Variable",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","variable_inductor","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"ferrite_core;",64,4,"","Ferrite Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","ferrite_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"iron_core;",64,4,"","Iron Core",null,null,
+this.getTagsForStencil("mxgraph.electrical.inductors","iron_core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"magnetic_core;direction\x3dnorth;",64,3,"","Magnetic Core",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","magnetic core","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer_1;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transformer_1","electrical inductor ").join(" ")),
+this.createVertexTemplateEntry(b+"transformer_2;",64,60,"","Transformer (Iron Core)",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transformer_2","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"half_inductor;",32,23,"","Half Inductor",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","half inductor","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transformer;direction\x3dnorth;",64,64,"","Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"inductor;",100,42,"","Inductor",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","inductor","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"choke;",100,200,"","Choke",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","choke","electrical inductor ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dtop;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dbottom;strokeWidth\x3d1;shape\x3dmxgraph.electrical.inductors.variometer;",
+150,88,"","Variometer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","variometer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"coaxial_choke;",300,50,"","Coaxial Choke",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","coaxial choke","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"transductor;",200,100,"","Transductor",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","transductor","electrical inductor ").join(" ")),
+this.createVertexTemplateEntry(b+"saturating_transformer;",200,150,"","Saturating Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","saturating_transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"potential_transformer_2;",92,40,"","Potential Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","potential transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"pot_trans_3_windings;",67,96,"",
+"Pot. Trans. 3 Windings",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","potential transformer 3 three windings","electrical inductor ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.signal_sources.current_source;",40,60,"","Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"adjustable_transformer;",46,60,"","Adjustable Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","adjustable_transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"1_phase_induction_volt_reg;",100,100,"","1-Phase Induction Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","1 phase induction voltage regulator monophase","electrical inductor ").join(" ")),
+this.createVertexTemplateEntry(b+"triplex_induction_volt_reg;",100,100,"","Triplex Induction Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","triplex induction voltage regulator","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"induction_voltage_regulator;",160,210,"","Induction Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","induction voltage regulator","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+
+"current_transformer_1;",12,75,"","Current Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","current transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"current_transformer_2;",125,175,"","Current Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","current transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"current_transformer_3;",75,10,"","Current Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors",
+"current transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"potential_transformer;",100,50,"","Potential Transformer",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","potential transformer","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+"outdoor_metering_device;",100,100,"","Outdoor Metering Device",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","outdoor metering device","electrical inductor ").join(" ")),this.createVertexTemplateEntry(b+
+"linear_coupler;",80,20,"","Linear Coupler",null,null,this.getTagsForStencil("mxgraph.electrical.inductors","linear coupler","electrical inductor ").join(" "))]);this.addPaletteFunctions("electricalSwitchesRelays","Electrical / Switches and Relays",!1,[this.createVertexTemplateEntry(g+"2-way_switch;",75,26,"","SPDT",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","2-way switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"push_switch_nc;",75,10,
+"","Pushbutton NC",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push switch nc","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"push_switch_no;",75,19,"","Pushbutton NO",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","push switch no","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"simple_switch;",75,19,"","SPST",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","simple switch",
+"electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"switch_disconnector;",75,19,"","Switch Disconnector",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","switch disconnector","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"fuse;",75,16,"","Fuse",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","fuse","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"liquid_level_actuated;",75,28,"",
+"Liquid Level Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","liquid level actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"liquid_level_actuated_2;",75,32,"","Liquid Level Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","liquid level actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"gas_flow_actuated;",75,32,"","Gas Flow Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"gas flow actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"flow_actuated;",75,31,"","Flow Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","flow actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pressure_actuated;",75,31,"","Pressure Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","pressure actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+
+"temperature_actuated;",75,31,"","Temperature Actuated",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","temperature actuated","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"safety_interlock;",75,37,"","Safety Interlock",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","safety interlock","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"temperature_switch;",75,18,"","Temperature Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"temperature switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dtop;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dbottom;strokeWidth\x3d1;shape\x3dmxgraph.electrical.electro-mechanical.thermostat;fontColor\x3d#000000;fontSize\x3d10;",75,7,"t\u00ba","Thermostat",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","thermostat","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"limit_switch;",75,16,"","Limit Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","limit switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"circuit_breaker;",75,20,"","Circuit Breaker",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","circuit breaker","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"selector_switch;",75,66,"","Selector Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"selector_switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"shorting_selector;",60,66,"","Shorting Selector",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","shorting selector","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"proximity_limit_switch;",75,55,"","Proximity Limit Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","proximity limit switch","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"inertia_switch;",75,19,"","Inertia Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","inertia switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pushbutton_break;",75,54,"","Pushbutton Break",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","pushbutton break","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"manual_switch;",75,18,"","Manual Switch",null,null,
+this.getTagsForStencil("mxgraph.electrical.electro-mechanical","manual switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"make_contact;",75,16,"","Make Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","make contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"break_contact;",75,10,"","Break Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","break contact","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"two_way_contact;",75,30,"","Two Way Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","two way contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"passing_make_contact;",75,23,"","Passing Make-Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","passing make contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"stay_put;",75,7,"","Stay Put",null,
+null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","stay put","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"dpst;",75,26,"","DPST",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","dpst","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"spring_return;",75,10,"","Spring Return",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","spring return","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+
+"spring_return_2;",75,19,"","Spring Return",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","spring return","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"limit_switch_no;",75,24,"","Limit Switch NO",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","limit switch no normally open","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"limit_switch_nc;",75,13,"","Limit Switch NC",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"limit switch nc normally closed","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"dpdt;",75,32,"","DPDT",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","dpdt","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"2_position_switch;",75,70,"","2-Position Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","2 position switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"3_position_switch;",
+60,60,"","3-Position Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","3 position switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"4_position_switch;",75,70,"","4-Position Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","4 position switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pushbutton_make;",75,53,"","Pushbutton Make",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"pushbutton make","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pushbutton_2_circuit;",75,73,"","Pushbutton 2-Circuit",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","pushbutton 2 circuit","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"time_delay_make;",75,31,"","Time Delay Make",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","time delay make","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+
+"time_delay_break;",75,32,"","Time Delay Break",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","time delay break","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"time_delay_make_2;",75,36,"","Time Delay Make",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","time delay make","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"time_delay_break_2;",75,30,"","Time Delay Break",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"time delay break","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"isolator;",75,20,"","Isolator",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","isolator","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"changeover_contact;",75,20,"","Changeover Contact",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","changeover contact","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"reed_switch;",
+75,20,"","Reed Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","reed switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay_coil;",70,35,"","Relay Coil",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay coil","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay;",100,50,"","Relay",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"relay_contacts;",30,24,"","Relay Contacts",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay contacts","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"resonator;",100,50,"","Resonator",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","resonator","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"pilot_light;",100,100,"","Pilot Light",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical",
+"pilot light","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"relay_coil_2;",100,70,"","Relay Coil",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","relay coil","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"mercury_switch;",80,80,"","Mercury Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","mercury switch","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"mercury_switch_2;",
+50,90,"","Mercury Switch",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","mercury switch","electrical switch relay ").join(" "))]);this.addPaletteFunctions("electricalDiodes","Electrical / Diodes",!1,[this.createVertexTemplateEntry(d+"diode;",100,60,"","PN Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"gunn_diode;",100,60,"","Gunn Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes",
+"gunn_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"schottky_diode;",100,60,"","Schottky Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","schottky_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_2;",100,60,"","Breakdown",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_2","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"tunnel_diode;",100,60,"","Tunnel Diode 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes",
"tunnel_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"tunnel_diode_2;",100,80,"","Tunnel Diode 2",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","tunnel_diode_2","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"field_effect_diode;",100,60,"","Field Effect Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","field_effect_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"varactor_-_varicap;",100,60,"","Varactor - Varicap",
null,null,this.getTagsForStencil("mxgraph.electrical.diodes","varactor_-_varicap","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_1;",100,60,"","Zener Diode 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_1","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"zener_diode_3;",100,60,"","Zener Diode 2",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","zener_diode_3","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+
"four_layer_diode;",100,80,"","Four Layer Diode",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","four_layer_diode","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"transorb_1;",100,60,"","Transorb 1",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","transorb_1","electrical diode ").join(" ")),this.createVertexTemplateEntry(d+"transorb_2;",100,60,"","Transorb 2",null,null,this.getTagsForStencil("mxgraph.electrical.diodes","transorb_2","electrical diode ").join(" "))]);
-this.addPaletteFunctions("eeSources","Electrical / Sources",!1,[this.createVertexTemplateEntry(q+"ac_source;",60,60,"","AC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ac_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"current_source;",40,60,"","Current",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_1;",70,75,"","DC",
-null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_2;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_3;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_3","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+
-"dependent_source_1;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dependent_source_2;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dependent_source_3;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
-"dependent_source_3","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"noise_source;",60,60,"","Noise",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","noise_source","electrical signal source ").join(" "))]);this.addPaletteFunctions("eeTransistors","Electrical / Transistors",!1,[this.createVertexTemplateEntry(m+"npn_transistor_1;",95,100,"","BJT (NPN)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","npn_transistor_1","electrical transistor ").join(" ")),
-this.createVertexTemplateEntry(m+"pnp_transistor_1;",95,100,"","BJT (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","pnp_transistor_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(m+"n-channel_jfet_1;",95,100,"","JFET (NPN)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(m+"p-channel_jfet_1;",95,100,"","JFET (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors",
-"p-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"n-channel_mosfet_1;",95,100,"","MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_n;",
-95,100,"","MOSFET Inductive Channel (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_p;",95,100,"","MOSFET Inductive Channel (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_p","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_n_no_bulk;",95,100,"","MOSFET No Bulk (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors",
-"mosfet_n_no_bulk","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_p_no_bulk;",95,100,"","MOSFET No Bulk (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_p_no_bulk","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_n;",
-95,100,"","Dual Gate MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_p;",95,100,"","Dual Gate MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_p","electrical transistor ").join(" "))]);this.addPaletteFunctions("eeInstruments","Electrical / Instruments",!1,[this.createVertexTemplateEntry(u+"ampermeter;",90,90,"","Ampermeter",
-null,null,this.getTagsForStencil("mxgraph.electrical.instruments","ampermeter","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+"galvanometer;",90,90,"","Galvanometer",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","galvanometer","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+"oscilloscope;",90,90,"","Oscilloscope",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","oscilloscope","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+
-"signal_generator;",90,90,"","Signal Generator",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","signal_generator","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+"voltmeter;",90,90,"","Voltmeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","voltmeter","electrical instrument ").join(" "))]);this.addPaletteFunctions("eeMisc","Electrical / Misc",!1,[this.createVertexTemplateEntry(r+"aerial_-_antenna_1;",80,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
-"aerial_-_antenna_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"aerial_-_antenna_2;",79,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","aerial_-_antenna_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"loop_antenna;",64.8,69.78,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","loop_antenna","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.electro-mechanical.motor_1;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;fontSize\x3d30;strokeColor\x3d#000000;strokeWidth\x3d1;",
+this.addPaletteFunctions("electricalSources","Electrical / Sources",!1,[this.createVertexTemplateEntry(q+"ac_source;",60,60,"","AC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ac_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"current_source;",40,60,"","Current",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_1;",70,75,
+"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_2;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dc_source_3;",60,60,"","DC",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dc_source_3","electrical signal source ").join(" ")),
+this.createVertexTemplateEntry(q+"dependent_source_1;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_1","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dependent_source_2;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","dependent_source_2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"dependent_source_3;",60,60,"","Dependent",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"dependent_source_3","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"noise_source;",60,60,"","Noise",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","noise_source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"ideal_source;",60,60,"","Ideal Source",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ideal source","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"explosive_squib",60,
+60,"","Explosive Squib",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","explosive squib","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.monocell_battery;",100,60,"","Accumulator / Monocell Battery",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"accumulator monocell battery single cell","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.multicell_battery;",100,60,"","Multicell Battery",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","accumulator multicell battery multi multiple cell","electrical ").join(" ")),
+this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.multicell_battery_tapped;",100,70,"","Multicell Battery Tapped",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","accumulator multicell battery tapped multi multiple cell","electrical ").join(" "))]);this.addPaletteFunctions("electricalTransistors",
+"Electrical / Transistors",!1,[this.createVertexTemplateEntry(m+"npn_transistor_1;",95,100,"","BJT (NPN)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","npn_transistor_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(m+"pnp_transistor_1;",95,100,"","BJT (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","pnp_transistor_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(m+"n-channel_jfet_1;",95,100,"","JFET (NPN)",
+null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(m+"p-channel_jfet_1;",95,100,"","JFET (PNP)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_jfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"n-channel_mosfet_1;",95,100,"","MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","n-channel_mosfet_1","electrical transistor ").join(" ")),
+this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_n;",95,100,"","MOSFET Inductive Channel (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_ic_p;",95,100,"","MOSFET Inductive Channel (P)",null,
+null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_ic_p","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_n_no_bulk;",95,100,"","MOSFET No Bulk (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_n_no_bulk","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"mosfet_p_no_bulk;",95,100,"","MOSFET No Bulk (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","mosfet_p_no_bulk","electrical transistor ").join(" ")),
+this.createVertexTemplateEntry(l+"p-channel_mosfet_1;",95,100,"","MOSFET (P)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","p-channel_mosfet_1","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_n;",95,100,"","Dual Gate MOSFET (N)",null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_n","electrical transistor ").join(" ")),this.createVertexTemplateEntry(l+"dual_gate_mosfet_p;",95,100,"","Dual Gate MOSFET (P)",
+null,null,this.getTagsForStencil("mxgraph.electrical.transistors","dual_gate_mosfet_p","electrical transistor ").join(" "))]);this.addPaletteFunctions("electricalInstruments","Electrical / Instruments",!1,[this.createVertexTemplateEntry(u+"ampermeter;",90,90,"","Ampermeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","ampermeter","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+"galvanometer;",90,90,"","Galvanometer",null,null,this.getTagsForStencil("mxgraph.electrical.instruments",
+"galvanometer","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+"oscilloscope;",90,90,"","Oscilloscope",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","oscilloscope","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+"signal_generator;",90,90,"","Signal Generator",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","signal_generator","electrical instrument ").join(" ")),this.createVertexTemplateEntry(u+"voltmeter;",90,90,"",
+"Voltmeter",null,null,this.getTagsForStencil("mxgraph.electrical.instruments","voltmeter","electrical instrument ").join(" "))]);this.addPaletteFunctions("electricalMisc","Electrical / Misc",!1,[this.createVertexTemplateEntry(r+"aerial_-_antenna_1;",80,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","aerial_-_antenna_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"aerial_-_antenna_2;",79,100,"","Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
+"aerial_-_antenna_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"loop_antenna;",64.8,69.78,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.radio","loop_antenna","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"loop_antenna",100,100,"","Loop Antenna",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","loop antenna","electrical ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.electro-mechanical.motor_1;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;fontSize\x3d30;strokeColor\x3d#000000;strokeWidth\x3d1;",
100,60,"M","Electrical Motor",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","motor_1","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.electro-mechanical.motor_2;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;fontSize\x3d30;strokeColor\x3d#000000;strokeWidth\x3d1;",100,60,"","Motor Armature",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","motor_2","electrical switch relay ").join(" ")),
this.createVertexTemplateEntry(e+"co-ax;",40,60,"","Co-Ax",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","co-ax","electrical ").join(" ")),this.createVertexTemplateEntry(e+"crystal_1;",100,40,"","Crystal",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","crystal_1","electrical ").join(" ")),this.createVertexTemplateEntry(e+"fuse_1;",100,20,"","Fuse (IEC)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_1","electrical ").join(" ")),
this.createVertexTemplateEntry(e+"fuse_2;",100,20,"","Fuse (IEEE)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_2","electrical ").join(" ")),this.createVertexTemplateEntry(e+"fuse_3;",100,12,"","Fuse (obsolete)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_3","electrical ").join(" ")),this.createVertexTemplateEntry(e+"fuse_4;",100,32,"","Fuse (IEEE)",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","fuse_4","electrical ").join(" ")),
this.createVertexTemplateEntry(e+"light_bulb;",60,50,"","Light Bulb",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","light_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"illuminating_bulb;",60,50,"","Illuminating Bulb",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","illuminating_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"light_bulb;",60,50,"","Pilot Light",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous",
-"light_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"neon_lamp_2;",60,50,"","Neon Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","neon_lamp_2","electrical ").join(" ")),this.createVertexTemplateEntry(e+"thermocouple;",80,81,"","Thermocouple",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","thermocouple","electrical ").join(" ")),this.createVertexTemplateEntry(c+"amplifier;",90,100,"","Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
-"amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"controlled_amplifier;",100,90,"","Controlled Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","controlled_amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"dac;",70,46,"","DAC",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","dac","electrical ").join(" ")),this.createVertexTemplateEntry(c+"mux;",60,90,"","Mux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
-"mux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"demux;",60,90,"","Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","demux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"mux-demux;",60,90,"","Mux-Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","mux-demux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_1;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","operational_amp_1",
-"electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_2;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","operational_amp_2","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_1;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_1","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_2;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_2","electrical ").join(" ")),
-this.createVertexTemplateEntry(c+"ota_3;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_3","electrical ").join(" ")),this.createVertexTemplateEntry(c+"quantizer;",52,46,"","Quantizer",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","quantizer","electrical ").join(" ")),this.createVertexTemplateEntry(c+"delta;",50,50,"","Delta",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","delta","electrical ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+
-"\x3dmxgraph.electrical.abstract.function;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24",50,50,"fn","Function",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","function","electrical ").join(" ")),this.createVertexTemplateEntry(c+"integrator;",50,50,"","Integrator",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","integrator","electrical ").join(" ")),this.createVertexTemplateEntry(c+"multiplier;",
-50,50,"","Multiplier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","multiplier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"sum;",50,50,"","Sum",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","sum","electrical ").join(" ")),this.createVertexTemplateEntry(c+"summation_point;",50,50,"","Summation Point",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","summation_point","electrical ").join(" ")),this.createVertexTemplateEntry(c+"filter;",
-52,46,"","Filter",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","filter","electrical ").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.bandpass_filter;",52,46,"","Bandpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","bandpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.highpass_filter;",52,46,"","Highpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
-"highpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.lowpass_filter;",52,46,"","Lowpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","lowpass_filter","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;align\x3dcenter;overflow\x3dfill;",
-100,94.25,'\x3ctable cellpadding\x3d"0" cellspacing\x3d"0" style\x3d"width:100%;height:100%;"\x3e\x3ctr height\x3d"45%"\x3e\x3ctd align\x3d"center"\x3e\\temp\\\x3c/td\x3e\x3c/tr\x3e\x3ctr height\x3d"55%"\x3e\x3ctd\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e',"Thermistor With Independent Integral Heater",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","thermistor_with_independent_integral_heater","electrical ").join(" ")),this.createVertexTemplateEntry(c+"voltage_regulator;",70,58,"","Voltage Regulator",
-null,null,this.getTagsForStencil("mxgraph.electrical.abstract","voltage_regulator","electrical ").join(" ")),this.createVertexTemplateEntry(q+"vdd;fontSize\x3d24;",60,40,"V\x3csub\x3edd\x3c/sub\x3e","Vdd",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","vdd","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.vss2;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24;html\x3d1;",
-60,40,"V\x3csub\x3ess\x3c/sub\x3e","Vss",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","vss2","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.current_flow;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",70,10,"5 mA",
-"Current Flow",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_flow","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION+"\x3dright;"+mxConstants.STYLE_ALIGN+"\x3dleft;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.voltage;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",10,70,"1.2 V","Voltage",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
-"voltage","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"equipotential;",90,90,"","Equipotential",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","equipotential","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"protective_earth;",50,40,"","Protective Earth",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","protective_earth","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"signal_ground;",
-90,60,"","Signal Ground",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","signal_ground","electrical signal source ").join(" "))]);this.addPaletteFunctions("eeAudio","Electrical / Audio",!1,[this.createVertexTemplateEntry(r+"dipole;",100,40,"","Dipole",null,null,this.getTagsForStencil("mxgraph.electrical.radio","dipole","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"electret_microphone;",70,70,"","Electret Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
-"electret_microphone","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"microphone_1;",70,70,"","Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"microphone_2;",42,70,"","Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(g+"piezo_sounder;",100,40,"","Piezo Sounder",
-null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","piezo_sounder","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"buzzer;",45,60,"","Buzzer",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","buzzer","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"loudspeaker;",25,50,"","Loudspeaker",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","loudspeaker","electrical switch relay ").join(" ")),
-this.createVertexTemplateEntry(r+"headphones;",66,56,"","Headphones",null,null,this.getTagsForStencil("mxgraph.electrical.radio","headphones","electrical radio audio ").join(" "))]);this.addPaletteFunctions("eePlcLadder","Electrical / PLC Ladder",!1,[this.createVertexTemplateEntry(p+"contact;",50,25,"","Contact",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","contact","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_contact;",
-50,25,"","Contact (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_contact","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_1;",50,25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_output_1;","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_2;",50,25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder",
-"not_output_2","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_1;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","output_1","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_2;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","output_2","electrical plc ladder programmable logic logical controller").join(" "))]);
-this.addPaletteFunctions("eeOptical","Electrical / Optical",!1,[this.createVertexTemplateEntry(n+"7_segment_display;",74.7,96.1,"","7 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","7_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"7_segment_display_with_dp;",79.8,96.9,"","7 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","7_segment_display_with_dp","electrical optical ").join(" ")),
-this.createVertexTemplateEntry(n+"9_segment_display;",74.7,96.1,"","9 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"9_segment_display_with_dp;",79.8,96.9,"","9 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display_with_dp","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"led_1;",100,65,"","LED",
-null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"led_2;",100,70,"","LED",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_2","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"light-activated_scr;",100,70,"","Light Activated SCR",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","light-activated_scr","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+
-"opto-coupler;",99,60,"","Opto-coupler",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-coupler","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"opto-transistor;",100,110,"","Opto-transistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-transistor","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photodiode;",100,70,"","Photodiode",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics",
-"photodiode","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photo_resistor_1;",100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photo_resistor_2;",100,50,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_2","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photo_resistor_3;",
-100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_3","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"solar_cell;",100,70,"","Solar Cell",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","solar_cell","electrical optical ").join(" "))]);this.addPaletteFunctions("eeVacuumTubes","Electrical / Vacuum Tubes",!1,[this.createVertexTemplateEntry(t+"diode;",70,77,"","Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices",
-"diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"double_diode;",70,77,"","Double Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"triode;",70,77,"","Triode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","triode","electrical thermionic thermo device vacuum tube ").join(" ")),
-this.createVertexTemplateEntry(t+"double_triode;",70,77,"","Double Triode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_triode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"tetrode;",70,77,"","Tetrode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","tetrode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"pentode;",70,77,"","Pentode",null,
-null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","pentode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"photocell;",70,87,"","Photocell",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","photocell","electrical thermionic thermo device vacuum tube ").join(" "))]);this.addPaletteFunctions("eeWaveforms","Electrical / Waveforms",!1,[this.createVertexTemplateEntry(v+"pulse_1;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms",
-"pulse_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"pulse_2;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","pulse_2","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"sawtooth;",90,40,"","Sawtooth",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","sawtooth","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"sine_wave;",90,66.18,"","Sine Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms",
-"sine_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"slow_square_wave;",90,80,"","Chopped Square Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","slow_square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"square_wave;",90,80,"","square_wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"step_1;",90,90,
-"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"step_2;",90,90,"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_2","electrical waveform signal ").join(" "))])}})();
+"light_bulb","electrical ").join(" ")),this.createVertexTemplateEntry(e+"neon_lamp_2;",60,50,"","Neon Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","neon_lamp_2","electrical ").join(" ")),this.createVertexTemplateEntry(e+"flourescent_lamp",80,30,"","Flourescent Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","flourescent lamp","electrical ").join(" ")),this.createVertexTemplateEntry(n+"lamp",50,100,"","Lamp",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"lamp","electrical optical ").join(" ")),this.createVertexTemplateEntry(e+"thermocouple;",80,81,"","Thermocouple",null,null,this.getTagsForStencil("mxgraph.electrical.miscellaneous","thermocouple","electrical ").join(" ")),this.createVertexTemplateEntry(c+"amplifier;",90,100,"","Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"controlled_amplifier;",100,90,"","Controlled Amplifier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
+"controlled_amplifier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"dac;",70,46,"","DAC",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","dac","electrical ").join(" ")),this.createVertexTemplateEntry(c+"mux;",60,90,"","Mux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","mux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"demux;",60,90,"","Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","demux","electrical ").join(" ")),
+this.createVertexTemplateEntry(c+"mux-demux;",60,90,"","Mux-Demux",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","mux-demux","electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_1;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","operational_amp_1","electrical ").join(" ")),this.createVertexTemplateEntry(c+"operational_amp_2;",98,90,"","Operational Amp",null,null,this.getTagsForStencil("mxgraph.electrical.abstract",
+"operational_amp_2","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_1;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_1","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_2;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_2","electrical ").join(" ")),this.createVertexTemplateEntry(c+"ota_3;",100,90,"","OTA",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","ota_3","electrical ").join(" ")),
+this.createVertexTemplateEntry(c+"quantizer;",52,46,"","Quantizer",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","quantizer","electrical ").join(" ")),this.createVertexTemplateEntry(c+"delta;",50,50,"","Delta",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","delta","electrical ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.abstract.function;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24",
+50,50,"fn","Function",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","function","electrical ").join(" ")),this.createVertexTemplateEntry(c+"integrator;",50,50,"","Integrator",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","integrator","electrical ").join(" ")),this.createVertexTemplateEntry(c+"multiplier;",50,50,"","Multiplier",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","multiplier","electrical ").join(" ")),this.createVertexTemplateEntry(c+"sum;",
+50,50,"","Sum",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","sum","electrical ").join(" ")),this.createVertexTemplateEntry(c+"summation_point;",50,50,"","Summation Point",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","summation_point","electrical ").join(" ")),this.createVertexTemplateEntry(c+"filter;",52,46,"","Filter",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","filter","electrical ").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.bandpass_filter;",
+52,46,"","Bandpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","bandpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.highpass_filter;",52,46,"","Highpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates","highpass_filter","").join(" ")),this.createVertexTemplateEntry(a+"\x3dmxgraph.electrical.logic_gates.lowpass_filter;",52,46,"","Lowpass Filter",null,null,this.getTagsForStencil("mxgraph.electrical.logic_gates",
+"lowpass_filter","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html\x3d1;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;align\x3dcenter;overflow\x3dfill;fontSize\x3d12;",100,94.25,'\x3ctable cellpadding\x3d"0" cellspacing\x3d"0" style\x3d"width:100%;height:100%;"\x3e\x3ctr height\x3d"45%"\x3e\x3ctd align\x3d"center"\x3e\\temp\\\x3c/td\x3e\x3c/tr\x3e\x3ctr height\x3d"55%"\x3e\x3ctd\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e',
+"Thermistor With Independent Integral Heater",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","thermistor_with_independent_integral_heater","electrical ").join(" ")),this.createVertexTemplateEntry(c+"voltage_regulator;",70,58,"","Voltage Regulator",null,null,this.getTagsForStencil("mxgraph.electrical.abstract","voltage_regulator","electrical ").join(" ")),this.createVertexTemplateEntry(q+"vdd;fontSize\x3d24;",60,40,"V\x3csub\x3edd\x3c/sub\x3e","Vdd",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"vdd","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.vss2;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d24;html\x3d1;",60,40,"V\x3csub\x3ess\x3c/sub\x3e","Vss",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","vss2","electrical signal source ").join(" ")),
+this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dtop;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dbottom;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.current_flow;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;align\x3dcenter;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",70,10,"5 mA","Current Flow",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","current_flow","electrical signal source ").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION+
+"\x3dright;"+mxConstants.STYLE_ALIGN+"\x3dleft;"+mxConstants.STYLE_SHAPE+"\x3dmxgraph.electrical.signal_sources.voltage;shadow\x3d0;dashed\x3d0;fillColor\x3d#ffffff;strokeColor\x3d#000000;strokeWidth\x3d1;fontSize\x3d10;html\x3d1;",10,70,"1.2 V","Voltage",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","voltage","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"equipotential;",90,90,"","Equipotential",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"equipotential","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"protective_earth;",25,20,"","Equipotential",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","protective_earth","electrical signal source ").join(" ")),this.createVertexTemplateEntry(q+"signal_ground;",45,30,"","Ground",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","signal_ground","electrical signal source ").join(" ")),this.createVertexTemplateEntry(e+"chassis;",65,
+32,"","Chassis",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","chassis","electrical ").join(" ")),this.createVertexTemplateEntry(e+"circuit_breaker;",100,13,"","Circuit Breaker",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","circuit breaker","electrical ").join(" ")),this.createVertexTemplateEntry(e+"generic_component",60,60,"","Generic Component",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","generic component","electrical ").join(" ")),
+this.createVertexTemplateEntry(e+"permanent_magnet",20,70,"","Permanent Magnet",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","permanent magnet","electrical ").join(" ")),this.createVertexTemplateEntry(e+"thermal_element",100,32,"","Thermal Element",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","thermal element","electrical ").join(" ")),this.createVertexTemplateEntry(e+"igniter_plug",72,39,"","Igniter Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"igniter plug","electrical ").join(" ")),this.createVertexTemplateEntry("shape\x3dmxgraph.arrows2.arrow;verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;dy\x3d0;dx\x3d10;notch\x3d0;",100,30,"","Pickup Head",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","pickup head","electrical ").join(" ")),this.createVertexTemplateEntry(e+"squib_ignitor",100,100,"","Squib Ignitor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"squib ignitor","electrical ").join(" ")),this.createVertexTemplateEntry(e+"transducer",70,60,"","Transducer",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","transducer","electrical ").join(" ")),this.createVertexTemplateEntry(e+"transducer_2",80,100,"","Transducer",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","transducer","electrical ").join(" ")),this.createVertexTemplateEntry(e+"thermopile",80,82,"","Thermopile",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"thermopile","electrical ").join(" ")),this.createVertexTemplateEntry(e+"indicator",60,60,"","Indicator",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","indicator","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.surge_protector;",70,20,"","Surge Protector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"surge protector","electrical ").join(" ")),this.createVertexTemplateEntry(e+"surge_protector_2;",70,24,"","Surge Protector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","surge protector","electrical ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3drect;",130,50,"","Material",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"material","electrical ").join(" ")),this.createVertexTemplateEntry(e+"sensing_link_squib",130,40,"","Sensing Link Squib",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","sensing link squib","electrical ").join(" ")),this.createVertexTemplateEntry(e+"delay_element",100,100,"","Delay Element",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","delay_element","electrical ").join(" ")),this.createVertexTemplateEntry(r+"buzzer",80,50,"","Buzzer",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"buzzer","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"adapter",100,40,"","Adapter",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","adapter","electrical radio audio ").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dellipse;perimeter\x3dellipsePerimeter;",15,15,"","Circuit Terminal",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"circuit terminal","electrical radio audio ").join(" ")),this.createEdgeTemplateEntry("endArrow\x3dopen;html\x3d1;strokeColor\x3d#000000;strokeWidth\x3d1;endFill\x3d0;endSize\x3d20;",100,0,"","M/F Contact",null,this.getTagsForStencil("mxgraph.electrical.signal_sources","","mf contact").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.miscellaneous.mf_contact_2",
+100,10,"","MF Contact 2",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","mf contact","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"terminal_board",75,150,"","Terminal Board",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","terminal board","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"cable_termination",100,50,"","Cable Termination",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","cable termination",
+"electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"2_conductor_jack",100,50,"","2-Conductor Jack",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","2 conductor jack two","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"3_conductor_jack",100,50,"","3-Conductor Jack",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","3 conductor jack three","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"2_conductor_plug",
+53,24,"","2-Conductor Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","2 conductor plug two","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"3_conductor_plug",53,24,"","3 Conductor Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","3 conductor plug","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"normalled_jacks",230,65,"","Normalled Jacks",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources",
+"normalled jacks","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"normalled_jack",110,65,"","Normalled Jack",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","normalled jack","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"coaxial_outside_conductor",300,150,"","Coaxial Outside Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","coaxial outside conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+
+"coaxial_center_conductor",300,150,"","Coaxial Center Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","coaxial center conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"large_d_connector",375,75,"","Large D Connector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","large d connector","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"small_d_connector",150,75,"","Small D Connector",null,null,
+this.getTagsForStencil("mxgraph.electrical.signal_sources","small d connector","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"c_header_connector",200,75,"","C Header Connector",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","c header connector","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"ac_out",200,100,"","AC Out",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","ac out alternate current","electrical radio audio ").join(" ")),
+this.createVertexTemplateEntry(e+"shielded_jack_plug",50,100,"","Shielded Jack/Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","shielded jack plug","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"coaxial_jack_plug",50,100,"","Coaxial Jack/Plug",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","coaxial jack/plug","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_2_conductor_1",100,100,"","F/M 2 Conductor",
+null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_2_conductor_2",100,100,"","F/M 2 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_2_conductor_3",100,50,"","F/M 2 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),
+this.createVertexTemplateEntry(e+"f_m_3_conductor_1",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_2",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_3",100,100,"","F/M 3 Conductor",null,null,
+this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_4",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(e+"f_m_3_conductor_5",100,100,"","F/M 3 Conductor",null,null,this.getTagsForStencil("mxgraph.electrical.signal_sources","fm 2 conductor","electrical radio audio ").join(" "))]);
+this.addPaletteFunctions("electricalAudio","Electrical / Audio",!1,[this.createVertexTemplateEntry(r+"dipole;",100,40,"","Dipole",null,null,this.getTagsForStencil("mxgraph.electrical.radio","dipole","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"electret_microphone;",70,70,"","Electret Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","electret_microphone","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"microphone_1;",70,70,"",
+"Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_1","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(r+"microphone_2;",42,70,"","Microphone",null,null,this.getTagsForStencil("mxgraph.electrical.radio","microphone_2","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(g+"piezo_sounder;",100,40,"","Piezo Sounder",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","piezo_sounder","electrical switch relay ").join(" ")),
+this.createVertexTemplateEntry(g+"buzzer;",45,60,"","Buzzer",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","buzzer","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(g+"loudspeaker;",25,50,"","Loudspeaker",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","loudspeaker","electrical switch relay ").join(" ")),this.createVertexTemplateEntry(r+"headphones;",66,56,"","Headphones",null,null,this.getTagsForStencil("mxgraph.electrical.radio",
+"headphones","electrical radio audio ").join(" ")),this.createVertexTemplateEntry(g+"bell;",47,60,"","Bell",null,null,this.getTagsForStencil("mxgraph.electrical.electro-mechanical","bell","electrical switch relay ").join(" "))]);this.addPaletteFunctions("electricalPlcLadder","Electrical / PLC Ladder",!1,[this.createVertexTemplateEntry(p+"contact;",50,25,"","Contact",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","contact","electrical plc ladder programmable logic logical controller").join(" ")),
+this.createVertexTemplateEntry(p+"not_contact;",50,25,"","Contact (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_contact","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_1;",50,25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_output_1;","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"not_output_2;",50,
+25,"","Output (N)",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","not_output_2","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_1;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder","output_1","electrical plc ladder programmable logic logical controller").join(" ")),this.createVertexTemplateEntry(p+"output_2;",50,25,"","Output",null,null,this.getTagsForStencil("mxgraph.electrical.plc_ladder",
+"output_2","electrical plc ladder programmable logic logical controller").join(" "))]);this.addPaletteFunctions("electricalOptical","Electrical / Optical",!1,[this.createVertexTemplateEntry(n+"7_segment_display;",74.7,96.1,"","7 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","7_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"7_segment_display_with_dp;",79.8,96.9,"","7 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics",
+"7_segment_display_with_dp","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"9_segment_display;",74.7,96.1,"","9 Segment Display",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"9_segment_display_with_dp;",79.8,96.9,"","9 Segment Display with DP",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","9_segment_display_with_dp","electrical optical ").join(" ")),
+this.createVertexTemplateEntry(n+"led_1;",100,65,"","LED",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"led_2;",100,70,"","LED",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","led_2","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"light-activated_scr;",100,70,"","Light Activated SCR",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics",
+"light-activated_scr","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"opto-coupler;",99,60,"","Opto-coupler",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-coupler","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"opto-transistor;",100,110,"","Opto-transistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","opto-transistor","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photodiode;",100,
+70,"","Photodiode",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photodiode","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photo_resistor_1;",100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_1","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photo_resistor_2;",100,50,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_2",
+"electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"photo_resistor_3;",100,90,"","Photo Resistor",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","photo_resistor_3","electrical optical ").join(" ")),this.createVertexTemplateEntry(n+"solar_cell;",100,70,"","Solar Cell",null,null,this.getTagsForStencil("mxgraph.electrical.opto_electronics","solar_cell","electrical optical ").join(" "))]);this.addPaletteFunctions("electricalVacuumTubes","Electrical / Vacuum Tubes",
+!1,[this.createVertexTemplateEntry(t+"diode;",70,77,"","Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"double_diode;",70,77,"","Double Diode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_diode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"triode;",70,77,"","Triode",null,null,
+this.getTagsForStencil("mxgraph.electrical.thermionic_devices","triode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"double_triode;",70,77,"","Double Triode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","double_triode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"tetrode;",70,77,"","Tetrode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","tetrode",
+"electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"pentode;",70,77,"","Pentode",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","pentode","electrical thermionic thermo device vacuum tube ").join(" ")),this.createVertexTemplateEntry(t+"photocell;",70,87,"","Photocell",null,null,this.getTagsForStencil("mxgraph.electrical.thermionic_devices","photocell","electrical thermionic thermo device vacuum tube ").join(" "))]);this.addPaletteFunctions("electricalWaveforms",
+"Electrical / Waveforms",!1,[this.createVertexTemplateEntry(v+"pulse_1;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","pulse_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"pulse_2;",90,90,"","Pulse",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","pulse_2","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"sawtooth;",90,40,"","Sawtooth",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms",
+"sawtooth","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"sine_wave;",90,66.18,"","Sine Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","sine_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"slow_square_wave;",90,80,"","Chopped Square Wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","slow_square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"square_wave;",90,
+80,"","square_wave",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","square_wave","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"step_1;",90,90,"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_1","electrical waveform signal ").join(" ")),this.createVertexTemplateEntry(v+"step_2;",90,90,"","Step",null,null,this.getTagsForStencil("mxgraph.electrical.waveforms","step_2","electrical waveform signal ").join(" "))]);this.addPaletteFunctions("electricalRotMech",
+"Electrical / Rotating Equipment \x26 Mechanical Functions",!1,[this.createVertexTemplateEntry("verticalLabelPosition\x3dmiddle;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dmiddle;strokeWidth\x3d1;shape\x3dellipse;fontSize\x3d32;fontColor\x3d#000000;perimeter\x3dellipsePerimeter;",100,100,"M","Rotating Machine",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","rotating machine","electrical rotating equipment mechanical function functions").join(" ")),
+this.createVertexTemplateEntry(z+"armature;",100,100,"","Armature",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","armature","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"field;",90,15,"","Field",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","field","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(e+"permanent_magnet;",20,70,"","Permanent Magnet",null,
+null,this.getTagsForStencil("mxgraph.electrical.rot_mech","permanent magnet","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"winding_connection;",100,100,"","Winding Connection",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","winding connection","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"synchro;",80,100,"","Synchro",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech",
+"synchro","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dtrapezoid;perimeter\x3dnone;",75,25,"","Brake",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","brake","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"gearing;",
+100,64,"","Gearing",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","gearing","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dmxgraph.electrical.rot_mech.rotation;",69,54,"","Rotation",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","rotation","electrical rotating equipment mechanical function functions").join(" ")),
+this.createVertexTemplateEntry(z+"clutch;",100,20,"","Clutch",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","clutch","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"clutch_2;",90,60,"","Clutch",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","clutch","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"delayed_action;",72,50,"","Delayed Action",null,null,
+this.getTagsForStencil("mxgraph.electrical.rot_mech","delayed action","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"manual_control;",50,50,"","Manual Control",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","manual control","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"blocking_device;",100,15,"","Blocking Device",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech",
+"blocking device","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"latching_device;",100,22,"","Latching Device",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","latching device","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"mechanical_interlock;",100,30,"","Mechanical Interlock",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","mechanical interlock",
+"electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"automatic_return;",100,12,"","Automatic Return",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","automatic_return","electrical rotating equipment mechanical function functions").join(" ")),this.createVertexTemplateEntry(z+"detent;",100,8,"","Detent",null,null,this.getTagsForStencil("mxgraph.electrical.rot_mech","detent","electrical rotating equipment mechanical function functions").join(" "))]);
+var D=[this.createVertexTemplateEntry(x+"bus_width;",130,156,"","Bus Width",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","bus width","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"line_concentrator;",130,130,"","Line Concentrator",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","line concentrator","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"cable_group;",130,130,"","Cable Group",
+null,null,this.getTagsForStencil("mxgraph.electrical.transmission","cable group","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"overground_enclosure;",130,136,"","Overground Enclosure",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","overground enclosure","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"optical_fiber;",130,80,"","Optical Fiber",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"optical fiber","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dbottom;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dtop;strokeWidth\x3d1;shape\x3dellipse;",10,10,"","Terminal",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","terminal","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"terminal_3_phase;",43,10,"","Terminal 3 Phase",
+null,null,this.getTagsForStencil("mxgraph.electrical.transmission","Terminal 3 Phase","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("verticalLabelPosition\x3dmiddle;shadow\x3d0;dashed\x3d0;align\x3dcenter;fillColor\x3d#ffffff;strokeColor\x3d#000000;html\x3d1;verticalAlign\x3dmiddle;strokeWidth\x3d1;shape\x3dellipse;fontColor\x3d#000000;fontSize\x3d50;fontStyle\x3d1;perimeter\x3dellipsePerimeter;",130,130,"T","Terminal",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"terminal","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"line_cable;",130,60,"","Line/Cable",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","line cable","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"anticreepage_device;",130,88,"","Anticreepage Device",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","anticreepage device","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+
+"testPoint;",60,130,"","Test Point",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","test point","electrical transmission paths bus buses").join(" ")),this.createEdgeTemplateEntry("endArrow\x3dnone;html\x3d1;strokeColor\x3d#000000;strokeWidth\x3d1;",100,0,"","Transmission Path",null,this.getTagsForStencil("mxgraph.electrical.signal_sources","","transmission path").join(" ")),this.createEdgeTemplateEntry("endArrow\x3dclassicThin;html\x3d1;strokeColor\x3d#000000;strokeWidth\x3d1;endSize\x3d20;",
+100,0,"","Direction of Flow",null,this.getTagsForStencil("mxgraph.electrical.signal_sources","","direction flow").join(" ")),this.createVertexTemplateEntry(x+"straightBus;",90,130,"","Straight Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","straight bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("html\x3d1;shadow\x3d0;dashed\x3d0;align\x3dcenter;verticalAlign\x3dmiddle;shape\x3dmxgraph.arrows2.bendArrow;dy\x3d15;dx\x3d38;notch\x3d0;arrowHead\x3d55;rounded\x3d0;strokeColor\x3d#000000;strokeWidth\x3d1;fillColor\x3d#FFFFFF;",
+130,130,"","Elbow Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","elbow bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry("html\x3d1;shadow\x3d0;dashed\x3d0;align\x3dcenter;verticalAlign\x3dmiddle;shape\x3dmxgraph.arrows2.bendArrow;dy\x3d15;dx\x3d38;notch\x3d0;arrowHead\x3d55;rounded\x3d0;strokeColor\x3d#000000;strokeWidth\x3d1;fillColor\x3d#FFFFFF;flipH\x3d1;",130,130,"","Elbow Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"elbow bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"2_line_bus;",130,25,"","2-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","2 two line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"3_line_bus;",130,30,"","3-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+
+"4_line_bus;",130,75,"","4-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"8_line_bus;",130,180,"","8-Line Bus",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 three line bus","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"twoLineBusElbow;notch\x3d25;",120,120,"","2-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission",
+"2 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"threeLineBusElbow;notch\x3d30;",120,120,"","3-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","3 two line bus elbow","electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"fourLineBusElbow;notch\x3d75;",120,120,"","4-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","4 two line bus elbow",
+"electrical transmission paths bus buses").join(" ")),this.createVertexTemplateEntry(x+"eightLineBusElbow;notch\x3d180;",200,200,"","8-Line Bus Elbow",null,null,this.getTagsForStencil("mxgraph.electrical.transmission","8 two line bus elbow","electrical transmission paths bus buses").join(" "))];this.addPalette("electricalTransmission","Electrical / Transmission Paths",!1,mxUtils.bind(this,function(b){for(var a=0;a<D.length;a++)b.appendChild(D[a](b))}))}})();
(function(){Sidebar.prototype.addErPalette=function(){var a=this,c=new mxCell("Row",new mxGeometry(0,0,40,26),"text;html\x3d1;strokeColor\x3dnone;fillColor\x3dnone;spacingLeft\x3d4;spacingRight\x3d4;whiteSpace\x3dwrap;overflow\x3dhidden;rotatable\x3d0;points\x3d[[0,0.5],[1,0.5]];portConstraint\x3deastwest;");c.vertex=!0;var f=[this.addEntry("er entity relation table",function(){var d=new mxCell("Table",new mxGeometry(0,0,160,110),"swimlane;html\x3d1;fontStyle\x3d0;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3d#e0e0e0;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;align\x3dcenter;");
d.vertex=!0;d.insert(a.cloneCell(c,"Row 1"));d.insert(a.cloneCell(c,"Row 2"));d.insert(a.cloneCell(c,"Row 3"));return a.createVertexTemplateFromCells([d],d.geometry.width,d.geometry.height,"Table")}),this.addEntry("er entity relation table section subsection",function(){var d=new mxCell("Section",new mxGeometry(0,0,140,110),"swimlane;html\x3d1;fontStyle\x3d0;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d22;fillColor\x3dnone;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;align\x3dcenter;");
d.vertex=!0;d.insert(a.cloneCell(c,"Row 1"));d.insert(a.cloneCell(c,"Row 2"));d.insert(a.cloneCell(c,"Row 3"));return a.createVertexTemplateFromCells([d],d.geometry.width,d.geometry.height,"Section")}),this.addEntry("er entity relation table section subsection",function(){var d=new mxCell("Table",new mxGeometry(0,0,160,144),"swimlane;html\x3d1;fontStyle\x3d0;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3d#e0e0e0;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;align\x3dcenter;");
@@ -4333,8 +4407,8 @@ s.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,m,n,p,r,s,d],320,
a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");c.vertex=!0;var f=new mxCell("",new mxGeometry(0,50,43,40),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dnorth;");f.vertex=!0;var k=new mxCell("",new mxGeometry(517,50,43,40),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dsouth");k.vertex=!0;var l=new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");
l.vertex=!0;var m=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");m.vertex=!0;var n=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");n.vertex=!0;var p=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");p.vertex=!0;var r=new mxCell("",new mxGeometry(230,0,40,43),
a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");r.vertex=!0;var s=new mxCell("",new mxGeometry(230,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");s.vertex=!0;var q=new mxCell("",new mxGeometry(290,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");q.vertex=!0;var t=new mxCell("",new mxGeometry(290,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
-t.vertex=!0;var v=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");v.vertex=!0;var u=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");u.vertex=!0;var z=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");z.vertex=!0;var y=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
-y.vertex=!0;var x=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");x.vertex=!0;var F=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");F.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,m,n,p,r,s,q,t,v,u,z,y,x,F,d],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(a){for(var b=
+t.vertex=!0;var v=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");v.vertex=!0;var u=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");u.vertex=!0;var y=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");y.vertex=!0;var z=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");
+z.vertex=!0;var x=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;");x.vertex=!0;var D=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;fillColor\x3d#ffffff;strokeColor\x3d#000000;shadow\x3d0;direction\x3dwest;");D.vertex=!0;return sb.createVertexTemplateFromCells([b,c,f,k,l,m,n,p,r,s,q,t,v,u,y,z,x,D,d],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(a){for(var b=
0;b<f.length;b++)a.appendChild(f[b](a))}))}})();
(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"\x3dbottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"\x3dtop;html\x3d1;strokeWidth\x3d2;shape\x3dmxgraph.flowchart.";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth\x3d2;html\x3d1;shape\x3dmxgraph.flowchart.annotation_1;align\x3dleft;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),
this.createVertexTemplateEntry("strokeWidth\x3d2;html\x3d1;shape\x3dmxgraph.flowchart.annotation_2;align\x3dleft;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth\x3d2;html\x3d1;shape\x3dmxgraph.flowchart.card;whiteSpace\x3dwrap;",100,60,"","Card",null,null,this.getTagsForStencil("mxgraph.flowchart","card","").join(" ")),this.createVertexTemplateEntry(a+"collate;",100,100,"","Collate",null,null,this.getTagsForStencil("mxgraph.flowchart",
@@ -7050,7 +7124,7 @@ StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this
StorageLibrary.prototype.getTitle=function(){return".scratchpad"==this.title?mxResources.get("scratchpad"):this.title};StorageLibrary.prototype.isRenamable=function(a,c,f){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};
var StorageDialog=function(a,c){function f(b,d,e,f){function l(){mxEvent.addListener(q,"click",function(){e==App.MODE_GOOGLE&&!a.isDriveDomain()?window.location.hostname=DriveClient.prototype.newAppHostname:e==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(e,k.checked);c()})):(a.setMode(e,k.checked),c())})}var q=document.createElement("a");q.style.overflow="hidden";var t=document.createElement("img");
t.setAttribute("src",b);t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.className="geBaseButton";q.style.position="relative";q.style.margin="4px";q.style.padding="8px 10px 12px 10px";q.style.whiteSpace="nowrap";mxClient.IS_QUIRKS&&(q.style.cssFloat="left",q.style.zoom="1");q.appendChild(t);var v=document.createElement("div");q.appendChild(v);mxUtils.write(v,
-d);if(null!=f&&null==a[f]){t.style.visibility="hidden";mxUtils.setOpacity(v,10);var u=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});u.spin(q);var z=window.setTimeout(function(){null==a[f]&&(u.stop(),q.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[f]&&(window.clearTimeout(z),mxUtils.setOpacity(v,100),t.style.visibility="",u.stop(),l())}))}else l();g.appendChild(q)}
+d);if(null!=f&&null==a[f]){t.style.visibility="hidden";mxUtils.setOpacity(v,10);var u=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});u.spin(q);var y=window.setTimeout(function(){null==a[f]&&(u.stop(),q.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[f]&&(window.clearTimeout(y),mxUtils.setOpacity(v,100),t.style.visibility="",u.stop(),l())}))}else l();g.appendChild(q)}
var d=document.createElement("div");d.style.textAlign="center";d.style.whiteSpace="nowrap";var b=a.addLanguageMenu(d);null!=b&&(b.style.bottom="28px");a.isOffline()||(b=document.createElement("a"),b.setAttribute("href","https://support.draw.io/display/DO/Selecting+Storage"),b.setAttribute("title",mxResources.get("help")),b.setAttribute("target","_blank"),b.style.position="absolute",b.style.textDecoration="none",b.style.cursor="pointer",b.style.fontSize="12px",b.style.bottom="28px",b.style.left="26px",
b.style.color="gray",mxUtils.write(b,mxResources.get("help")),d.appendChild(b));var e=document.createElement("div");e.style.position="absolute";e.style.cursor="pointer";e.style.fontSize="12px";e.style.bottom="28px";e.style.color="gray";mxUtils.write(e,mxResources.get("decideLater"));a.isOfflineApp()?e.style.right="20px":(mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,0)"),e.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)e.style.marginLeft=-Math.round(e.clientWidth/
2)+"px"};d.appendChild(e);mxEvent.addListener(e,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,App.MODE_DEVICE);a.setMode(null);Editor.useLocalStorage=b});var g=document.createElement("div");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");g.style.border="1px solid #d3d3d3";g.style.borderWidth="1px 0px 1px 0px";g.style.padding="26px 0px 12px 0px";var k=document.createElement("input");k.setAttribute("type","checkbox");
@@ -7086,26 +7160,26 @@ a.document.body.firstChild);window.setTimeout(function(){var a=document.createEl
!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});k.appendChild(m);!mxClient.IS_SF&&null==document.documentMode?(k.appendChild(u),u.className="geBtn gePrimaryBtn",m.className="geBtn"):m.className="geBtn gePrimaryBtn";f.appendChild(k);this.container=f},EmbedSvgDialog=function(a,c){function f(b){if(c){var d=a.editor.graph.getGraphBounds(),f=function(a){var b=" ",c="";p.checked&&(b=" onclick\x3d\"(function(img){if(img.wnd!\x3dnull\x26\x26!img.wnd.closed){img.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dimg.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
(r.checked?"\x26layers\x3d1":"")+"');}})(this);\"",c+="cursor:pointer;");k.checked&&(c+="max-width:100%;");var f="";n.checked&&(f=' width\x3d"'+Math.round(d.width)+'" height\x3d"'+Math.round(d.height)+'"');e.value='\x3cimg src\x3d"'+a+'"'+f+(""!=c?' style\x3d"'+c+'"':"")+b+"/\x3e";e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null)};if(a.isExportToCanvas())e.value=mxResources.get("updatingDocument"),a.exportToCanvas(mxUtils.bind(this,
function(b){var c=p.checked?a.getFileData(!0):null;b=a.createPngDataUri(b,c);f(b)}),null,null,null,mxUtils.bind(this,function(b){e.value="";a.handleError({message:mxResources.get("unknownError")})}),null,!0,n.checked?2:1,null,l.checked);else if(b=a.getFileData(!0),d.width*d.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){e.value=mxResources.get("updatingDocument");var g="";n.checked&&(g="\x26w\x3d"+Math.round(2*d.width)+"\x26h\x3d"+Math.round(2*d.height));var s=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+
-(p.checked?"1":"0")+g+"\x26xml\x3d"+encodeURIComponent(b));s.send(mxUtils.bind(this,function(){200==s.getStatus()?f("data:image/png;base64,"+s.getText()):(e.value="",a.handleError({message:mxResources.get("unknownError")}))}))}else e.value="",a.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}else{b=a.editor.graph.getSvg();g=b.getElementsByTagName("a");if(null!=g)for(var y=0;y<g.length;y++){var x=g[y].getAttribute("href");null!=x&&"#"==x.charAt(0)&&"_blank"==g[y].getAttribute("target")&&
-g[y].removeAttribute("target")}p.checked&&b.setAttribute("content",a.getFileData(!0));l.checked&&a.editor.addSvgShadow(b);if(m.checked){var F=" ",E="";p.checked&&(F="onclick\x3d\"(function(img){if(img.wnd!\x3dnull\x26\x26!img.wnd.closed){img.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dimg.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
-(r.checked?"\x26layers\x3d1":"")+"');}})(this);\"",E+="cursor:pointer;");k.checked&&(E+="max-width:100%;");a.convertImages(b,function(b){e.value='\x3cimg src\x3d"'+a.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=E?' style\x3d"'+E+'"':"")+F+"/\x3e"})}else E="",p.checked&&(b.setAttribute("onclick","(function(svg){var src\x3dwindow.event.target||window.event.srcElement;while (src!\x3dnull\x26\x26src.nodeName.toLowerCase()!\x3d'a'){src\x3dsrc.parentNode;}if(src\x3d\x3dnull){if(svg.wnd!\x3dnull\x26\x26!svg.wnd.closed){svg.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dsvg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
-(r.checked?"\x26layers\x3d1":"")+"');}}})(this);"),E+="cursor:pointer;"),k.checked&&(g=parseInt(b.getAttribute("width")),y=parseInt(b.getAttribute("height")),b.setAttribute("viewBox","0 0 "+g+" "+y),E+="max-width:100%;max-height:"+y+"px;",b.removeAttribute("height")),""!=E&&b.setAttribute("style",E),e.value=mxUtils.getXml(b);e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null)}}a.getCurrentFile();var d=document.createElement("div"),
+(p.checked?"1":"0")+g+"\x26xml\x3d"+encodeURIComponent(b));s.send(mxUtils.bind(this,function(){200==s.getStatus()?f("data:image/png;base64,"+s.getText()):(e.value="",a.handleError({message:mxResources.get("unknownError")}))}))}else e.value="",a.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}else{b=a.editor.graph.getSvg();g=b.getElementsByTagName("a");if(null!=g)for(var z=0;z<g.length;z++){var x=g[z].getAttribute("href");null!=x&&"#"==x.charAt(0)&&"_blank"==g[z].getAttribute("target")&&
+g[z].removeAttribute("target")}p.checked&&b.setAttribute("content",a.getFileData(!0));l.checked&&a.editor.addSvgShadow(b);if(m.checked){var D=" ",C="";p.checked&&(D="onclick\x3d\"(function(img){if(img.wnd!\x3dnull\x26\x26!img.wnd.closed){img.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dimg.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
+(r.checked?"\x26layers\x3d1":"")+"');}})(this);\"",C+="cursor:pointer;");k.checked&&(C+="max-width:100%;");a.convertImages(b,function(b){e.value='\x3cimg src\x3d"'+a.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=C?' style\x3d"'+C+'"':"")+D+"/\x3e"})}else C="",p.checked&&(b.setAttribute("onclick","(function(svg){var src\x3dwindow.event.target||window.event.srcElement;while (src!\x3dnull\x26\x26src.nodeName.toLowerCase()!\x3d'a'){src\x3dsrc.parentNode;}if(src\x3d\x3dnull){if(svg.wnd!\x3dnull\x26\x26!svg.wnd.closed){svg.wnd.focus();}else{var r\x3dfunction(evt){if(evt.data\x3d\x3d'ready'\x26\x26evt.source\x3d\x3dsvg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd\x3dwindow.open('https://www.draw.io/?client\x3d1\x26lightbox\x3d1\x26chrome\x3d0\x26edit\x3d_blank"+
+(r.checked?"\x26layers\x3d1":"")+"');}}})(this);"),C+="cursor:pointer;"),k.checked&&(g=parseInt(b.getAttribute("width")),z=parseInt(b.getAttribute("height")),b.setAttribute("viewBox","0 0 "+g+" "+z),C+="max-width:100%;max-height:"+z+"px;",b.removeAttribute("height")),""!=C&&b.setAttribute("style",C),e.value=mxUtils.getXml(b);e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null)}}a.getCurrentFile();var d=document.createElement("div"),
b=a.editor.graph;b.getGraphBounds();mxUtils.write(d,mxResources.get("mainEmbedNotice")+": ");mxUtils.br(d);var e=document.createElement("textarea");e.style.marginTop="6px";e.style.width="550px";e.style.height="280px";e.style.resize="none";d.appendChild(e);mxUtils.br(d);var g=document.createElement("div");g.style.paddingTop="16px";g.style.textAlign="center";var k=document.createElement("input");k.setAttribute("type","checkbox");k.setAttribute("checked","checked");k.defaultChecked=!0;g.appendChild(k);
mxUtils.write(g,mxResources.get("fit"));var l=document.createElement("input");l.setAttribute("type","checkbox");l.style.marginLeft="30px";b.shadowVisible&&(l.setAttribute("checked","checked"),l.defaultChecked=!0);if(!c||a.isExportToCanvas())g.appendChild(l),mxUtils.write(g,mxResources.get("shadow"));var m=document.createElement("input");m.setAttribute("type","checkbox");m.style.marginLeft="30px";c||(g.appendChild(m),mxUtils.write(g,mxResources.get("image")));var n=document.createElement("input");
n.setAttribute("type","checkbox");n.style.marginLeft="30px";c&&(g.appendChild(n),mxUtils.write(g,mxResources.get("retina")));var p=document.createElement("input");p.setAttribute("type","checkbox");p.setAttribute("checked","checked");p.defaultChecked=!0;p.style.marginLeft="30px";g.appendChild(p);mxUtils.write(g,mxResources.get("lightbox"));var r=document.createElement("input");r.setAttribute("type","checkbox");r.style.marginLeft="30px";b=a.editor.graph.getModel();1<b.getChildCount(b.getRoot())?(r.setAttribute("checked",
"checked"),r.defaultChecked=!0):r.setAttribute("disabled","disabled");g.appendChild(r);mxUtils.write(g,mxResources.get("layers"));d.appendChild(g);this.init=function(){f()};mxEvent.addListener(m,"change",f);mxEvent.addListener(n,"change",f);mxEvent.addListener(l,"change",f);mxEvent.addListener(k,"change",f);mxEvent.addListener(p,"change",f);mxEvent.addListener(r,"change",f);g=document.createElement("div");g.style.paddingTop="18px";g.style.textAlign="right";!a.isOffline()&&!c&&(b=mxUtils.button(mxResources.get("help"),
function(){window.open("https://support.draw.io/pages/viewpage.action?pageId\x3d12222606")}),b.className="geBtn",g.appendChild(b));if(!mxClient.IS_CHROMEAPP&&!navigator.standalone&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))b=mxUtils.button(mxResources.get("preview"),function(){var a=window.open().document;a.writeln("\x3chtml\x3e\x3chead\x3e\x3ctitle\x3e"+encodeURIComponent(mxResources.get("preview"))+'\x3c/title\x3e\x3cmeta charset\x3d"utf-8"\x3e\x3c/head\x3e\x3cbody\x3e'+
e.value+"\x3c/body\x3e\x3c/html\x3e");a.close()}),b.className="geBtn",g.appendChild(b);var b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()}),s=mxUtils.button(mxResources.get("copy"),function(){e.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?e.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});g.appendChild(b);!mxClient.IS_SF&&null==document.documentMode?(g.appendChild(s),s.className=
-"geBtn gePrimaryBtn",b.className="geBtn"):b.className="geBtn gePrimaryBtn";d.appendChild(g);this.container=d},GoogleSitesDialog=function(a){function c(){var a=null!=F.getTitle()?F.getTitle():this.defaultFilename;if(y.checked&&""!=p.value){var b="https://www.draw.io/gadget.xml?type\x3d4\x26diagram\x3d"+encodeURIComponent(mxUtils.htmlEntities(p.value));null!=a&&(b+="\x26title\x3d"+encodeURIComponent(a));0<x.length&&(b+="\x26s\x3d"+x);""!=r.value&&"0"!=r.value&&(b+="\x26border\x3d"+r.value);""!=n.value&&
-(b+="\x26height\x3d"+n.value);b+="\x26pan\x3d"+(s.checked?"1":"0");b+="\x26zoom\x3d"+(q.checked?"1":"0");b+="\x26fit\x3d"+(z.checked?"1":"0");b+="\x26resize\x3d"+(u.checked?"1":"0");b+="\x26x0\x3d"+Number(m.value);b+="\x26y0\x3d"+k;d.mathEnabled&&(b+="\x26math\x3d1");v.checked?b+="\x26edit\x3d_blank":t.checked&&(b+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));l.value=b}else F.constructor==DriveFile||F.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed\x3d0\x26diagram\x3d",
-""!=p.value?b+=encodeURIComponent(mxUtils.htmlEntities(p.value))+"\x26type\x3d3":(b+=F.getHash().substring(1),b=F.constructor==DropboxFile?b+"\x26type\x3d2":b+"\x26type\x3d1"),null!=a&&(b+="\x26title\x3d"+encodeURIComponent(a)),""!=n.value&&(a=parseInt(n.value)+parseInt(m.value),b+="\x26height\x3d"+a),l.value=b):l.value=""}var f=document.createElement("div"),d=a.editor.graph,b=d.getGraphBounds(),e=d.view.scale,g=Math.floor(b.x/e-d.view.translate.x),k=Math.floor(b.y/e-d.view.translate.y);mxUtils.write(f,
+"geBtn gePrimaryBtn",b.className="geBtn"):b.className="geBtn gePrimaryBtn";d.appendChild(g);this.container=d},GoogleSitesDialog=function(a){function c(){var a=null!=D.getTitle()?D.getTitle():this.defaultFilename;if(z.checked&&""!=p.value){var b="https://www.draw.io/gadget.xml?type\x3d4\x26diagram\x3d"+encodeURIComponent(mxUtils.htmlEntities(p.value));null!=a&&(b+="\x26title\x3d"+encodeURIComponent(a));0<x.length&&(b+="\x26s\x3d"+x);""!=r.value&&"0"!=r.value&&(b+="\x26border\x3d"+r.value);""!=n.value&&
+(b+="\x26height\x3d"+n.value);b+="\x26pan\x3d"+(s.checked?"1":"0");b+="\x26zoom\x3d"+(q.checked?"1":"0");b+="\x26fit\x3d"+(y.checked?"1":"0");b+="\x26resize\x3d"+(u.checked?"1":"0");b+="\x26x0\x3d"+Number(m.value);b+="\x26y0\x3d"+k;d.mathEnabled&&(b+="\x26math\x3d1");v.checked?b+="\x26edit\x3d_blank":t.checked&&(b+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));l.value=b}else D.constructor==DriveFile||D.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed\x3d0\x26diagram\x3d",
+""!=p.value?b+=encodeURIComponent(mxUtils.htmlEntities(p.value))+"\x26type\x3d3":(b+=D.getHash().substring(1),b=D.constructor==DropboxFile?b+"\x26type\x3d2":b+"\x26type\x3d1"),null!=a&&(b+="\x26title\x3d"+encodeURIComponent(a)),""!=n.value&&(a=parseInt(n.value)+parseInt(m.value),b+="\x26height\x3d"+a),l.value=b):l.value=""}var f=document.createElement("div"),d=a.editor.graph,b=d.getGraphBounds(),e=d.view.scale,g=Math.floor(b.x/e-d.view.translate.x),k=Math.floor(b.y/e-d.view.translate.y);mxUtils.write(f,
mxResources.get("googleGadget")+":");mxUtils.br(f);var l=document.createElement("input");l.setAttribute("type","text");l.style.marginBottom="8px";l.style.marginTop="2px";l.style.width="410px";f.appendChild(l);mxUtils.br(f);this.init=function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)};mxUtils.write(f,mxResources.get("top")+":");var m=document.createElement("input");m.setAttribute("type","text");m.setAttribute("size",
"4");m.style.marginRight="16px";m.style.marginLeft="4px";m.value=g;f.appendChild(m);mxUtils.write(f,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type","text");n.setAttribute("size","4");n.style.marginLeft="4px";n.value=Math.ceil(b.height/e);f.appendChild(n);mxUtils.br(f);b=document.createElement("hr");b.setAttribute("size","1");b.style.marginBottom="16px";b.style.marginTop="16px";f.appendChild(b);mxUtils.write(f,mxResources.get("publicDiagramUrl")+":");mxUtils.br(f);
var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","28");p.style.marginBottom="8px";p.style.marginTop="2px";p.style.width="410px";f.appendChild(p);mxUtils.br(f);mxUtils.write(f,mxResources.get("borderWidth")+":");var r=document.createElement("input");r.setAttribute("type","text");r.setAttribute("size","3");r.style.marginBottom="8px";r.style.marginLeft="4px";r.value="0";f.appendChild(r);mxUtils.br(f);var s=document.createElement("input");s.setAttribute("type",
"checkbox");s.setAttribute("checked","checked");s.defaultChecked=!0;s.style.marginLeft="16px";f.appendChild(s);mxUtils.write(f,mxResources.get("pan")+" ");var q=document.createElement("input");q.setAttribute("type","checkbox");q.setAttribute("checked","checked");q.defaultChecked=!0;q.style.marginLeft="8px";f.appendChild(q);mxUtils.write(f,mxResources.get("zoom")+" ");var t=document.createElement("input");t.setAttribute("type","checkbox");t.style.marginLeft="8px";t.setAttribute("title",window.location.href);
-f.appendChild(t);mxUtils.write(f,mxResources.get("edit")+" ");var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginLeft="8px";f.appendChild(v);mxUtils.write(f,mxResources.get("asNew")+" ");mxUtils.br(f);var u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("checked","checked");u.defaultChecked=!0;u.style.marginLeft="16px";f.appendChild(u);mxUtils.write(f,mxResources.get("resize")+" ");var z=document.createElement("input");z.setAttribute("type",
-"checkbox");z.style.marginLeft="8px";f.appendChild(z);mxUtils.write(f,mxResources.get("fit")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";f.appendChild(y);mxUtils.write(f,mxResources.get("embed")+" ");var x=a.getBasenames().join(";"),F=a.getCurrentFile();c();p.setAttribute("placeholder",mxResources.get("loading")+"...");a.getPublicUrl(F,function(a){p.setAttribute("placeholder","");p.value=null!=a?a:"";c()});mxEvent.addListener(s,"change",c);
-mxEvent.addListener(q,"change",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(z,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(n,"change",c);mxEvent.addListener(m,"change",c);mxEvent.addListener(r,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(l,"click",function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)});
+f.appendChild(t);mxUtils.write(f,mxResources.get("edit")+" ");var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginLeft="8px";f.appendChild(v);mxUtils.write(f,mxResources.get("asNew")+" ");mxUtils.br(f);var u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("checked","checked");u.defaultChecked=!0;u.style.marginLeft="16px";f.appendChild(u);mxUtils.write(f,mxResources.get("resize")+" ");var y=document.createElement("input");y.setAttribute("type",
+"checkbox");y.style.marginLeft="8px";f.appendChild(y);mxUtils.write(f,mxResources.get("fit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";f.appendChild(z);mxUtils.write(f,mxResources.get("embed")+" ");var x=a.getBasenames().join(";"),D=a.getCurrentFile();c();p.setAttribute("placeholder",mxResources.get("loading")+"...");a.getPublicUrl(D,function(a){p.setAttribute("placeholder","");p.value=null!=a?a:"";c()});mxEvent.addListener(s,"change",c);
+mxEvent.addListener(q,"change",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(z,"change",c);mxEvent.addListener(n,"change",c);mxEvent.addListener(m,"change",c);mxEvent.addListener(r,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(l,"click",function(){l.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null)});
b=document.createElement("div");b.style.paddingTop="12px";b.style.textAlign="right";e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);f.appendChild(b);this.container=f},IframeDialog=function(a,c,f){function d(){null!=u&&null!=u.getTitle()&&u.getTitle();if(f&&null!=u&&(""!=q.value||u.constructor==DriveFile||u.constructor==DropboxFile||u.constructor==OneDriveFile)){t.removeAttribute("disabled");v.removeAttribute("disabled");var a=
"https://www.draw.io/?chrome\x3d0";p.checked&&(a+="\x26lightbox\x3d1");r.checked&&(a+="\x26edit\x3d"+encodeURIComponent(mxUtils.htmlEntities("https://www.draw.io/#"+u.getHash())));e.foldingEnabled&&(a+="\x26nav\x3d1");s.checked&&(a+="\x26layers\x3d1");a=""!=q.value?a+("\x26url\x3d"+encodeURIComponent(mxUtils.htmlEntities(q.value))):a+("#"+u.getHash());l.value=a;l.removeAttribute("disabled")}else if(""!=q.value){t.removeAttribute("disabled");v.removeAttribute("disabled");var b=encodeURIComponent(mxUtils.htmlEntities(q.value));
c?(a=EXPORT_URL+"?format\x3dpng\x26url\x3d"+b,l.value=a):(a="https://www.draw.io/?chrome\x3d0",p.checked&&(a+="\x26lightbox\x3d1"),r.checked&&(a+="\x26edit\x3d"+b),e.foldingEnabled&&(a+="\x26nav\x3d1"),s.checked&&(a+="\x26layers\x3d1"),l.value='\x3ciframe frameborder\x3d"0" style\x3d"width:'+m.value+";height:"+n.value+'" src\x3d"'+(a+("\x26url\x3d"+b))+'"\x3e\x3c/iframe\x3e');l.removeAttribute("disabled")}else!c&&!f&&null!=u&&(u.constructor==DriveFile||u.constructor==DropboxFile||u.constructor==OneDriveFile)?
@@ -7121,13 +7195,13 @@ d();q.setAttribute("placeholder",mxResources.get("loading")+"...");a.getPublicUr
b.appendChild(g);this.container=b},CreateGraphDialog=function(a,c,f){var d=document.createElement("div");d.style.textAlign="right";this.init=function(){var b=document.createElement("div");b.style.position="relative";b.style.border="1px solid gray";b.style.width="100%";b.style.height="360px";b.style.overflow="hidden";b.style.marginBottom="16px";mxEvent.disableContextMenu(b);d.appendChild(b);var c=new Graph(b);c.setCellsCloneable(!0);c.setPanning(!0);c.setAllowDanglingEdges(!1);c.connectionHandler.select=
!1;c.view.setTranslate(20,20);c.border=20;c.panningHandler.useLeftButtonForPanning=!0;var g="curved\x3d1;";c.cellRenderer.installCellOverlayListeners=function(a,b,c){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(c.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchstart",function(c){b.fireEvent(new mxEventObject("pointerdown",
"event",c,"state",a))})};c.getAllConnectionConstraints=function(){return null};c.connectionHandler.marker.highlight.keepOnTop=!1;c.connectionHandler.createEdgeState=function(a){a=c.createEdge(null,null,null,null,null,g);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var k=c.getDefaultParent(),l=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,d){c.connectionHandler.reset();c.clearSelection();
-var f=c.getCellGeometry(a),m;p(function(){m=c.insertVertex(k,null,"Entry",f.x,f.y,80,30,"rounded\x3d1;");l(m);c.view.refresh(m);c.insertEdge(k,null,"",a,m,g)},function(){c.scrollCellToVisible(m)})});b.addListener("pointerdown",function(a,b){var d=b.getProperty("event"),f=b.getProperty("state");c.popupMenuHandler.hideMenu();c.stopEditing(!1);var g=mxUtils.convertPoint(c.container,mxEvent.getClientX(d),mxEvent.getClientY(d));c.connectionHandler.start(f,g.x,g.y);c.isMouseDown=!0;c.isMouseTrigger=mxEvent.isMouseEvent(d);
+var f=c.getCellGeometry(a),m;p(function(){m=c.insertVertex(k,null,"Entry",f.x,f.y,80,30,"rounded\x3d1;");l(m);c.view.refresh(m);c.insertEdge(k,null,"",a,m,g)},function(){c.scrollCellToVisible(m)})});b.addListener("pointerdown",function(a,b){var d=b.getProperty("event"),f=b.getProperty("state");c.popupMenuHandler.hideMenu();c.stopEditing(!1);var k=mxUtils.convertPoint(c.container,mxEvent.getClientX(d),mxEvent.getClientY(d));c.connectionHandler.start(f,k.x,k.y);c.isMouseDown=!0;c.isMouseTrigger=mxEvent.isMouseEvent(d);
mxEvent.consume(d)});c.addCellOverlay(a,b)});c.getModel().beginUpdate();var m;try{m=c.insertVertex(k,null,"Start",0,0,80,30,"ellipse"),l(m)}finally{c.getModel().endUpdate()}var n;"horizontalTree"==f?(n=new mxCompactTreeLayout(c),n.edgeRouting=!1,n.levelDistance=30,g="edgeStyle\x3delbowEdgeStyle;elbow\x3dhorizontal;"):"verticalTree"==f?(n=new mxCompactTreeLayout(c,!1),n.edgeRouting=!1,n.levelDistance=30,g="edgeStyle\x3delbowEdgeStyle;elbow\x3dvertical;"):"verticalFlow"==f?n=new mxHierarchicalLayout(c,
mxConstants.DIRECTION_NORTH):"horizontalFlow"==f?n=new mxHierarchicalLayout(c,mxConstants.DIRECTION_WEST):"organic"==f?(n=new mxFastOrganicLayout(c,!1),n.forceConstant=80):"circle"==f&&(n=new mxCircleLayout(c));if(null!=n){var p=function(a,b){c.getModel().beginUpdate();try{null!=a&&a(),n.execute(c.getDefaultParent(),m)}catch(d){throw d;}finally{var f=new mxMorphing(c);f.addListener(mxEvent.DONE,mxUtils.bind(this,function(){c.getModel().endUpdate();null!=b&&b()}));f.startAnimation()}},r=mxEdgeHandler.prototype.connect;
mxEdgeHandler.prototype.connect=function(a,b,c,d,e){r.apply(this,arguments);p()};c.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);p()};c.connectionHandler.addListener(mxEvent.CONNECT,function(){p()})}var s=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){c.destroy();b.parentNode.removeChild(b);a.hideDialog()})});s.className="geBtn";a.editor.cancelFirst&&d.appendChild(s);var q=mxUtils.button(mxResources.get("insert"),function(){c.clearCellOverlays();
-var d=a.editor.graph.getFreeInsertPoint(),d=a.editor.graph.importCells(c.getModel().getChildren(c.getDefaultParent()),d.x,d.y),f=view.getBounds(d);f.x-=view.translate.x;f.y-=view.translate.y;a.editor.graph.scrollRectToVisible(f);a.editor.graph.setSelectionCells(d);c.destroy();b.parentNode.removeChild(b);a.hideDialog()});d.appendChild(q);q.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(s)};this.container=d};
-CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg\x3d\x3d":IMAGE_PATH+
-"/handle-connect.png",26,26);
+var d=a.editor.graph.getFreeInsertPoint(),d=a.editor.graph.importCells(c.getModel().getChildren(c.getDefaultParent()),d.x,d.y),f=a.editor.graph.view,k=f.getBounds(d);k.x-=f.translate.x;k.y-=f.translate.y;a.editor.graph.scrollRectToVisible(k);a.editor.graph.setSelectionCells(d);c.destroy();b.parentNode.removeChild(b);a.hideDialog()});d.appendChild(q);q.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(s)};this.container=d};
+CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg\x3d\x3d":
+IMAGE_PATH+"/handle-connect.png",26,26);
var BackgroundImageDialog=function(a,c){var f=document.createElement("div");f.style.whiteSpace="nowrap";var d=document.createElement("h2");mxUtils.write(d,mxResources.get("backgroundImage"));d.style.marginTop="0px";f.appendChild(d);mxUtils.write(f,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(f);var d=a.editor.graph.backgroundImage,b=document.createElement("input");b.setAttribute("type","text");b.style.marginTop="4px";b.style.marginBottom="4px";b.style.width="350px";b.value=
null!=d?d.src:"";var e=!1,g=function(){!e&&""!=b.value&&!a.isOffline()?a.loadImage(mxUtils.trim(b.value),function(a){k.value=a.width;l.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));b.value="";k.value="";l.value=""}):(k.value="",l.value="")};this.init=function(){b.focus();if(Graph.fileSupport){b.setAttribute("placeholder",mxResources.get("dragImagesHere"));var c=f.parentNode,d=null;mxEvent.addListener(c,"dragleave",function(a){null!=
d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(b){if(null==d&&(!mxClient.IS_IE||10<document.documentMode))d=a.highlightElement(c);b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c,"drop",mxUtils.bind(this,function(c){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<c.dataTransfer.files.length)a.importFiles(c.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,c,d,e,f,k){b.value=a;g()},function(){},
@@ -7137,42 +7211,42 @@ function(){e=!0});mxEvent.addListener(d,"touchstart",function(){e=!0});d.classNa
m.className="geBtn";a.editor.cancelFirst&&d.appendChild(m);if(!a.isOffline()&&"undefined"!=typeof google&&"undefined"!=typeof google.picker){var n=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0);a.movePickersToTop()});
n.className="geBtn";d.appendChild(n);null!=a.drive&&"1"==urlParams.photos&&(n=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);
a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0);a.movePickersToTop()}))}),n.className="geBtn",d.appendChild(n))}n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c(""!=b.value?new mxImage(mxUtils.trim(b.value),k.value,l.value):null)});n.className="geBtn gePrimaryBtn";d.appendChild(n);a.editor.cancelFirst||d.appendChild(m);f.appendChild(d);this.container=f},ParseDialog=function(a,c){function f(b,c){var d=b.split("\n");if(c){if(0<
-d.length){var e=a.editor.graph,f=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle\x3d1;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3dnone;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;");f.vertex=!0;var g=e.getPreferredSizeForCell(f);null!=g&&f.geometry.width<g.width+10&&(f.geometry.width=g.width+10);if(1<d.length)for(var k=1;k<d.length;k++)if("--"==d[k])g=new mxCell("",new mxGeometry(0,
-0,40,8),"line;strokeWidth\x3d1;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dmiddle;spacingTop\x3d-1;spacingLeft\x3d3;spacingRight\x3d3;rotatable\x3d0;labelPosition\x3dright;points\x3d[];portConstraint\x3deastwest;"),g.vertex=!0,f.geometry.height+=g.geometry.height,f.insert(g);else if(0<d[k].length&&";"!=d[k].charAt(0)){var l=new mxCell(d[k],new mxGeometry(0,0,60,26),"text;strokeColor\x3dnone;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dtop;spacingLeft\x3d4;spacingRight\x3d4;overflow\x3dhidden;rotatable\x3d0;points\x3d[[0,0.5],[1,0.5]];portConstraint\x3deastwest;");
-l.vertex=!0;g=e.getPreferredSizeForCell(l);null!=g&&l.geometry.width<g.width&&(l.geometry.width=g.width);f.geometry.width=Math.max(f.geometry.width,l.geometry.width);f.geometry.height+=l.geometry.height;f.insert(l)}g=e.view;l=e.getGraphBounds();k=Math.ceil(Math.max(0,l.x/g.scale-g.translate.x)+4*e.gridSize);g=Math.ceil(Math.max(0,(l.y+l.height)/g.scale-g.translate.y)+4*e.gridSize);e.setSelectionCells(e.importCells([f],k,g));e.scrollCellToVisible(e.getSelectionCell())}}else{for(var m={},y=[],e=function(a){var b=
-m[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30)),b.vertex=!0,m[a]=b,y.push(b));return b},k=0;k<d.length;k++)if(";"!=d[k].charAt(0)){var x=d[k].split("-\x3e");if(2==x.length){var l=e(x[0]),x=e(x[1]),F=new mxCell("",new mxGeometry);F.edge=!0;l.insertEdge(F,!0);x.insertEdge(F,!1);y.push(F)}}if(0<y.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);e=new Graph(d);e.getModel().beginUpdate();try{y=e.importCells(y);for(k=0;k<y.length;k++)e.getModel().isVertex(y[k])&&
-(g=e.getPreferredSizeForCell(y[k]),y[k].geometry.width=Math.max(y[k].geometry.width,g.width),y[k].geometry.height=Math.max(y[k].geometry.height,g.height));f=new mxFastOrganicLayout(e);f.disableEdgeStyle=!1;f.forceConstant=120;f.execute(e.getDefaultParent());e.moveCells(y,20,20)}finally{e.getModel().endUpdate()}e.clearCellOverlays();g=a.editor.graph.view;l=a.editor.graph.getGraphBounds();k=Math.ceil(Math.max(0,l.x/g.scale-g.translate.x)+e.gridSize);g=Math.ceil(Math.max(0,(l.y+l.height)/g.scale-g.translate.y)+
-4*e.gridSize);a.editor.graph.setSelectionCells(a.editor.graph.importCells(e.getModel().getChildren(e.getDefaultParent()),k,g));a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());e.destroy();d.parentNode.removeChild(d)}}}function d(){return!g.checked?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":";Example:\na-\x3eb\nb-\x3ec\nc-\x3ea\n"}var b=document.createElement("div");b.style.textAlign="right";var e=document.createElement("textarea");
+d.length){var e=a.editor.graph,f=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle\x3d1;childLayout\x3dstackLayout;horizontal\x3d1;startSize\x3d26;fillColor\x3dnone;horizontalStack\x3d0;resizeParent\x3d1;resizeLast\x3d0;collapsible\x3d1;marginBottom\x3d0;swimlaneFillColor\x3d#ffffff;");f.vertex=!0;var k=e.getPreferredSizeForCell(f);null!=k&&f.geometry.width<k.width+10&&(f.geometry.width=k.width+10);if(1<d.length)for(var g=1;g<d.length;g++)if("--"==d[g])k=new mxCell("",new mxGeometry(0,
+0,40,8),"line;strokeWidth\x3d1;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dmiddle;spacingTop\x3d-1;spacingLeft\x3d3;spacingRight\x3d3;rotatable\x3d0;labelPosition\x3dright;points\x3d[];portConstraint\x3deastwest;"),k.vertex=!0,f.geometry.height+=k.geometry.height,f.insert(k);else if(0<d[g].length&&";"!=d[g].charAt(0)){var l=new mxCell(d[g],new mxGeometry(0,0,60,26),"text;strokeColor\x3dnone;fillColor\x3dnone;align\x3dleft;verticalAlign\x3dtop;spacingLeft\x3d4;spacingRight\x3d4;overflow\x3dhidden;rotatable\x3d0;points\x3d[[0,0.5],[1,0.5]];portConstraint\x3deastwest;");
+l.vertex=!0;k=e.getPreferredSizeForCell(l);null!=k&&l.geometry.width<k.width&&(l.geometry.width=k.width);f.geometry.width=Math.max(f.geometry.width,l.geometry.width);f.geometry.height+=l.geometry.height;f.insert(l)}k=e.view;l=e.getGraphBounds();g=Math.ceil(Math.max(0,l.x/k.scale-k.translate.x)+4*e.gridSize);k=Math.ceil(Math.max(0,(l.y+l.height)/k.scale-k.translate.y)+4*e.gridSize);e.setSelectionCells(e.importCells([f],g,k));e.scrollCellToVisible(e.getSelectionCell())}}else{for(var m={},z=[],e=function(a){var b=
+m[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30)),b.vertex=!0,m[a]=b,z.push(b));return b},g=0;g<d.length;g++)if(";"!=d[g].charAt(0)){var x=d[g].split("-\x3e");if(2==x.length){var l=e(x[0]),x=e(x[1]),D=new mxCell("",new mxGeometry);D.edge=!0;l.insertEdge(D,!0);x.insertEdge(D,!1);z.push(D)}}if(0<z.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);e=new Graph(d);e.getModel().beginUpdate();try{z=e.importCells(z);for(g=0;g<z.length;g++)e.getModel().isVertex(z[g])&&
+(k=e.getPreferredSizeForCell(z[g]),z[g].geometry.width=Math.max(z[g].geometry.width,k.width),z[g].geometry.height=Math.max(z[g].geometry.height,k.height));f=new mxFastOrganicLayout(e);f.disableEdgeStyle=!1;f.forceConstant=120;f.execute(e.getDefaultParent());e.moveCells(z,20,20)}finally{e.getModel().endUpdate()}e.clearCellOverlays();k=a.editor.graph.view;l=a.editor.graph.getGraphBounds();g=Math.ceil(Math.max(0,l.x/k.scale-k.translate.x)+e.gridSize);k=Math.ceil(Math.max(0,(l.y+l.height)/k.scale-k.translate.y)+
+4*e.gridSize);a.editor.graph.setSelectionCells(a.editor.graph.importCells(e.getModel().getChildren(e.getDefaultParent()),g,k));a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());e.destroy();d.parentNode.removeChild(d)}}}function d(){return!g.checked?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean":";Example:\na-\x3eb\nb-\x3ec\nc-\x3ea\n"}var b=document.createElement("div");b.style.textAlign="right";var e=document.createElement("textarea");
e.style.resize="none";e.style.width="100%";e.style.height="354px";e.style.marginBottom="16px";var g=document.createElement("input");g.setAttribute("type","checkbox");var k=d();e.value=k;b.appendChild(e);this.init=function(){e.focus()};Graph.fileSupport&&(e.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),e.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=
function(a){e.value=a.target.result};b.readAsText(a)}},!1));b.appendChild(g);mxEvent.addListener(g,"change",function(){var a=d();if(0==e.value.length||e.value==k)k=a,e.value=k});var l=document.createElement("span");mxUtils.write(l," "+mxResources.get("diagram"));l.style.marginRight="10px";b.appendChild(l);l=mxUtils.button(mxResources.get("close"),function(){e.value==k?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});l.className="geBtn";a.editor.cancelFirst&&b.appendChild(l);
var m=mxUtils.button(mxResources.get("insert"),function(){a.hideDialog();f(e.value,!g.checked)});b.appendChild(m);m.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(l);this.container=b},NewDialog=function(a,c,f,d){function b(){if(d)a.hideDialog(),d(s);else{var b=p.value;if(null!=b&&0<b.length){var c=a.mode==App.MODE_ONEDRIVE||a.mode==App.MODE_GOOGLE&&(null==a.stateArg||null==a.stateArg.folderId)?a.mode:null;a.pickFolder(c,function(c){a.createFile(b,s,null!=r&&0<r.length?r:null,null,
-function(){a.hideDialog()},null,c)},c!=App.MODE_GOOGLE)}}}function e(a,b,c){null!=q&&(q.style.backgroundColor="transparent",q.style.border="1px solid transparent");s=b;r=c;q=a;q.style.backgroundColor="#e6eff8";q.style.border="1px solid #ccd9ea"}function g(a,c,d,f,g){var k=document.createElement("div");k.className="geTemplate";k.style.height=z+"px";k.style.width=y+"px";null!=f&&0<f.length&&k.setAttribute("title",f);if(null!=a&&0<a.length){a.substring(0,a.length-4);k.style.backgroundImage="url("+TEMPLATE_PATH+
-"/"+a.substring(0,a.length-4)+".png)";k.style.backgroundPosition="center center";k.style.backgroundRepeat="no-repeat";var l=!1;mxEvent.addListener(k,"click",function(d){t.setAttribute("disabled","disabled");k.style.backgroundColor="transparent";k.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200==a.getStatus()&&(t.removeAttribute("disabled"),e(k,a.getText(),c),l&&b())}))});mxEvent.addListener(k,"dblclick",function(a){l=!0})}else k.innerHTML='\x3ctable width\x3d"100%" height\x3d"100%"\x3e\x3ctr\x3e\x3ctd align\x3d"center" valign\x3d"middle"\x3e'+
-mxResources.get(d)+"\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e",g&&e(k),mxEvent.addListener(k,"click",function(a){e(k)}),mxEvent.addListener(k,"dblclick",function(a){b()});v.appendChild(k)}function k(){function a(){for(var c=!0;b<E.length&&(c||0!=mxUtils.mod(b,30));)c=E[b++],g(c.url,c.libs,c.title,c.tooltip,c.select),c=!1}var b=0;mxEvent.addListener(v,"scroll",function(b){v.scrollTop+v.clientHeight>=v.scrollHeight&&(a(),mxEvent.consume(b))});var c=null,d;for(d in x){var e=document.createElement("div"),
+function(){a.hideDialog()},null,c)},c!=App.MODE_GOOGLE)}}}function e(a,b,c){null!=q&&(q.style.backgroundColor="transparent",q.style.border="1px solid transparent");s=b;r=c;q=a;q.style.backgroundColor="#e6eff8";q.style.border="1px solid #ccd9ea"}function g(a,c,d,f,k){var g=document.createElement("div");g.className="geTemplate";g.style.height=y+"px";g.style.width=z+"px";null!=f&&0<f.length&&g.setAttribute("title",f);if(null!=a&&0<a.length){a.substring(0,a.length-4);g.style.backgroundImage="url("+TEMPLATE_PATH+
+"/"+a.substring(0,a.length-4)+".png)";g.style.backgroundPosition="center center";g.style.backgroundRepeat="no-repeat";var l=!1;mxEvent.addListener(g,"click",function(d){t.setAttribute("disabled","disabled");g.style.backgroundColor="transparent";g.style.border="1px solid transparent";mxUtils.get(TEMPLATE_PATH+"/"+a,mxUtils.bind(this,function(a){200==a.getStatus()&&(t.removeAttribute("disabled"),e(g,a.getText(),c),l&&b())}))});mxEvent.addListener(g,"dblclick",function(a){l=!0})}else g.innerHTML='\x3ctable width\x3d"100%" height\x3d"100%"\x3e\x3ctr\x3e\x3ctd align\x3d"center" valign\x3d"middle"\x3e'+
+mxResources.get(d)+"\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e",k&&e(g),mxEvent.addListener(g,"click",function(a){e(g)}),mxEvent.addListener(g,"dblclick",function(a){b()});v.appendChild(g)}function k(){function a(){for(var c=!0;b<C.length&&(c||0!=mxUtils.mod(b,30));)c=C[b++],g(c.url,c.libs,c.title,c.tooltip,c.select),c=!1}var b=0;mxEvent.addListener(v,"scroll",function(b){v.scrollTop+v.clientHeight>=v.scrollHeight&&(a(),mxEvent.consume(b))});var c=null,d;for(d in x){var e=document.createElement("div"),
f=mxResources.get(d),k=x[d];null==f&&(f=d.substring(0,1).toUpperCase()+d.substring(1));18<f.length&&(f=f.substring(0,18)+"\x26hellip;");e.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";e.setAttribute("title",f+" ("+k.length+")");mxUtils.write(e,e.getAttribute("title"));u.appendChild(e);null==c&&(c=e,c.style.backgroundColor="#ebf2f9");(function(d,f){mxEvent.addListener(e,"click",function(){c!=f&&(c.style.backgroundColor=
-"",c=f,c.style.backgroundColor="#ebf2f9",v.scrollTop=0,v.innerHTML="",b=0,E=x[d],a())})})(d,e)}a()}f=null!=f?f:!0;var l=document.createElement("div");l.style.height="100%";var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.height="46px";l.appendChild(m);var n=document.createElement("img");n.setAttribute("border","0");n.setAttribute("align","absmiddle");n.style.width="40px";n.style.height="40px";n.style.marginRight="10px";n.style.paddingBottom="4px";n.src=a.mode==App.MODE_GOOGLE?
+"",c=f,c.style.backgroundColor="#ebf2f9",v.scrollTop=0,v.innerHTML="",b=0,C=x[d],a())})})(d,e)}a()}f=null!=f?f:!0;var l=document.createElement("div");l.style.height="100%";var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.height="46px";l.appendChild(m);var n=document.createElement("img");n.setAttribute("border","0");n.setAttribute("align","absmiddle");n.style.width="40px";n.style.height="40px";n.style.marginRight="10px";n.style.paddingBottom="4px";n.src=a.mode==App.MODE_GOOGLE?
IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!c&&f&&m.appendChild(n);f&&mxUtils.write(m,(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");n=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?n=a.drive.extension:a.mode==App.MODE_DROPBOX&&
null!=a.dropbox?n=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive&&(n=a.oneDrive.extension);var p=document.createElement("input");p.setAttribute("value",a.defaultFilename+n);p.style.marginRight="20px";p.style.marginLeft="10px";p.style.width=c?"220px":"450px";this.init=function(){f&&(p.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null))};f&&m.appendChild(p);var r=null,s=null,q=null,t=mxUtils.button(mxResources.get("create"),
function(){b()});t.className="geBtn gePrimaryBtn";var v=document.createElement("div");v.style.border="1px solid #d3d3d3";v.style.position="absolute";v.style.left="160px";v.style.right="34px";v.style.top=f?"72px":"40px";v.style.bottom="76px";v.style.margin="6px 0 0 -1px";v.style.padding="6px";v.style.overflow="auto";var u=document.createElement("div");u.style.cssText="position:absolute;left:30px;width:128px;top:72px;bottom:76px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";f||(u.style.top=
-"40px");var z=140,y=140,x={},F=1;x.basic=[{title:"blankDiagram",select:!0}];var E=x.basic;if(!c){l.appendChild(u);l.appendChild(v);var A=!1;mxUtils.get(TEMPLATE_PATH+"/index.xml",function(a){if(!A){A=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=x[b];null==c&&(F++,c=[],x[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),
-tooltip:a.getAttribute("url")})}}a=a.nextSibling}k()}})}mxEvent.addListener(p,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),b())});m=document.createElement("div");m.style.marginTop=c?"4px":"16px";m.style.textAlign="right";m.style.position="absolute";m.style.left="40px";m.style.bottom="30px";m.style.right="40px";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});n.className="geBtn";a.editor.cancelFirst&&m.appendChild(n);if(!c&&!a.isOffline()&&f){var D=mxUtils.button(mxResources.get("help"),
-function(){window.open("https://support.draw.io/display/DO/Creating+and+Opening+Files")});D.className="geBtn";m.appendChild(D)}c||(c=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode\x3d"+a.mode+"\x26title\x3d"+encodeURIComponent(p.value)+"\x26create\x3d"+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));
-a.showDialog(b.container,300,80,!0,!0);b.init()}),c.className="geBtn",m.appendChild(c));m.appendChild(t);a.editor.cancelFirst||m.appendChild(n);l.appendChild(m);this.container=l},CreateDialog=function(a,c,f,d,b,e,g,k,l,m,n){function p(b,c,d,e){function f(){mxEvent.addListener(g,"click",function(){r(d);s(d)})}var g=document.createElement("a");g.style.overflow="hidden";var k=document.createElement("img");k.src=b;k.setAttribute("border","0");k.setAttribute("align","absmiddle");k.style.width="60px";k.style.height=
-"60px";k.style.paddingBottom="6px";g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace="nowrap";g.appendChild(k);mxClient.IS_QUIRKS&&(g.style.cssFloat="left",g.style.zoom="1");g.style.color="gray";g.style.fontSize="11px";var l=document.createElement("div");g.appendChild(l);mxUtils.write(l,c);if(null!=e&&null==a[e]){k.style.visibility="hidden";mxUtils.setOpacity(l,
-10);var m=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});m.spin(g);var n=window.setTimeout(function(){null==a[e]&&(m.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[e]&&(window.clearTimeout(n),mxUtils.setOpacity(l,100),k.style.visibility="",m.stop(),f())}))}else f();z.appendChild(g)}function r(b){if(g){var d=u.value,e=d.lastIndexOf(".");if(0>c.lastIndexOf(".")&&
-(!t||0>e)){b=null!=b?b:y.value;var f="";b==App.MODE_GOOGLE?f=a.drive.extension:b==App.MODE_DROPBOX?f=a.dropbox.extension:b==App.MODE_ONEDRIVE?f=a.oneDrive.extension:b==App.MODE_DEVICE&&(f=".xml");0<=e&&(d=d.substring(0,e));u.value=d+f}}}function s(b){var c=u.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),f(c,b)}g=null!=g?g:!0;k=null!=k?k:!0;var q=document.createElement("div"),t=!0;null==d&&a.addLanguageMenu(q);var v=document.createElement("h2");mxUtils.write(v,b||mxResources.get("create"));
-v.style.marginTop="0px";v.style.marginBottom="24px";q.appendChild(v);mxUtils.write(q,mxResources.get("filename")+":");var u=document.createElement("input");u.setAttribute("value",c);u.style.width="280px";u.style.marginLeft="10px";u.style.marginBottom="20px";this.init=function(){u.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};q.appendChild(u);mxUtils.br(q);var z=document.createElement("div");z.style.textAlign="center";t?(z.style.marginTop=
-"6px",q.appendChild(z)):mxUtils.write(q,mxResources.get("chooseAnOption")+":");var y=document.createElement("select");y.style.marginLeft="10px";"function"===typeof window.DriveClient&&(b=document.createElement("option"),b.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(b,mxResources.get("googleDrive")),y.appendChild(b),p(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive"));"function"===typeof window.DropboxClient&&(b=document.createElement("option"),b.setAttribute("value",
-App.MODE_DROPBOX),mxUtils.write(b,mxResources.get("dropbox")),y.appendChild(b),a.mode==App.MODE_DROPBOX&&b.setAttribute("selected","selected"),p(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox"));"function"===typeof window.OneDriveClient&&(b=document.createElement("option"),b.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(b,mxResources.get("oneDrive")),y.appendChild(b),a.mode==App.MODE_ONEDRIVE&&b.setAttribute("selected","selected"),p(IMAGE_PATH+"/onedrive-logo.svg",
-mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive"));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)b=document.createElement("option"),b.setAttribute("value",App.MODE_DEVICE),mxUtils.write(b,mxResources.get("device")),y.appendChild(b),(a.mode==App.MODE_DEVICE||!k)&&b.setAttribute("selected","selected"),n&&(mxUtils.br(z),p(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE));k&&isLocalStorage&&"0"!=urlParams.browser&&
-(k=document.createElement("option"),k.setAttribute("value",App.MODE_BROWSER),mxUtils.write(k,mxResources.get("browser")),y.appendChild(k),a.mode==App.MODE_BROWSER&&k.setAttribute("selected","selected"),p(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));k=document.createElement("div");k.style.marginTop=t?"26px":"38px";k.style.textAlign=t?"center":"right";t||(q.appendChild(y),mxEvent.addListener(y,"change",r),r());null!=m&&(b=mxUtils.button(mxResources.get("help"),function(){window.open(m)}),
+"40px");var y=140,z=140,x={},D=1;x.basic=[{title:"blankDiagram",select:!0}];var C=x.basic;if(!c){l.appendChild(u);l.appendChild(v);var A=!1;mxUtils.get(TEMPLATE_PATH+"/index.xml",function(a){if(!A){A=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=x[b];null==c&&(D++,c=[],x[b]=c);c.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),
+tooltip:a.getAttribute("url")})}}a=a.nextSibling}k()}})}mxEvent.addListener(p,"keypress",function(c){13==c.keyCode&&(a.hideDialog(),b())});m=document.createElement("div");m.style.marginTop=c?"4px":"16px";m.style.textAlign="right";m.style.position="absolute";m.style.left="40px";m.style.bottom="30px";m.style.right="40px";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});n.className="geBtn";a.editor.cancelFirst&&m.appendChild(n);if(!c&&!a.isOffline()&&f){var F=mxUtils.button(mxResources.get("help"),
+function(){window.open("https://support.draw.io/display/DO/Creating+and+Opening+Files")});F.className="geBtn";m.appendChild(F)}c||(c=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode\x3d"+a.mode+"\x26title\x3d"+encodeURIComponent(p.value)+"\x26create\x3d"+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))},mxResources.get("url"));
+a.showDialog(b.container,300,80,!0,!0);b.init()}),c.className="geBtn",m.appendChild(c));m.appendChild(t);a.editor.cancelFirst||m.appendChild(n);l.appendChild(m);this.container=l},CreateDialog=function(a,c,f,d,b,e,g,k,l,m,n){function p(b,c,d,e){function f(){mxEvent.addListener(k,"click",function(){r(d);s(d)})}var k=document.createElement("a");k.style.overflow="hidden";var g=document.createElement("img");g.src=b;g.setAttribute("border","0");g.setAttribute("align","absmiddle");g.style.width="60px";g.style.height=
+"60px";g.style.paddingBottom="6px";k.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";k.className="geBaseButton";k.style.position="relative";k.style.margin="4px";k.style.padding="8px 8px 10px 8px";k.style.whiteSpace="nowrap";k.appendChild(g);mxClient.IS_QUIRKS&&(k.style.cssFloat="left",k.style.zoom="1");k.style.color="gray";k.style.fontSize="11px";var l=document.createElement("div");k.appendChild(l);mxUtils.write(l,c);if(null!=e&&null==a[e]){g.style.visibility="hidden";mxUtils.setOpacity(l,
+10);var m=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});m.spin(k);var n=window.setTimeout(function(){null==a[e]&&(m.stop(),k.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[e]&&(window.clearTimeout(n),mxUtils.setOpacity(l,100),g.style.visibility="",m.stop(),f())}))}else f();y.appendChild(k)}function r(b){if(g){var d=u.value,e=d.lastIndexOf(".");if(0>c.lastIndexOf(".")&&
+(!t||0>e)){b=null!=b?b:z.value;var f="";b==App.MODE_GOOGLE?f=a.drive.extension:b==App.MODE_DROPBOX?f=a.dropbox.extension:b==App.MODE_ONEDRIVE?f=a.oneDrive.extension:b==App.MODE_DEVICE&&(f=".xml");0<=e&&(d=d.substring(0,e));u.value=d+f}}}function s(b){var c=u.value;if(null==b||null!=c&&0<c.length)a.hideDialog(),f(c,b)}g=null!=g?g:!0;k=null!=k?k:!0;var q=document.createElement("div"),t=!0;null==d&&a.addLanguageMenu(q);var v=document.createElement("h2");mxUtils.write(v,b||mxResources.get("create"));
+v.style.marginTop="0px";v.style.marginBottom="24px";q.appendChild(v);mxUtils.write(q,mxResources.get("filename")+":");var u=document.createElement("input");u.setAttribute("value",c);u.style.width="280px";u.style.marginLeft="10px";u.style.marginBottom="20px";this.init=function(){u.focus();mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};q.appendChild(u);mxUtils.br(q);var y=document.createElement("div");y.style.textAlign="center";t?(y.style.marginTop=
+"6px",q.appendChild(y)):mxUtils.write(q,mxResources.get("chooseAnOption")+":");var z=document.createElement("select");z.style.marginLeft="10px";"function"===typeof window.DriveClient&&(b=document.createElement("option"),b.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(b,mxResources.get("googleDrive")),z.appendChild(b),p(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive"));"function"===typeof window.DropboxClient&&(b=document.createElement("option"),b.setAttribute("value",
+App.MODE_DROPBOX),mxUtils.write(b,mxResources.get("dropbox")),z.appendChild(b),a.mode==App.MODE_DROPBOX&&b.setAttribute("selected","selected"),p(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox"));"function"===typeof window.OneDriveClient&&(b=document.createElement("option"),b.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(b,mxResources.get("oneDrive")),z.appendChild(b),a.mode==App.MODE_ONEDRIVE&&b.setAttribute("selected","selected"),p(IMAGE_PATH+"/onedrive-logo.svg",
+mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive"));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)b=document.createElement("option"),b.setAttribute("value",App.MODE_DEVICE),mxUtils.write(b,mxResources.get("device")),z.appendChild(b),(a.mode==App.MODE_DEVICE||!k)&&b.setAttribute("selected","selected"),n&&(mxUtils.br(y),p(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE));k&&isLocalStorage&&"0"!=urlParams.browser&&
+(k=document.createElement("option"),k.setAttribute("value",App.MODE_BROWSER),mxUtils.write(k,mxResources.get("browser")),z.appendChild(k),a.mode==App.MODE_BROWSER&&k.setAttribute("selected","selected"),p(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));k=document.createElement("div");k.style.marginTop=t?"26px":"38px";k.style.textAlign=t?"center":"right";t||(q.appendChild(z),mxEvent.addListener(z,"change",r),r());null!=m&&(b=mxUtils.button(mxResources.get("help"),function(){window.open(m)}),
b.className="geBtn",k.appendChild(b));b=mxUtils.button(mxResources.get("cancel"),function(){null!=d?d():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});b.className="geBtn";a.editor.cancelFirst&&k.appendChild(b);null==d&&(v=mxUtils.button(mxResources.get("decideLater"),function(){s(null)}),v.className="geBtn",k.appendChild(v));l&&(l=mxUtils.button(mxResources.get("openInNewWindow"),function(){s("_blank")}),l.className="geBtn",k.appendChild(l));if(!mxClient.IS_IOS||
-!t)e=mxUtils.button(e||mxResources.get("create"),function(){s(n?"download":t?App.MODE_DEVICE:y.value)}),e.className="geBtn gePrimaryBtn",k.appendChild(e);a.editor.cancelFirst||k.appendChild(b);mxEvent.addListener(u,"keypress",function(b){13==b.keyCode?s(t?App.MODE_DEVICE:y.value):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});q.appendChild(k);this.container=q},PopupDialog=function(a,c,f,d,b){b=null!=b?b:!0;var e=document.createElement("div");e.style.textAlign="left";mxUtils.write(e,
+!t)e=mxUtils.button(e||mxResources.get("create"),function(){s(n?"download":t?App.MODE_DEVICE:z.value)}),e.className="geBtn gePrimaryBtn",k.appendChild(e);a.editor.cancelFirst||k.appendChild(b);mxEvent.addListener(u,"keypress",function(b){13==b.keyCode?s(t?App.MODE_DEVICE:z.value):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});q.appendChild(k);this.container=q},PopupDialog=function(a,c,f,d,b){b=null!=b?b:!0;var e=document.createElement("div");e.style.textAlign="left";mxUtils.write(e,
mxResources.get("fileOpenLocation"));mxUtils.br(e);mxUtils.br(e);var g=mxUtils.button(mxResources.get("openInThisWindow"),function(){b&&a.hideDialog();null!=d&&d()});g.className="geBtn";g.style.marginBottom="8px";g.style.width="280px";e.appendChild(g);mxUtils.br(e);var k=mxUtils.button(mxResources.get("openInNewWindow"),function(){b&&a.hideDialog();null!=f&&f();window.open(c)});k.className="geBtn gePrimaryBtn";k.style.width=g.style.width;e.appendChild(k);mxUtils.br(e);mxUtils.br(e);mxUtils.write(e,
mxResources.get("allowPopups"));this.container=e},ImageDialog=function(a,c,f,d,b,e){e=null!=e?e:!0;var g=a.editor.graph,k=document.createElement("div");mxUtils.write(k,c);c=document.createElement("div");c.className="geTitle";c.style.backgroundColor="transparent";c.style.borderColor="transparent";c.style.whiteSpace="nowrap";c.style.textOverflow="clip";c.style.cursor="default";mxClient.IS_VML||(c.style.paddingRight="20px");var l=document.createElement("input");l.setAttribute("value",f);l.setAttribute("type",
"text");l.style.marginTop="6px";l.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";l.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";l.style.backgroundRepeat="no-repeat";l.style.backgroundPosition="100% 50%";l.style.paddingRight="14px";f=document.createElement("div");f.setAttribute("title",mxResources.get("reset"));f.style.position="relative";f.style.left="-16px";f.style.width="12px";f.style.height="14px";f.style.cursor="pointer";f.style.display=mxClient.IS_VML?
-"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){l.value="";l.focus()});c.appendChild(l);c.appendChild(f);k.appendChild(c);var m=function(b,c,f){var g="data:"==b.substring(0,5);(!a.isOffline()||g&&"undefined"===typeof chrome)&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(g){a.spinner.stop();a.hideDialog();var k=null!=c&&null!=f?Math.max(c/g.width,f/
-g.height):Math.min(1,Math.min(520/g.width,520/g.height));e&&(b=a.convertDataUri(b));d(b,Math.round(Number(g.width)*k),Math.round(Number(g.height)*k))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},n=function(c){if(null!=c&&0<c.length){var e=b?null:g.getModel().getGeometry(g.getSelectionCell());null!=e?m(c,e.width,e.height):m(c)}else a.hideDialog(),
+"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){l.value="";l.focus()});c.appendChild(l);c.appendChild(f);k.appendChild(c);var m=function(b,c,f){var k="data:"==b.substring(0,5);(!a.isOffline()||k&&"undefined"===typeof chrome)&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(k){a.spinner.stop();a.hideDialog();var g=null!=c&&null!=f?Math.max(c/k.width,f/
+k.height):Math.min(1,Math.min(520/k.width,520/k.height));e&&(b=a.convertDataUri(b));d(b,Math.round(Number(k.width)*g),Math.round(Number(k.height)*g))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},n=function(c){if(null!=c&&0<c.length){var e=b?null:g.getModel().getGeometry(g.getSelectionCell());null!=e?m(c,e.width,e.height):m(c)}else a.hideDialog(),
d(null)};this.init=function(){l.focus();if(Graph.fileSupport){l.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=k.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){if(null==c&&(!mxClient.IS_IE||10<document.documentMode))c=a.highlightElement(b);d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,
function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,e,f){n(a)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(d)&&n(decodeURIComponent(d))}b.stopPropagation();
b.preventDefault()}),!1)}};f=document.createElement("div");f.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";f.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});c.className="geBtn";a.editor.cancelFirst&&f.appendChild(c);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(l.value=a.url));l.focus()};if("undefined"!=typeof google&&
@@ -7181,21 +7255,21 @@ b.preventDefault()}),!1)}};f=document.createElement("div");f.style.marginTop=mxC
function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0);
a.movePickersToTop()}))}),r.className="geBtn",f.appendChild(r))}mxEvent.addListener(l,"keypress",function(a){13==a.keyCode&&n(l.value)});r=mxUtils.button(mxResources.get("apply"),function(){n(l.value)});r.className="geBtn gePrimaryBtn";f.appendChild(r);a.editor.cancelFirst||f.appendChild(c);Graph.fileSupport&&(f.style.marginTop="120px",k.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",k.style.backgroundPosition="center 65%",k.style.backgroundRepeat="no-repeat",c=document.createElement("div"),
c.style.position="absolute",c.style.width="420px",c.style.top="58%",c.style.textAlign="center",c.style.fontSize="18px",c.style.color="#a0c3ff",mxUtils.write(c,mxResources.get("dragImagesHere")),k.appendChild(c));k.appendChild(f);this.container=k};
-PrintDialog.prototype.create=function(a){function c(){r.value=Math.max(1,Math.min(g,Math.max(parseInt(r.value),parseInt(p.value))));p.value=Math.max(1,Math.min(g,Math.min(parseInt(r.value),parseInt(p.value))))}function f(b){function c(a,b,d){var f=a.getGraphBounds(),g=0,k=0,l=J.get(),m=1/a.pageScale,n=v.checked;if(n)var m=parseInt(H.value),q=parseInt(I.value),m=Math.min(l.height*q/(f.height/a.view.scale),l.width*m/(f.width/a.view.scale));else m=parseInt(t.value)/(100*a.pageScale),isNaN(m)&&(e=1/a.pageScale,
-t.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width*e);l.height=Math.ceil(l.height*e);m*=e;!n&&a.pageVisible?(f=a.getPageLayout(),g-=f.x*l.width,k-=f.y*l.height):n=!0;if(null==b){b=PrintDialog.createPrintPreview(a,m,l,0,g,k,n);b.pageSelector=!1;b.mathEnabled=!1;if("undefined"!==typeof MathJax){var r=b.renderPage;b.renderPage=function(a,b,c,d,e,f){var g=r.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:g.className="geDisableMathJax";return g}}b.open(null,null,
-d,!0)}else{l=a.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=n;b.appendGraph(a,m,g,k,d,!0)}return b}var e=parseInt(K.value)/100;isNaN(e)&&(e=1,K.value="100 %");var e=0.75*e,f=p.value,g=r.value,l=!m.checked,n=null;l&&(l=f==k&&g==k);if(!l&&null!=a.pages&&a.pages.length){var q=0,l=a.pages.length-1;m.checked||(q=parseInt(f)-1,l=parseInt(g)-1);for(var s=q;s<=l;s++){var u=a.pages[s],f=u==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.getStylesheet()),
-g=!0,q=!1,z=null,y=null;null==u.viewState&&null==u.mapping&&null==u.root&&a.updatePageRoot(u);null!=u.viewState?(g=u.viewState.pageVisible,q=u.viewState.mathEnabled,z=u.viewState.background,y=u.viewState.backgroundImage):null!=u.mapping&&null!=u.mapping.diagramMap&&(q="0"!=u.mapping.diagramMap.get("mathEnabled"),z=u.mapping.diagramMap.get("background"),y=u.mapping.diagramMap.get("backgroundImage"),y=null!=y&&0<y.length?JSON.parse(y):null);f.background=z;f.backgroundImage=null!=y?new mxImage(y.src,
-y.width,y.height):null;f.pageVisible=g;f.mathEnabled=q;var x=f.getGlobalVariable;f.getGlobalVariable=function(a){return"page"==a?u.getName():"pagenumber"==a?s+1:x.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(u);f.model.setRoot(u.root)}n=c(f,n,s!=l);f!=d&&f.container.parentNode.removeChild(f.container)}}else n=c(d);n.mathEnabled&&(l=n.wnd.document,l.writeln('\x3cscript type\x3d"text/x-mathjax-config"\x3e'),l.writeln("MathJax.Hub.Config({"),l.writeln('messageStyle: "none",'),
+PrintDialog.prototype.create=function(a){function c(){r.value=Math.max(1,Math.min(g,Math.max(parseInt(r.value),parseInt(p.value))));p.value=Math.max(1,Math.min(g,Math.min(parseInt(r.value),parseInt(p.value))))}function f(b){function c(a,b,d){var f=a.getGraphBounds(),k=0,g=0,l=J.get(),m=1/a.pageScale,n=v.checked;if(n)var m=parseInt(H.value),p=parseInt(I.value),m=Math.min(l.height*p/(f.height/a.view.scale),l.width*m/(f.width/a.view.scale));else m=parseInt(t.value)/(100*a.pageScale),isNaN(m)&&(e=1/a.pageScale,
+t.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width*e);l.height=Math.ceil(l.height*e);m*=e;!n&&a.pageVisible?(f=a.getPageLayout(),k-=f.x*l.width,g-=f.y*l.height):n=!0;if(null==b){b=PrintDialog.createPrintPreview(a,m,l,0,k,g,n);b.pageSelector=!1;b.mathEnabled=!1;if("undefined"!==typeof MathJax){var q=b.renderPage;b.renderPage=function(a,b,c,d,e,f){var k=q.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:k.className="geDisableMathJax";return k}}b.open(null,null,
+d,!0)}else{l=a.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=n;b.appendGraph(a,m,k,g,d,!0)}return b}var e=parseInt(M.value)/100;isNaN(e)&&(e=1,M.value="100 %");var e=0.75*e,f=p.value,g=r.value,l=!m.checked,n=null;l&&(l=f==k&&g==k);if(!l&&null!=a.pages&&a.pages.length){var q=0,l=a.pages.length-1;m.checked||(q=parseInt(f)-1,l=parseInt(g)-1);for(var s=q;s<=l;s++){var u=a.pages[s],f=u==a.currentPage?d:null;if(null==f){var f=a.createTemporaryGraph(d.getStylesheet()),
+g=!0,q=!1,x=null,y=null;null==u.viewState&&null==u.mapping&&null==u.root&&a.updatePageRoot(u);null!=u.viewState?(g=u.viewState.pageVisible,q=u.viewState.mathEnabled,x=u.viewState.background,y=u.viewState.backgroundImage):null!=u.mapping&&null!=u.mapping.diagramMap&&(q="0"!=u.mapping.diagramMap.get("mathEnabled"),x=u.mapping.diagramMap.get("background"),y=u.mapping.diagramMap.get("backgroundImage"),y=null!=y&&0<y.length?JSON.parse(y):null);f.background=x;f.backgroundImage=null!=y?new mxImage(y.src,
+y.width,y.height):null;f.pageVisible=g;f.mathEnabled=q;var z=f.getGlobalVariable;f.getGlobalVariable=function(a){return"page"==a?u.getName():"pagenumber"==a?s+1:z.apply(this,arguments)};document.body.appendChild(f.container);a.updatePageRoot(u);f.model.setRoot(u.root)}n=c(f,n,s!=l);f!=d&&f.container.parentNode.removeChild(f.container)}}else n=c(d);n.mathEnabled&&(l=n.wnd.document,l.writeln('\x3cscript type\x3d"text/x-mathjax-config"\x3e'),l.writeln("MathJax.Hub.Config({"),l.writeln('messageStyle: "none",'),
l.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),l.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),l.writeln("TeX: {"),l.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),l.writeln("},"),l.writeln("tex2jax: {"),l.writeln('\tignoreClass: "geDisableMathJax"'),l.writeln("},"),l.writeln("asciimath2jax: {"),l.writeln('\tignoreClass: "geDisableMathJax"'),l.writeln("}"),l.writeln("});"),b&&(l.writeln("MathJax.Hub.Queue(function () {"),
l.writeln("window.print();"),l.writeln("});")),l.writeln("\x3c/script\x3e"),l.writeln('\x3cscript type\x3d"text/javascript" src\x3d"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js"\x3e\x3c/script\x3e'));n.closeDocument();!n.mathEnabled&&b&&PrintDialog.printPreview(n)}var d=a.editor.graph,b=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("print"));b.appendChild(e);var g=1,k=1,l=document.createElement("div");l.style.cssText=
"border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-bottom:8px;";m.setAttribute("value","all");m.setAttribute("type","radio");m.setAttribute("name","pages-printdialog");l.appendChild(m);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));l.appendChild(e);mxUtils.br(l);var n=m.cloneNode(!0);m.setAttribute("checked","checked");n.setAttribute("value","range");l.appendChild(n);
e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");l.appendChild(e);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.style.width="50px";l.appendChild(p);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));l.appendChild(e);var r=p.cloneNode(!0);l.appendChild(r);mxEvent.addListener(p,"focus",function(){n.checked=!0});mxEvent.addListener(r,
"focus",function(){n.checked=!0});mxEvent.addListener(p,"change",c);mxEvent.addListener(r,"change",c);if(null!=a.pages&&(g=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){k=e+1;p.value=k;r.value=k;break}p.setAttribute("max",g);r.setAttribute("max",g);1<g&&b.appendChild(l);var s=document.createElement("div");s.style.marginBottom="10px";var q=document.createElement("input");q.style.marginRight="8px";q.setAttribute("value","adjust");q.setAttribute("type",
"radio");q.setAttribute("name","printZoom");s.appendChild(q);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));s.appendChild(e);var t=document.createElement("input");t.style.cssText="margin:0 8px 0 8px;";t.setAttribute("value","100 %");t.style.width="50px";s.appendChild(t);mxEvent.addListener(t,"focus",function(){q.checked=!0});b.appendChild(s);var l=l.cloneNode(!1),v=q.cloneNode(!0);v.setAttribute("value","fit");q.setAttribute("checked","checked");e=document.createElement("div");
-e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(v);l.appendChild(e);s=document.createElement("table");s.style.display="inline-block";var u=document.createElement("tbody"),z=document.createElement("tr"),y=z.cloneNode(!0),x=document.createElement("td"),F=x.cloneNode(!0),E=x.cloneNode(!0),A=x.cloneNode(!0),D=x.cloneNode(!0),G=x.cloneNode(!0);x.style.textAlign="right";A.style.textAlign="right";mxUtils.write(x,mxResources.get("fitTo"));var H=document.createElement("input");
-H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","1");H.setAttribute("min","1");H.setAttribute("type","number");H.style.width="40px";F.appendChild(H);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));E.appendChild(e);mxUtils.write(A,mxResources.get("fitToBy"));var I=H.cloneNode(!0);D.appendChild(I);mxEvent.addListener(H,"focus",function(){v.checked=!0});mxEvent.addListener(I,"focus",function(){v.checked=!0});e=document.createElement("span");mxUtils.write(e,
-mxResources.get("fitToSheetsDown"));G.appendChild(e);z.appendChild(x);z.appendChild(F);z.appendChild(E);y.appendChild(A);y.appendChild(D);y.appendChild(G);u.appendChild(z);u.appendChild(y);s.appendChild(u);l.appendChild(s);b.appendChild(l);l=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));l.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var J=PageSetupDialog.addPageFormatPanel(e,
-"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);l.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));l.appendChild(e);var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","100 %");K.style.width="60px";l.appendChild(K);b.appendChild(l);e=document.createElement("div");e.style.cssText="text-align:right;margin:42px 0 0 0;";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
+e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(v);l.appendChild(e);s=document.createElement("table");s.style.display="inline-block";var u=document.createElement("tbody"),y=document.createElement("tr"),z=y.cloneNode(!0),x=document.createElement("td"),D=x.cloneNode(!0),C=x.cloneNode(!0),A=x.cloneNode(!0),F=x.cloneNode(!0),G=x.cloneNode(!0);x.style.textAlign="right";A.style.textAlign="right";mxUtils.write(x,mxResources.get("fitTo"));var H=document.createElement("input");
+H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","1");H.setAttribute("min","1");H.setAttribute("type","number");H.style.width="40px";D.appendChild(H);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));C.appendChild(e);mxUtils.write(A,mxResources.get("fitToBy"));var I=H.cloneNode(!0);F.appendChild(I);mxEvent.addListener(H,"focus",function(){v.checked=!0});mxEvent.addListener(I,"focus",function(){v.checked=!0});e=document.createElement("span");mxUtils.write(e,
+mxResources.get("fitToSheetsDown"));G.appendChild(e);y.appendChild(x);y.appendChild(D);y.appendChild(C);z.appendChild(A);z.appendChild(F);z.appendChild(G);u.appendChild(y);u.appendChild(z);s.appendChild(u);l.appendChild(s);b.appendChild(l);l=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));l.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var J=PageSetupDialog.addPageFormatPanel(e,
+"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);l.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));l.appendChild(e);var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","100 %");M.style.width="60px";l.appendChild(M);b.appendChild(l);e=document.createElement("div");e.style.cssText="text-align:right;margin:42px 0 0 0;";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
l.className="geBtn";a.editor.cancelFirst&&e.appendChild(l);mxClient.IS_CHROMEAPP||(s=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();f(!1)}),s.className="geBtn",e.appendChild(s));s=mxUtils.button(mxResources.get(mxClient.IS_CHROMEAPP?"ok":"print"),function(){a.hideDialog();f(!0)});s.className="geBtn gePrimaryBtn";e.appendChild(s);a.editor.cancelFirst||e.appendChild(l);b.appendChild(e);this.container=b};
var LinkDialog=function(a,c,f,d){var b=document.createElement("div");mxUtils.write(b,mxResources.get("editLink")+":");var e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var g=document.createElement("input");g.setAttribute("value",c);g.setAttribute("placeholder",mxResources.get("dragUrlsHere"));
g.setAttribute("type","text");g.style.marginTop="6px";g.style.width="400px";g.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";g.style.backgroundRepeat="no-repeat";g.style.backgroundPosition="100% 50%";g.style.paddingRight="14px";c=document.createElement("div");c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=
@@ -7217,49 +7291,49 @@ c.appendChild(l);f=document.createElement("div");f.style.marginTop="26px";f.styl
var RevisionDialog=function(a,c){var f=document.createElement("div"),d=document.createElement("h3");d.style.marginTop="0px";mxUtils.write(d,mxResources.get("revisionHistory"));f.appendChild(d);var b=document.createElement("div");b.style.position="absolute";b.style.overflow="auto";b.style.width="170px";b.style.height="378px";f.appendChild(b);var e=document.createElement("div");e.style.position="absolute";e.style.border="1px solid lightGray";e.style.left="199px";e.style.width="470px";e.style.height=
"376px";e.style.overflow="hidden";mxEvent.disableContextMenu(e);f.appendChild(e);var g=new Graph(e);g.setEnabled(!1);g.setPanning(!0);g.panningHandler.ignoreCell=!0;g.panningHandler.useLeftButtonForPanning=!0;g.minFitScale=null;g.maxFitScale=null;g.centerZoom=!0;var k=0,l=null,m=0,n=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a&&null!=l&&null!=l[m]?l[k].getAttribute("name"):"pagenumber"==a?m+1:n.apply(this,arguments)};g.getLinkForCell=function(){return null};Editor.MathJaxRender&&
g.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(g.container)}));var p=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),r=a.getCurrentFile(),s=null,q=null,t=null,v=null,u=mxUtils.button("",function(){null!=t&&g.zoomIn()});u.className="geSprite geSprite-zoomin";u.setAttribute("title",mxResources.get("zoomIn"));
-u.style.outline="none";u.style.border="none";u.style.margin="2px";u.setAttribute("disabled","disabled");mxUtils.setOpacity(u,20);var z=mxUtils.button("",function(){null!=t&&g.zoomOut()});z.className="geSprite geSprite-zoomout";z.setAttribute("title",mxResources.get("zoomOut"));z.style.outline="none";z.style.border="none";z.style.margin="2px";z.setAttribute("disabled","disabled");mxUtils.setOpacity(z,20);var y=mxUtils.button("",function(){null!=t&&(g.maxFitScale=8,g.fit(8),g.center())});y.className=
-"geSprite geSprite-fit";y.setAttribute("title",mxResources.get("fit"));y.style.outline="none";y.style.border="none";y.style.margin="2px";y.setAttribute("disabled","disabled");mxUtils.setOpacity(y,20);var x=mxUtils.button("",function(){null!=t&&(g.zoomActual(),g.center())});x.className="geSprite geSprite-actualsize";x.setAttribute("title",mxResources.get("actualSize"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var F=
-document.createElement("div");F.style.position="absolute";F.style.textAlign="right";F.style.color="gray";F.style.marginTop="10px";F.style.backgroundColor="transparent";F.style.top="440px";F.style.right="32px";F.style.maxWidth="380px";F.style.cursor="default";var E=mxUtils.button(mxResources.get("download"),function(){if(null!=t){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(t.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"):
-(c="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(c):"\x26data\x3d"+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(b)+"\x26format\x3dxml"+c)).simulate(document,"_blank"))}});E.className="geBtn";E.setAttribute("disabled","disabled");var A=mxUtils.button(mxResources.get("restore"),function(){null!=t&&null!=v&&a.confirm(mxResources.get("areYouSure"),function(){a.spinner.spin(document.body,mxResources.get("restoring"))&&r.save(!0,
-function(b){a.spinner.stop();a.replaceFileData(v);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});A.className="geBtn";A.setAttribute("disabled","disabled");var D=document.createElement("select");D.setAttribute("disabled","disabled");D.style.maxWidth="80px";D.style.position="relative";D.style.top="-2px";D.style.verticalAlign="bottom";D.style.marginRight="6px";D.style.display="none";var G=null;mxEvent.addListener(D,
+u.style.outline="none";u.style.border="none";u.style.margin="2px";u.setAttribute("disabled","disabled");mxUtils.setOpacity(u,20);var y=mxUtils.button("",function(){null!=t&&g.zoomOut()});y.className="geSprite geSprite-zoomout";y.setAttribute("title",mxResources.get("zoomOut"));y.style.outline="none";y.style.border="none";y.style.margin="2px";y.setAttribute("disabled","disabled");mxUtils.setOpacity(y,20);var z=mxUtils.button("",function(){null!=t&&(g.maxFitScale=8,g.fit(8),g.center())});z.className=
+"geSprite geSprite-fit";z.setAttribute("title",mxResources.get("fit"));z.style.outline="none";z.style.border="none";z.style.margin="2px";z.setAttribute("disabled","disabled");mxUtils.setOpacity(z,20);var x=mxUtils.button("",function(){null!=t&&(g.zoomActual(),g.center())});x.className="geSprite geSprite-actualsize";x.setAttribute("title",mxResources.get("actualSize"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var D=
+document.createElement("div");D.style.position="absolute";D.style.textAlign="right";D.style.color="gray";D.style.marginTop="10px";D.style.backgroundColor="transparent";D.style.top="440px";D.style.right="32px";D.style.maxWidth="380px";D.style.cursor="default";var C=mxUtils.button(mxResources.get("download"),function(){if(null!=t){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(t.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"):
+(c="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(c):"\x26data\x3d"+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(b)+"\x26format\x3dxml"+c)).simulate(document,"_blank"))}});C.className="geBtn";C.setAttribute("disabled","disabled");var A=mxUtils.button(mxResources.get("restore"),function(){null!=t&&null!=v&&a.confirm(mxResources.get("areYouSure"),function(){a.spinner.spin(document.body,mxResources.get("restoring"))&&r.save(!0,
+function(b){a.spinner.stop();a.replaceFileData(v);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});A.className="geBtn";A.setAttribute("disabled","disabled");var F=document.createElement("select");F.setAttribute("disabled","disabled");F.style.maxWidth="80px";F.style.position="relative";F.style.top="-2px";F.style.verticalAlign="bottom";F.style.marginRight="6px";F.style.display="none";var G=null;mxEvent.addListener(F,
"change",function(a){null!=G&&(G(a),mxEvent.consume(a))});var H=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=t&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(t.documentElement)),window.openWindow(a.getUrl()))});H.className="geBtn";H.setAttribute("disabled","disabled");var I=mxUtils.button(mxResources.get("show"),function(){null!=q&&window.open(q.getUrl())});I.className="geBtn gePrimaryBtn";I.setAttribute("disabled","disabled");
-d=document.createElement("div");d.style.position="absolute";d.style.top="482px";d.style.width="640px";d.style.textAlign="right";var J=document.createElement("div");J.className="geToolbarContainer";J.style.backgroundColor="transparent";J.style.padding="2px";J.style.border="none";J.style.left="199px";J.style.top="442px";var K=null;if(null==r||null==a.drive&&r.constructor==DriveFile||null==a.dropbox&&r.constructor==DropboxFile)e.style.display="none",J.style.display="none",mxUtils.write(b,mxResources.get("notAvailable"));
-else if(null!=c&&0<c.length){e.style.cursor="move";var O=document.createElement("table");O.style.border="1px solid lightGray";O.style.borderCollapse="collapse";O.style.borderSpacing="0px";O.style.width="100%";var U=document.createElement("tbody"),W=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(k=mxUtils.indexOf(a.pages,a.currentPage));for(var B=c.length-1;0<=B;B--){var C=function(b){var d=new Date(b.modifiedDate),f=null;if(0<=d.getTime()){f=document.createElement("tr");f.style.borderBottom=
+d=document.createElement("div");d.style.position="absolute";d.style.top="482px";d.style.width="640px";d.style.textAlign="right";var J=document.createElement("div");J.className="geToolbarContainer";J.style.backgroundColor="transparent";J.style.padding="2px";J.style.border="none";J.style.left="199px";J.style.top="442px";var M=null;if(null==r||null==a.drive&&r.constructor==DriveFile||null==a.dropbox&&r.constructor==DropboxFile)e.style.display="none",J.style.display="none",mxUtils.write(b,mxResources.get("notAvailable"));
+else if(null!=c&&0<c.length){e.style.cursor="move";var P=document.createElement("table");P.style.border="1px solid lightGray";P.style.borderCollapse="collapse";P.style.borderSpacing="0px";P.style.width="100%";var U=document.createElement("tbody"),W=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(k=mxUtils.indexOf(a.pages,a.currentPage));for(var B=c.length-1;0<=B;B--){var E=function(b){var d=new Date(b.modifiedDate),f=null;if(0<=d.getTime()){f=document.createElement("tr");f.style.borderBottom=
"1px solid lightGray";f.style.fontSize="12px";f.style.cursor="pointer";var n=document.createElement("td");n.style.padding="6px";n.style.whiteSpace="nowrap";b==c[c.length-1]?mxUtils.write(n,mxResources.get("current")):d.toDateString()===W?mxUtils.write(n,d.toLocaleTimeString()):mxUtils.write(n,d.toLocaleDateString()+" "+d.toLocaleTimeString());f.appendChild(n);f.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(b.fileSize))+(null!=b.lastModifyingUserName?
-" "+b.lastModifyingUserName:""));var B=function(b){p.stop();var c=mxUtils.parseXml(b),n=a.editor.extractGraphModel(c.documentElement,!0);if(null!=n){D.style.display="none";D.innerHTML="";t=c;v=b;l=parseSelectFunction=null;m=0;var q=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,g.getModel());g.maxFitScale=1;g.fit(8);g.center();return a},s=function(b){null!=b&&(b=q(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));
-return b};if("mxfile"==n.nodeName){c=n.getElementsByTagName("diagram");l=[];for(b=0;b<c.length;b++)l.push(c[b]);m=Math.min(k,l.length-1);0<l.length&&s(l[m]);if(1<l.length){D.removeAttribute("disabled");D.style.display="";for(b=0;b<l.length;b++)c=document.createElement("option"),mxUtils.write(c,l[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==m&&c.setAttribute("selected","selected"),D.appendChild(c)}G=function(){m=k=parseInt(D.value);s(l[k])}}else q(n);
-F.innerHTML="";mxUtils.write(F,d.toLocaleDateString()+" "+d.toLocaleTimeString());F.setAttribute("title",f.getAttribute("title"));u.removeAttribute("disabled");z.removeAttribute("disabled");y.removeAttribute("disabled");x.removeAttribute("disabled");if(null==r||!r.isRestricted())a.editor.graph.isEnabled()&&A.removeAttribute("disabled"),E.removeAttribute("disabled"),I.removeAttribute("disabled"),H.removeAttribute("disabled");mxUtils.setOpacity(u,60);mxUtils.setOpacity(z,60);mxUtils.setOpacity(y,60);
-mxUtils.setOpacity(x,60)}else D.style.display="none",D.innerHTML="",F.innerHTML="",mxUtils.write(F,mxResources.get("errorLoadingFile"))};mxEvent.addListener(f,"click",function(a){q!=b&&(p.stop(),null!=s&&(s.style.backgroundColor=""),q=b,s=f,s.style.backgroundColor="#ebf2f9",v=t=null,F.removeAttribute("title"),F.innerHTML=mxResources.get("loading")+"...",e.style.backgroundColor="#ffffff",g.getModel().clear(),A.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),u.setAttribute("disabled",
-"disabled"),z.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"),y.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),mxUtils.setOpacity(u,20),mxUtils.setOpacity(z,20),mxUtils.setOpacity(y,20),mxUtils.setOpacity(x,20),p.spin(e),b.getXml(function(a){q==b&&B(a)},function(a){p.stop();D.style.display="none";D.innerHTML="";F.innerHTML="";mxUtils.write(F,mxResources.get("errorLoadingFile"))}),
-mxEvent.consume(a))});mxEvent.addListener(f,"dblclick",function(a){I.click();window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);U.appendChild(f)}return f}(c[B]);null!=C&&B==c.length-1&&(K=C)}O.appendChild(U);b.appendChild(O)}else e.style.display="none",J.style.display="none",mxUtils.write(b,mxResources.get("noRevisions"));this.init=function(){null!=K&&K.click()};b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});
-b.className="geBtn";J.appendChild(D);J.appendChild(u);J.appendChild(z);J.appendChild(x);J.appendChild(y);a.editor.cancelFirst?(d.appendChild(b),d.appendChild(E),d.appendChild(H),d.appendChild(A),d.appendChild(I)):(d.appendChild(E),d.appendChild(H),d.appendChild(A),d.appendChild(I),d.appendChild(b));f.appendChild(d);f.appendChild(J);f.appendChild(F);this.container=f},AnimationWindow=function(a,c,f,d,b){function e(a){for(var b=[],c=0;c<a.length;c++){var d=A.view.getState(a[c]);if(null!=d){for(var e=
+" "+b.lastModifyingUserName:""));var B=function(b){p.stop();var c=mxUtils.parseXml(b),n=a.editor.extractGraphModel(c.documentElement,!0);if(null!=n){F.style.display="none";F.innerHTML="";t=c;v=b;l=parseSelectFunction=null;m=0;var q=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";e.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,g.getModel());g.maxFitScale=1;g.fit(8);g.center();return a},s=function(b){null!=b&&(b=q(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));
+return b};if("mxfile"==n.nodeName){c=n.getElementsByTagName("diagram");l=[];for(b=0;b<c.length;b++)l.push(c[b]);m=Math.min(k,l.length-1);0<l.length&&s(l[m]);if(1<l.length){F.removeAttribute("disabled");F.style.display="";for(b=0;b<l.length;b++)c=document.createElement("option"),mxUtils.write(c,l[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==m&&c.setAttribute("selected","selected"),F.appendChild(c)}G=function(){m=k=parseInt(F.value);s(l[k])}}else q(n);
+D.innerHTML="";mxUtils.write(D,d.toLocaleDateString()+" "+d.toLocaleTimeString());D.setAttribute("title",f.getAttribute("title"));u.removeAttribute("disabled");y.removeAttribute("disabled");z.removeAttribute("disabled");x.removeAttribute("disabled");if(null==r||!r.isRestricted())a.editor.graph.isEnabled()&&A.removeAttribute("disabled"),C.removeAttribute("disabled"),I.removeAttribute("disabled"),H.removeAttribute("disabled");mxUtils.setOpacity(u,60);mxUtils.setOpacity(y,60);mxUtils.setOpacity(z,60);
+mxUtils.setOpacity(x,60)}else F.style.display="none",F.innerHTML="",D.innerHTML="",mxUtils.write(D,mxResources.get("errorLoadingFile"))};mxEvent.addListener(f,"click",function(a){q!=b&&(p.stop(),null!=s&&(s.style.backgroundColor=""),q=b,s=f,s.style.backgroundColor="#ebf2f9",v=t=null,D.removeAttribute("title"),D.innerHTML=mxResources.get("loading")+"...",e.style.backgroundColor="#ffffff",g.getModel().clear(),A.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"),u.setAttribute("disabled",
+"disabled"),y.setAttribute("disabled","disabled"),x.setAttribute("disabled","disabled"),z.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),I.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),mxUtils.setOpacity(u,20),mxUtils.setOpacity(y,20),mxUtils.setOpacity(z,20),mxUtils.setOpacity(x,20),p.spin(e),b.getXml(function(a){q==b&&B(a)},function(a){p.stop();F.style.display="none";F.innerHTML="";D.innerHTML="";mxUtils.write(D,mxResources.get("errorLoadingFile"))}),
+mxEvent.consume(a))});mxEvent.addListener(f,"dblclick",function(a){I.click();window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);U.appendChild(f)}return f}(c[B]);null!=E&&B==c.length-1&&(M=E)}P.appendChild(U);b.appendChild(P)}else e.style.display="none",J.style.display="none",mxUtils.write(b,mxResources.get("noRevisions"));this.init=function(){null!=M&&M.click()};b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});
+b.className="geBtn";J.appendChild(F);J.appendChild(u);J.appendChild(y);J.appendChild(x);J.appendChild(z);a.editor.cancelFirst?(d.appendChild(b),d.appendChild(C),d.appendChild(H),d.appendChild(A),d.appendChild(I)):(d.appendChild(C),d.appendChild(H),d.appendChild(A),d.appendChild(I),d.appendChild(b));f.appendChild(d);f.appendChild(J);f.appendChild(D);this.container=f},AnimationWindow=function(a,c,f,d,b){function e(a){for(var b=[],c=0;c<a.length;c++){var d=A.view.getState(a[c]);if(null!=d){for(var e=
A.cellRenderer.getShapesForState(d),f=0;f<e.length;f++)null!=e[f]&&null!=e[f].node&&b.push(e[f].node);null!=d.control&&null!=d.control.node&&b.push(d.control.node)}}return b}function g(a){if(null!=a){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition",null),a[b].style.opacity="0";window.setTimeout(function(){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition","all 1s ease-in-out"),a[b].style.opacity="1"},0)}}function k(a){if(null!=a){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,
-"transition",null),a[b].style.opacity="1";window.setTimeout(function(){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition","all 1s ease-in-out"),a[b].style.opacity="0"},0)}}function l(a){var b=a.absolutePoints.slice(),c=a.segments,d=a.length,e=b.length;return{execute:function(f,g){if(null!=a.shape){for(var k=[b[0]],l=d*f/g,m=1;m<e;m++)if(l<=c[m-1]){k.push(new mxPoint(b[m-1].x+(b[m].x-b[m-1].x)*l/c[m-1],b[m-1].y+(b[m].y-b[m-1].y)*l/c[m-1]));break}else l-=c[m-1],k.push(b[m]);
-a.shape.points=k;a.shape.redraw()}},stop:function(){null!=a.shape&&(a.shape.points=b,a.shape.redraw())}}}function m(a){var b=new mxRectangle.fromRectangle(a.shape.bounds),c=null;null!=a.text&&null!=a.text.node&&null!=a.text.node.firstChild&&(c=a.text.node.firstChild.getAttribute("transform"));return{execute:function(d,e){if(null!=a.shape){var f=d/e;a.shape.bounds=new mxRectangle(b.x,b.y,b.width*f,b.height);a.shape.redraw();null!=c&&a.text.node.firstChild.setAttribute("transform",c+" scale("+f+",1)")}},
-stop:function(){null!=a.shape&&(a.shape.bounds=b,a.shape.redraw(),null!=c&&a.text.node.firstChild.setAttribute("transform",c))}}}function n(a,b,c){function d(){if(k==b){window.clearInterval(n);for(var a=0;a<e.length;a++)e[a].stop()}else{for(a=0;a<e.length;a++)e[a].execute(k,b);k++}}b=null!=b?b:30;c=null!=c?c:30;for(var e=[],f=0;f<a.length;f++){var g=A.view.getState(a[f]);null!=g&&null!=g.shape&&A.model.isEdge(g.cell)&&null!=g.absolutePoints&&1<g.absolutePoints.length?e.push(l(g)):null!=g&&A.model.isVertex(g.cell)&&
-(null!=g.shape&&null!=g.shape.bounds)&&e.push(m(g))}var k=0,n=window.setInterval(d,c);d()}function p(a,b,c){c=null!=c?c:{};c[a.id]=b;for(var d=a.getChildCount(),e=0;e<d;e++)p(a.getChildAt(e),b.getChildAt(e),c);return c}function r(){if(!G){G=D=!0;A.getModel().clear();A.getModel().setRoot(A.cloneCells([a.editor.graph.getModel().getRoot()])[0]);A.maxFitScale=1;A.fit(8);A.center();A.getModel().beginUpdate();try{for(var b in A.getModel().cells){var c=A.getModel().cells[b];if(A.getModel().isVertex(c)||
-A.getModel().isEdge(c))A.setCellStyles("opacity","0",[c]),A.setCellStyles("noLabel","1",[c])}}finally{A.getModel().endUpdate()}var d=p(a.editor.graph.getModel().getRoot(),A.getModel().getRoot()),f=x.value.split("\n"),l=0,m=function(){if(D&&l<f.length){var a=f[l].split(" ");if(0<a.length)if("wait"==a[0]&&1<a.length)window.setTimeout(function(){l++;m()},parseFloat(a[1]));else{if(1<a.length){var c=d[a[1]];null!=c?"show"==a[0]?(A.setCellStyles("opacity","100",[c]),A.setCellStyles("noLabel",null,[c]),
-2<a.length&&"fade"==a[2]?g(e([c])):n([c])):"hide"==a[0]&&k(e([c])):console.log("cell not found",b,f[l])}l++;m()}}else G=!1};m()}}var s=document.createElement("table");s.style.width="100%";s.style.height="100%";var q=document.createElement("tbody"),t=document.createElement("tr"),v=document.createElement("td");v.style.width="140px";var u=document.createElement("td"),z=document.createElement("tr");z.style.height="40px";var y=document.createElement("td");y.setAttribute("colspan","2");var x=document.createElement("textarea");
-x.style.overflow="auto";x.style.width="100%";x.style.height="100%";v.appendChild(x);var F=a.editor.graph.getModel().getRoot();null!=F.value&&"object"==typeof F.value&&(x.value=F.value.getAttribute("animation"));var E=document.createElement("div");E.style.border="1px solid lightGray";E.style.background="#ffffff";E.style.width="100%";E.style.height="100%";E.style.overflow="auto";mxEvent.disableContextMenu(E);u.appendChild(E);var A=new Graph(E);A.setEnabled(!1);A.setPanning(!0);A.foldingEnabled=!1;A.panningHandler.ignoreCell=
-!0;A.panningHandler.useLeftButtonForPanning=!0;A.minFitScale=null;A.maxFitScale=null;A.centerZoom=!0;var D=!1,G=!1,E=mxUtils.button("Fade In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+" fade\n";x.value+="wait 1000\n"}});y.appendChild(E);E=mxUtils.button("Wipe In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+"\n";x.value+="wait 1000\n"}});
-y.appendChild(E);E=mxUtils.button("Fade Out",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"hide "+b[c].id+"\n";x.value+="wait 1000\n"}});y.appendChild(E);E=mxUtils.button("Wait",function(){x.value+="wait 1000\n"});y.appendChild(E);E=mxUtils.button("Preview",function(){r()});y.appendChild(E);E=mxUtils.button("Stop",function(){D=!1;A.getModel().clear()});y.appendChild(E);E=mxUtils.button("Apply",function(){a.editor.graph.setAttributeForCell(F,
-"animation",x.value)});y.appendChild(E);F=a.editor.graph.getModel().getRoot();t.appendChild(v);t.appendChild(u);q.appendChild(t);z.appendChild(y);q.appendChild(z);s.appendChild(q);this.window=new mxWindow("Animation",s,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0)},AuthDialog=function(a,c,f,d){var b=document.createElement("div");b.style.textAlign="center";var e=document.createElement("p");
+"transition",null),a[b].style.opacity="1";window.setTimeout(function(){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"transition","all 1s ease-in-out"),a[b].style.opacity="0"},0)}}function l(a){var b=a.absolutePoints.slice(),c=a.segments,d=a.length,e=b.length;return{execute:function(f,k){if(null!=a.shape){for(var g=[b[0]],l=d*f/k,m=1;m<e;m++)if(l<=c[m-1]){g.push(new mxPoint(b[m-1].x+(b[m].x-b[m-1].x)*l/c[m-1],b[m-1].y+(b[m].y-b[m-1].y)*l/c[m-1]));break}else l-=c[m-1],g.push(b[m]);
+a.shape.points=g;a.shape.redraw()}},stop:function(){null!=a.shape&&(a.shape.points=b,a.shape.redraw())}}}function m(a){var b=new mxRectangle.fromRectangle(a.shape.bounds),c=null;null!=a.text&&null!=a.text.node&&null!=a.text.node.firstChild&&(c=a.text.node.firstChild.getAttribute("transform"));return{execute:function(d,e){if(null!=a.shape){var f=d/e;a.shape.bounds=new mxRectangle(b.x,b.y,b.width*f,b.height);a.shape.redraw();null!=c&&a.text.node.firstChild.setAttribute("transform",c+" scale("+f+",1)")}},
+stop:function(){null!=a.shape&&(a.shape.bounds=b,a.shape.redraw(),null!=c&&a.text.node.firstChild.setAttribute("transform",c))}}}function n(a,b,c){function d(){if(g==b){window.clearInterval(n);for(var a=0;a<e.length;a++)e[a].stop()}else{for(a=0;a<e.length;a++)e[a].execute(g,b);g++}}b=null!=b?b:30;c=null!=c?c:30;for(var e=[],f=0;f<a.length;f++){var k=A.view.getState(a[f]);null!=k&&null!=k.shape&&A.model.isEdge(k.cell)&&null!=k.absolutePoints&&1<k.absolutePoints.length?e.push(l(k)):null!=k&&A.model.isVertex(k.cell)&&
+(null!=k.shape&&null!=k.shape.bounds)&&e.push(m(k))}var g=0,n=window.setInterval(d,c);d()}function p(a,b,c){c=null!=c?c:{};c[a.id]=b;for(var d=a.getChildCount(),e=0;e<d;e++)p(a.getChildAt(e),b.getChildAt(e),c);return c}function r(){if(!G){G=F=!0;A.getModel().clear();A.getModel().setRoot(A.cloneCells([a.editor.graph.getModel().getRoot()])[0]);A.maxFitScale=1;A.fit(8);A.center();A.getModel().beginUpdate();try{for(var b in A.getModel().cells){var c=A.getModel().cells[b];if(A.getModel().isVertex(c)||
+A.getModel().isEdge(c))A.setCellStyles("opacity","0",[c]),A.setCellStyles("noLabel","1",[c])}}finally{A.getModel().endUpdate()}var d=p(a.editor.graph.getModel().getRoot(),A.getModel().getRoot()),f=x.value.split("\n"),l=0,m=function(){if(F&&l<f.length){var a=f[l].split(" ");if(0<a.length)if("wait"==a[0]&&1<a.length)window.setTimeout(function(){l++;m()},parseFloat(a[1]));else{if(1<a.length){var c=d[a[1]];null!=c?"show"==a[0]?(A.setCellStyles("opacity","100",[c]),A.setCellStyles("noLabel",null,[c]),
+2<a.length&&"fade"==a[2]?g(e([c])):n([c])):"hide"==a[0]&&k(e([c])):console.log("cell not found",b,f[l])}l++;m()}}else G=!1};m()}}var s=document.createElement("table");s.style.width="100%";s.style.height="100%";var q=document.createElement("tbody"),t=document.createElement("tr"),v=document.createElement("td");v.style.width="140px";var u=document.createElement("td"),y=document.createElement("tr");y.style.height="40px";var z=document.createElement("td");z.setAttribute("colspan","2");var x=document.createElement("textarea");
+x.style.overflow="auto";x.style.width="100%";x.style.height="100%";v.appendChild(x);var D=a.editor.graph.getModel().getRoot();null!=D.value&&"object"==typeof D.value&&(x.value=D.value.getAttribute("animation"));var C=document.createElement("div");C.style.border="1px solid lightGray";C.style.background="#ffffff";C.style.width="100%";C.style.height="100%";C.style.overflow="auto";mxEvent.disableContextMenu(C);u.appendChild(C);var A=new Graph(C);A.setEnabled(!1);A.setPanning(!0);A.foldingEnabled=!1;A.panningHandler.ignoreCell=
+!0;A.panningHandler.useLeftButtonForPanning=!0;A.minFitScale=null;A.maxFitScale=null;A.centerZoom=!0;var F=!1,G=!1,C=mxUtils.button("Fade In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+" fade\n";x.value+="wait 1000\n"}});z.appendChild(C);C=mxUtils.button("Wipe In",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"show "+b[c].id+"\n";x.value+="wait 1000\n"}});
+z.appendChild(C);C=mxUtils.button("Fade Out",function(){var b=a.editor.graph.getSelectionCells();if(0<b.length){for(var c=0;c<b.length;c++)x.value=x.value+"hide "+b[c].id+"\n";x.value+="wait 1000\n"}});z.appendChild(C);C=mxUtils.button("Wait",function(){x.value+="wait 1000\n"});z.appendChild(C);C=mxUtils.button("Preview",function(){r()});z.appendChild(C);C=mxUtils.button("Stop",function(){F=!1;A.getModel().clear()});z.appendChild(C);C=mxUtils.button("Apply",function(){a.editor.graph.setAttributeForCell(D,
+"animation",x.value)});z.appendChild(C);D=a.editor.graph.getModel().getRoot();t.appendChild(v);t.appendChild(u);q.appendChild(t);y.appendChild(z);q.appendChild(y);s.appendChild(q);this.window=new mxWindow("Animation",s,c,f,d,b,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0)},AuthDialog=function(a,c,f,d){var b=document.createElement("div");b.style.textAlign="center";var e=document.createElement("p");
e.style.fontSize="16pt";e.style.padding="0px";e.style.margin="0px";e.style.color="gray";mxUtils.write(e,mxResources.get("authorizationRequired"));var g="Unknown",k=document.createElement("img");k.setAttribute("border","0");k.setAttribute("align","absmiddle");k.style.marginRight="10px";c==a.drive?(g=mxResources.get("googleDrive"),k.src=IMAGE_PATH+"/google-drive-logo-white.svg"):c==a.dropbox?(g=mxResources.get("dropbox"),k.src=IMAGE_PATH+"/dropbox-logo-white.svg"):c==a.oneDrive&&(g=mxResources.get("oneDrive"),
k.src=IMAGE_PATH+"/onedrive-logo-white.svg");c=document.createElement("p");mxUtils.write(c,mxResources.get("authorizeThisAppIn",[g]));var l=document.createElement("input");l.setAttribute("type","checkbox");g=mxUtils.button(mxResources.get("authorize"),function(){a.hideDialog(!1);d(l.checked)});g.insertBefore(k,g.firstChild);g.style.marginTop="6px";g.className="geBigButton";b.appendChild(e);b.appendChild(c);b.appendChild(g);f&&(f=document.createElement("p"),f.style.marginTop="20px",f.appendChild(l),
e=document.createElement("span"),mxUtils.write(e," "+mxResources.get("rememberMe")),f.appendChild(e),b.appendChild(f),l.checked=!0,l.defaultChecked=!0,mxEvent.addListener(e,"click",function(a){l.checked=!l.checked;mxEvent.consume(a)}));this.container=b},MoreShapesDialog=function(a,c,f){f=null!=f?f:a.sidebar.entries;var d=document.createElement("div");if(c){c=document.createElement("div");c.className="geDialogTitle";mxUtils.write(c,mxResources.get("shapes"));c.style.position="absolute";c.style.top=
"0px";c.style.left="0px";c.style.lineHeight="40px";c.style.height="40px";c.style.right="0px";mxClient.IS_QUIRKS&&(c.style.width="718px");var b=document.createElement("div"),e=document.createElement("div");b.style.position="absolute";b.style.top="40px";b.style.left="0px";b.style.width="202px";b.style.bottom="60px";b.style.overflow="auto";mxClient.IS_QUIRKS&&(b.style.height="437px",b.style.marginTop="1px");e.style.position="absolute";e.style.left="202px";e.style.right="0px";e.style.top="40px";e.style.bottom=
"60px";e.style.overflow="auto";e.style.borderLeft="1px solid rgb(211, 211, 211)";e.style.textAlign="center";mxClient.IS_QUIRKS&&(e.style.width=parseInt(c.style.width)-202+"px",e.style.height=b.style.height,e.style.marginTop=b.style.marginTop);var g=null,k=[],l=document.createElement("div");l.style.position="relative";l.style.left="0px";l.style.right="0px";for(var m=0;m<f.length;m++)(function(c){var d=l.cloneNode(!1);d.style.fontWeight="bold";d.style.backgroundColor="#e5e5e5";d.style.padding="6px 0px 6px 20px";
-mxUtils.write(d,c.title);b.appendChild(d);for(var f=0;f<c.entries.length;f++)(function(c){var d=l.cloneNode(!1);d.style.cursor="pointer";d.style.padding="4px 0px 4px 20px";var n=document.createElement("input");n.setAttribute("type","checkbox");n.checked=a.sidebar.isEntryVisible(c.id);n.defaultChecked=n.checked;d.appendChild(n);mxUtils.write(d," "+c.title);b.appendChild(d);var q=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName)null!=c.imageCallback?c.imageCallback(e):null!=c.image?e.innerHTML=
-'\x3cimg border\x3d"0" src\x3d"'+c.image+'"/\x3e':(e.innerHTML="\x3cbr\x3e",mxUtils.write(e,mxResources.get("noPreview"))),null!=g&&(g.style.backgroundColor=""),g=d,g.style.backgroundColor="#ebf2f9",null!=a&&mxEvent.consume(a)};mxEvent.addListener(d,"click",q);mxEvent.addListener(d,"dblclick",function(a){n.checked=!n.checked;mxEvent.consume(a)});k.push(function(){return n.checked?c.id:null});0==m&&0==f&&q()})(c.entries[f])})(f[m]);d.style.padding="30px";d.appendChild(c);d.appendChild(b);d.appendChild(e);
+mxUtils.write(d,c.title);b.appendChild(d);for(var f=0;f<c.entries.length;f++)(function(c){var d=l.cloneNode(!1);d.style.cursor="pointer";d.style.padding="4px 0px 4px 20px";var n=document.createElement("input");n.setAttribute("type","checkbox");n.checked=a.sidebar.isEntryVisible(c.id);n.defaultChecked=n.checked;d.appendChild(n);mxUtils.write(d," "+c.title);b.appendChild(d);var p=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName)null!=c.imageCallback?c.imageCallback(e):null!=c.image?e.innerHTML=
+'\x3cimg border\x3d"0" src\x3d"'+c.image+'"/\x3e':(e.innerHTML="\x3cbr\x3e",mxUtils.write(e,mxResources.get("noPreview"))),null!=g&&(g.style.backgroundColor=""),g=d,g.style.backgroundColor="#ebf2f9",null!=a&&mxEvent.consume(a)};mxEvent.addListener(d,"click",p);mxEvent.addListener(d,"dblclick",function(a){n.checked=!n.checked;mxEvent.consume(a)});k.push(function(){return n.checked?c.id:null});0==m&&0==f&&p()})(c.entries[f])})(f[m]);d.style.padding="30px";d.appendChild(c);d.appendChild(b);d.appendChild(e);
f=document.createElement("div");f.className="geDialogFooter";f.style.position="absolute";f.style.paddingRight="16px";f.style.color="gray";f.style.left="0px";f.style.right="0px";f.style.bottom="0px";f.style.height="60px";f.style.lineHeight="52px";mxClient.IS_QUIRKS&&(f.style.width=c.style.width,f.style.paddingTop="12px");var n=document.createElement("input");n.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)c=document.createElement("span"),c.style.paddingRight="20px",c.appendChild(n),
mxUtils.write(c," "+mxResources.get("rememberThisSetting")),n.checked=!0,n.defaultChecked=!0,mxEvent.addListener(c,"click",function(a){mxEvent.getSource(a)!=n&&(n.checked=!n.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(c.style.position="relative",c.style.top="-6px"),f.appendChild(c);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";var p=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b=[],c=0;c<k.length;c++){var d=k[c].apply(this,
arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),n.checked,!0)});p.className="geBtn gePrimaryBtn"}else{var r=document.createElement("table"),s=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";var q=document.createElement("tr");r.style.width="100%";c=document.createElement("td");var p=document.createElement("td"),t=document.createElement("td"),v=mxUtils.bind(this,function(b,c,d){var e=document.createElement("input");e.type="checkbox";r.appendChild(e);e.checked=
-a.sidebar.isEntryVisible(d);var f=document.createElement("span");mxUtils.write(f,c);c=document.createElement("div");c.style.display="block";c.appendChild(e);c.appendChild(f);mxEvent.addListener(f,"click",function(a){e.checked=!e.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return e.checked?d:null}});q.appendChild(c);q.appendChild(p);q.appendChild(t);s.appendChild(q);r.appendChild(s);for(var k=[],u=0,m=0;m<f.length;m++)for(s=0;s<f[m].entries.length;s++)u++;for(var z=[c,p,t],y=0,
-m=0;m<f.length;m++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];k.push(v(z[Math.floor(y/(u/3))],c.title,c.id));y++}})(f[m]);d.appendChild(r);f=document.createElement("div");f.style.marginTop="18px";f.style.textAlign="center";n=document.createElement("input");isLocalStorage&&(n.setAttribute("type","checkbox"),n.checked=!0,n.defaultChecked=!0,f.appendChild(n),c=document.createElement("span"),mxUtils.write(c," "+mxResources.get("rememberThisSetting")),f.appendChild(c),mxEvent.addListener(c,
+a.sidebar.isEntryVisible(d);var f=document.createElement("span");mxUtils.write(f,c);c=document.createElement("div");c.style.display="block";c.appendChild(e);c.appendChild(f);mxEvent.addListener(f,"click",function(a){e.checked=!e.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return e.checked?d:null}});q.appendChild(c);q.appendChild(p);q.appendChild(t);s.appendChild(q);r.appendChild(s);for(var k=[],u=0,m=0;m<f.length;m++)for(s=0;s<f[m].entries.length;s++)u++;for(var y=[c,p,t],z=0,
+m=0;m<f.length;m++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];k.push(v(y[Math.floor(z/(u/3))],c.title,c.id));z++}})(f[m]);d.appendChild(r);f=document.createElement("div");f.style.marginTop="18px";f.style.textAlign="center";n=document.createElement("input");isLocalStorage&&(n.setAttribute("type","checkbox"),n.checked=!0,n.defaultChecked=!0,f.appendChild(n),c=document.createElement("span"),mxUtils.write(c," "+mxResources.get("rememberThisSetting")),f.appendChild(c),mxEvent.addListener(c,
"click",function(a){n.checked=!n.checked;mxEvent.consume(a)}));d.appendChild(f);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";p=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<k.length;c++){var d=k[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",n.checked);a.hideDialog()});p.className="geBtn gePrimaryBtn";f=document.createElement("div");f.style.marginTop="26px";f.style.textAlign=
-"right"}a.editor.cancelFirst?(f.appendChild(c),f.appendChild(p)):(f.appendChild(p),f.appendChild(c));d.appendChild(f);this.container=d},PluginsDialog=function(a){function c(){if(0==b.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var e=0;e<b.length;e++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var g=document.createElement("span");g.className="geSprite geSprite-delete";g.style.position="relative";g.style.cursor="pointer";g.style.top="5px";g.style.marginRight=
-"4px";g.style.display="inline-block";f.appendChild(g);mxUtils.write(f,b[e]);d.appendChild(f);mxUtils.br(d);mxEvent.addListener(g,"click",function(d){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+b[d]+'"?',function(){b.splice(d,1);c()})}}(e))}}}var f=document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var b=mxSettings.getPlugins().slice();f.appendChild(d);c();var e=mxUtils.button(mxResources.get("add"),function(){var d=
-"",e=urlParams.p;if(null!=e&&0<e.length){for(var f=e.split(";"),e=0;e<f.length;e++){var g=App.pluginRegistry[f[e]];null!=g&&(d+=g+";")}";"==d.charAt(d.length-1)&&(d=d.substring(0,d.length-1))}d=new FilenameDialog(a,d,mxResources.get("add"),function(a){if(null!=a&&0<a.length){f=a.split(";");for(a=0;a<f.length;a++)0<f[a].length&&0>mxUtils.indexOf(b,f[a])&&b.push(f[a]);c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(d.container,300,80,!0,!0);d.init()});e.className="geBtn";
+"right"}a.editor.cancelFirst?(f.appendChild(c),f.appendChild(p)):(f.appendChild(p),f.appendChild(c));d.appendChild(f);this.container=d},PluginsDialog=function(a){function c(){if(0==b.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var e=0;e<b.length;e++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var k=document.createElement("span");k.className="geSprite geSprite-delete";k.style.position="relative";k.style.cursor="pointer";k.style.top="5px";k.style.marginRight=
+"4px";k.style.display="inline-block";f.appendChild(k);mxUtils.write(f,b[e]);d.appendChild(f);mxUtils.br(d);mxEvent.addListener(k,"click",function(d){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+b[d]+'"?',function(){b.splice(d,1);c()})}}(e))}}}var f=document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var b=mxSettings.getPlugins().slice();f.appendChild(d);c();var e=mxUtils.button(mxResources.get("add"),function(){var d=
+"",e=urlParams.p;if(null!=e&&0<e.length){for(var f=e.split(";"),e=0;e<f.length;e++){var k=App.pluginRegistry[f[e]];null!=k&&(d+=k+";")}";"==d.charAt(d.length-1)&&(d=d.substring(0,d.length-1))}d=new FilenameDialog(a,d,mxResources.get("add"),function(a){if(null!=a&&0<a.length){f=a.split(";");for(a=0;a<f.length;a++)0<f[a].length&&0>mxUtils.indexOf(b,f[a])&&b.push(f[a]);c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(d.container,300,80,!0,!0);d.init()});e.className="geBtn";
var g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});g.className="geBtn";var k=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(b);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});k.className="geBtn gePrimaryBtn";var l=document.createElement("div");l.style.marginTop="14px";l.style.textAlign="right";a.editor.cancelFirst?(l.appendChild(g),l.appendChild(e),l.appendChild(k)):(l.appendChild(e),l.appendChild(k),l.appendChild(g));
f.appendChild(l);this.container=f},EditGeometryDialog=function(a,c){var f=a.editor.graph,d=1==c.length?f.getCellGeometry(c[0]):null,b=document.createElement("div"),e=document.createElement("table"),g=document.createElement("tbody"),k=document.createElement("tr"),l=document.createElement("td"),m=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(l,mxResources.get("left")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value=null!=d?
d.x:"";this.init=function(){n.focus();n.select()};m.appendChild(n);k.appendChild(l);k.appendChild(m);g.appendChild(k);k=document.createElement("tr");l=document.createElement("td");m=document.createElement("td");mxUtils.write(l,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=d?d.y:"";m.appendChild(p);k.appendChild(l);k.appendChild(m);g.appendChild(k);k=document.createElement("tr");l=document.createElement("td");m=document.createElement("td");
@@ -7267,160 +7341,215 @@ mxUtils.write(l,mxResources.get("width")+":");var r=document.createElement("inpu
k.appendChild(l);k.appendChild(m);g.appendChild(k);k=document.createElement("tr");l=document.createElement("td");m=document.createElement("td");mxUtils.write(l,mxResources.get("rotation")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=1==c.length?mxUtils.getValue(f.getCellStyle(c[0]),mxConstants.STYLE_ROTATION,0):"";m.appendChild(q);k.appendChild(l);k.appendChild(m);g.appendChild(k);e.appendChild(g);b.appendChild(e);var d=mxUtils.button(mxResources.get("cancel"),
function(){a.hideDialog()}),t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();f.getModel().beginUpdate();try{for(var b=0;b<c.length;b++){var d=f.getCellGeometry(c[b]);null!=d&&(d=d.clone(),f.isCellMovable(c[b])&&(0<mxUtils.trim(n.value).length&&(d.x=Number(n.value)),0<mxUtils.trim(p.value).length&&(d.y=Number(p.value))),f.isCellResizable(c[b])&&(0<mxUtils.trim(r.value).length&&(d.width=Number(r.value)),0<mxUtils.trim(s.value).length&&(d.height=Number(s.value))),f.getModel().setGeometry(c[b],
d));0<mxUtils.trim(q.value).length&&f.setCellStyles(mxConstants.STYLE_ROTATION,Number(q.value),[c[b]])}}finally{f.getModel().endUpdate()}});mxEvent.addListener(b,"keypress",function(a){13==a.keyCode&&t.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(d),e.appendChild(t)):(e.appendChild(t),e.appendChild(d));b.appendChild(e);this.container=b},LibraryDialog=function(a,c,f,d,b,e){function g(a){for(a=document.elementFromPoint(a.clientX,
-a.clientY);null!=a&&a.parentNode!=s;)a=a.parentNode;var b=null;if(null!=a)for(var c=s.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function k(b,c,d,e,f,l,m,r,p){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=m||null==t[b]){s.style.backgroundImage="";q.style.display="none";var y=f,E=l;if(f>a.maxImageSize||l>a.maxImageSize){var C=Math.min(1,Math.min(a.maxImageSize/Math.max(1,f)),a.maxImageSize/Math.max(1,l));f*=C;l*=C}y>E?(E=Math.round(E*v/y),y=v):(y=Math.round(y*u/E),E=
-u);var Q=document.createElement("div");Q.setAttribute("draggable","true");Q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";Q.style.position="relative";Q.style.cursor="move";mxUtils.setPrefixedStyle(Q.style,"transition","transform .1s ease-in-out");if(null!=b){var P=document.createElement("img");P.setAttribute("src",F.convert(b));P.style.width=y+"px";P.style.height=E+"px";P.style.margin="10px";P.style.paddingBottom=Math.floor((u-E)/2)+"px";P.style.paddingLeft=Math.floor((v-y)/2)+"px";Q.appendChild(P)}else if(null!=
+a.clientY);null!=a&&a.parentNode!=s;)a=a.parentNode;var b=null;if(null!=a)for(var c=s.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function k(b,c,d,e,f,l,m,p,r){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=m||null==t[b]){s.style.backgroundImage="";q.style.display="none";var z=f,C=l;if(f>a.maxImageSize||l>a.maxImageSize){var E=Math.min(1,Math.min(a.maxImageSize/Math.max(1,f)),a.maxImageSize/Math.max(1,l));f*=E;l*=E}z>C?(C=Math.round(C*v/z),z=v):(z=Math.round(z*u/C),C=
+u);var Q=document.createElement("div");Q.setAttribute("draggable","true");Q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";Q.style.position="relative";Q.style.cursor="move";mxUtils.setPrefixedStyle(Q.style,"transition","transform .1s ease-in-out");if(null!=b){var O=document.createElement("img");O.setAttribute("src",D.convert(b));O.style.width=z+"px";O.style.height=C+"px";O.style.margin="10px";O.style.paddingBottom=Math.floor((u-C)/2)+"px";O.style.paddingLeft=Math.floor((v-z)/2)+"px";Q.appendChild(O)}else if(null!=
m){var N=a.stringToCells(a.editor.graph.decompress(m.xml));0<N.length&&(a.sidebar.createThumb(N,v,u,Q,null,!0,!1),Q.firstChild.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",Q.firstChild.style.cursor="")}var V=document.createElement("img");V.setAttribute("src",Editor.closeImage);V.setAttribute("border","0");V.setAttribute("title",mxResources.get("delete"));V.setAttribute("align","top");V.style.paddingTop="4px";V.style.marginLeft="-22px";V.style.cursor="pointer";mxEvent.addListener(V,"dragstart",
function(a){mxEvent.consume(a)});null==b&&null!=m&&(V.style.position="relative");(function(a,c){mxEvent.addListener(V,"click",function(d){t[b]=null;for(var e=0;e<n.length;e++)if(null!=b&&n[e].data==c||null!=m&&n[e].xml==m.xml){n.splice(e,1);break}Q.parentNode.removeChild(a);0==n.length&&(s.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",q.style.display="");mxEvent.consume(d)});mxEvent.addListener(V,"dblclick",function(a){mxEvent.consume(a)})})(Q,b,m);Q.appendChild(V);Q.style.marginBottom=
-"30px";var L=document.createElement("div");L.style.position="absolute";L.style.boxSizing="border-box";L.style.bottom="-18px";L.style.left="10px";L.style.right="10px";L.style.backgroundColor="#ffffff";L.style.overflow="hidden";L.style.textAlign="center";var M=null;null!=b?(M={data:b,w:f,h:l,title:p},null!=r&&(M.aspect=r),t[b]=P,n.push(M)):null!=m&&(m.aspect="fixed",n.push(m),M=m);var R=function(){L.innerHTML="";L.style.cursor="pointer";L.style.whiteSpace="nowrap";L.style.textOverflow="ellipsis";mxUtils.write(L,
-null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled"));L.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};mxEvent.addListener(L,"keydown",function(a){13==a.keyCode&&null!=x&&(x(),x=null,mxEvent.consume(a))});R();Q.appendChild(L);mxEvent.addListener(L,"mousedown",function(a){mxEvent.consume(a)});f=function(b){if(!mxClient.IS_IOS&&!mxClient.IS_QUIRKS&&!mxClient.IS_FF&&(null==document.documentMode||9<document.documentMode)){if("true"!=L.getAttribute("contentEditable")){null!=
-x&&(x(),x=null);if(null==M.title||0==M.title.length)L.innerHTML="";L.style.textOverflow="";L.style.whiteSpace="";L.style.cursor="text";L.style.color="";L.setAttribute("contentEditable","true");L.focus();document.execCommand("selectAll",!1,null);x=function(){L.removeAttribute("contentEditable");L.style.cursor="pointer";M.title=L.innerHTML;R()}}}else{var c=new FilenameDialog(a,M.title||"",mxResources.get("ok"),function(a){null!=a&&(M.title=a,R())},mxResources.get("enterValue"));a.showDialog(c.container,
-300,80,!0,!0);c.init()}mxEvent.consume(b)};mxEvent.addListener(L,"click",f);mxEvent.addListener(Q,"dblclick",f);s.appendChild(Q);mxEvent.addListener(Q,"dragstart",function(a){null==b&&null!=m&&(V.style.visibility="hidden",L.style.visibility="hidden");mxClient.IS_FF&&null!=m.xml&&a.dataTransfer.setData("Text",m.xml);z=g(a);mxClient.IS_GC&&(Q.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(Q,30);V.style.visibility="";
-L.style.visibility=""},0)});mxEvent.addListener(Q,"dragend",function(a){"hidden"==V.style.visibility&&(V.style.visibility="",L.style.visibility="");z=null;mxUtils.setOpacity(Q,100);mxUtils.setPrefixedStyle(Q.style,"transform",null)})}else a.handleError({message:mxResources.get("fileExists")});else{f=!1;try{if(null!=b&&"\x3cmxlibrary"==b.substring(0,10)){E=mxUtils.parseXml(b);y=JSON.parse(mxUtils.getTextContent(E.documentElement));if(null!=y&&0<y.length)for(l=0;l<y.length;l++)null!=y[l].xml?k(null,
-null,0,0,0,0,y[l]):k(y[l].data,null,0,0,y[l].w,y[l].h,null,"fixed",y[l].title);a.spinner.stop();f=!0}}catch(X){}f||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(da){console.log("e",da)}return null}function l(a){a.dataTransfer.dropEffect=null!=z?"move":"copy";a.stopPropagation();a.preventDefault()}function m(b){b.stopPropagation();b.preventDefault();y=g(b);if(null!=z)null!=y&&y<s.children.length?(n.splice(y>z?y-1:y,0,n.splice(z,1)[0]),s.insertBefore(s.children[z],
-s.children[y])):(n.push(n.splice(z,1)[0]),s.appendChild(s.children[z]));else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,c,d,e,f,g,l){k(a,c,d,e,f,g,l,"fixed",mxEvent.isAltDown(b)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," "))});else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||
+"30px";var K=document.createElement("div");K.style.position="absolute";K.style.boxSizing="border-box";K.style.bottom="-18px";K.style.left="10px";K.style.right="10px";K.style.backgroundColor="#ffffff";K.style.overflow="hidden";K.style.textAlign="center";var L=null;null!=b?(L={data:b,w:f,h:l,title:r},null!=p&&(L.aspect=p),t[b]=O,n.push(L)):null!=m&&(m.aspect="fixed",n.push(m),L=m);var R=function(){K.innerHTML="";K.style.cursor="pointer";K.style.whiteSpace="nowrap";K.style.textOverflow="ellipsis";mxUtils.write(K,
+null!=L.title&&0<L.title.length?L.title:mxResources.get("untitled"));K.style.color=null==L.title||0==L.title.length?"#d0d0d0":""};mxEvent.addListener(K,"keydown",function(a){13==a.keyCode&&null!=x&&(x(),x=null,mxEvent.consume(a))});R();Q.appendChild(K);mxEvent.addListener(K,"mousedown",function(a){mxEvent.consume(a)});f=function(b){if(!mxClient.IS_IOS&&!mxClient.IS_QUIRKS&&!mxClient.IS_FF&&(null==document.documentMode||9<document.documentMode)){if("true"!=K.getAttribute("contentEditable")){null!=
+x&&(x(),x=null);if(null==L.title||0==L.title.length)K.innerHTML="";K.style.textOverflow="";K.style.whiteSpace="";K.style.cursor="text";K.style.color="";K.setAttribute("contentEditable","true");K.focus();document.execCommand("selectAll",!1,null);x=function(){K.removeAttribute("contentEditable");K.style.cursor="pointer";L.title=K.innerHTML;R()}}}else{var c=new FilenameDialog(a,L.title||"",mxResources.get("ok"),function(a){null!=a&&(L.title=a,R())},mxResources.get("enterValue"));a.showDialog(c.container,
+300,80,!0,!0);c.init()}mxEvent.consume(b)};mxEvent.addListener(K,"click",f);mxEvent.addListener(Q,"dblclick",f);s.appendChild(Q);mxEvent.addListener(Q,"dragstart",function(a){null==b&&null!=m&&(V.style.visibility="hidden",K.style.visibility="hidden");mxClient.IS_FF&&null!=m.xml&&a.dataTransfer.setData("Text",m.xml);y=g(a);mxClient.IS_GC&&(Q.style.opacity="0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(Q,30);V.style.visibility="";
+K.style.visibility=""},0)});mxEvent.addListener(Q,"dragend",function(a){"hidden"==V.style.visibility&&(V.style.visibility="",K.style.visibility="");y=null;mxUtils.setOpacity(Q,100);mxUtils.setPrefixedStyle(Q.style,"transform",null)})}else a.handleError({message:mxResources.get("fileExists")});else{f=!1;try{if(null!=b&&"\x3cmxlibrary"==b.substring(0,10)){C=mxUtils.parseXml(b);z=JSON.parse(mxUtils.getTextContent(C.documentElement));if(null!=z&&0<z.length)for(l=0;l<z.length;l++)null!=z[l].xml?k(null,
+null,0,0,0,0,z[l]):k(z[l].data,null,0,0,z[l].w,z[l].h,null,"fixed",z[l].title);a.spinner.stop();f=!0}}catch(X){}f||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(da){console.log("e",da)}return null}function l(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}function m(b){b.stopPropagation();b.preventDefault();z=g(b);if(null!=y)null!=z&&z<s.children.length?(n.splice(z>y?z-1:z,0,n.splice(y,1)[0]),s.insertBefore(s.children[y],
+s.children[z])):(n.push(n.splice(y,1)[0]),s.appendChild(s.children[y]));else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,c,d,e,f,g,l){k(a,c,d,e,f,g,l,"fixed",mxEvent.isAltDown(b)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," "))});else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||
/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){k(c,null,0,0,a.width,a.height)})}b.stopPropagation();b.preventDefault()}var n=[];f=document.createElement("div");f.style.height="100%";var p=document.createElement("div");p.style.whiteSpace="nowrap";p.style.height="40px";f.appendChild(p);mxUtils.write(p,mxResources.get("filename")+":");null==c&&(c=a.defaultLibraryName+".xml");var r=document.createElement("input");r.setAttribute("value",c);r.style.marginRight="20px";r.style.marginLeft="10px";r.style.width=
"500px";null!=b&&!b.isRenamable()&&r.setAttribute("disabled","true");this.init=function(){if(null==b||b.isRenamable())r.focus(),mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};p.appendChild(r);var s=document.createElement("div");s.style.borderWidth="1px 0px 1px 0px";s.style.borderColor="#d3d3d3";s.style.borderStyle="solid";s.style.marginTop="6px";s.style.overflow="auto";s.style.height="340px";s.style.backgroundPosition="center center";
-s.style.backgroundRepeat="no-repeat";0==n.length&&Graph.fileSupport&&(s.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var q=document.createElement("div");q.style.position="absolute";q.style.width="640px";q.style.top="260px";q.style.textAlign="center";q.style.fontSize="22px";q.style.color="#a0c3ff";mxUtils.write(q,mxResources.get("dragImagesHere"));f.appendChild(q);var t={},v=100,u=100,z=null,y=null,x=null;c=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&
-null!=x&&(x(),x=null,mxEvent.consume(a))};mxEvent.addListener(s,"mousedown",c);mxEvent.addListener(s,"pointerdown",c);mxEvent.addListener(s,"touchstart",c);var F=new mxUrlConverter;if(null!=d)for(c=0;c<d.length;c++)p=d[c],k(p.data,null,0,0,p.w,p.h,p);mxEvent.addListener(s,"dragleave",function(a){q.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==s||b==q){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});mxEvent.addListener(s,"dragover",l);mxEvent.addListener(s,"drop",m);
+s.style.backgroundRepeat="no-repeat";0==n.length&&Graph.fileSupport&&(s.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var q=document.createElement("div");q.style.position="absolute";q.style.width="640px";q.style.top="260px";q.style.textAlign="center";q.style.fontSize="22px";q.style.color="#a0c3ff";mxUtils.write(q,mxResources.get("dragImagesHere"));f.appendChild(q);var t={},v=100,u=100,y=null,z=null,x=null;c=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&
+null!=x&&(x(),x=null,mxEvent.consume(a))};mxEvent.addListener(s,"mousedown",c);mxEvent.addListener(s,"pointerdown",c);mxEvent.addListener(s,"touchstart",c);var D=new mxUrlConverter;if(null!=d)for(c=0;c<d.length;c++)p=d[c],k(p.data,null,0,0,p.w,p.h,p);mxEvent.addListener(s,"dragleave",function(a){q.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==s||b==q){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});mxEvent.addListener(s,"dragover",l);mxEvent.addListener(s,"drop",m);
mxEvent.addListener(q,"dragover",l);mxEvent.addListener(q,"drop",m);f.appendChild(s);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});c.setAttribute("id","btnCancel");c.className="geBtn";a.editor.cancelFirst&&d.appendChild(c);!window.chrome||!chrome.app||!chrome.app.runtime?(p=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(n),c=r.value;/(\.xml)$/i.test(c)||
-(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml"):(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(c)+"\x26format\x3dxml\x26xml\x3d"+encodeURIComponent(b))).simulate(document,"_blank")}),p.setAttribute("id","btnDownload"),p.className="geBtn",d.appendChild(p)):r.setAttribute("disabled","disabled");var E=document.createElement("input");E.setAttribute("multiple","multiple");E.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(E,"change",function(b){a.importFiles(E.files,
-0,0,a.maxImageSize,function(a,b,c,d,e,f,g){k(a,b,c,d,e,f,g,"fixed");E.value=""})}),p=mxUtils.button(mxResources.get("import"),function(){null!=x&&(x(),x=null);E.click()}),p.setAttribute("id","btnAddImage"),p.className="geBtn",d.appendChild(p));p=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=x&&(x(),x=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+
+(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml"):(new mxXmlRequest(SAVE_URL,"filename\x3d"+encodeURIComponent(c)+"\x26format\x3dxml\x26xml\x3d"+encodeURIComponent(b))).simulate(document,"_blank")}),p.setAttribute("id","btnDownload"),p.className="geBtn",d.appendChild(p)):r.setAttribute("disabled","disabled");var C=document.createElement("input");C.setAttribute("multiple","multiple");C.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(C,"change",function(b){a.importFiles(C.files,
+0,0,a.maxImageSize,function(a,b,c,d,e,f,g){k(a,b,c,d,e,f,g,"fixed");C.value=""})}),p=mxUtils.button(mxResources.get("import"),function(){null!=x&&(x(),x=null);C.click()}),p.setAttribute("id","btnAddImage"),p.className="geBtn",d.appendChild(p));p=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=x&&(x(),x=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){if(null!=a){if("data:image/"==a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+
1))}k(a,null,0,0,b,c)}})});p.setAttribute("id","btnAddImageUrl");p.className="geBtn";d.appendChild(p);this.saveBtnClickHandler=function(b,c,d,e){a.saveLibrary(b,c,d,e)};p=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=x&&(x(),x=null);this.saveBtnClickHandler(r.value,n,b,e)}));p.setAttribute("id","btnSave");p.className="geBtn gePrimaryBtn";d.appendChild(p);a.editor.cancelFirst||d.appendChild(c);f.appendChild(d);this.container=f},EditShapeDialog=function(a,c,f,d,b){d=null!=
d?d:300;b=null!=b?b:120;var e,g,k=document.createElement("table"),l=document.createElement("tbody");k.style.cellPadding="4px";e=document.createElement("tr");g=document.createElement("td");g.setAttribute("colspan","2");g.style.fontSize="10pt";mxUtils.write(g,f);e.appendChild(g);l.appendChild(e);e=document.createElement("tr");g=document.createElement("td");var m=document.createElement("textarea");m.style.outline="none";m.style.resize="none";m.style.width=d-200+"px";m.style.height=b+"px";this.textarea=
m;this.init=function(){m.focus();m.scrollTop=0};g.appendChild(m);e.appendChild(g);g=document.createElement("td");f=document.createElement("div");f.style.position="relative";f.style.border="1px solid gray";f.style.top="6px";f.style.width="200px";f.style.height=b+4+"px";f.style.overflow="hidden";f.style.marginBottom="16px";mxEvent.disableContextMenu(f);g.appendChild(f);var n=new Graph(f);n.setEnabled(!1);var p=a.editor.graph.cloneCells([c])[0];n.addCells([p]);f=n.view.getState(p);var r="";null!=f.shape&&
null!=f.shape.stencil&&(r=mxUtils.getPrettyXml(f.shape.stencil.desc));mxUtils.write(m,r||"");f=n.getGraphBounds();b=Math.min(160/f.width,(b-40)/f.height);n.view.scaleAndTranslate(b,20/b-f.x,20/b-f.y);e.appendChild(g);l.appendChild(e);e=document.createElement("tr");g=document.createElement("td");g.setAttribute("colspan","2");g.style.paddingTop="2px";g.style.whiteSpace="nowrap";g.setAttribute("align","right");b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";
a.editor.cancelFirst&&g.appendChild(b);a.isOffline()||(f=mxUtils.button(mxResources.get("help"),function(){window.open("https://support.draw.io/display/DO/Editing+Shapes")}),f.className="geBtn",g.appendChild(f));var s=function(b,c,d){var e=m.value,f=mxUtils.parseXml(e),e=mxUtils.getPrettyXml(f.documentElement),f=f.documentElement.getElementsByTagName("parsererror");if(null!=f&&0<f.length)a.showError(mxResources.get("error"),mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&
-a.hideDialog(),f=!b.model.contains(c),!d||f||e!=r){e=a.editor.graph.compress(e);b.getModel().beginUpdate();try{if(f){var g=a.editor.graph.getInsertPoint();c.geometry.x=g.x;c.geometry.y=g.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+e+")",[c])}catch(k){throw k;}finally{b.getModel().endUpdate()}f&&b.setSelectionCell(c)}};f=mxUtils.button(mxResources.get("preview"),function(){s(n,p,!1)});f.className="geBtn";g.appendChild(f);f=mxUtils.button(mxResources.get("apply"),function(){s(a.editor.graph,
+a.hideDialog(),f=!b.model.contains(c),!d||f||e!=r){e=a.editor.graph.compress(e);b.getModel().beginUpdate();try{if(f){var k=a.editor.graph.getInsertPoint();c.geometry.x=k.x;c.geometry.y=k.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+e+")",[c])}catch(g){throw g;}finally{b.getModel().endUpdate()}f&&b.setSelectionCell(c)}};f=mxUtils.button(mxResources.get("preview"),function(){s(n,p,!1)});f.className="geBtn";g.appendChild(f);f=mxUtils.button(mxResources.get("apply"),function(){s(a.editor.graph,
c,!0)});f.className="geBtn gePrimaryBtn";g.appendChild(f);a.editor.cancelFirst||g.appendChild(b);e.appendChild(g);l.appendChild(e);k.appendChild(l);this.container=k},CustomDialog=function(a,c,f,d,b,e){var g=document.createElement("div");g.appendChild(c);c=document.createElement("div");c.style.marginTop="16px";c.style.textAlign="center";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});k.className="geBtn";a.editor.cancelFirst&&c.appendChild(k);if(!a.isOffline()&&
null!=e){var l=mxUtils.button(mxResources.get("help"),function(){window.open(e)});l.className="geBtn";c.appendChild(l)}b=mxUtils.button(b||mxResources.get("ok"),function(){a.hideDialog();null!=f&&f()});c.appendChild(b);b.className="geBtn gePrimaryBtn";a.editor.cancelFirst||c.appendChild(k);g.appendChild(c);this.container=g};
-(function(){EditorUi.VERSION="6.0.1.1";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
-null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";
-Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
-MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};
-var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
-IMAGE_PATH+"/delete.png";Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?
-d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in","blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2","offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),g=null;0==f.length?(g=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(g,a.firstChild):a.appendChild(g)):g=f[0];g.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var a=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=
-function(){a.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
-this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+
-encodeURIComponent(a.getFileData(!0))}});Editor.prototype.appName="draw.io";EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;
-d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight="10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),
-mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));
-this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,
-4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),
-a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"\x3c"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};
-null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=
-c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=c.apply(this,arguments);if(null==b)try{var d=a.indexOf("\x26lt;mxfile ");if(0<=d){var e=a.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(b=a.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(a),g=this.editor.extractGraphModel(f.documentElement),
-b=null!=g?mxUtils.getXml(g):""}catch(k){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;
-b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=
-a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.setFileData=
-function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",
-[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};
-var f=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(a){a=null!=a&&"mxlibrary"!=a.nodeName?this.extractGraphModel(a):null;if(null!=a){var b=a.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],c=b.getElementsByTagName("div");null!=c&&0<c.length&&(b=c[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==a.nodeName){b=a.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==b||""==b)){if(c=null!=this.graph.themes?this.graph.themes["default-old"]:
-mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=c){var d=new mxCodec(c.ownerDocument);d.decode(c,this.graph.getStylesheet())}}else b!=this.graph.currentStyle&&(c=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=c&&(d=new mxCodec(c.ownerDocument),d.decode(c,this.graph.getStylesheet())));this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==a.getAttribute("math");b=a.getAttribute("backgroundImage");
-null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==a.getAttribute("shadow"),!1)}f.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,
-arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return b};var b=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=
-null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;b.apply(this,arguments)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=
-38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");
-b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display=
-"none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=
-function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
-EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);
-return a};EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,
-0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));
-return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";
-f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),
-null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);
-var k=document.createElement("input");k.style.marginTop="16px";k.style.marginRight="8px";k.setAttribute("type","checkbox");e.isSelectionEmpty()&&k.setAttribute("disabled","disabled");f.appendChild(k);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var l=document.createElement("input");l.style.marginTop="16px";l.style.marginRight="8px";l.setAttribute("type","checkbox");f.appendChild(l);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(l.setAttribute("checked",
-"checked"),l.defaultChecked=!0);var m=document.createElement("input");m.style.marginTop="16px";m.style.marginRight="8px";m.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&m.setAttribute("disabled","disabled");a&&(f.appendChild(m),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight="8px";n.setAttribute("type","checkbox");n.style.marginBottom="8px";n.setAttribute("checked","checked");
-n.defaultChecked=!0;f.appendChild(n);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,!k.checked,l.checked,n.checked,m.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";
-var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),k=document.createElement("td"),l=document.createElement("input");l.setAttribute("type","text");mxUtils.write(k,"Username:");g.appendChild(k);k=k.cloneNode(!1);k.appendChild(l);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),m=document.createElement("input");m.setAttribute("type","password");mxUtils.write(k,"Password:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(m);
-g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),n=document.createElement("input");n.setAttribute("type","text");mxUtils.write(k,"Organisation:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(n);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),p=document.createElement("input");p.setAttribute("type","text");mxUtils.write(k,"Repository:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(p);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),D=
-document.createElement("input");D.setAttribute("type","text");mxUtils.write(k,"Path:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(D);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var G=a.lastIndexOf(".");0<G&&(a=a.substring(0,G));D.value=a+".png";var H=document.createElement("input");H.setAttribute("type","text");mxUtils.write(k,"Branch/Tag:");H.value="master";g=g.cloneNode(!1);g.appendChild(k);
-k=k.cloneNode(!1);k.appendChild(H);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),I=document.createElement("input");I.setAttribute("type","text");mxUtils.write(k,"Message:");I.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(I);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+n.value+"/"+
-p.value+"/contents/"+D.value+"?ref\x3d"+encodeURIComponent(H.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:D.value,message:I.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+n.value+"/"+p.value+"/blob/"+H.value+"/"+D.value;var b=
-new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(l.value+
-":"+m.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),k=f;0<g&&(k=f=k.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:k+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),l=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var m=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");m.send(mxUtils.bind(this,function(){200==m.getStatus()?k():l(m)}),mxUtils.bind(this,function(){l(m)}))}else k()}catch(n){this.handleError(n)}else l(a)}),mxUtils.bind(this,function(a){l(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,k){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var l=this.editor.graph.isSelectionEmpty();f=null!=f?f:l;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=k?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),k,b)}catch(l){this.handleError(l)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(m){this.handleError(m)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var k=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));k.send(mxUtils.bind(this,function(){200==k.getStatus()?a(c,k.getText(),e,b):this.handleError(k)}))}catch(l){this.handleError(l)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,k,l,m,n,p){f=null!=f?f:!0;p=null!=p?p:this.editor.graph;var D=l?null:p.background;D==mxConstants.NONE&&(D=null);null==D&&(D=d);null==D&&!1==l&&(D="#ffffff");this.convertImages(p.getSvg(D,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height"));k=null!=
-k?k:1;null!=b&&(k=!f?b/g:Math.min(1,Math.min(3*b/(4*l),b/g)));e.setAttribute("width",Math.ceil(k*g));e.setAttribute("height",Math.ceil(k*l));g=e.getContext("2d");g.scale(k,k);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{m&&this.editor.addSvgShadow(c),this.convertMath(p,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,n)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();
-var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var k=a.getElementsByTagName(c),l=0;l<k.length;l++)mxUtils.bind(this,
-function(c){var k=d.convert(c.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var l=f[k];null==l?(e++,this.convertImageToDataUri(k,function(d){null!=d&&(f[k]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,l)}})(k[l])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=
-document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var k=mxUtils.parseXml(a),l=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var m=l.getElementsByTagName("diagram");if(1==m.length)l=
-mxUtils.parseXml(g.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){g.model.beginUpdate();try{for(var n=0;n<m.length;n++){var p=this.updatePageRoot(new DiagramPage(m[n])),D=this.pages.length;null==p.getName()&&p.setName(mxResources.get("pageWithNumber",[D+1]));g.model.execute(new ChangePage(this,p,p,D))}}finally{g.model.endUpdate()}}}if(null!=l&&"mxGraphModel"===l.nodeName){var G=new mxGraphModel;(new mxCodec(l.ownerDocument)).decode(l,G);var H=G.getChildCount(G.getRoot());
-g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(n=0;n<H;n++){var I=G.getChildAt(G.getRoot(),n);if(1==H&&!g.isCellLocked(g.getDefaultParent()))var J=G.getChildren(I),f=f.concat(g.importCells(J,b,c,g.getDefaultParent(),null,a));else I=g.importCells([I],0,0,g.model.getRoot(),null,a)[0],J=g.model.getChildren(I),g.moveCells(J,b,c),f=f.concat(J)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var K=g.getBoundingBoxFromGeometry(f,!0);null!=K&&g.moveCells(f,b-K.x,c-K.y)}}finally{g.model.endUpdate()}}}}catch(O){throw e||
-this.handleError(O,mxResources.get("invalidOrMissingFile")),O;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&
-(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var k=this.extractGraphModelFromPng(a),l=this.importXml(k,b,c,f,!0);if(0<l.length)return l}if("data:image/svg+xml;"==a.substring(0,19))try{if(k=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(k=a.substring(a.indexOf(",")+1),k=window.atob&&!mxClient.IS_SF?atob(k):Base64.decode(k,!0)):k=decodeURIComponent(a.substring(a.indexOf(",")+1)),l=this.importXml(k,
-b,c,f,!0),0<l.length)return l}catch(m){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),
-f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",
-[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
+(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":IMAGE_PATH+
+"/delete.png";Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],d=c.getElementsByTagName("div");null!=d&&
+0<d.length&&(c=d[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==b.nodeName){c=b.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==c||""==c)){if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}}else c!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+"/"+
+c+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,c.width,c.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==b.getAttribute("shadow"),
+!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var c=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",
+this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return b};var f=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;f.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,
+arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath",
+"output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):
+Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,
+e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in",
+"blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2",
+"offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),k=null;0==f.length?(k=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(k,a.firstChild):a.appendChild(k)):
+k=f[0];k.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};if(window.ColorDialog){var b=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){b.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;
+ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+encodeURIComponent(a.getFileData(!0))}});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
+this.update)};var k=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?k.apply(this,arguments):this.clear()};var l=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=l.apply(this,arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},
+{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var m=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));m.apply(this,arguments)};var n=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=
+function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+
+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return n.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),k=0;k<f.length;k++)e=mxUtils.removeStylename(e,f[k]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,
+a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&
+(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var k=0;k<a.length;k++)0<k&&0==mxUtils.mod(k,4)&&mxUtils.br(e),
+c(a[k])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace="normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",
+null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var k=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",
+stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
+a.appendChild(g);mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,k.length);b(k[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
+a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,k.length);b(k[this.editorUi.currentScheme])}));c(g);c(l);b(k[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),
+c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),b.setAttribute("title",mxResources.get("editShape")),
+b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName=
+"default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.edgeMode="move"!=urlParams.edge;var p=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}p.apply(this,arguments);var b=null;mxEvent.addListener(this.container,
+"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&
+"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var r=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=
+function(){r.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,
+c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=
+[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=
+[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=
+[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=
+[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=
+[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=
+[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var s=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,k,g,l,m){if(null!=c&&null==mxMarker.markers[c]){var n=this.getPackageForType(c);null!=n&&mxStencilRegistry.getStencil(n)}return s.apply(this,arguments)}})();
+(function(){EditorUi.VERSION="6.0.1.2";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
+EditorUi.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
+EditorUi.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";EditorUi.prototype.mode=null;(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();
+EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};
+EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
+EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=
+new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight=
+"10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,
+b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<
+16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);
+break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"\x3c"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&
+(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=
+function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("\x26lt;mxfile ");if(0<=d){var e=b.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(c=b.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,
+'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),g=this.editor.extractGraphModel(f.documentElement),c=null!=g?mxUtils.getXml(g):""}catch(s){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
+null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));
+b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,
+c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,f,g,q,t){b=null!=b?b:this.editor.graph;e=null!=e?e:!1;t=null!=t?t:!0;var v=null,u=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?v="_blank":u=v=d;if(null==a)return"";var y=a;if("mxfile"!=y.nodeName.toLowerCase()){var z=b.zapGremlins(mxUtils.getXml(a)),y=b.compress(z);if(b.decompress(y)!=z)return z;z=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(z,y);y=a.ownerDocument.createElement("mxfile");
+y.appendChild(z)}y.setAttribute("userAgent",navigator.userAgent);y.setAttribute("version",EditorUi.VERSION);y.setAttribute("editor","www.draw.io");a=null!=c?c.getMode():this.mode;null!=a&&y.setAttribute("type",a);a=mxUtils.getXml(y);if(!f&&!e&&(g||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(y),b,null!=c?c.getTitle():null,v,u);else if(f||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle())){if(null!=c&&(c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER))d=null;a=this.getEmbeddedSvg(a,
+b,d,null,q,t,u)}return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var e=0;e<this.pages.length;e++){var f=this.pages[e].mapping;this.currentPage!=this.pages[e]&&null!=f&&
+f.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel),f.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[e].node,d),f.needsUpdate=!1);c.appendChild(this.pages[e].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,f,g){e=null!=e?e:!0;g=null!=g?g:this.getXmlFileData(e,null!=f?f:!1);f=this.editor.graph;var q=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=this.pages[0]&&
+(b||!a&&null!=q&&/(\.svg)$/i.test(q.getTitle()))){f=this.createTemporaryGraph(f.getStylesheet());var t=f.getGlobalVariable,v=this.pages[0];f.getGlobalVariable=function(a){return"page"==a?v.getName():"pagenumber"==a?1:t.apply(this,arguments)};document.body.appendChild(f.container);f.model.setRoot(v.root)}a=this.createFileData(g,f,q,window.location.href,a,b,c,d,e);f!=this.editor.graph&&f.container.parentNode.removeChild(f.container);return a};EditorUi.prototype.getHtml=function(a,b,c,d,e,f){f=null!=
+f?f:!0;var g=null,q="https://www.draw.io/js/embed-static.min.js";if(null!=b){var g=f?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),t=b.view.scale;f=Math.floor(g.x/t-b.view.translate.x);t=Math.floor(g.y/t-b.view.translate.y);g=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(q="https://www.draw.io/embed.js?s\x3d"+b));a.setAttribute("x0",f);a.setAttribute("y0",t)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit",
+"0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':
+"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+"\x3c/head\x3e\n\x3cbody"+(null==e&&null!=g&&g!=mxConstants.NONE?' style\x3d"background-color:'+g+';"\x3e':"\x3e")+'\n\x3cdiv class\x3d"mxgraph" style\x3d"position:relative;overflow:auto;width:100%;"\x3e\n\x3cdiv style\x3d"width:1px;height:1px;overflow:hidden;"\x3e'+
+d+"\x3c/div\x3e\n\x3c/div\x3e\n"+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+q+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){d="https://www.draw.io/js/viewer.min.js";var f="";null!=b&&null==e&&(f=this.getBasenames().join(";"),
+0<f.length&&(d="https://www.draw.io/embed2.js?s\x3d"+f));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+
+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+'\x3cmeta charset\x3d"utf-8"/\x3e\n\x3c/head\x3e\n\x3cbody\x3e\n\x3cdiv class\x3d"mxgraph" style\x3d"max-width:100%;border:1px solid transparent;" data-mxgraph\x3d"'+mxUtils.htmlEntities(JSON.stringify(a))+
+'"\x3e\x3c/div\x3e\n'+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+d+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?
+mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.downloadFile=function(a,b,c,d,e){try{var f=this.getCurrentFile();d=null!=d?d:this.editor.graph.isSelectionEmpty();
+var g=null!=f&&null!=f.getTitle()?f.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(g)||/(\.html)$/i.test(g)||/(\.svg)$/i.test(g))g=g.substring(0,g.lastIndexOf("."));var q=g+"."+a;if("xml"==a){var t='\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(q,a,t,"text/xml")}else if("html"==a)t=this.getHtml2(this.getFileData(!0),this.editor.graph,g),this.saveData(q,a,t,"text/html");else if(("svg"==
+a||"xmlsvg"==a)&&this.spinner.spin(document.body,mxResources.get("export"))){var v=null,u=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(q,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(v)}))});if("svg"==a){var y=this.editor.graph.background;y==mxConstants.NONE&&(y=null);var z=this.editor.graph.getSvg(y,null,null,!1,null,d);c&&this.editor.addSvgShadow(z);this.convertImages(z,
+mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();u('\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a))})))}else q=g+".svg",v=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();u(a)}),d)}else{var x=this.editor.graph.getGraphBounds(),t=this.getFileData(!0,null,null,null,d,"xmlpng"!=a),D="";if(x.width*x.height<=MAX_AREA&&t.length<=
+MAX_REQUEST_SIZE){var C="0";if("xmlpng"==a&&(C="1",a="png",q=g+"."+a,null!=this.pages&&null!=this.currentPage))for(b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){D="\x26from\x3d"+b;break}this.saveRequest(t,q,a,function(b,c){return new mxXmlRequest(EXPORT_URL,"format\x3d"+a+D+"\x26base64\x3d"+c+"\x26embedXml\x3d"+C+"\x26xml\x3d"+encodeURIComponent(t)+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):""))})}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}}catch(A){this.handleError(A)}};
+EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display=
+"none";this.sidebarFooterContainer.style.display="none";this.editor.graph.setEnabled(!1);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{if(this.setCurrentFile(a),a.addListener("descriptorChanged",
+this.descriptorChangedListener),a.addListener("contentChanged",this.descriptorChangedListener),this.setMode(a.getMode()),this.descriptorChanged(),a.open(),this.diagramContainer.style.visibility="",this.formatContainer.style.visibility="",this.hsplit.style.display="",this.sidebarContainer.style.display="",this.sidebarFooterContainer.style.display="",this.editor.undoManager.clear(),this.updateUi(),null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus(mxResources.get("readOnly"))),
+this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries()),this.chromelessResize&&this.chromelessResize(),this.editor.fireEvent(new mxEventObject("fileLoaded")),this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE)try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(d){}}catch(e){null!=window.console&&console.log("error in fileLoaded:",a,e),this.handleError(e,mxResources.get("errorLoadingFile"),
+mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?this.fileLoaded(b):c()}))}else c()};EditorUi.prototype.toggleScratchpad=function(){if(isLocalStorage||mxClient.IS_CHROMEAPP)null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad)};
+EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];
+if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName)b=JSON.parse(mxUtils.getTextContent(b.documentElement)),this.libraryLoaded(a,
+b);else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.libraryLoaded=function(a,b){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var d=null,e=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==d&&(d=document.createElement("div"),mxUtils.setPrefixedStyle(d.style,"borderRadius",
+"6px"),d.style.border="3px dotted lightGray",d.style.textAlign="center",d.style.padding="8px",d.style.color="#B3B3B3",mxUtils.write(d,mxResources.get("dragElementsHere"))),c.appendChild(d);else for(var e=0;e<b.length;e++){var f=b[e],g=f.data;if(null!=g){var g=this.convertDataUri(g),l="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;",l="fixed"==f.aspect?l+"aspect\x3dfixed;":l+"imageAspect\x3d0;";c.appendChild(this.sidebar.createVertexTemplate(l+"image\x3d"+g,f.w,f.h,"",f.title||
+"",!1,!1,!1))}else null!=f.xml&&(g=this.stringToCells(this.editor.graph.decompress(f.xml)),0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,f.w,f.h,f.title||"",!0,!1,!1)))}}),f=this.sidebar.addPalette(a.getHash(),a.getTitle(),!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var c=f.parentNode.previousSibling,g=c.getAttribute("title");null!=g&&0<g.length&&".scratchpad"!=a.title&&c.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+g);var q=document.createElement("div");
+q.style.position="absolute";q.style.right="0px";q.style.top="5px";c.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Dialog.prototype.closeImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("align","top");t.setAttribute("border","0");t.style.cursor="pointer";t.style.marginRight="8px";t.style.marginTop="3px";q.appendChild(t);var v=null;mxEvent.addListener(t,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,
+function(){this.closeLibrary(a)});null!=v?this.confirm(mxResources.get("allChangesLost"),c):c();mxEvent.consume(b)}}));mxEvent.addListener(f,"mousemove",mxUtils.bind(this,function(a){mxEvent.getSource(a)==f?f.setAttribute("title",mxResources.get("libraryTooltip")):f.removeAttribute("title")}));if(a.isEditable()){var u=this.editor.graph,y=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),f,b,a,a.getMode());mxEvent.consume(c)}),z=mxUtils.bind(this,function(c){a.constructor!=LocalLibrary||
+a.isAutosave()?(null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C),C=t.cloneNode(!1),C.setAttribute("src",EditorUi.spinImage),C.setAttribute("title",mxResources.get("saving")),C.style.cursor="default",C.style.marginRight="6px",C.style.marginTop="2px",q.insertBefore(C,q.firstChild),this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C)})):null==v&&(v=t.cloneNode(!1),v.setAttribute("src",IMAGE_PATH+"/download.png"),v.setAttribute("title",
+mxResources.get("save")),q.insertBefore(v,q.firstChild),mxEvent.addListener(v,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0);v.parentNode.removeChild(v);v=null;mxEvent.consume(c)})))}),x=mxUtils.bind(this,function(a,c,e,g){a=u.cloneCells(u.model.getTopmostCells(a));for(var k=0;k<a.length;k++){var m=u.getCellGeometry(a[k]);null!=m&&m.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,g||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
+w:c.width,h:c.height};null!=g&&(a.title=g);b.push(a);z(e);null!=d&&null!=d.parentNode&&0<b.length&&(d.parentNode.removeChild(d),d=null)}),D=mxUtils.bind(this,function(a){if(u.isSelectionEmpty())u.getRubberband().isActive()?(u.getRubberband().execute(a),u.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=u.getSelectionCells(),c=u.view.getBounds(b),d=u.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=u.view.translate.x;
+c.y-=u.view.translate.y;x(b,c)}mxEvent.consume(a)});f.style.border="3px solid transparent";mxEvent.addGestureListeners(f,function(){},mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.panningManager&&null!=u.graphHandler.shape&&(u.graphHandler.shape.node.style.visibility="hidden",null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)",f.style.cursor="copy",u.panningManager.stop(),u.autoScroll=!1,null!=u.graphHandler.guide&&u.graphHandler.guide.setVisible(!1),
+null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){u.isMouseDown&&null!=u.panningManager&&null!=u.graphHandler&&(f.style.border="3px solid transparent",null!=d&&(d.style.border="3px dotted lightGray"),f.style.cursor="default",this.sidebar.showTooltips=!0,u.panningManager.stop(),u.graphHandler.reset(),u.isMouseDown=!1,u.autoScroll=!0,D(a),mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){u.isMouseDown&&
+null!=u.graphHandler.shape&&(u.graphHandler.shape.node.style.visibility="visible",f.style.border="3px solid transparent",f.style.cursor="",u.autoScroll=!0,null!=u.graphHandler.guide&&u.graphHandler.guide.setVisible(!0),null!=u.graphHandler.hint&&(u.graphHandler.hint.style.visibility="visible"),null!=d&&(d.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(f,"dragover",mxUtils.bind(this,function(a){null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)";
+a.dataTransfer.dropEffect="copy";f.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"drop",mxUtils.bind(this,function(a){f.style.border="3px solid transparent";f.style.cursor="";null!=d&&(d.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,g,k,m,q,s,t){if(null!=c&&"image/"==g.substring(0,6)){var u="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+
+this.convertDataUri(c),u=[new mxCell("",new mxGeometry(0,0,q,s),u)];u[0].vertex=!0;x(u,new mxRectangle(0,0,q,s),a,mxEvent.isAltDown(a)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," "))}else{t=!1;if(null!=c&&"text/xml"==g)if(c=mxUtils.parseXml(c),"mxlibrary"==c.documentElement.nodeName)try{var v=JSON.parse(mxUtils.getTextContent(c.documentElement));e(v,f);b=b.concat(v);z(a);this.spinner.stop();t=!0}catch(y){}else if("mxfile"==c.documentElement.nodeName)try{v=mxUtils.getTextContent(c.documentElement.getElementsByTagName("diagram")[0]),
+u=this.stringToCells(this.editor.graph.decompress(v)),x(u,new mxRectangle(0,0,q,s),a),t=!0}catch(D){}t||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}))}null!=d&&null!=d.parentNode&&0<b.length&&(d.parentNode.removeChild(d),d=null)}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){null!=d?d.style.border="3px dotted lightGray":(f.style.border="3px solid transparent",f.style.cursor="");a.stopPropagation();a.preventDefault()}));
+t=t.cloneNode(!1);t.setAttribute("src",IMAGE_PATH+"/edit.gif");t.setAttribute("title",mxResources.get("edit"));q.insertBefore(t,q.firstChild);mxEvent.addListener(t,"click",y);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&y(a)});t=t.cloneNode(!1);t.setAttribute("src",EditorUi.plusImage);t.setAttribute("title",mxResources.get("add"));q.insertBefore(t,q.firstChild);this.isOffline()||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText=
+"color:gray;text-decoration:none;margin-right:8px;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(a){window.open("https://support.draw.io/questions/10420280");mxEvent.consume(a)})),q.insertBefore(g,q.firstChild));var C=null;mxEvent.addListener(t,"click",D)}c.appendChild(q)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
+Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?
+5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,
+function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});
+var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow=
+"hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=this.spinner.pause(),e=null!=a&&null!=a.error?a.error:a;if(null!=e||
+null!=b){a=mxResources.get("unknownError");var f=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=e)if("undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxResources.get("forbidden");else if(404==e.code||404==e.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxResources.get("fileNotFoundOrDenied");
+var q=window.location.hash;null!=q&&"#G"==q.substring(0,2)&&(q=q.substring(2),a+=' \x3ca href\x3d"https://drive.google.com/open?id\x3d'+q+'" target\x3d"_blank"\x3e'+mxResources.get("tryOpeningViaThisPage")+"\x3c/a\x3e")}else e.code==App.ERROR_TIMEOUT?(a=mxResources.get("timeout"),null!=e.retry&&(f=mxResources.get("cancel"),g=function(){d();e.retry()})):e.code==App.ERROR_BUSY?a=mxResources.get("busy"):null!=e.message?a=e.message:null!=e.response&&null!=e.response.error&&(a=e.response.error);this.showError(b,
+a,f,c,g)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c){var d=null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},
+function(){d();null!=c&&c()})).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=
+function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,
+d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));
+mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");
+f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);var q=document.createElement("input");q.style.marginTop="16px";q.style.marginRight="8px";q.setAttribute("type","checkbox");e.isSelectionEmpty()&&q.setAttribute("disabled",
+"disabled");f.appendChild(q);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.setAttribute("type","checkbox");f.appendChild(t);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(t.setAttribute("checked","checked"),t.defaultChecked=!0);var v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");(this.isOffline()||
+!this.canvasSupported)&&v.setAttribute("disabled","disabled");a&&(f.appendChild(v),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");u.style.marginBottom="8px";u.setAttribute("checked","checked");u.defaultChecked=!0;f.appendChild(u);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,
+!q.checked,t.checked,u.checked,v.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),q=document.createElement("td"),t=document.createElement("input");t.setAttribute("type",
+"text");mxUtils.write(q,"Username:");g.appendChild(q);q=q.cloneNode(!1);q.appendChild(t);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","password");mxUtils.write(q,"Password:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(v);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","text");mxUtils.write(q,"Organisation:");g=g.cloneNode(!1);g.appendChild(q);q=
+q.cloneNode(!1);q.appendChild(u);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),y=document.createElement("input");y.setAttribute("type","text");mxUtils.write(q,"Repository:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(y);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(q,"Path:");g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(z);g.appendChild(q);f.appendChild(g);
+q=q.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var x=a.lastIndexOf(".");0<x&&(a=a.substring(0,x));z.value=a+".png";var D=document.createElement("input");D.setAttribute("type","text");mxUtils.write(q,"Branch/Tag:");D.value="master";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(D);g.appendChild(q);f.appendChild(g);var q=q.cloneNode(!1),C=document.createElement("input");C.setAttribute("type","text");mxUtils.write(q,"Message:");
+C.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(q);q=q.cloneNode(!1);q.appendChild(C);g.appendChild(q);f.appendChild(g);q=q.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+u.value+"/"+y.value+"/contents/"+z.value+"?ref\x3d"+encodeURIComponent(D.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());
+var e={path:z.value,message:C.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+u.value+"/"+y.value+"/blob/"+D.value+"/"+z.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,
+function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(t.value+":"+v.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();
+this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,
+function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),r=f;0<g&&(r=f=r.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:r+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),v=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});
+g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,
+a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=
+new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():v(l)}),mxUtils.bind(this,function(){v(l)}))}else k()}catch(p){this.handleError(p)}else v(a)}),mxUtils.bind(this,function(a){v(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,
+mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,q){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=q?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),q,b)}catch(n){this.handleError(n)}}),
+null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(v){this.handleError(v)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var q=new mxXmlRequest(EXPORT_URL,
+"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));q.send(mxUtils.bind(this,function(){200==q.getStatus()?a(c,q.getText(),e,b):this.handleError(q)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+
+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",
+encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};
+EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,q,t,v,u,y){f=null!=f?f:!0;y=null!=y?y:this.editor.graph;var z=t?null:y.background;z==mxConstants.NONE&&(z=null);null==z&&(z=d);null==z&&!1==t&&(z="#ffffff");this.convertImages(y.getSvg(z,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));q=null!=q?q:1;null!=b&&(q=!f?
+b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));e.setAttribute("width",Math.ceil(q*g));e.setAttribute("height",Math.ceil(q*m));g=e.getContext("2d");g.scale(q,q);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{v&&this.editor.addSvgShadow(c),this.convertMath(y,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,u)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=
+function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var m=a.getElementsByTagName(c),v=0;v<m.length;v++)mxUtils.bind(this,function(c){var m=d.convert(c.getAttribute(g));
+if(null!=m&&"data:"!=m.substring(0,5)){var s=f[m];null==s?(e++,this.convertImageToDataUri(m,function(d){null!=d&&(f[m]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,s)}})(m[v])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),
+d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var q=mxUtils.parseXml(a),t=this.editor.extractGraphModel(q.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var v=t.getElementsByTagName("diagram");if(1==v.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(v[0]))).documentElement;
+else if(1<v.length){g.model.beginUpdate();try{for(var u=0;u<v.length;u++){var y=this.updatePageRoot(new DiagramPage(v[u])),z=this.pages.length;null==y.getName()&&y.setName(mxResources.get("pageWithNumber",[z+1]));g.model.execute(new ChangePage(this,y,y,z))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var x=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,x);var D=x.getChildCount(x.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};
+for(u=0;u<D;u++){var C=x.getChildAt(x.getRoot(),u);if(1==D&&!g.isCellLocked(g.getDefaultParent()))var A=x.getChildren(C),f=f.concat(g.importCells(A,b,c,g.getDefaultParent(),null,a));else C=g.importCells([C],0,0,g.model.getRoot(),null,a)[0],A=g.model.getChildren(C),g.moveCells(A,b,c),f=f.concat(A)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var F=g.getBoundingBoxFromGeometry(f,!0);null!=F&&g.moveCells(f,b-F.x,c-F.y)}}finally{g.model.endUpdate()}}}}catch(G){throw e||this.handleError(G,mxResources.get("invalidOrMissingFile")),
+G;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=
+this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var q=this.extractGraphModelFromPng(a),t=this.importXml(q,b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(q=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(q=a.substring(a.indexOf(",")+1),q=window.atob&&!mxClient.IS_SF?atob(q):Base64.decode(q,!0)):q=decodeURIComponent(a.substring(a.indexOf(",")+1)),t=this.importXml(q,b,c,f,!0),0<t.length)return t}catch(v){}this.loadImage(a,mxUtils.bind(this,
+function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));
+if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
g.setLinkForCell(e,e.value),e.geometry.width+=g.gridSize,e.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
-function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,k,l,m){m=null!=m?m:!0;var n=!1,p=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(p=this.importXml(b,c,d,m),g=!0)),g||(p=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),m&&
-p.isGridEnabled()&&(c=p.snap(c),d=p.snap(d)),p=[p.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(n=!0,this.parseFile(null!=l?l:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,m));null!=
-k&&k(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(l):p=this.insertTextAt(this.validateFileData(a),c,d,!0);!n&&null!=k&&k(p);return p};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,q,t,v){v=null!=v?v:!0;var u=!1,y=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(y=this.importXml(b,c,d,v),g=!0)),g||(y=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),v&&
+y.isGridEnabled()&&(c=y.snap(c),d=y.snap(d)),y=[y.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(u=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,v));null!=
+q&&q(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(t):y=this.insertTextAt(this.validateFileData(a),c,d,!0);!u&&null!=q&&q(y);return y};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
-6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,k,l,m,n){var p=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;m=null!=m?m:this.maxImageBytes;l=null!=l?l:!0;var D=this.editor.graph,G=D.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
-this.importFile(a,b,c,d,e,f,g,k,l,p)});f=null!=f?f:mxUtils.bind(this,function(a){D.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var H=a.length,I=H,J=[],K=mxUtils.bind(this,function(a,b){J[a]=b;if(0==--I){this.spinner.stop();if(null!=k)k(J);else{var c=[];D.getModel().beginUpdate();try{for(var d=0;d<J.length;d++){var e=J[d]();null!=e&&(c=c.concat(e))}}finally{D.getModel().endUpdate()}}f(c)}}),O=0;O<H;O++)mxUtils.bind(this,function(f){var k=a[f],p=new FileReader;
-p.onload=mxUtils.bind(this,function(a){if(null==g||g(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var p=a.target.result,r=p.indexOf(","),u=atob(p.substring(r+1)),y=mxUtils.parseXml(u),u=y.getElementsByTagName("svg");if(0<u.length){var A=u[0].getAttribute("content");null!=A&&"\x3c"!=A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null!=A&&("\x3cmxfile "===A.substring(0,8)||"\x3cmxGraphModel "===
-A.substring(0,14))?K(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*G,c+f*G,0,0,k.name)})):K(f,mxUtils.bind(this,function(){try{if(p.substring(0,r+1),null!=y){var a=y.getElementsByTagName("svg");if(0<a.length){var g=a[0],l=parseFloat(g.getAttribute("width")),m=parseFloat(g.getAttribute("height")),n=g.getAttribute("viewBox");if(null==n||0==n.length)g.setAttribute("viewBox","0 0 "+l+" "+m);else if(isNaN(l)||isNaN(m)){var u=n.split(" ");3<u.length&&(l=parseFloat(u[2]),m=parseFloat(u[3]))}p=
-this.createSvgDataUri(mxUtils.getXml(a[0]));var z=Math.min(1,Math.min(d/Math.max(1,l)),d/Math.max(1,m));return e(p,k.type,b+f*G,c+f*G,Math.max(1,Math.round(l*z)),Math.max(1,Math.round(m*z)),k.name)}}}catch(x){}return null}))}}else{u=!1;if("image/png"==k.type){var D=this.extractGraphModelFromPng(a.target.result);if(null!=D&&0<D.length){var B=new Image;B.src=a.target.result;K(f,mxUtils.bind(this,function(){return e(D,"text/xml",b+f*G,c+f*G,B.width,B.height,k.name)}));u=!0}}u||(null!=window.chrome&&
-null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,n,p){K(f,mxUtils.bind(this,function(){if(null!=g&&g.length<m){var r=!l||!this.isResampleImage(a.target.result)?
-1:Math.min(1,Math.min(d/n,d/p));return e(g,k.type,b+f*G,c+f*G,Math.round(n*r),Math.round(p*r),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),l,d,n)})))}else e(a.target.result,k.type,b+f*G,c+f*G,240,160,k.name,function(a){K(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(k.name)?e(null,k.type,b+f*G,c+f*G,240,160,k.name,function(a){K(f,function(){return a})},k):"image"==k.type.substring(0,5)?p.readAsDataURL(k):p.readAsText(k)})(O)};EditorUi.prototype.parseFile=
-function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var l=Math.max(g/e,k/e);if(1<l){var m=
-Math.round(g/l),n=Math.round(k/l),p=document.createElement("canvas");p.width=m;p.height=n;p.getContext("2d").drawImage(a,0,0,m,n);var D=p.toDataURL();if(D.length<b.length){var G=document.createElement("canvas");G.width=m;G.height=n;var H=G.toDataURL();D!==H&&(b=D,g=m,k=n)}}}catch(I){}c(b,g,k)};(function(){EditorUi.prototype.crcTable=[];for(var a=0;256>a;a++)for(var b=a,c=0;8>c;c++)b=1==(b&1)?3988292384^b>>>1:b>>>1,EditorUi.prototype.crcTable[a]=b;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=
-0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a}})();EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=k;k+=b;return a.substring(c,k)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=
-e&&e();else{f(a,17);e=a.substring(0,k);do{var l=g(a);if("IDAT"==f(a,4)){e=a.substring(0,k-8);l=4294967295;l=this.updateCRC(l,b,0,4);l=this.updateCRC(l,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((l^4294967295)>>24&255,(l^4294967295)>>16&255,(l^4294967295)>>
-8&255,(l^4294967295)&255);e+=a.substring(k-8,a.length);break}e+=a.substring(k-8,k-4+l);d=f(a,l);f(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,
-e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var e=EditorUi.prototype.init;
-EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
-b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,q,t,v,u){var y=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;v=null!=v?v:this.maxImageBytes;t=null!=t?t:!0;var z=this.editor.graph,x=z.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,y)});f=null!=f?f:mxUtils.bind(this,function(a){z.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var D=a.length,C=D,A=[],F=mxUtils.bind(this,function(a,b){A[a]=b;if(0==--C){this.spinner.stop();if(null!=q)q(A);else{var c=[];z.getModel().beginUpdate();try{for(var d=0;d<A.length;d++){var e=A[d]();null!=e&&(c=c.concat(e))}}finally{z.getModel().endUpdate()}}f(c)}}),G=0;G<D;G++)mxUtils.bind(this,function(f){var q=a[f],r=new FileReader;
+r.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,r=k.indexOf(","),y=atob(k.substring(r+1)),z=mxUtils.parseXml(y),y=z.getElementsByTagName("svg");if(0<y.length){var D=y[0].getAttribute("content");null!=D&&"\x3c"!=D.charAt(0)&&"%"!=D.charAt(0)&&(D=unescape(window.atob?atob(D):Base64.decode(D,!0)));null!=D&&"%"==D.charAt(0)&&(D=decodeURIComponent(D));null!=D&&("\x3cmxfile "===D.substring(0,8)||"\x3cmxGraphModel "===
+D.substring(0,14))?F(f,mxUtils.bind(this,function(){return e(D,"text/xml",b+f*x,c+f*x,0,0,q.name)})):F(f,mxUtils.bind(this,function(){try{if(k.substring(0,r+1),null!=z){var a=z.getElementsByTagName("svg");if(0<a.length){var g=a[0],t=parseFloat(g.getAttribute("width")),s=parseFloat(g.getAttribute("height")),u=g.getAttribute("viewBox");if(null==u||0==u.length)g.setAttribute("viewBox","0 0 "+t+" "+s);else if(isNaN(t)||isNaN(s)){var v=u.split(" ");3<v.length&&(t=parseFloat(v[2]),s=parseFloat(v[3]))}k=
+this.createSvgDataUri(mxUtils.getXml(a[0]));var y=Math.min(1,Math.min(d/Math.max(1,t)),d/Math.max(1,s));return e(k,q.type,b+f*x,c+f*x,Math.max(1,Math.round(t*y)),Math.max(1,Math.round(s*y)),q.name)}}}catch(D){}return null}))}}else{y=!1;if("image/png"==q.type){var A=this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var C=new Image;C.src=a.target.result;F(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*x,c+f*x,C.width,C.height,q.name)}));y=!0}}y||(null!=window.chrome&&
+null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,r){F(f,mxUtils.bind(this,function(){if(null!=g&&g.length<v){var s=!t||!this.isResampleImage(a.target.result)?
+1:Math.min(1,Math.min(d/k,d/r));return e(g,q.type,b+f*x,c+f*x,Math.round(k*s),Math.round(r*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),t,d,u)})))}else e(a.target.result,q.type,b+f*x,c+f*x,240,160,q.name,function(a){F(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*x,c+f*x,240,160,q.name,function(a){F(f,function(){return a})},q):"image"==q.type.substring(0,5)?r.readAsDataURL(q):r.readAsText(q)})(G)};EditorUi.prototype.parseFile=
+function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),q=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var t=Math.max(g/e,q/e);if(1<t){var v=
+Math.round(g/t),u=Math.round(q/t),y=document.createElement("canvas");y.width=v;y.height=u;y.getContext("2d").drawImage(a,0,0,v,u);var z=y.toDataURL();if(z.length<b.length){var x=document.createElement("canvas");x.width=v;x.height=u;var D=x.toDataURL();z!==D&&(b=z,g=v,q=u)}}}catch(C){}c(b,g,q)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var f=c,d=0;8>d;d++)f=1==(f&1)?3988292384^f>>>1:f>>>1,EditorUi.prototype.crcTable[c]=f;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=
+EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=q;q+=b;return a.substring(c,q)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var q=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,
+17);e=a.substring(0,q);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,q-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>16&255,(t^4294967295)>>8&255,(t^
+4294967295)&255);e+=a.substring(q-8,a.length);break}e+=a.substring(q-8,q-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&
+(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var b=EditorUi.prototype.init;
+EditorUi.prototype.init=function(){b.apply(this,arguments);var a=this.editor.graph,c=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var d=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=c.currentPage?c.currentPage.getName():"pagenumber"==a?null!=c.currentPage&&null!=c.pages?mxUtils.indexOf(c.pages,c.currentPage)+1:1:d.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
+c.defaultFilename,b=c.getCurrentFile();null!=b&&(a=null!=b.getTitle()?b.getTitle():a);return a};var e=this.actions.get("print");e.setEnabled(!mxClient.IS_IOS||!navigator.standalone);e.visible=e.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,
!0,"insertEllipse",!0);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a)&&!b.isEditing())try{for(var c=a.clipboardData||a.originalEvent.clipboardData,b=!1,d=0;d<c.types.length;d++)if("text/"===c.types[d].substring(0,5)){b=!0;break}if(!b){var e=c.items;for(index in e){var f=e[index];if("file"===f.kind){var g=this.editor.graph.getInsertPoint();this.importFiles([f.getAsFile()],g.x,g.y,this.maxImageSize);mxEvent.consume(a);
break}}}}catch(k){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);
-if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var k=
+if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var s=
function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&null==this.dialog&&null!=a.container&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),
-k())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),k())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var l=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:l.apply(this,arguments)}}d=Math.max(document.body.clientHeight||
-0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||
+s())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),s())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var q=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:q.apply(this,arguments)}}e=Math.max(document.body.clientHeight||
+0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,e,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||
10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",
-!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");null!=d&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width=
-"98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),d.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);
-this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var m=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:m.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var n=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=n&&(n.parentNode.removeChild(n),n=null),b.stopPropagation(),
-b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==n&&(!mxClient.IS_IE||10<document.documentMode))n=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=n&&(n.parentNode.removeChild(n),n=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
-e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
-b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,l=e.getElementsByTagName("img");null!=l&&1==l.length?(c=l[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
-b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+k+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
+!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){e=document.getElementById("geFooter");null!=e&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width=
+"98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),e.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);
+this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}e=document.getElementById("geInfo");null!=e&&e.parentNode.removeChild(e);if(Graph.fileSupport){var v=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=v&&(v.parentNode.removeChild(v),v=null),b.stopPropagation(),
+b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==v&&(!mxClient.IS_IE||10<document.documentMode))v=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=v&&(v.parentNode.removeChild(v),v=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
+e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
+b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
+b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",
-!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var k=b.getElementsByTagName("span"),l=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(d);this.isCompatibleString(l)&&(e=!0,d=l)}catch(m){}c.lastPasteXml==d?c.pasteCounter++:
-(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(n){}}}};
-var g=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=Format.prototype.init;Format.prototype.init=function(){b.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var c=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?c.apply(this,arguments):this.clear()};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=d.apply(this,
-arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var e=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=
-function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));e.apply(this,arguments)};var f=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom=
-"2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return f.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=
-mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),g=0;g<f.length;g++)e=mxUtils.removeStylename(e,f[g]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,
-"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+
-a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(e),c(a[g])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace=
-"normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",
-stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},
-{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
-a.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,g.length);b(g[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
-a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,g.length);b(g[this.editorUi.currentScheme])}));c(k);c(l);b(g[this.editorUi.currentScheme]);return a};return g.apply(this,arguments)};null!=window.StyleFormatPanel&&(StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),
-mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
-b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft=
-"2px"),a.appendChild(b));return a});EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],
-"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?
-c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&
-this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=
-function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=
-Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var q=b.getElementsByTagName("span"),t=null!=q&&0<q.length?mxUtils.trim(decodeURIComponent(q[0].textContent)):decodeURIComponent(d);this.isCompatibleString(t)&&(e=!0,d=t)}catch(v){}c.lastPasteXml==d?c.pasteCounter++:
+(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(u){}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
@@ -7431,42 +7560,32 @@ var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell
this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=!1,c=mxUtils.bind(this,function(a,b){null!=urlParams.modified&&("0"==urlParams.modified?this.editor.setStatus(""):
this.editor.setStatus(mxResources.get(urlParams.modified)))});this.editor.graph.model.addListener(mxEvent.CHANGE,c);mxEvent.addListener(window,"message",mxUtils.bind(this,function(c){var e=c.data;if("json"==urlParams.proto){e=JSON.parse(e);if("dialog"==e.action){this.showError(null!=e.titleKey?mxResources.get(e.titleKey):e.title,null!=e.messageKey?mxResources.get(e.messageKey):e.message,null!=e.buttonKey?mxResources.get(e.buttonKey):e.button);null!=e.modified&&(this.editor.modified=e.modified);return}if("template"==
e.action){this.spinner.stop();var f=new NewDialog(this,!1,!1,mxUtils.bind(this,function(b){a(b||"",c,null!=b)}));this.showDialog(f.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));f.init();return}if("status"==e.action){null!=e.messageKey?this.editor.setStatus(mxResources.get(e.messageKey)):null!=e.message&&this.editor.setStatus(e.message);null!=e.modified&&(this.editor.modified=e.modified);return}if("spinner"==e.action){var g=null!=e.messageKey?mxResources.get(e.messageKey):
-e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var k=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(k);b.data="data:image/png;base64,"+
-a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var m=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var m=this.createTemporaryGraph(m.getStylesheet()),n=m.getGlobalVariable,q=this.pages[0];m.getGlobalVariable=function(a){return"page"==a?q.getName():"pagenumber"==a?1:n.apply(this,arguments)};document.body.appendChild(m.container);m.model.setRoot(q.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
-"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(k))));m!=this.editor.graph&&m.container.parentNode.removeChild(m.container);l(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,m)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(k)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();200==a.getStatus()&&l(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)k=this.editor.getGraphXml(),g.data=this.getHtml(k,
-this.editor.graph),g.xml=mxUtils.getXml(k),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var m=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var v=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(m);b.data="data:image/png;base64,"+
+a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var u=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var u=this.createTemporaryGraph(u.getStylesheet()),y=u.getGlobalVariable,z=this.pages[0];u.getGlobalVariable=function(a){return"page"==a?z.getName():"pagenumber"==a?1:y.apply(this,arguments)};document.body.appendChild(u.container);u.model.setRoot(z.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
+"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(m))));u!=this.editor.graph&&u.container.parentNode.removeChild(u.container);v(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,u)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(m)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();200==a.getStatus()&&v(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)m=this.editor.getGraphXml(),g.data=this.getHtml(m,
+this.editor.graph),g.xml=mxUtils.getXml(m),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
this.spinner.stop();g.data=this.createSvgDataUri(a);d.postMessage(JSON.stringify(g),"*")})):this.convertImages(this.editor.graph.getSvg(f),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();g.data=this.createSvgDataUri(mxUtils.getXml(a));d.postMessage(JSON.stringify(g),"*")}));return}f="xmlsvg"==e.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(f));g.data=this.createSvgDataUri(f)}d.postMessage(JSON.stringify(g),
"*")}return}"load"==e.action?(b=1==e.autosave,null!=e.modified&&null==urlParams.modified&&(urlParams.modified=e.modified),null!=e.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=e.saveAndExit),null!=e.title&&null!=this.buttonContainer&&(f=document.createElement("span"),mxUtils.write(f,e.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop=
-"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(p){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
+"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(x){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
(f=mxUtils.bind(this,function(a,b){var c="0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml()),d=this.createLoadMessage("autosave");d.xml=c;c=JSON.stringify(d);(window.opener||window.parent).postMessage(c,"*")}),this.editor.graph.model.addListener(mxEvent.CHANGE,f),this.addListener("pageFormatChanged",f),this.addListener("backgroundColorChanged",f),this.addListener("backgroundImageChanged",f),this.addListener("foldingEnabledChanged",
f),this.addListener("mathEnabledChanged",f),this.addListener("gridEnabledChanged",f),this.addListener("guidesEnabledChanged",f),this.addListener("pageViewChanged",f));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&d.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var d=window.opener||window.parent,c="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";d.postMessage(c,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=
document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,
"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};
-EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var k=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=k.apply(this,arguments),
-c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
-null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),
-f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var f=b.init;b.init=function(){f.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
+EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var e=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=e.apply(this,arguments),
+c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var f=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
+null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return f.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),
+f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,
-!0);b.outline.view.validate()});return b};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);
-this.actions.get("connectionPoints").setEnabled(c);this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==
-urlParams.embed||null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
-null!=a&&null!=a.shape&&null!=a.shape.stencil)};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.edgeMode="move"!=urlParams.edge;var m=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){m.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.setShadowVisible=
-function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked",
-"0"));null!=b&&1<c&&this.setDefaultParent(b)}};var n=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}n.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=
-function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=
-!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+
-"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];
-mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries.eeLogicGates=[STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeResistors=[STENCIL_PATH+"/electrical/resistors.xml"];mxStencilRegistry.libraries.eeCapacitors=[STENCIL_PATH+"/electrical/capacitors.xml"];mxStencilRegistry.libraries.eeInductors=[STENCIL_PATH+
-"/electrical/inductors.xml"];mxStencilRegistry.libraries.eeSwitchesRelays=[STENCIL_PATH+"/electrical/switchesRelays.xml",STENCIL_PATH+"/electrical/electro-mechanical.xml"];mxStencilRegistry.libraries.eeDiodes=[STENCIL_PATH+"/electrical/diodes.xml"];mxStencilRegistry.libraries.eeSources=[STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries.eeTransistors=[STENCIL_PATH+"/electrical/mosfets1.xml",STENCIL_PATH+"/electrical/mosfets2.xml",STENCIL_PATH+"/electrical/transistors.xml"];
-mxStencilRegistry.libraries.eeMisc=[STENCIL_PATH+"/electrical/electro-mechanical.xml",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries.eeAudio=[STENCIL_PATH+"/electrical/radio.xml"];mxStencilRegistry.libraries.eePlcLadder=[STENCIL_PATH+"/electrical/plc_ladder.xml"];mxStencilRegistry.libraries.eeAbstract=[STENCIL_PATH+"/electrical/abstract.xml",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeOptical=[STENCIL_PATH+"/electrical/opto_electronics.xml"];
-mxStencilRegistry.libraries.eeVacuumTubes=[STENCIL_PATH+"/electrical/vacuum_tubes.xml"];mxStencilRegistry.libraries.eeWaveforms=[STENCIL_PATH+"/electrical/waveforms.xml"];mxStencilRegistry.libraries.eeInstruments=[STENCIL_PATH+"/electrical/instruments.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];
-mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+
-"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
-[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",
-STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var p=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,g,k,l,m){if(null!=c&&null==mxMarker.markers[c]){var n=this.getPackageForType(c);
-null!=n&&mxStencilRegistry.getStencil(n)}return p.apply(this,arguments)}})();
+!0);b.outline.view.validate()});return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),b=null!=a||"1"==urlParams.embed;this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var c="1"!=urlParams.embed&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!c);this.actions.get("print").setEnabled(!c);this.menus.get("exportAs").setEnabled(!c);this.menus.get("embed").setEnabled(!c);
+a="1"==urlParams.embed||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&
+this.toolbar.edgeStyleMenu.setEnabled(a));if(this.isOfflineApp()){if((mxClient.IS_GC||mxClient.IS_IOS&&mxClient.IS_SF)&&null!=applicationCache){var d=applicationCache;if(null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin=
+"4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);var e=window.setTimeout(mxUtils.bind(this,function(){d.status==d.IDLE&&(this.offlineStatus.innerHTML='[\x3cimg title\x3d"Cached" border\x3d"0" src\x3d"'+IMAGE_PATH+'/checkmark.gif"/\x3e]',window.clearTimeout(e))}),5E3)}}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=
+function(){};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);this.actions.get("connectionPoints").setEnabled(c);
+this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==urlParams.embed||
+null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
+null!=a&&null!=a.shape&&null!=a.shape.stencil)}})();
var mxSettings={key:".drawio-config",settings:{language:"",libraries:Sidebar.prototype.defaultEntries,customLibraries:[],plugins:[],recentColors:[],formatWidth:"240",currentEdgeStyle:Graph.prototype.defaultEdgeStyle,currentVertexStyle:{},createTarget:!1,pageFormat:mxGraph.prototype.pageFormat,search:!0,showStartScreen:!0,gridColor:mxGraphView.prototype.gridColor,autosave:!0,version:13,isNew:!0},getLanguage:function(){return this.settings.language},setLanguage:function(a){this.settings.language=a},
getUi:function(){return this.settings.ui},setUi:function(a){this.settings.ui=a},getShowStartScreen:function(){return this.settings.showStartScreen},setShowStartScreen:function(a){this.settings.showStartScreen=a},getGridColor:function(){return this.settings.gridColor},setGridColor:function(a){this.settings.gridColor=a},getAutosave:function(){return this.settings.autosave},setAutosave:function(a){this.settings.autosave=a},getLibraries:function(){return this.settings.libraries},setLibraries:function(a){this.settings.libraries=
a},addCustomLibrary:function(a){mxSettings.load();0>mxUtils.indexOf(this.settings.customLibraries,a)&&this.settings.customLibraries.push(a);mxSettings.save()},removeCustomLibrary:function(a){mxSettings.load();mxUtils.remove(a,this.settings.customLibraries);mxSettings.save()},getCustomLibraries:function(){return this.settings.customLibraries},getPlugins:function(){return this.settings.plugins},setPlugins:function(a){this.settings.plugins=a},getRecentColors:function(){return this.settings.recentColors},
@@ -7481,12 +7600,11 @@ App=function(a,c,f){EditorUi.call(this,a,c,null!=f?f:"1"==urlParams.lightbox);mx
App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.DROPBOX_APPKEY="libwls2fa9szdji";
App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"/plugins/explore.js",ex:"/plugins/explore.js",p1:"/plugins/p1.js",ac:"/plugins/connect.js",acj:"/plugins/connectJira.js",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.js",electron:"plugins/electron.js",tags:"/plugins/tags.js",sql:"/plugins/sql.js",find:"/plugins/find.js"};
App.getStoredMode=function(){var a=null;if("undefined"!=typeof Storage)for(var c=document.cookie.split(";"),f=0;f<c.length;f++){var d=mxUtils.trim(c[f]);if("MODE\x3d"==d.substring(0,5)){a=d.substring(5);break}}return a};
-(function(){window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;var a=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){a.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var c=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){c.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};if(!mxClient.IS_CHROMEAPP&&("1"!=urlParams.offline&&
-("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode,null==App.mode&&(App.mode=App.getStoredMode())),null!=window.mxscript&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&"#G"==window.location.hash.substring(0,2)?mxscript("https://apis.google.com/js/api.js"):
-"0"==urlParams.chrome&&(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,2)?mxscript("https://www.dropbox.com/static/api/1/dropins.js",null,"dropboxjs",App.DROPBOX_APPKEY):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=null),"function"===typeof window.OneDriveClient&&
-("0"!=urlParams.od&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript("https://js.live.net/v5.0/wl.js"):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=null),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")),"0"!=urlParams.plugins&&"1"!=urlParams.offline)){var f=mxSettings.getPlugins(),d=
-urlParams.p;if(null!=d||null!=f&&0<f.length)App.DrawPlugins=[],window.Draw={},window.Draw.loadPlugin=function(a){App.DrawPlugins.push(a)};if(null!=d)for(var d=d.split(";"),b=0;b<d.length;b++){var e=App.pluginRegistry[d[b]];null!=e?mxscript(e):null!=window.console&&console.log("Unknown plugin:",d[b])}if(null!=f&&0<f.length&&"0"!=urlParams.plugins)if(1==f.length&&("/"==f[0].charAt(0)||0==f[0].indexOf(window.location.protocol+"//"+window.location.host)))mxscript(f[0]);else if(mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",
-[f.join("\n")]).replace(/\\n/g,"\n")))for(b=0;b<f.length;b++)try{mxscript(f[b])}catch(g){}}})();
+(function(){if(!mxClient.IS_CHROMEAPP&&("1"!=urlParams.offline&&("db.draw.io"==window.location.hostname&&null==urlParams.mode&&(urlParams.mode="dropbox"),App.mode=urlParams.mode,null==App.mode&&(App.mode=App.getStoredMode())),null!=window.mxscript&&("function"===typeof window.DriveClient&&("0"!=urlParams.gapi&&isSvgBrowser&&(null==document.documentMode||10<=document.documentMode)?App.mode==App.MODE_GOOGLE||null!=urlParams.state&&""==window.location.hash||null!=window.location.hash&&"#G"==window.location.hash.substring(0,
+2)?mxscript("https://apis.google.com/js/api.js"):"0"==urlParams.chrome&&(window.DriveClient=null):window.DriveClient=null),"function"===typeof window.DropboxClient&&("0"!=urlParams.db&&isSvgBrowser&&(null==document.documentMode||9<document.documentMode)?App.mode==App.MODE_DROPBOX||null!=window.location.hash&&"#D"==window.location.hash.substring(0,2)?mxscript("https://www.dropbox.com/static/api/1/dropins.js",null,"dropboxjs",App.DROPBOX_APPKEY):"0"==urlParams.chrome&&(window.DropboxClient=null):window.DropboxClient=
+null),"function"===typeof window.OneDriveClient&&("0"!=urlParams.od&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?App.mode==App.MODE_ONEDRIVE||null!=window.location.hash&&"#W"==window.location.hash.substring(0,2)?mxscript("https://js.live.net/v5.0/wl.js"):"0"==urlParams.chrome&&(window.OneDriveClient=null):window.OneDriveClient=null),"undefined"==typeof JSON&&mxscript("js/json/json2.min.js")),"0"!=urlParams.plugins&&"1"!=urlParams.offline)){var a=
+mxSettings.getPlugins(),c=urlParams.p;if(null!=c||null!=a&&0<a.length)App.DrawPlugins=[],window.Draw={},window.Draw.loadPlugin=function(a){App.DrawPlugins.push(a)};if(null!=c)for(var c=c.split(";"),f=0;f<c.length;f++){var d=App.pluginRegistry[c[f]];null!=d?mxscript(d):null!=window.console&&console.log("Unknown plugin:",c[f])}if(null!=a&&0<a.length&&"0"!=urlParams.plugins)if(1==a.length&&("/"==a[0].charAt(0)||0==a[0].indexOf(window.location.protocol+"//"+window.location.host)))mxscript(a[0]);else if(mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n",
+[a.join("\n")]).replace(/\\n/g,"\n")))for(f=0;f<a.length;f++)try{mxscript(a[f])}catch(b){}}})();
App.main=function(a){var c=null;window.onerror=function(a,b,e,f,k){try{if(!(a==c||null!=a&&null!=b&&(-1!=a.indexOf("Script error")||-1!=a.indexOf("extension")))&&null!=a&&0>a.indexOf("DocumentClosedError")){c=a;var l=new Image,m=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";l.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3d"+m+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+
"\x26msg\x3dclientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(e)+(null!=f?":colno:"+encodeURIComponent(f):"")+(null!=k&&null!=k.stack?"\x26stack\x3d"+encodeURIComponent(k.stack):"")}}catch(n){}};"atlas"==uiTheme&&mxClient.link("stylesheet","styles/atlas.css");if(null!=window.mxscript){"0"!=urlParams.chrome&&mxscript("js/jscolor/jscolor.js");if("1"==urlParams.offline){mxscript("js/shapes.min.js");var f=document.createElement("iframe");
f.setAttribute("width","0");f.setAttribute("height","0");f.setAttribute("src","offline.html");document.body.appendChild(f);mxStencilRegistry.stencilSet={};mxStencilRegistry.getStencil=function(a){return mxStencilRegistry.stencils[a]};mxStencilRegistry.loadStencilSet=function(a,b,c){a=a.substring(a.indexOf("/")+1);a="mxgraph."+a.substring(0,a.length-4).replace(/\//g,".");a=mxStencilRegistry.stencilSet[a];null!=a&&mxStencilRegistry.parseStencilSet(a,b,!1)};for(f=mxUtils.load("stencils.xml").getXml().documentElement.firstChild;null!=
@@ -7501,9 +7619,7 @@ App.prototype.chevronUpImage=!mxClient.IS_SVG?IMAGE_PATH+"/chevron-up.png":"data
App.prototype.chevronDownImage=!mxClient.IS_SVG?IMAGE_PATH+"/chevron-down.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUI1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NUM1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1OTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1QTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsCtve8AAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAALUlEQVR42mJgRgMMRAkwQEXBNAOcBSPhclB1cNVwfcxI+vEZykSpoSR6DiDAAF23ApT99bZ+AAAAAElFTkSuQmCC";
App.prototype.formatShowImage=!mxClient.IS_SVG?IMAGE_PATH+"/format-show.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODdCREY5REY1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODdCREY5RTA1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4N0JERjlERDU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4N0JERjlERTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlnMQ/8AAAAJUExURQAAAP///3FxcTfTiAsAAAACdFJOU/8A5bcwSgAAACFJREFUeNpiYEQDDEQJMMABTAAixcQ00ALoDiPRcwABBgB6DADly9Yx8wAAAABJRU5ErkJggg\x3d\x3d";
App.prototype.formatHideImage=!mxClient.IS_SVG?IMAGE_PATH+"/format-hide.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODdCREY5REI1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODdCREY5REM1NkQ3MTFFNTkyNjNEMTA5NjgwODUyRTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4N0JERjlEOTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4N0JERjlEQTU2RDcxMUU1OTI2M0QxMDk2ODA4NTJFOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqjT9SMAAAAGUExURQAAAP///6XZn90AAAACdFJOU/8A5bcwSgAAAB9JREFUeNpiYEQDDEQJMMABTAAmNdAC6A4j0XMAAQYAcbwA1Xvj1CgAAAAASUVORK5CYII\x3d";
-App.prototype.fullscreenImage=!mxClient.IS_SVG?IMAGE_PATH+"/fullscreen.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABpJREFUCNdjgAAbGxAy4AEh5gNwBBGByoIBAIueBd12TUjqAAAAAElFTkSuQmCC";App.prototype.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
-App.prototype.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
-App.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";App.prototype.mode=null;App.prototype.timeout=25E3;App.prototype.enableLogging=!0;App.prototype.formatEnabled="0"!=urlParams.format;App.prototype.formatWidth=600>screen.width?0:mxSettings.getFormatWidth();"1"!=urlParams.embed&&(App.prototype.menubarHeight=60);Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;
+App.prototype.fullscreenImage=!mxClient.IS_SVG?IMAGE_PATH+"/fullscreen.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABpJREFUCNdjgAAbGxAy4AEh5gNwBBGByoIBAIueBd12TUjqAAAAAElFTkSuQmCC";App.prototype.timeout=25E3;App.prototype.enableLogging=!0;App.prototype.formatEnabled="0"!=urlParams.format;App.prototype.formatWidth=600>screen.width?0:mxSettings.getFormatWidth();"1"!=urlParams.embed&&(App.prototype.menubarHeight=60);
App.prototype.init=function(){EditorUi.prototype.init.apply(this,arguments);if(this.isLocalFileSave()){var a=this;ExportDialog.saveLocalFile=function(b,c,d){var e="text/xml";"svg"===d&&(e="image/svg+xml");a.saveLocalFile(b,c,e)};ExportDialog.saveRequest=function(b,c,d,e){a.saveRequest(b,c,d,e)}}this.defaultLibraryName=mxResources.get("untitledLibrary");this.descriptorChangedListener=mxUtils.bind(this,this.descriptorChanged);if("1"!=urlParams.embed){this.bg=this.createBackground();document.body.appendChild(this.bg);
this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";var c=mxUtils.bind(this,function(){"undefined"!==typeof WL?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):
null==window.DrawOneDriveClientCallback&&(window.DrawOneDriveClientCallback=c)});c();var f=mxUtils.bind(this,function(){if("undefined"!==typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this);"420247213240"==this.drive.appId&&this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile&&(a=document.getElementById("geFooterItem2"),null!=a&&(a.innerHTML='\x3ca href\x3d"https://support.draw.io/display/DO/2014/11/27/Switching+application+in+Google+Drive" target\x3d"_blank" title\x3d"IMPORTANT NOTICE" \x3eIMPORTANT NOTICE\x3c/a\x3e'))}));
@@ -7533,14 +7649,9 @@ App.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable
App.prototype.getThumbnail=function(a,c){var f=!1;try{if(null==this.thumbImageCache&&(this.thumbImageCache={}),this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){c(a)}),a,this.thumbImageCache,"#ffffff",function(){c()}),f=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var d=this.editor.graph,b=document.createElement("canvas"),e=d.getGraphBounds(),g=a/e.width,g=Math.min(1,Math.min(3*a/(4*e.height),g)),k=Math.floor(e.x),l=Math.floor(e.y);b.setAttribute("width",Math.ceil(g*
(e.width+4)));b.setAttribute("height",Math.ceil(g*(e.height+4)));var m=b.getContext("2d");m.scale(g,g);m.translate(-k,-l);var n=d.background;if(null==n||""==n||n==mxConstants.NONE)n="#ffffff";m.save();m.fillStyle=n;m.fillRect(k,l,Math.ceil(e.width+4),Math.ceil(e.height+4));m.restore();var p=new mxJsCanvas(b),r=new mxAsyncCanvas(this.thumbImageCache);p.images=this.thumbImageCache.images;var s=new mxImageExport;s.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(0.5,
0.5),a.shape.paint(b),b.translate(-0.5,-0.5),b.restore())};s.drawText=function(a,b){};s.drawState(d.getView().getState(d.model.root),r);r.finish(function(){s.drawState(d.getView().getState(d.model.root),p);c(b)});f=!0}}catch(q){}return f};App.prototype.getPublicUrl=function(a,c){c(null)};
-App.prototype.createFileData=function(a,c,f,d,b,e,g,k,l){c=null!=c?c:this.editor.graph;b=null!=b?b:!1;l=null!=l?l:!0;var m=null,n=null;null==f||f.getMode()==App.MODE_DEVICE||f.getMode()==App.MODE_BROWSER?m="_blank":n=m=d;if(null==a)return"";var p=a;if("mxfile"!=p.nodeName.toLowerCase()){var r=c.zapGremlins(mxUtils.getXml(a)),p=c.compress(r);if(c.decompress(p)!=r)return r;r=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(r,p);p=a.ownerDocument.createElement("mxfile");p.appendChild(r)}p.setAttribute("userAgent",
-navigator.userAgent);p.setAttribute("version",EditorUi.VERSION);p.setAttribute("editor","www.draw.io");a=null!=f?f.getMode():this.mode;null!=a&&p.setAttribute("type",a);a=mxUtils.getXml(p);if(!e&&!b&&(g||null!=f&&/(\.html)$/i.test(f.getTitle())))a=this.getHtml2(mxUtils.getXml(p),c,null!=f?f.getTitle():null,m,n);else if(e||!b&&null!=f&&/(\.svg)$/i.test(f.getTitle())){if(null!=f&&(f.getMode()==App.MODE_DEVICE||f.getMode()==App.MODE_BROWSER))d=null;a=this.getEmbeddedSvg(a,c,d,null,k,l,n)}return a};
-App.prototype.getXmlFileData=function(a,c){a=null!=a?a:!0;c=null!=c?c:!1;var f=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(f)));mxUtils.setTextContent(this.currentPage.node,d);f=this.fileNode.cloneNode(!1);if(c)f.appendChild(this.currentPage.node);else for(var b=0;b<this.pages.length;b++){var e=this.pages[b].mapping;this.currentPage!=this.pages[b]&&null!=e&&e.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),
-e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[b].node,d),e.needsUpdate=!1);f.appendChild(this.pages[b].node)}}return f};
-App.prototype.getFileData=function(a,c,f,d,b,e,g){b=null!=b?b:!0;g=null!=g?g:this.getXmlFileData(b,null!=e?e:!1);e=this.editor.graph;var k=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=this.pages[0]&&(c||!a&&null!=k&&/(\.svg)$/i.test(k.getTitle()))){e=this.createTemporaryGraph(e.getStylesheet());var l=e.getGlobalVariable,m=this.pages[0];e.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?1:l.apply(this,arguments)};document.body.appendChild(e.container);e.model.setRoot(m.root)}a=
-this.createFileData(g,e,k,window.location.href,a,c,f,d,b);e!=this.editor.graph&&e.container.parentNode.removeChild(e.container);return a};App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a};
-App.prototype.setMode=function(a,c){this.mode=a;null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if("undefined"!=typeof Storage&&c){var f=new Date;f.setYear(f.getFullYear()+1);document.cookie="MODE\x3d"+a+"; expires\x3d"+f.toUTCString()}null!=this.appIcon&&(f=this.getCurrentFile(),a=null!=f?f.getMode():null,a==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):a==App.MODE_DROPBOX?
-(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),this.appIcon.style.cursor="pointer"):a==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor="default"))};
+App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a};
+(function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(c,f){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if("undefined"!=typeof Storage&&f){var d=new Date;d.setYear(d.getFullYear()+1);document.cookie="MODE\x3d"+c+"; expires\x3d"+d.toUTCString()}null!=this.appIcon&&(d=this.getCurrentFile(),c=null!=d?d.getMode():null,c==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),
+this.appIcon.style.cursor="pointer"):c==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),this.appIcon.style.cursor="pointer"):c==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor="default"))}})();
App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var c=this.getCurrentFile(),f=null!=c?c.getMode():null;f==App.MODE_GOOGLE?0<c.desc.parents.length?window.open("https://drive.google.com/drive/folders/"+c.desc.parents[0].id):window.open("https://drive.google.com/?authuser\x3d0"):f==App.MODE_DROPBOX?window.open("https://www.dropbox.com/"):f==App.MODE_ONEDRIVE&&window.open("https://onedrive.live.com/")}mxEvent.consume(a)};
App.prototype.clearMode=function(){if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE\x3d; expires\x3d"+a.toUTCString()}};App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a};
App.prototype.open=function(){try{if(null!=window.opener){var a=urlParams.create;null!=a&&(a=decodeURIComponent(a));if(null!=a&&0<a.length&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)){var c=mxUtils.parseXml(window.opener[a]);this.editor.setGraphXml(c.documentElement)}else null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){this.spinner.stop();if(null==b){var c=urlParams.title,c=null!=c?decodeURIComponent(c):this.defaultFilename;this.fileLoaded(new LocalFile(this,
@@ -7573,7 +7684,7 @@ App.MODE_BROWSER?new StorageFile(this,b,c):new LocalFile(this,b,c))}));var d=thi
App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE){var c=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:this.dropbox;null!=c&&c.pickLibrary(mxUtils.bind(this,function(a,d){null!=d?this.loadLibrary(d):this.spinner.spin(document.body,mxResources.get("loading"))&&c.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(b){this.handleError(b,mxResources.get("errorLoadingFile"))}}),
mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a==App.MODE_DEVICE&&Graph.fileSupport&&!mxClient.IS_IE&&!mxClient.IS_IE11){var f=document.createElement("input");f.setAttribute("type","file");mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if(null!=f.files)for(var a=0;a<f.files.length;a++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){try{this.loadLibrary(new LocalLibrary(this,b.target.result,
a.name))}catch(c){this.handleError(c,mxResources.get("errorLoadingFile"))}});b.readAsText(a)})(f.files[a])}));f.click()}else{window.openNew=!1;window.openKey="open";var d=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{this.loadLibrary(a==App.MODE_BROWSER?new StorageLibrary(this,b,c):new LocalLibrary(this,b,c))}catch(d){this.handleError(d,
-mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=d;window.openFile=null})}};App.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),f=c.createElement("mxlibrary");mxUtils.setTextContent(f,JSON.stringify(a));c.appendChild(f);return mxUtils.getXml(c)};
+mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=d;window.openFile=null})}};
App.prototype.saveLibrary=function(a,c,f,d,b,e,g){d=null!=d?d:this.mode;b=null!=b?b:!1;e=null!=e?e:!1;var k=this.createLibraryDataFromImages(c),l=mxUtils.bind(this,function(a){this.spinner.stop();null!=g&&g();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==f&&d==App.MODE_DEVICE&&(f=new LocalLibrary(this,k,a));if(null==f)this.pickFolder(d,mxUtils.bind(this,function(b){d==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a,
k,b,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),l,this.drive.libraryMimeType):d==App.MODE_DROPBOX&&null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.dropbox.insertLibrary(a,k,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),l,b):d==App.MODE_ONEDRIVE&&null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.oneDrive.insertLibrary(a,k,
mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,c)}),l,b):d==App.MODE_BROWSER?(b=mxUtils.bind(this,function(){var b=new StorageLibrary(this,k,a);b.saveFile(a,!1,mxUtils.bind(this,function(){this.hideDialog(!0);this.libraryLoaded(b,c)}),l)}),null==localStorage.getItem(a)?b():this.confirm(mxResources.get("replaceIt",[a]),b)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(b||this.spinner.spin(document.body,mxResources.get("saving"))){f.setData(k);
@@ -7591,40 +7702,12 @@ g()});a.constructor==LocalFile||a.constructor==DriveFile?k():a.saveFile(a.getTit
App.prototype.loadFile=function(a,c,f){this.hideDialog();var d=mxUtils.bind(this,function(){if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==a.charAt(0))if(this.spinner.stop(),isLocalStorage)try{a=decodeURIComponent(a.substring(1));var b=localStorage.getItem(a);if(null!=b)this.fileLoaded(new StorageFile(this,b,a));else throw{message:mxResources.get("fileNotFound")};}catch(c){this.handleError(c,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();
window.location.hash=null!=a?a.getHash():""}))}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}));else null!=f?(this.spinner.stop(),this.fileLoaded(f)):(b=null,"G"==a.charAt(0)?b=this.drive:"D"==a.charAt(0)?b=this.dropbox:"W"==a.charAt(0)&&(b=this.oneDrive),a=decodeURIComponent(a.substring(1)),null==b?this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},
mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""})):b.getFile(a,mxUtils.bind(this,function(a){this.spinner.stop();this.fileLoaded(a)}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash=
-a.getHash()}))})))});null==a||0==a.length?(this.editor.setStatus(""),this.fileLoaded(null)):null!=this.getCurrentFile()&&!this.isDiagramEmpty()&&!c?window.openWindow(this.getUrl()+"#"+a,null,d):d()};App.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName)c=JSON.parse(mxUtils.getTextContent(c.documentElement)),this.libraryLoaded(a,c);else throw{message:mxResources.get("notALibraryFile")};};
-App.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var f=0;f<c.length;f++)c[f].parentNode.removeChild(c[f]);delete this.sidebar.palettes[a]}};
+a.getHash()}))})))});null==a||0==a.length?(this.editor.setStatus(""),this.fileLoaded(null)):null!=this.getCurrentFile()&&!this.isDiagramEmpty()&&!c?window.openWindow(this.getUrl()+"#"+a,null,d):d()};
App.prototype.getLibraryStorageHint=function(a){var c="";a.constructor!=LocalLibrary&&(c+=a.getHash());a.constructor==DriveLibrary?c+=" ("+mxResources.get("googleDrive")+")":a.constructor==DropboxLibrary?c+=" ("+mxResources.get("dropbox")+")":a.constructor==OneDriveLibrary?c+=" ("+mxResources.get("oneDrive")+")":a.constructor==StorageLibrary?c+=" ("+mxResources.get("browser")+")":a.constructor==LocalLibrary&&(c+=" ("+mxResources.get("device")+")");return c};
-App.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};App.prototype.repositionLibrary=function(a){var c=this.sidebar.container;a=null!=a?a:c.firstChild.nextSibling.nextSibling;var f=c.lastChild,d=f.previousSibling;c.insertBefore(f,a);c.insertBefore(d,f)};
-App.prototype.toggleScratchpad=function(){if(isLocalStorage||mxClient.IS_CHROMEAPP)null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad)};
-App.prototype.libraryLoaded=function(a,c){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var f=this.sidebar.palettes[a.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var d=null,b=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==d&&(d=document.createElement("div"),mxUtils.setPrefixedStyle(d.style,"borderRadius","6px"),d.style.border="3px dotted lightGray",d.style.textAlign=
-"center",d.style.padding="8px",d.style.color="#B3B3B3",mxUtils.write(d,mxResources.get("dragElementsHere"))),c.appendChild(d);else for(var e=0;e<b.length;e++){var f=b[e],g=f.data;if(null!=g){var g=this.convertDataUri(g),k="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;",k="fixed"==f.aspect?k+"aspect\x3dfixed;":k+"imageAspect\x3d0;";c.appendChild(this.sidebar.createVertexTemplate(k+"image\x3d"+g,f.w,f.h,"",f.title||"",!1,!1,!1))}else null!=f.xml&&(g=this.stringToCells(this.editor.graph.decompress(f.xml)),
-0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,f.w,f.h,f.title||"",!0,!1,!1)))}}),e=this.sidebar.addPalette(a.getHash(),a.getTitle(),!0,mxUtils.bind(this,function(a){b(c,a)}));this.repositionLibrary(f);var f=e.parentNode.previousSibling,g=f.getAttribute("title");null!=g&&0<g.length&&".scratchpad"!=a.title&&f.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+g);var k=document.createElement("div");k.style.position="absolute";k.style.right="0px";k.style.top="5px";f.style.position=
-"relative";var l=document.createElement("img");l.setAttribute("src",Dialog.prototype.closeImage);l.setAttribute("title",mxResources.get("close"));l.setAttribute("align","top");l.setAttribute("border","0");l.style.cursor="pointer";l.style.marginRight="8px";l.style.marginTop="3px";k.appendChild(l);var m=null;mxEvent.addListener(l,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=m?this.confirm(mxResources.get("allChangesLost"),
-c):c();mxEvent.consume(b)}}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){mxEvent.getSource(a)==e?e.setAttribute("title",mxResources.get("libraryTooltip")):e.removeAttribute("title")}));if(a.isEditable()){var n=this.editor.graph,p=mxUtils.bind(this,function(b){this.showLibraryDialog(a.getTitle(),e,c,a,a.getMode());mxEvent.consume(b)}),r=mxUtils.bind(this,function(b){a.constructor!=LocalLibrary||a.isAutosave()?(null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t),t=l.cloneNode(!1),
-t.setAttribute("src",App.prototype.spinImage),t.setAttribute("title",mxResources.get("saving")),t.style.cursor="default",t.style.marginRight="6px",t.style.marginTop="2px",k.insertBefore(t,k.firstChild),this.saveLibrary(a.getTitle(),c,a,a.getMode(),!0,!0,function(){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)})):null==m&&(m=l.cloneNode(!1),m.setAttribute("src",IMAGE_PATH+"/download.png"),m.setAttribute("title",mxResources.get("save")),k.insertBefore(m,k.firstChild),mxEvent.addListener(m,
-"click",mxUtils.bind(this,function(b){this.saveLibrary(a.getTitle(),c,a,a.getMode(),!0,!0);m.parentNode.removeChild(m);m=null;mxEvent.consume(b)})))}),s=mxUtils.bind(this,function(a,b,f,g){a=n.cloneCells(n.model.getTopmostCells(a));for(var k=0;k<a.length;k++){var l=n.getCellGeometry(a[k]);null!=l&&l.translate(-b.x,-b.y)}e.appendChild(this.sidebar.createVertexTemplateFromCells(a,b.width,b.height,g||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:b.width,
-h:b.height};null!=g&&(a.title=g);c.push(a);r(f);null!=d&&null!=d.parentNode&&0<c.length&&(d.parentNode.removeChild(d),d=null)}),q=mxUtils.bind(this,function(a){if(n.isSelectionEmpty())n.getRubberband().isActive()?(n.getRubberband().execute(a),n.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=n.getSelectionCells(),c=n.view.getBounds(b),d=n.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=n.view.translate.x;
-c.y-=n.view.translate.y;s(b,c)}mxEvent.consume(a)});e.style.border="3px solid transparent";mxEvent.addGestureListeners(e,function(){},mxUtils.bind(this,function(a){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="hidden",null!=d?d.style.border="3px dotted rgb(254, 137, 12)":e.style.border="3px dotted rgb(254, 137, 12)",e.style.cursor="copy",n.panningManager.stop(),n.autoScroll=!1,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!1),
-null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler&&(e.style.border="3px solid transparent",null!=d&&(d.style.border="3px dotted lightGray"),e.style.cursor="default",this.sidebar.showTooltips=!0,n.panningManager.stop(),n.graphHandler.reset(),n.isMouseDown=!1,n.autoScroll=!0,q(a),mxEvent.consume(a))}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){n.isMouseDown&&
-null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="visible",e.style.border="3px solid transparent",e.style.cursor="",n.autoScroll=!0,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!0),null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="visible"),null!=d&&(d.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=d?d.style.border="3px dotted rgb(254, 137, 12)":e.style.border="3px dotted rgb(254, 137, 12)";
-a.dataTransfer.dropEffect="copy";e.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){e.style.border="3px solid transparent";e.style.cursor="";null!=d&&(d.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(f,g,k,l,m,n,q){if(null!=f&&"image/"==g.substring(0,6)){var p="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+
-this.convertDataUri(f),p=[new mxCell("",new mxGeometry(0,0,m,n),p)];p[0].vertex=!0;s(p,new mxRectangle(0,0,m,n),a,mxEvent.isAltDown(a)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," "))}else{q=!1;if(null!=f&&"text/xml"==g)if(f=mxUtils.parseXml(f),"mxlibrary"==f.documentElement.nodeName)try{var t=JSON.parse(mxUtils.getTextContent(f.documentElement));b(t,e);c=c.concat(t);r(a);this.spinner.stop();q=!0}catch(H){}else if("mxfile"==f.documentElement.nodeName)try{t=mxUtils.getTextContent(f.documentElement.getElementsByTagName("diagram")[0]),
-p=this.stringToCells(this.editor.graph.decompress(t)),s(p,new mxRectangle(0,0,m,n),a),q=!0}catch(I){}q||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}))}null!=d&&null!=d.parentNode&&0<c.length&&(d.parentNode.removeChild(d),d=null)}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(e,"dragleave",function(a){null!=d?d.style.border="3px dotted lightGray":(e.style.border="3px solid transparent",e.style.cursor="");a.stopPropagation();a.preventDefault()}));
-l=l.cloneNode(!1);l.setAttribute("src",IMAGE_PATH+"/edit.gif");l.setAttribute("title",mxResources.get("edit"));k.insertBefore(l,k.firstChild);mxEvent.addListener(l,"click",p);mxEvent.addListener(e,"dblclick",function(a){mxEvent.getSource(a)==e&&p(a)});l=l.cloneNode(!1);l.setAttribute("src",App.prototype.plusImage);l.setAttribute("title",mxResources.get("add"));k.insertBefore(l,k.firstChild);this.isOffline()||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText=
-"color:gray;text-decoration:none;margin-right:8px;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(a){window.open("https://support.draw.io/questions/10420280");mxEvent.consume(a)})),k.insertBefore(g,k.firstChild));var t=null;mxEvent.addListener(l,"click",q)}f.appendChild(k)};
-App.prototype.fileLoaded=function(a){this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var f=mxUtils.bind(this,function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";this.editor.graph.setEnabled(!1);
-null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{if(this.setCurrentFile(a),a.addListener("descriptorChanged",this.descriptorChangedListener),a.addListener("contentChanged",
-this.descriptorChangedListener),this.setMode(a.getMode()),this.descriptorChanged(),a.open(),this.diagramContainer.style.visibility="",this.formatContainer.style.visibility="",this.hsplit.style.display="",this.sidebarContainer.style.display="",this.sidebarFooterContainer.style.display="",this.editor.undoManager.clear(),this.updateUi(),null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus(mxResources.get("readOnly"))),this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():
-(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries()),this.chromelessResize&&this.chromelessResize(),this.editor.fireEvent(new mxEventObject("fileLoaded")),this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE)try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(d){}}catch(b){null!=window.console&&console.log("error in fileLoaded:",a,b),this.handleError(b,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&
-this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?this.fileLoaded(c):f()}))}else f()};
App.prototype.restoreLibraries=function(){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var a=mxUtils.bind(this,function(a){mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),c=mxUtils.bind(this,function(c){if(null!=c)for(var d=0;d<c.length;d++){var b=encodeURIComponent(decodeURIComponent(c[d]));mxUtils.bind(this,function(b){if(null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){this.pendingLibraries[b]=!0;var c=b.substring(0,1);if("L"==
c){if(isLocalStorage||mxClient.IS_CHROMEAPP)try{var d=decodeURIComponent(b.substring(1));this.getLocalData(d,mxUtils.bind(this,function(c){".scratchpad"==d&&null==c&&(c=this.emptyLibraryXml);null!=c?this.loadLibrary(new StorageLibrary(this,c,d)):a(b)}))}catch(f){a(b)}}else if("U"==c){var m=decodeURIComponent(b.substring(1));this.isOffline()||mxUtils.get(PROXY_URL+"?url\x3d"+encodeURIComponent(m),mxUtils.bind(this,function(c){if(200==c.getStatus())try{this.loadLibrary(new UrlLibrary(this,c.getText(),
m)),delete this.pendingLibraries[b]}catch(d){a(b)}else a(b)}),function(){a(b)})}else{var n=null;"G"==c?null!=this.drive&&null!=this.drive.user&&(n=this.drive):"D"==c?null!=this.dropbox&&null!=this.dropbox.getUser()&&(n=this.dropbox):"W"==c&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(n=this.oneDrive);null!=n&&n.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(c){try{this.loadLibrary(c),delete this.pendingLibraries[b]}catch(d){a(b)}}),function(c){a(b)})}}})(b)}});c(mxSettings.getCustomLibraries());
c((urlParams.clibs||"").split(";"))}};
-App.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),c=null!=a||"1"==urlParams.embed;this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var f="1"!=urlParams.embed&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!f);this.actions.get("print").setEnabled(!f);this.menus.get("exportAs").setEnabled(!f);this.menus.get("embed").setEnabled(!f);a="1"==urlParams.embed||null!=a&&a.isEditable();
-this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a));if(this.isOfflineApp()){if((mxClient.IS_GC||
-mxClient.IS_IOS&&mxClient.IS_SF)&&null!=applicationCache){var d=applicationCache;if(null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin="4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign=
-"middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);var b=window.setTimeout(mxUtils.bind(this,function(){d.status==d.IDLE&&(this.offlineStatus.innerHTML='[\x3cimg title\x3d"Cached" border\x3d"0" src\x3d"'+IMAGE_PATH+'/checkmark.gif"/\x3e]',window.clearTimeout(b))}),5E3)}}}else this.updateUserElement()};
App.prototype.exportImage=function(a,c,f,d,b){if(this.spinner.spin(document.body,mxResources.get("exporting"))){var e=this.editor.graph.isSelectionEmpty();f=null!=f?f:e;try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,b?this.getFileData(!0,null,null,null,f):null)}catch(c){"Invalid image"==c.message?this.downloadFile("png"):this.handleError(c)}}),null,null,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,f,a||1,c,d)}catch(g){this.spinner.stop(),
this.handleError(g)}}};
EditorUi.prototype.exportSvg=function(a,c,f,d,b,e){var g=this.editor.graph.isSelectionEmpty();f=null!=f?f:g;g=c?null:this.editor.graph.background;g==mxConstants.NONE&&(g=null);null==g&&!1==c&&(g="#ffffff");var k=this.editor.graph.getSvg(g,a,null,null,null,f);d&&this.editor.addSvgShadow(k);a=this.getCurrentFile();var l=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=l.lastIndexOf(".");0<a&&(l=l.substring(0,a));l+=".svg";if(this.spinner.spin(document.body,mxResources.get("export"))){var m=mxUtils.bind(this,
@@ -7647,26 +7730,10 @@ App.prototype.doSaveLocalFile=function(a,c,f,d){if(window.MSBlobBuilder&&navigat
b.download=c;document.body.appendChild(b);mxClient.IS_SF&&b.setAttribute("target","_blank");try{b.click(),window.setTimeout(function(){URL.revokeObjectURL(b.href)},0),b.parentNode.removeChild(b)}catch(e){}}};
App.prototype.saveLocalFile=function(a,c,f,d){if(this.isOfflineApp()||this.isOffline())this.doSaveLocalFile(a,c,f,d);else{var b=!mxClient.IS_IOS||!navigator.standalone;c=new CreateDialog(this,c,mxUtils.bind(this,function(b,c){try{if("_blank"==c)if(mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var k="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(a):"\x26data\x3d"+encodeURIComponent(this.editor.graph.compress(a));(new mxXmlRequest(SAVE_URL,"mime\x3d"+f+k)).simulate(document,
"_blank")}else window.open("data:"+f+(d?";base64,"+a:";charset\x3dutf8,"+encodeURIComponent(a)));else c==App.MODE_DEVICE?this.doSaveLocalFile(a,b,f,d):null!=b&&0<b.length&&this.pickFolder(c,mxUtils.bind(this,function(k){this.exportFile(a,b,f,d,c,k)}))}catch(l){this.handleError(l)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,b);this.showDialog(c.container,380,280,!0,!0);c.init()}};
-App.prototype.getHtml=function(a,c,f,d,b,e){e=null!=e?e:!0;var g=null,k="https://www.draw.io/js/embed-static.min.js";if(null!=c){var g=e?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;e=Math.floor(g.x/l-c.view.translate.x);l=Math.floor(g.y/l-c.view.translate.y);g=c.background;null==b&&(c=this.getBasenames().join(";"),0<c.length&&(k="https://www.draw.io/embed.js?s\x3d"+c));a.setAttribute("x0",e);a.setAttribute("y0",l)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom",
-"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=b&&(b=b.replace(/&/g,"\x26amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==b?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+
-(null!=b?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==b?null!=f?"\x3ctitle\x3e"+mxUtils.htmlEntities(f)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=b?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+b+"'\"/\x3e\n":"")+"\x3c/head\x3e\n\x3cbody"+(null==b&&null!=g&&g!=mxConstants.NONE?' style\x3d"background-color:'+g+';"\x3e':"\x3e")+'\n\x3cdiv class\x3d"mxgraph" style\x3d"position:relative;overflow:auto;width:100%;"\x3e\n\x3cdiv style\x3d"width:1px;height:1px;overflow:hidden;"\x3e'+
-d+"\x3c/div\x3e\n\x3c/div\x3e\n"+(null==b?'\x3cscript type\x3d"text/javascript" src\x3d"'+k+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+b+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};
-App.prototype.getHtml2=function(a,c,f,d,b){d="https://www.draw.io/js/viewer.min.js";var e="";null!=c&&null==b&&(e=this.getBasenames().join(";"),0<e.length&&(d="https://www.draw.io/embed2.js?s\x3d"+e));null!=b&&(b=b.replace(/&/g,"\x26amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==b?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':
-"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+(null!=b?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==b?null!=f?"\x3ctitle\x3e"+mxUtils.htmlEntities(f)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=b?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+b+"'\"/\x3e\n":"")+'\x3cmeta charset\x3d"utf-8"/\x3e\n\x3c/head\x3e\n\x3cbody\x3e\n\x3cdiv class\x3d"mxgraph" style\x3d"max-width:100%;border:1px solid transparent;" data-mxgraph\x3d"'+
-mxUtils.htmlEntities(JSON.stringify(a))+'"\x3e\x3c/div\x3e\n'+(null==b?'\x3cscript type\x3d"text/javascript" src\x3d"'+d+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+b+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};
-App.prototype.saveData=function(a,c,f,d){this.isLocalFileSave()?this.saveLocalFile(f,a,d):this.saveRequest(f,a,c,mxUtils.bind(this,function(a,d){var g="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(f):"\x26data\x3d"+encodeURIComponent(this.editor.graph.compress(f));return new mxXmlRequest(SAVE_URL,"format\x3d"+c+(null!=a?"\x26filename\x3d"+encodeURIComponent(a):"")+g)}))};
-App.prototype.downloadFile=function(a,c,f,d,b){try{var e=this.getCurrentFile();d=null!=d?d:this.editor.graph.isSelectionEmpty();var g=null!=e&&null!=e.getTitle()?e.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(g)||/(\.html)$/i.test(g)||/(\.svg)$/i.test(g))g=g.substring(0,g.lastIndexOf("."));var k=g+"."+a;if("xml"==a){var l='\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n'+(c?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,b));this.saveData(k,a,l,"text/xml")}else if("html"==
-a)l=this.getHtml2(this.getFileData(!0),this.editor.graph,g),this.saveData(k,a,l,"text/html");else if(("svg"==a||"xmlsvg"==a)&&this.spinner.spin(document.body,mxResources.get("export"))){var m=null,n=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var p=this.editor.graph.background;p==mxConstants.NONE&&
-(p=null);var r=this.editor.graph.getSvg(p,null,null,!1,null,d);f&&this.editor.addSvgShadow(r);this.convertImages(r,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a))})))}else k=g+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();n(a)}),d)}else{var s=this.editor.graph.getGraphBounds(),
-l=this.getFileData(!0,null,null,null,d,"xmlpng"!=a),q="";if(s.width*s.height<=MAX_AREA&&l.length<=MAX_REQUEST_SIZE){var t="0";if("xmlpng"==a&&(t="1",a="png",k=g+"."+a,null!=this.pages&&null!=this.currentPage))for(c=0;c<this.pages.length;c++)if(this.pages[c]==this.currentPage){q="\x26from\x3d"+c;break}this.saveRequest(l,k,a,function(b,c){return new mxXmlRequest(EXPORT_URL,"format\x3d"+a+q+"\x26base64\x3d"+c+"\x26embedXml\x3d"+t+"\x26xml\x3d"+encodeURIComponent(l)+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):
-""))})}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}}catch(v){this.handleError(v)}};App.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};
+App.prototype.saveData=function(a,c,f,d){this.isLocalFileSave()?this.saveLocalFile(f,a,d):this.saveRequest(f,a,c,mxUtils.bind(this,function(a,d){var g="undefined"===typeof pako?"\x26xml\x3d"+encodeURIComponent(f):"\x26data\x3d"+encodeURIComponent(this.editor.graph.compress(f));return new mxXmlRequest(SAVE_URL,"format\x3d"+c+(null!=a?"\x26filename\x3d"+encodeURIComponent(a):"")+g)}))};App.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};
App.prototype.descriptorChanged=function(){var a=this.getCurrentFile();if(null!=a){if(null!=this.fname){this.fnameWrapper.style.display="block";this.fname.innerHTML="";var c=null!=a.getTitle()?a.getTitle():this.defaultFilename;mxUtils.write(this.fname,c);this.fname.setAttribute("title",c+" - "+mxResources.get("rename"))}this.editor.graph.setEnabled(a.isEditable());null==urlParams.rev&&(this.updateDocumentTitle(),a=a.getHash(),0<a.length?window.location.hash=a:0<window.location.hash.length&&(window.location.hash=
-""))}};
-App.prototype.handleError=function(a,c,f){var d=this.spinner.pause(),b=null!=a&&null!=a.error?a.error:a;if(null!=b||null!=c){a=mxResources.get("unknownError");var e=mxResources.get("ok"),g=null;c=null!=c?c:mxResources.get("error");if(null!=b)if("undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&b.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxResources.get("forbidden");else if(404==b.code||404==b.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&
-"undefined"!=typeof gapi.drive.realtime&&b.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxResources.get("fileNotFoundOrDenied");var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),a+=' \x3ca href\x3d"https://drive.google.com/open?id\x3d'+k+'" target\x3d"_blank"\x3e'+mxResources.get("tryOpeningViaThisPage")+"\x3c/a\x3e")}else b.code==App.ERROR_TIMEOUT?(a=mxResources.get("timeout"),null!=b.retry&&(e=mxResources.get("cancel"),g=function(){d();b.retry()})):b.code==App.ERROR_BUSY?
-a=mxResources.get("busy"):null!=b.message?a=b.message:null!=b.response&&null!=b.response.error&&(a=b.response.error);this.showError(c,a,e,f,g)}else null!=f&&f()};App.prototype.showError=function(a,c,f,d,b,e,g){a=new ErrorDialog(this,a,c,f,d,b,e,g);this.showDialog(a.container,340,150,!0,!1);a.init()};App.prototype.alert=function(a,c){var f=new ErrorDialog(this,null,a,mxResources.get("ok"),c);this.showDialog(f.container,340,100,!0,!1);f.init()};
-App.prototype.confirm=function(a,c,f){var d=null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=c&&c()},function(){d();null!=f&&f()})).container,340,90,!0,!1)};App.prototype.toggleChat=function(){var a=this.getCurrentFile();if(null!=a){if(null==a.chatWindow){var c=document.body.offsetWidth-300;a.chatWindow=new ChatWindow(this,mxResources.get("chatWindowTitle"),document.getElementById("geChat"),c,80,250,350,a.realtime);a.chatWindow.window.setVisible(!1)}a.chatWindow.window.setVisible(!a.chatWindow.window.isVisible())}};
-App.prototype.status=function(a){this.editor.setStatus(a)};App.prototype.showAuthDialog=function(a,c,f){var d=this.spinner.pause();this.showDialog((new AuthDialog(this,a,c,mxUtils.bind(this,function(a){try{null!=f&&f(a,function(){d()})}catch(c){this.editor.setStatus(c.message)}}))).container,300,c?180:140,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))};
+""))}};App.prototype.toggleChat=function(){var a=this.getCurrentFile();if(null!=a){if(null==a.chatWindow){var c=document.body.offsetWidth-300;a.chatWindow=new ChatWindow(this,mxResources.get("chatWindowTitle"),document.getElementById("geChat"),c,80,250,350,a.realtime);a.chatWindow.window.setVisible(!1)}a.chatWindow.window.setVisible(!a.chatWindow.window.isVisible())}};App.prototype.status=function(a){this.editor.setStatus(a)};
+App.prototype.showAuthDialog=function(a,c,f){var d=this.spinner.pause();this.showDialog((new AuthDialog(this,a,c,mxUtils.bind(this,function(a){try{null!=f&&f(a,function(){d()})}catch(c){this.editor.setStatus(c.message)}}))).container,300,c?180:140,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))};
App.prototype.loadUrl=function(a,c,f,d,b){try{var e=d||/(\.png)($|\?)/i.test(a);b=null!=b?b:!0;var g=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200==a.getStatus()){if(null!=c){var b=a.getText();if(e){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var b=Array(a.length),d=0;d<a.length;d++)b[d]=String.fromCharCode(a[d]);b=b.join("")}b="data:image/png;base64,"+
this.base64Encode(b)}c(b)}}else null!=f&&f({code:App.ERROR_UNKNOWN})}),function(){null!=f&&f({code:App.ERROR_UNKNOWN})},e,this.timeout,function(){b&&null!=f&&f({code:App.ERROR_TIMEOUT,retry:g})})});g()}catch(k){null!=f&&f(k)}};
App.prototype.updateHeader=function(){if(null!=this.menubar){this.appIcon=document.createElement("a");this.appIcon.style.display="block";this.appIcon.style.position="absolute";this.appIcon.style.width="40px";this.appIcon.style.backgroundColor="#f18808";this.appIcon.style.height=this.menubarHeight+"px";mxEvent.disableContextMenu(this.appIcon);mxEvent.addListener(this.appIcon,"click",mxUtils.bind(this,function(a){this.appIconClicked(a)}));var a=!mxClient.IS_SVG?"url('"+IMAGE_PATH+"/logo-white.png')":
@@ -7778,9 +7845,9 @@ a.isOffline()||this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy
["-","revisionHistory"],c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);(!mxClient.IS_IOS||!navigator.standalone)&&this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))}})();function DiagramPage(a){this.node=a}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,c,f){this.ui=a;this.page=c;this.previous=f}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};function MovePage(a,c,f){this.ui=a;this.oldIndex=c;this.newIndex=f}
MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};function SelectPage(a,c){this.ui=a;this.previousPage=this.page=c;this.neverShown=null==this.page.viewState;null!=c&&this.ui.updatePageRoot(c)}
-SelectPage.prototype.execute=function(){if(null!=this.page&&0<=mxUtils.indexOf(this.ui.pages,this.previousPage)){var a=this.ui.currentPage,c=this.ui.editor,f=c.graph,d=c.graph.compress(f.zapGremlins(mxUtils.getXml(c.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=f.getViewState();a.root=f.model.root;f.view.clear(a.root,!0);f.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;f.model.rootChanged(a.root);f.setViewState(a.viewState);c.fireEvent(new mxEventObject("setViewState",
-"change",this));f.gridEnabled=f.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);c.updateGraphComponents();f.view.validate();f.sizeDidChange();this.neverShown&&(this.neverShown=!1,f.selectUnlockedLayer());c.graph.fireEvent(new mxEventObject(mxEvent.ROOT));c.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,c,f,d){SelectPage.call(this,a,f);this.relatedPage=c;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
-ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
+SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,c=this.ui.editor,f=c.graph,d=c.graph.compress(f.zapGremlins(mxUtils.getXml(c.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=f.getViewState();a.root=f.model.root;f.view.clear(a.root,!0);f.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;f.model.rootChanged(a.root);f.setViewState(a.viewState);
+c.fireEvent(new mxEventObject("setViewState","change",this));f.gridEnabled=f.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);c.updateGraphComponents();f.view.validate();f.sizeDidChange();this.neverShown&&(this.neverShown=!1,f.selectUnlockedLayer());c.graph.fireEvent(new mxEventObject(mxEvent.ROOT));c.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,c,f,d){SelectPage.call(this,a,f);this.relatedPage=c;this.index=d;this.previousIndex=null}
+mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,c=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var b=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";b!=this.tabContainer.style.height&&this.refresh(!1)}c.apply(a.view,arguments)});var f=!1,d=null,b=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=d&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),d=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?f||(1==MathJax.Hub.queue.pending&&!this.editor.graph.mathEnabled&&MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){f=!0}))):"undefined"!==typeof Editor.MathJaxClear&&
diff --git a/war/js/diagramly/App.js b/war/js/diagramly/App.js
index 474728af..a7e613d1 100644
--- a/war/js/diagramly/App.js
+++ b/war/js/diagramly/App.js
@@ -187,32 +187,6 @@ App.getStoredMode = function()
*/
(function()
{
- // Checks for local storage and SVG support
- window.isSvgBrowser = window.isSvgBrowser || (navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 9);
-
- /**
- * Adds persistence for recent colors
- */
- var colorDialogAddRecentColor = ColorDialog.addRecentColor;
-
- ColorDialog.addRecentColor = function(color, max)
- {
- colorDialogAddRecentColor.apply(this, arguments);
-
- mxSettings.setRecentColors(ColorDialog.recentColors);
- mxSettings.save();
- };
-
- var colorDialogResetRecentColors = ColorDialog.resetRecentColors;
-
- ColorDialog.resetRecentColors = function()
- {
- colorDialogResetRecentColors.apply(this, arguments);
-
- mxSettings.setRecentColors(ColorDialog.recentColors);
- mxSettings.save();
- };
-
if (!mxClient.IS_CHROMEAPP)
{
if (urlParams['offline'] != '1')
@@ -232,6 +206,9 @@ App.getStoredMode = function()
}
}
+ /**
+ * Lazy loading backends.
+ */
if (window.mxscript != null)
{
// Loads gapi for all browsers but IE8 and below if not disabled or if enabled and in embed mode
@@ -317,7 +294,10 @@ App.getStoredMode = function()
mxscript('js/json/json2.min.js');
}
}
-
+
+ /**
+ * Loading plugins.
+ */
if (urlParams['plugins'] != '0' && urlParams['offline'] != '1')
{
var plugins = mxSettings.getPlugins();
@@ -651,26 +631,6 @@ App.prototype.formatHideImage = (!mxClient.IS_SVG) ? IMAGE_PATH + '/format-hide.
App.prototype.fullscreenImage = (!mxClient.IS_SVG) ? IMAGE_PATH + '/fullscreen.png' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABpJREFUCNdjgAAbGxAy4AEh5gNwBBGByoIBAIueBd12TUjqAAAAAElFTkSuQmCC';
/**
- *
- */
-App.prototype.plusImage = (!mxClient.IS_SVG) ? IMAGE_PATH + '/plus.png' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=';
-
-/**
- *
- */
-App.prototype.spinImage = (!mxClient.IS_SVG) ? IMAGE_PATH + '/spin.gif' : 'data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw==';
-
-/**
- *
- */
-App.prototype.emptyLibraryXml = '<mxlibrary>[]</mxlibrary>';
-
-/**
- * Sets the delay for autosave in milliseconds. Default is 2000.
- */
-App.prototype.mode = null;
-
-/**
* Executes the first step for connecting to Google Drive.
*/
App.prototype.timeout = 25000;
@@ -693,11 +653,6 @@ if (urlParams['embed'] != '1')
}
/**
- * Executes the first step for connecting to Google Drive.
- */
-Editor.prototype.editButtonLink = (urlParams['edit'] != null) ? decodeURIComponent(urlParams['edit']) : null;
-
-/**
* Translates this point by the given vector.
*
* @param {number} dx X-coordinate of the translation.
@@ -1629,203 +1584,6 @@ App.prototype.getPublicUrl = function(file, fn)
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
-App.prototype.createFileData = function(node, graph, file, url, forceXml, forceSvg, forceHtml, embeddedCallback, ignoreSelection)
-{
- graph = (graph != null) ? graph : this.editor.graph;
- forceXml = (forceXml != null) ? forceXml : false;
- ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
-
- var editLink = null;
- var redirect = null;
-
- if (file == null || file.getMode() == App.MODE_DEVICE || file.getMode() == App.MODE_BROWSER)
- {
- editLink = '_blank';
- }
- else
- {
- editLink = url;
- redirect = editLink;
- }
-
- if (node == null)
- {
- return '';
- }
- else
- {
- var fileNode = node;
-
- // Ignores case for possible HTML or XML nodes
- if (fileNode.nodeName.toLowerCase() != 'mxfile')
- {
- // Removes control chars in input for correct roundtrip check
- var text = graph.zapGremlins(mxUtils.getXml(node));
- var data = graph.compress(text);
-
- // Fallback to plain XML for invalid compression
- // TODO: Remove this fallback with active pages
- if (graph.decompress(data) != text)
- {
- return text;
- }
- else
- {
- var diagramNode = node.ownerDocument.createElement('diagram');
- mxUtils.setTextContent(diagramNode, data);
-
- fileNode = node.ownerDocument.createElement('mxfile');
- fileNode.appendChild(diagramNode);
- }
- }
-
- fileNode.setAttribute('userAgent', navigator.userAgent);
- fileNode.setAttribute('version', EditorUi.VERSION);
- fileNode.setAttribute('editor', 'www.draw.io');
-
- var md = (file != null) ? file.getMode() : this.mode;
-
- if (md != null)
- {
- fileNode.setAttribute('type', md);
- }
-
- var xml = mxUtils.getXml(fileNode);
-
- // Writes the file as an embedded HTML file
- if (!forceSvg && !forceXml && (forceHtml || (file != null && /(\.html)$/i.test(file.getTitle()))))
- {
- xml = this.getHtml2(mxUtils.getXml(fileNode), graph, (file != null) ? file.getTitle() : null, editLink, redirect);
- }
- // Maps the XML data to the content attribute in the SVG node
- else if (forceSvg || (!forceXml && file != null && /(\.svg)$/i.test(file.getTitle())))
- {
- if (file != null && (file.getMode() == App.MODE_DEVICE || file.getMode() == App.MODE_BROWSER))
- {
- url = null;
- }
-
- xml = this.getEmbeddedSvg(xml, graph, url, null, embeddedCallback, ignoreSelection, redirect);
- }
-
- return xml;
- }
-};
-
-/**
- * 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.getXmlFileData = function(ignoreSelection, currentPage)
-{
- ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
- currentPage = (currentPage != null) ? currentPage : false;
-
- var node = this.editor.getGraphXml(ignoreSelection);
-
- if (ignoreSelection && this.fileNode != null && this.currentPage != null)
- {
- var data = this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(node)));
- mxUtils.setTextContent(this.currentPage.node, data);
- node = this.fileNode.cloneNode(false);
-
- if (currentPage)
- {
- node.appendChild(this.currentPage.node);
- }
- else
- {
- // Restores order of pages
- for (var i = 0; i < this.pages.length; i++)
- {
- var mapping = this.pages[i].mapping;
-
- // Updates XML of all pages for realtime
- if (this.currentPage != this.pages[i] && mapping != null && mapping.needsUpdate)
- {
- var enc = new mxCodec(mxUtils.createXmlDocument());
- var temp = enc.encode(mapping.graphModel);
-
- // Uses the graph state from the realtime model
- mapping.writeRealtimeToNode(temp);
-
- var data = this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(temp)));
- mxUtils.setTextContent(this.pages[i].node, data);
-
- // Marks the page as up-to-date
- mapping.needsUpdate = false;
- }
-
- node.appendChild(this.pages[i].node);
- }
- }
- }
-
- return node;
-};
-
-/**
- * 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.getFileData = function(forceXml, forceSvg, forceHtml, embeddedCallback, ignoreSelection, currentPage, node)
-{
- ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
- currentPage = (currentPage != null) ? currentPage : false;
-
- node = (node != null) ? node : this.getXmlFileData(ignoreSelection, currentPage);
- var graph = this.editor.graph;
- var file = this.getCurrentFile();
-
- // Exports SVG for first page while other page is visible by creating a graph
- // LATER: Add caching for the graph or SVG while not on first page
- if (this.pages != null && this.currentPage != this.pages[0] && (forceSvg ||
- (!forceXml && file != null && /(\.svg)$/i.test(file.getTitle()))))
- {
- graph = this.createTemporaryGraph(graph.getStylesheet());
- var graphGetGlobalVariable = graph.getGlobalVariable;
- var page = this.pages[0];
-
- graph.getGlobalVariable = function(name)
- {
- if (name == 'page')
- {
- return page.getName();
- }
- else if (name == 'pagenumber')
- {
- return 1;
- }
-
- return graphGetGlobalVariable.apply(this, arguments);
- };
-
- document.body.appendChild(graph.container);
- graph.model.setRoot(page.root);
- }
-
- var result = this.createFileData(node, graph, file, window.location.href,
- forceXml, forceSvg, forceHtml, embeddedCallback, ignoreSelection);
-
- // Removes temporary graph from DOM
- if (graph != this.editor.graph)
- {
- graph.container.parentNode.removeChild(graph.container);
- }
-
- return result;
-};
-
-/**
- * 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.createBackground = function()
{
var bg = this.createDiv('background');
@@ -1852,51 +1610,56 @@ App.prototype.createBackground = function()
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
-App.prototype.setMode = function(mode, remember)
+(function()
{
- this.mode = mode;
+ var editorUiSetMode = EditorUi.prototype.setMode;
- // Note: UseLocalStorage affects the file dialogs
- // and should not be modified if mode is undefined
- if (this.mode != null)
+ App.prototype.setMode = function(mode, remember)
{
- Editor.useLocalStorage = this.mode == App.MODE_BROWSER;
- }
-
- if (typeof(Storage) != 'undefined' && remember)
- {
- var expiry = new Date();
- expiry.setYear(expiry.getFullYear() + 1);
- document.cookie = 'MODE=' + mode + '; expires=' + expiry.toUTCString();
- }
-
- if (this.appIcon != null)
- {
- var file = this.getCurrentFile();
- var mode = (file != null) ? file.getMode() : null;
+ editorUiSetMode.apply(this, arguments);
- if (mode == App.MODE_GOOGLE)
+ // Note: UseLocalStorage affects the file dialogs
+ // and should not be modified if mode is undefined
+ if (this.mode != null)
{
- this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('googleDrive')]));
- this.appIcon.style.cursor = 'pointer';
+ Editor.useLocalStorage = this.mode == App.MODE_BROWSER;
}
- else if (mode == App.MODE_DROPBOX)
- {
- this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('dropbox')]));
- this.appIcon.style.cursor = 'pointer';
- }
- else if (mode == App.MODE_ONEDRIVE)
+
+ if (typeof(Storage) != 'undefined' && remember)
{
- this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('oneDrive')]));
- this.appIcon.style.cursor = 'pointer';
+ var expiry = new Date();
+ expiry.setYear(expiry.getFullYear() + 1);
+ document.cookie = 'MODE=' + mode + '; expires=' + expiry.toUTCString();
}
- else
+
+ if (this.appIcon != null)
{
- this.appIcon.removeAttribute('title');
- this.appIcon.style.cursor = 'default';
+ var file = this.getCurrentFile();
+ var mode = (file != null) ? file.getMode() : null;
+
+ if (mode == App.MODE_GOOGLE)
+ {
+ this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('googleDrive')]));
+ this.appIcon.style.cursor = 'pointer';
+ }
+ else if (mode == App.MODE_DROPBOX)
+ {
+ this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('dropbox')]));
+ this.appIcon.style.cursor = 'pointer';
+ }
+ else if (mode == App.MODE_ONEDRIVE)
+ {
+ this.appIcon.setAttribute('title', mxResources.get('openIt', [mxResources.get('oneDrive')]));
+ this.appIcon.style.cursor = 'pointer';
+ }
+ else
+ {
+ this.appIcon.removeAttribute('title');
+ this.appIcon.style.cursor = 'default';
+ }
}
- }
-};
+ };
+})();
/**
* Function: authorize
@@ -2916,22 +2679,6 @@ App.prototype.pickLibrary = function(mode)
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
-App.prototype.createLibraryDataFromImages = function(images)
-{
- var doc = mxUtils.createXmlDocument();
- var library = doc.createElement('mxlibrary');
- mxUtils.setTextContent(library, JSON.stringify(images));
- doc.appendChild(library);
-
- return mxUtils.getXml(doc);
-};
-
-/**
- * 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;
@@ -3501,48 +3248,6 @@ App.prototype.loadFile = function(id, sameWindow, file)
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
-App.prototype.loadLibrary = function(file)
-{
- var doc = mxUtils.parseXml(file.getData());
-
- if (doc.documentElement.nodeName == 'mxlibrary')
- {
- var images = JSON.parse(mxUtils.getTextContent(doc.documentElement));
- this.libraryLoaded(file, images);
- }
- else
- {
- throw {message: mxResources.get('notALibraryFile')};
- }
-};
-
-/**
- * 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.removeLibrarySidebar = function(id)
-{
- var elts = this.sidebar.palettes[id];
-
- if (elts != null)
- {
- for (var i = 0; i < elts.length; i++)
- {
- elts[i].parentNode.removeChild(elts[i]);
- }
-
- delete this.sidebar.palettes[id];
- }
-};
-
-/**
- * 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.getLibraryStorageHint = function(file)
{
var tip = '';
@@ -3577,766 +3282,6 @@ App.prototype.getLibraryStorageHint = function(file)
};
/**
- * 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.closeLibrary = function(file)
-{
- if (file != null)
- {
- this.removeLibrarySidebar(file.getHash());
-
- if (file.constructor != LocalLibrary)
- {
- mxSettings.removeCustomLibrary(file.getHash());
- }
-
- if (file.title == '.scratchpad')
- {
- this.scratchpad = null;
- }
- }
-};
-
-/**
- * Changes the position of the library in the sidebar
- */
-App.prototype.repositionLibrary = function(nextChild)
-{
- var c = this.sidebar.container;
- nextChild = (nextChild != null) ? nextChild : c.firstChild.nextSibling.nextSibling;
-
- var content = c.lastChild;
- var title = content.previousSibling;
-
- c.insertBefore(content, nextChild);
- c.insertBefore(title, content);
-}
-
-/**
- * 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.toggleScratchpad = function()
-{
- if (isLocalStorage || mxClient.IS_CHROMEAPP)
- {
- if (this.scratchpad == null)
- {
- this.getLocalData('.scratchpad', mxUtils.bind(this, function(xml)
- {
- if (xml == null)
- {
- xml = this.emptyLibraryXml;
- }
-
- this.loadLibrary(new StorageLibrary(this, xml, '.scratchpad'));
-
- }));
- }
- else
- {
- this.closeLibrary(this.scratchpad);
- }
- }
-};
-
-/**
- * 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.libraryLoaded = function(file, images)
-{
- if (file.constructor != LocalLibrary)
- {
- mxSettings.addCustomLibrary(file.getHash());
- }
-
- if (file.title == '.scratchpad')
- {
- this.scratchpad = file;
- }
-
- var elts = this.sidebar.palettes[file.getHash()];
- var nextSibling = (elts != null) ? elts[elts.length - 1].nextSibling : null;
-
- // Removes existing sidebar entry for this library
- this.removeLibrarySidebar(file.getHash());
- var dropTarget = null;
-
- var addImages = mxUtils.bind(this, function(imgs, content)
- {
- if (imgs.length == 0 && file.isEditable())
- {
- if (dropTarget == null)
- {
- dropTarget = document.createElement('div');
- mxUtils.setPrefixedStyle(dropTarget.style, 'borderRadius', '6px');
- dropTarget.style.border = '3px dotted lightGray';
- dropTarget.style.textAlign = 'center';
- dropTarget.style.padding = '8px';
- dropTarget.style.color = '#B3B3B3';
- mxUtils.write(dropTarget, mxResources.get('dragElementsHere'));
- }
-
- content.appendChild(dropTarget);
- }
- else
- {
- for (var i = 0; i < imgs.length; i++)
- {
- var img = imgs[i];
- var data = img.data;
-
- if (data != null)
- {
- data = this.convertDataUri(data);
- var s = 'shape=image;verticalLabelPosition=bottom;verticalAlign=top;';
-
- if (img.aspect == 'fixed')
- {
- s += 'aspect=fixed;'
- }
- else
- {
- s += 'imageAspect=0;'
- }
-
- content.appendChild(this.sidebar.createVertexTemplate(s + 'image=' +
- data, img.w, img.h, '', img.title || '', false, false, false));
- }
- else if (img.xml != null)
- {
- var cells = this.stringToCells(this.editor.graph.decompress(img.xml));
-
- if (cells.length > 0)
- {
- content.appendChild(this.sidebar.createVertexTemplateFromCells(
- cells, img.w, img.h, img.title || '', true, false, false));
- }
- }
- }
- }
- });
-
- // Adds new sidebar entry for this library
- var contentDiv = this.sidebar.addPalette(file.getHash(), file.getTitle(), true, mxUtils.bind(this, function(content)
- {
- addImages(images, content);
- }));
-
- this.repositionLibrary(nextSibling);
-
- // Adds tooltip for backend
- var title = contentDiv.parentNode.previousSibling;
- var tip = title.getAttribute('title');
-
- if (tip != null && tip.length > 0 && file.title != '.scratchpad')
- {
- title.setAttribute('title', this.getLibraryStorageHint(file) + '\n' + tip);
- }
-
- var buttons = document.createElement('div');
- buttons.style.position = 'absolute';
- buttons.style.right = '0px';
- buttons.style.top = '5px';
- title.style.position = 'relative';
-
- var btn = document.createElement('img');
- btn.setAttribute('src', Dialog.prototype.closeImage);
- btn.setAttribute('title', mxResources.get('close'));
- btn.setAttribute('align', 'top');
- btn.setAttribute('border', '0');
- btn.style.cursor = 'pointer';
- btn.style.marginRight = '8px';
- btn.style.marginTop = '3px';
- buttons.appendChild(btn);
-
- var saveBtn = null;
-
- mxEvent.addListener(btn, 'click', mxUtils.bind(this, function(evt)
- {
- // Workaround for close after any button click in IE8/quirks
- if (!mxEvent.isConsumed(evt))
- {
- var fn = mxUtils.bind(this, function()
- {
- this.closeLibrary(file);
- });
-
- if (saveBtn != null)
- {
- this.confirm(mxResources.get('allChangesLost'), fn);
- }
- else
- {
- fn();
- }
-
- mxEvent.consume(evt);
- }
- }));
-
- // Shows tooltip if mouse over background
- mxEvent.addListener(contentDiv, 'mousemove', mxUtils.bind(this, function(evt)
- {
- if (mxEvent.getSource(evt) == contentDiv)
- {
- contentDiv.setAttribute('title', mxResources.get('libraryTooltip'));
- }
- else
- {
- contentDiv.removeAttribute('title');
- }
- }));
-
- if (file.isEditable())
- {
- var graph = this.editor.graph;
-
- var editLibrary = mxUtils.bind(this, function(evt)
- {
- this.showLibraryDialog(file.getTitle(), contentDiv, images, file, file.getMode());
- mxEvent.consume(evt);
- });
-
- var saveLibrary = mxUtils.bind(this, function(evt)
- {
- if (file.constructor != LocalLibrary || file.isAutosave())
- {
- if (spinBtn != null && spinBtn.parentNode != null)
- {
- spinBtn.parentNode.removeChild(spinBtn);
- }
-
- spinBtn = btn.cloneNode(false);
- spinBtn.setAttribute('src', App.prototype.spinImage);
- spinBtn.setAttribute('title', mxResources.get('saving'));
- spinBtn.style.cursor = 'default';
- spinBtn.style.marginRight = '6px';
- spinBtn.style.marginTop = '2px';
- buttons.insertBefore(spinBtn, buttons.firstChild);
-
- this.saveLibrary(file.getTitle(), images, file, file.getMode(), true, true, function()
- {
- if (spinBtn != null && spinBtn.parentNode != null)
- {
- spinBtn.parentNode.removeChild(spinBtn);
- }
- });
- }
- else if (saveBtn == null)
- {
- saveBtn = btn.cloneNode(false);
- saveBtn.setAttribute('src', IMAGE_PATH + '/download.png');
- saveBtn.setAttribute('title', mxResources.get('save'));
- buttons.insertBefore(saveBtn, buttons.firstChild);
-
- mxEvent.addListener(saveBtn, 'click', mxUtils.bind(this, function(evt)
- {
- this.saveLibrary(file.getTitle(), images, file, file.getMode(), true, true);
- saveBtn.parentNode.removeChild(saveBtn);
- saveBtn = null;
-
- mxEvent.consume(evt);
- }));
- }
- });
-
- var addCells = mxUtils.bind(this, function(cells, bounds, evt, title)
- {
- cells = graph.cloneCells(graph.model.getTopmostCells(cells));
-
- // Translates cells to origin
- for (var i = 0; i < cells.length; i++)
- {
- var geo = graph.getCellGeometry(cells[i]);
-
- if (geo != null)
- {
- geo.translate(-bounds.x, -bounds.y);
- }
- }
-
- contentDiv.appendChild(this.sidebar.createVertexTemplateFromCells(
- cells, bounds.width, bounds.height, title || '', true, false, false));
-
- var xml = this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(cells)));
- var entry = {xml: xml, w: bounds.width, h: bounds.height};
-
- if (title != null)
- {
- entry.title = title;
- }
-
- images.push(entry);
- saveLibrary(evt);
-
- if (dropTarget != null && dropTarget.parentNode != null && images.length > 0)
- {
- dropTarget.parentNode.removeChild(dropTarget);
- dropTarget = null;
- }
- });
-
- var addSelection = mxUtils.bind(this, function(evt)
- {
- if (!graph.isSelectionEmpty())
- {
- var cells = graph.getSelectionCells();
- var bounds = graph.view.getBounds(cells);
-
- var s = graph.view.scale;
-
- bounds.x /= s;
- bounds.y /= s;
- bounds.width /= s;
- bounds.height /= s;
-
- bounds.x -= graph.view.translate.x;
- bounds.y -= graph.view.translate.y;
-
- addCells(cells, bounds);
- }
- else if (graph.getRubberband().isActive())
- {
- graph.getRubberband().execute(evt);
- graph.getRubberband().reset();
- }
- else
- {
- this.showError(mxResources.get('error'), mxResources.get('nothingIsSelected'), mxResources.get('ok'));
- }
-
- mxEvent.consume(evt);
- });
-
- // Defines inactive border state
- contentDiv.style.border = '3px solid transparent';
-
- // Adds drop handler from graph
- mxEvent.addGestureListeners(contentDiv, function(){}, mxUtils.bind(this, function(evt)
- {
- if (graph.isMouseDown && graph.panningManager != null && graph.graphHandler.shape != null)
- {
- graph.graphHandler.shape.node.style.visibility = 'hidden';
-
- if (dropTarget != null)
- {
- dropTarget.style.border = '3px dotted rgb(254, 137, 12)';
- }
- else
- {
- contentDiv.style.border = '3px dotted rgb(254, 137, 12)';
- }
-
- contentDiv.style.cursor = 'copy';
- graph.panningManager.stop();
- graph.autoScroll = false;
-
- if (graph.graphHandler.guide != null)
- {
- graph.graphHandler.guide.setVisible(false);
- }
-
- if (graph.graphHandler.hint != null)
- {
- graph.graphHandler.hint.style.visibility = 'hidden';
- }
-
- mxEvent.consume(evt);
- }
- }), mxUtils.bind(this, function(evt)
- {
- if (graph.isMouseDown && graph.panningManager != null && graph.graphHandler != null)
- {
- contentDiv.style.border = '3px solid transparent';
-
- if (dropTarget != null)
- {
- dropTarget.style.border = '3px dotted lightGray';
- }
-
- contentDiv.style.cursor = 'default';
- this.sidebar.showTooltips = true;
- graph.panningManager.stop();
- graph.graphHandler.reset();
- graph.isMouseDown = false;
- graph.autoScroll = true;
- addSelection(evt);
- mxEvent.consume(evt);
- }
- }));
-
- // Handles mouse leaving the library and restoring move
- mxEvent.addListener(contentDiv, 'mouseleave', mxUtils.bind(this, function(evt)
- {
- if (graph.isMouseDown && graph.graphHandler.shape != null)
- {
- graph.graphHandler.shape.node.style.visibility = 'visible';
- contentDiv.style.border = '3px solid transparent';
- contentDiv.style.cursor = '';
- graph.autoScroll = true;
-
- if (graph.graphHandler.guide != null)
- {
- graph.graphHandler.guide.setVisible(true);
- }
-
- if (graph.graphHandler.hint != null)
- {
- graph.graphHandler.hint.style.visibility = 'visible';
- }
-
- if (dropTarget != null)
- {
- dropTarget.style.border = '3px dotted lightGray';
- }
- }
- }));
-
- // Adds drop handler from filesystem
- if (Graph.fileSupport)
- {
- mxEvent.addListener(contentDiv, 'dragover', mxUtils.bind(this, function(evt)
- {
- if (dropTarget != null)
- {
- dropTarget.style.border = '3px dotted rgb(254, 137, 12)';
- }
- else
- {
- contentDiv.style.border = '3px dotted rgb(254, 137, 12)';
- }
-
- evt.dataTransfer.dropEffect = 'copy';
- contentDiv.style.cursor = 'copy';
- this.sidebar.hideTooltip();
- evt.stopPropagation();
- evt.preventDefault();
- }));
-
- mxEvent.addListener(contentDiv, 'drop', mxUtils.bind(this, function(evt)
- {
- contentDiv.style.border = '3px solid transparent';
- contentDiv.style.cursor = '';
-
- if (dropTarget != null)
- {
- dropTarget.style.border = '3px dotted lightGray';
- }
-
- if (evt.dataTransfer.files.length > 0)
- {
- this.importFiles(evt.dataTransfer.files, 0, 0, this.maxImageSize, mxUtils.bind(this, function(data, mimeType, x, y, w, h, img)
- {
- if (data != null && mimeType.substring(0, 6) == 'image/')
- {
- var style = 'shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image=' +
- this.convertDataUri(data);
- var cells = [new mxCell('', new mxGeometry(0, 0, w, h), style)];
- cells[0].vertex = true;
-
- addCells(cells, new mxRectangle(0, 0, w, h), evt, (mxEvent.isAltDown(evt)) ? null : img.substring(0, img.lastIndexOf('.')).replace(/_/g, ' '));
- }
- else
- {
- var done = false;
-
- if (data != null && mimeType == 'text/xml')
- {
- var doc = mxUtils.parseXml(data);
-
- if (doc.documentElement.nodeName == 'mxlibrary')
- {
- try
- {
- var temp = JSON.parse(mxUtils.getTextContent(doc.documentElement));
- addImages(temp, contentDiv);
- images = images.concat(temp);
- saveLibrary(evt);
- this.spinner.stop();
- done = true;
- }
- catch (e)
- {
- // ignore
- }
- }
- else if (doc.documentElement.nodeName == 'mxfile')
- {
- try
- {
- var temp = mxUtils.getTextContent(doc.documentElement.getElementsByTagName('diagram')[0]);
- var cells = this.stringToCells(this.editor.graph.decompress(temp));
- addCells(cells, new mxRectangle(0, 0, w, h), evt);
- done = true;
- }
- catch (e)
- {
- // ignore
- }
- }
- }
-
- if (!done)
- {
- this.spinner.stop();
- this.handleError({message: mxResources.get('errorLoadingFile')})
- }
- }
-
- if (dropTarget != null && dropTarget.parentNode != null && images.length > 0)
- {
- dropTarget.parentNode.removeChild(dropTarget);
- dropTarget = null;
- }
- }));
- }
-
- evt.stopPropagation();
- evt.preventDefault();
- }));
-
- mxEvent.addListener(contentDiv, 'dragleave', function(evt)
- {
- if (dropTarget != null)
- {
- dropTarget.style.border = '3px dotted lightGray';
- }
- else
- {
- contentDiv.style.border = '3px solid transparent';
- contentDiv.style.cursor = '';
- }
-
- evt.stopPropagation();
- evt.preventDefault();
- });
- }
-
- btn = btn.cloneNode(false);
- btn.setAttribute('src', IMAGE_PATH + '/edit.gif');
- btn.setAttribute('title', mxResources.get('edit'));
- buttons.insertBefore(btn, buttons.firstChild);
-
- mxEvent.addListener(btn, 'click', editLibrary);
- mxEvent.addListener(contentDiv, 'dblclick', function(evt)
- {
- if (mxEvent.getSource(evt) == contentDiv)
- {
- editLibrary(evt);
- }
- });
-
- btn = btn.cloneNode(false);
- btn.setAttribute('src', App.prototype.plusImage);
- btn.setAttribute('title', mxResources.get('add'));
- buttons.insertBefore(btn, buttons.firstChild);
-
- if (!this.isOffline())
- {
- var link = document.createElement('span');
- link.setAttribute('title', mxResources.get('help'));
- link.style.cssText = 'color:gray;text-decoration:none;margin-right:8px;';
- mxUtils.write(link, '?');
-
- mxEvent.addGestureListeners(link, mxUtils.bind(this, function(evt)
- {
- window.open('https://support.draw.io/questions/10420280');
- mxEvent.consume(evt);
- }));
-
- buttons.insertBefore(link, buttons.firstChild);
- }
-
- var spinBtn = null;
-
- mxEvent.addListener(btn, 'click', addSelection);
- }
-
- title.appendChild(buttons);
-};
-
-/**
- * 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.fileLoaded = function(file)
-{
- this.hideDialog();
- var oldFile = this.getCurrentFile();
- this.setCurrentFile(null);
-
- if (oldFile != null)
- {
- oldFile.removeListener(this.descriptorChangedListener);
- oldFile.close();
- }
-
- this.editor.graph.model.clear();
- this.editor.undoManager.clear();
-
- var noFile = mxUtils.bind(this, function()
- {
- this.diagramContainer.style.visibility = 'hidden';
- this.formatContainer.style.visibility = 'hidden';
- this.hsplit.style.display = 'none';
- this.sidebarContainer.style.display = 'none';
- this.sidebarFooterContainer.style.display = 'none';
- this.editor.graph.setEnabled(false);
-
- // Keeps initial title if no file existed before
- if (oldFile != null)
- {
- this.updateDocumentTitle();
- }
-
- // File might have been loaded halfway
- this.editor.graph.model.clear();
- this.editor.undoManager.clear();
-
- // Avoids empty hash with no value
- if (window.location.hash != null && window.location.hash.length > 0)
- {
- window.location.hash = '';
- }
-
- if (this.fname != null)
- {
- this.fnameWrapper.style.display = 'none';
- this.fname.innerHTML = '';
- this.fname.setAttribute('title', mxResources.get('rename'));
- }
-
- this.updateUi();
- this.showSplash();
- });
-
- if (file != null)
- {
- try
- {
- // Order is significant, current file needed for correct
- // file format for initial save after starting realtime
- this.setCurrentFile(file);
- file.addListener('descriptorChanged', this.descriptorChangedListener);
- file.addListener('contentChanged', this.descriptorChangedListener);
- this.setMode(file.getMode());
- this.descriptorChanged();
- file.open();
-
- this.diagramContainer.style.visibility = '';
- this.formatContainer.style.visibility = '';
- this.hsplit.style.display = '';
- this.sidebarContainer.style.display = '';
- this.sidebarFooterContainer.style.display = '';
- this.editor.undoManager.clear();
- this.updateUi();
-
- // Realtime files have a valid status message
- if (file.realtime == null)
- {
- if (!file.isEditable())
- {
- this.editor.setStatus(mxResources.get('readOnly'));
- }
- else
- {
- this.editor.setStatus('');
- }
- }
-
- if (!this.editor.chromeless)
- {
- this.editor.graph.selectUnlockedLayer();
- this.showLayersDialog();
- this.restoreLibraries();
- }
- else if (this.editor.graph.lightbox)
- {
- this.lightboxFit();
- }
-
- if (this.chromelessResize)
- {
- this.chromelessResize();
- }
-
- this.editor.fireEvent(new mxEventObject('fileLoaded'));
-
-// if (this.enableLogging)
-// {
-// try
-// {
-// if (!this.isOffline())
-// {
-// var img = new Image();
-// var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
-// img.src = logDomain + '/log?msg=storageMode:' + encodeURIComponent(file.getMode()) +
-// '&v=' + encodeURIComponent(EditorUi.VERSION);
-// }
-// }
-// catch (e)
-// {
-// // ignore
-// }
-// }
-
- if (this.mode == file.getMode() && file.getMode() != App.MODE_DEVICE)
- {
- try
- {
- this.addRecent({id: file.getHash(), title: file.getTitle(), mode: file.getMode()});
- }
- catch (e)
- {
- // ignore
- }
- }
- }
- catch (e)
- {
- // Makes sure the file does not save the invalid UI model and overwrites anything important
- if (window.console != null)
- {
- console.log('error in fileLoaded:', file, e);
- }
-
- // Asynchronous handling of errors
- this.handleError(e, mxResources.get('errorLoadingFile'), mxUtils.bind(this, function()
- {
- // Removes URL parameter and reloads the page
- if (urlParams['url'] != null && this.spinner.spin(document.body, mxResources.get('reconnecting')))
- {
- window.location.search = this.getSearch(['url']);
- }
- else if (oldFile != null)
- {
- this.fileLoaded(oldFile);
- }
- else
- {
- noFile();
- }
- }));
- }
- }
- else
- {
- noFile();
- }
-};
-
-/**
* Updates action states depending on the selection.
*/
App.prototype.restoreLibraries = function()
@@ -4488,94 +3433,6 @@ App.prototype.restoreLibraries = function()
};
/**
- * Updates action and menu states depending on the file.
- */
-App.prototype.updateUi = function()
-{
- this.updateButtonContainer();
- this.updateActionStates();
-
- // Action states that only need update for new files
- var file = this.getCurrentFile();
- var active = file != null || urlParams['embed'] == '1';
- this.menus.get('viewPanels').setEnabled(active);
- this.menus.get('viewZoom').setEnabled(active);
-
- var restricted = urlParams['embed'] != '1' && (file == null || file.isRestricted());
- this.actions.get('makeCopy').setEnabled(!restricted);
- this.actions.get('print').setEnabled(!restricted);
- this.menus.get('exportAs').setEnabled(!restricted);
- this.menus.get('embed').setEnabled(!restricted);
-
- // Disables actions in the toolbar
- var editable = (urlParams['embed'] == '1') || (file != null && file.isEditable());
- this.actions.get('image').setEnabled(active);
- this.actions.get('zoomIn').setEnabled(active);
- this.actions.get('zoomOut').setEnabled(active);
- this.actions.get('resetView').setEnabled(active);
-
- // Disables menus
- this.menus.get('edit').setEnabled(active);
- this.menus.get('view').setEnabled(active);
- this.menus.get('importFrom').setEnabled(editable);
- this.menus.get('arrange').setEnabled(editable);
-
- // Disables connection drop downs in toolbar
- if (this.toolbar != null)
- {
- if (this.toolbar.edgeShapeMenu != null)
- {
- this.toolbar.edgeShapeMenu.setEnabled(editable);
- }
-
- if (this.toolbar.edgeStyleMenu != null)
- {
- this.toolbar.edgeStyleMenu.setEnabled(editable);
- }
- }
-
- if (this.isOfflineApp())
- {
- // In FF, IE and Safari (desktop) the cache status never changes
- if ((mxClient.IS_GC || (mxClient.IS_IOS && mxClient.IS_SF)) && applicationCache != null)
- {
- var appCache = applicationCache;
-
- if (this.offlineStatus == null)
- {
- this.offlineStatus = document.createElement('div');
- this.offlineStatus.className = 'geItem';
- this.offlineStatus.style.position = 'absolute';
- this.offlineStatus.style.fontSize = '8pt';
- this.offlineStatus.style.top = '2px';
- this.offlineStatus.style.right = '12px';
- this.offlineStatus.style.color = '#666';
- this.offlineStatus.style.margin = '4px';
- this.offlineStatus.style.padding = '2px';
- this.offlineStatus.style.verticalAlign = 'middle';
- this.offlineStatus.innerHTML = '';
-
- this.menubarContainer.appendChild(this.offlineStatus);
-
- // Events are not working, use polling instead (10 secs interval)
- var thread = window.setTimeout(mxUtils.bind(this, function()
- {
- if (appCache.status == appCache.IDLE)
- {
- this.offlineStatus.innerHTML = '[' + '<img title="Cached" border="0" src="' + IMAGE_PATH + '/checkmark.gif"/>]';
- window.clearTimeout(thread);
- }
- }), 5000);
- }
- }
- }
- else
- {
- this.updateUserElement();
- }
-};
-
-/**
*
*/
App.prototype.exportImage = function(scale, transparentBackground, ignoreSelection, addShadow, editable)
@@ -5213,148 +4070,6 @@ App.prototype.saveLocalFile = function(data, filename, mimeType, base64Encoded)
};
/**
- *
- */
-App.prototype.getHtml = function(node, graph, title, editLink, redirect, ignoreSelection)
-{
- ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
- var bg = null;
- var js = 'https://www.draw.io/js/embed-static.min.js';
-
- // LATER: Merge common code with EmbedDialog
- if (graph != null)
- {
- var bounds = (ignoreSelection) ? graph.getGraphBounds() : graph.getBoundingBox(graph.getSelectionCells());
- var scale = graph.view.scale;
- var x0 = Math.floor(bounds.x / scale - graph.view.translate.x);
- var y0 = Math.floor(bounds.y / scale - graph.view.translate.y);
- bg = graph.background;
-
- // Embed script only used if no redirect
- if (redirect == null)
- {
- var s = this.getBasenames().join(';');
-
- if (s.length > 0)
- {
- js = 'https://www.draw.io/embed.js?s=' + s;
- }
- }
-
- // Adds embed attributes
- node.setAttribute('x0', x0);
- node.setAttribute('y0', y0);
- }
-
- if (node != null)
- {
- node.setAttribute('pan', '1');
- node.setAttribute('zoom', '1');
- node.setAttribute('resize', '0');
- node.setAttribute('fit', '0');
- node.setAttribute('border', '20');
-
- // Hidden attributes
- node.setAttribute('links', '1');
-
- if (editLink != null)
- {
- node.setAttribute('edit', editLink);
- }
- }
-
- // Makes XHTML compatible
- if (redirect != null)
- {
- redirect = redirect.replace(/&/g, '&amp;');
- }
-
- // Removes control chars in input for correct roundtrip check
- var text = (node != null) ? this.editor.graph.zapGremlins(mxUtils.getXml(node)) : '';
-
- // Double compression for mxfile not fixed since it may cause imcompatibilites with
- // embed clients that rely on this format. HTML files and export use getHtml2.
- var data = this.editor.graph.compress(text);
-
- // Fallback to URI encoded XML for invalid compression
- if (this.editor.graph.decompress(data) != text)
- {
- data = encodeURIComponent(text);
- }
-
- var style = 'position:relative;overflow:auto;width:100%;';
-
- return ((redirect == null) ? '<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->\n' : '') +
- '<!DOCTYPE html>\n<html' + ((redirect != null) ? ' xmlns="http://www.w3.org/1999/xhtml">' : '>') +
- '\n<head>\n' + ((redirect == null) ? ((title != null) ? '<title>' + mxUtils.htmlEntities(title) +
- '</title>\n' : '') : '<title>Draw.io Diagram</title>\n') +
- ((redirect != null) ? '<meta http-equiv="refresh" content="0;URL=\'' + redirect + '\'"/>\n' : '') +
- '</head>\n<body' +
- (((redirect == null && bg != null && bg != mxConstants.NONE) ? ' style="background-color:' + bg + ';">' : '>')) +
- '\n<div class="mxgraph" style="' + style + '">\n' +
- '<div style="width:1px;height:1px;overflow:hidden;">' + data + '</div>\n</div>\n' +
- ((redirect == null) ? '<script type="text/javascript" src="' + js + '"></script>' :
- '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" ' +
- 'href="' + redirect + '" target="_blank"><img border="0" ' +
- 'src="https://www.draw.io/images/drawlogo128.png"/></a>') +
- '\n</body>\n</html>\n';
-};
-
-/**
- * Same as above but using the new embed code.
- */
-App.prototype.getHtml2 = function(xml, graph, title, editLink, redirect)
-{
- var bg = null;
- var js = 'https://www.draw.io/js/viewer.min.js';
- var s = '';
-
- // LATER: Merge common code with EmbedDialog
- if (graph != null)
- {
- // Embed script only used if no redirect
- if (redirect == null)
- {
- var s = this.getBasenames().join(';');
-
- if (s.length > 0)
- {
- js = 'https://www.draw.io/embed2.js?s=' + s;
- }
- }
- }
-
- // Makes XHTML compatible
- if (redirect != null)
- {
- redirect = redirect.replace(/&/g, '&amp;');
- }
-
- var data = {highlight: '#0000ff', nav: this.editor.graph.foldingEnabled, resize: true,
- xml: this.editor.graph.zapGremlins(xml), toolbar: 'pages zoom layers lightbox'};
-
- if (this.pages != null && this.currentPage != null)
- {
- data.page = mxUtils.indexOf(this.pages, this.currentPage);
- }
-
- var style = 'max-width:100%;border:1px solid transparent;';
-
- return ((redirect == null) ? '<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->\n' : '') +
- '<!DOCTYPE html>\n<html' + ((redirect != null) ? ' xmlns="http://www.w3.org/1999/xhtml">' : '>') +
- '\n<head>\n' + ((redirect == null) ? ((title != null) ? '<title>' + mxUtils.htmlEntities(title) +
- '</title>\n' : '') : '<title>Draw.io Diagram</title>\n') +
- ((redirect != null) ? '<meta http-equiv="refresh" content="0;URL=\'' + redirect + '\'"/>\n' : '') +
- '<meta charset="utf-8"/>\n</head>\n<body>' +
- '\n<div class="mxgraph" style="' + style + '" data-mxgraph="' + mxUtils.htmlEntities(JSON.stringify(data)) + '"></div>\n' +
- ((redirect == null) ? '<script type="text/javascript" src="' + js + '"></script>' :
- '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" ' +
- 'href="' + redirect + '" target="_blank"><img border="0" ' +
- 'src="https://www.draw.io/images/drawlogo128.png"/></a>') +
- '\n</body>\n</html>\n';
-};
-
-/**
* Translates this point by the given vector.
*
* @param {number} dx X-coordinate of the translation.
@@ -5385,152 +4100,6 @@ App.prototype.saveData = function(filename, format, data, mime)
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
-App.prototype.downloadFile = function(format, nonCompressed, addShadow, ignoreSelection, currentPage)
-{
- try
- {
- var file = this.getCurrentFile();
- ignoreSelection = (ignoreSelection != null) ? ignoreSelection : this.editor.graph.isSelectionEmpty();
- // LATER: Double URI encoding for needed for newlines in simulate (truncates body otherwise).
- var basename = (file != null && file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
-
- if (/(\.xml)$/i.test(basename) || /(\.html)$/i.test(basename) || /(\.svg)$/i.test(basename))
- {
- basename = basename.substring(0, basename.lastIndexOf('.'));
- }
-
- var filename = basename + '.' + format;
-
- if (format == 'xml')
- {
- var data = '<?xml version="1.0" encoding="UTF-8"?>\n' +
- ((nonCompressed) ? mxUtils.getXml(this.editor.getGraphXml(ignoreSelection)) :
- this.getFileData(true, null, null, null, ignoreSelection, currentPage));
-
- this.saveData(filename, format, data, 'text/xml');
- }
- else if (format == 'html')
- {
- var data = this.getHtml2(this.getFileData(true), this.editor.graph, basename);
- this.saveData(filename, format, data, 'text/html');
- }
- else if ((format == 'svg' || format == 'xmlsvg') && this.spinner.spin(document.body, mxResources.get('export')))
- {
- var svg = null;
-
- var saveSvg = mxUtils.bind(this, function(data)
- {
- if (data.length <= MAX_REQUEST_SIZE)
- {
- this.saveData(filename, 'svg', data, 'image/svg+xml');
- }
- else
- {
- this.handleError({message: mxResources.get('drawingTooLarge')}, mxResources.get('error'), mxUtils.bind(this, function()
- {
- mxUtils.popup(svg);
- }));
- }
- });
-
- if (format == 'svg')
- {
- var bg = this.editor.graph.background;
-
- if (bg == mxConstants.NONE)
- {
- bg = null;
- }
-
- // Sets or disables alternate text for foreignObjects. Disabling is needed
- // because PhantomJS seems to ignore switch statements and paint all text.
- var svgRoot = this.editor.graph.getSvg(bg, null, null, false, null, ignoreSelection);
-
- if (addShadow)
- {
- this.editor.addSvgShadow(svgRoot);
- }
-
- // Embeds the images in the SVG output (async)
- this.convertImages(svgRoot, mxUtils.bind(this, mxUtils.bind(this, function(svgRoot2)
- {
- this.spinner.stop();
-
- saveSvg('<?xml version="1.0" encoding="UTF-8"?>\n' +
- '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n' +
- mxUtils.getXml(svgRoot2));
- })));
- }
- else
- {
- filename = basename + '.svg';
- svg = this.getFileData(false, true, null, mxUtils.bind(this, function(svg)
- {
- this.spinner.stop();
- saveSvg(svg);
- }), ignoreSelection);
- }
- }
- else
- {
- var bounds = this.editor.graph.getGraphBounds();
-
- // Exports only current page for PDF since it does not contain file data, but for
- // the other formats with XML included we need to send the complete data and use
- // the from/to URL parameters to specify the page to be exported.
- var data = this.getFileData(true, null, null, null, ignoreSelection, format != 'xmlpng');
- var range = '';
-
- if (bounds.width * bounds.height <= MAX_AREA && data.length <= MAX_REQUEST_SIZE)
- {
- var embed = '0';
-
- if (format == 'xmlpng')
- {
- embed = '1';
- format = 'png';
- filename = basename + '.' + format;
-
- // Finds the current page number
- if (this.pages != null && this.currentPage != null)
- {
- for (var i = 0; i < this.pages.length; i++)
- {
- if (this.pages[i] == this.currentPage)
- {
- range = '&from=' + i;
- break;
- }
- }
- }
- }
-
- this.saveRequest(data, filename, format, function(newTitle, base64)
- {
- return new mxXmlRequest(EXPORT_URL, 'format=' + format + range +
- '&base64=' + base64 + '&embedXml=' + embed + '&xml=' +
- encodeURIComponent(data) + ((newTitle != null) ?
- '&filename=' + encodeURIComponent(newTitle) : ''));
- });
- }
- else
- {
- this.handleError({message: mxResources.get('drawingTooLarge')}, mxResources.get('error'));
- }
- }
- }
- catch (e)
- {
- this.handleError(e);
- }
-};
-
-/**
- * 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.formatFileSize = function(size)
{
var units = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB'];
@@ -5592,135 +4161,6 @@ App.prototype.descriptorChanged = function()
* @param {number} dx X-coordinate of the translation.
* @param {number} dy Y-coordinate of the translation.
*/
-App.prototype.handleError = function(resp, title, fn)
-{
- var resume = this.spinner.pause();
- var e = (resp != null && resp.error != null) ? resp.error : resp;
-
- if (e != null || title != null)
- {
- var msg = mxResources.get('unknownError');
- var btn = mxResources.get('ok');
- var retry = null;
- title = (title != null) ? title : mxResources.get('error');
-
- if (e != null)
- {
- if (typeof(gapi) != 'undefined' && typeof(gapi.drive) != 'undefined' && typeof(gapi.drive.realtime) != 'undefined' &&
- e.type == gapi.drive.realtime.ErrorType.FORBIDDEN)
- {
- msg = mxResources.get('forbidden');
- }
- else if (e.code == 404 || e.status == 404 || (typeof(gapi) != 'undefined' && typeof(gapi.drive) != 'undefined' &&
- typeof(gapi.drive.realtime) != 'undefined' && e.type == gapi.drive.realtime.ErrorType.NOT_FOUND))
- {
- msg = mxResources.get('fileNotFoundOrDenied');
- var id = window.location.hash;
-
- if (id != null && id.substring(0, 2) == '#G')
- {
- id = id.substring(2);
- msg += ' <a href="https://drive.google.com/open?id=' + id + '" target="_blank">' +
- mxResources.get('tryOpeningViaThisPage') + '</a>';
- }
- }
- else if (e.code == App.ERROR_TIMEOUT)
- {
- msg = mxResources.get('timeout');
-
- if (e.retry != null)
- {
- btn = mxResources.get('cancel');
- retry = function()
- {
- resume();
- e.retry();
- };
- }
- }
- else if (e.code == App.ERROR_BUSY)
- {
- msg = mxResources.get('busy');
- }
- else if (e.message != null)
- {
- msg = e.message;
- }
- else if (e.response != null && e.response.error != null)
- {
- msg = e.response.error;
- }
- }
-
- this.showError(title, msg, btn, fn, retry);
- }
- else if (fn != null)
- {
- fn();
- }
-};
-
-/**
- * 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.showError = function(title, msg, btn, fn, retry, btn2, fn2)
-{
- var dlg = new ErrorDialog(this, title, msg, btn, fn, retry, btn2, fn2);
- this.showDialog(dlg.container, 340, 150, true, false);
- dlg.init();
-};
-
-/**
- * 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.alert = function(msg, fn)
-{
- var dlg = new ErrorDialog(this, null, msg, mxResources.get('ok'), fn);
- this.showDialog(dlg.container, 340, 100, true, false);
- dlg.init();
-};
-
-/**
- * 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.confirm = function(msg, okFn, cancelFn)
-{
- var resume = (this.spinner.pause != null) ? this.spinner.pause() : function() {};
-
- this.showDialog(new ConfirmDialog(this, msg, function()
- {
- resume();
-
- if (okFn != null)
- {
- okFn();
- }
- }, function()
- {
- resume();
-
- if (cancelFn != null)
- {
- cancelFn();
- }
- }).container, 340, 90, true, false);
-};
-
-/**
- * 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.toggleChat = function()
{
var file = this.getCurrentFile();
diff --git a/war/js/diagramly/Devel.js b/war/js/diagramly/Devel.js
index 5b24ccc3..0ede8326 100644
--- a/war/js/diagramly/Devel.js
+++ b/war/js/diagramly/Devel.js
@@ -77,6 +77,7 @@ mxscript(drawDevUrl + 'js/diagramly/OneDriveClient.js');
mxscript(drawDevUrl + 'js/diagramly/OneDriveFile.js');
mxscript(drawDevUrl + 'js/diagramly/OneDriveLibrary.js');
mxscript(drawDevUrl + 'js/diagramly/Dialogs.js');
+mxscript(drawDevUrl + 'js/diagramly/Editor.js');
mxscript(drawDevUrl + 'js/diagramly/EditorUi.js');
mxscript(drawDevUrl + 'js/diagramly/Settings.js');
mxscript(drawDevUrl + 'js/diagramly/App.js');
@@ -87,5 +88,3 @@ mxscript(drawDevUrl + 'js/diagramly/Pages.js');
mxscript(drawDevUrl + 'js/diagramly/util/mxJsCanvas.js');
mxscript(drawDevUrl + 'js/diagramly/util/mxAsyncCanvas.js');
-
-mxscript(drawDevUrl + 'js/diagramly/vsdx/mxVsdxModel.js');
diff --git a/war/js/diagramly/Dialogs.js b/war/js/diagramly/Dialogs.js
index 0ebbcdde..13513947 100644
--- a/war/js/diagramly/Dialogs.js
+++ b/war/js/diagramly/Dialogs.js
@@ -2450,6 +2450,7 @@ var CreateGraphDialog = function(editorUi, title, type)
var pt = editorUi.editor.graph.getFreeInsertPoint();
var cells = editorUi.editor.graph.importCells(
graph.getModel().getChildren(graph.getDefaultParent()), pt.x, pt.y);
+ var view = editorUi.editor.graph.view;
var temp = view.getBounds(cells);
temp.x -= view.translate.x;
temp.y -= view.translate.y;
diff --git a/war/js/diagramly/Editor.js b/war/js/diagramly/Editor.js
new file mode 100644
index 00000000..0abcdf11
--- /dev/null
+++ b/war/js/diagramly/Editor.js
@@ -0,0 +1,1041 @@
+/**
+ * Copyright (c) 2006-2016, JGraph Ltd
+ * Copyright (c) 2006-2016, Gaudenz Alder
+ */
+(function()
+{
+ /**
+ * Specifies the app name. Default is document.title.
+ */
+ Editor.prototype.appName = 'draw.io';
+
+ /**
+ * Used in the GraphViewer lightbox.
+ */
+ Editor.closeImage = (mxClient.IS_SVG) ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC' : IMAGE_PATH + '/delete.png';
+
+ /**
+ * Executes the first step for connecting to Google Drive.
+ */
+ Editor.prototype.editButtonLink = (urlParams['edit'] != null) ? decodeURIComponent(urlParams['edit']) : null;
+
+ /**
+ *
+ */
+ if (urlParams['dev'] == '1')
+ {
+ Editor.prototype.editBlankUrl = Editor.prototype.editBlankUrl + '&dev=1';
+ Editor.prototype.editBlankFallbackUrl = Editor.prototype.editBlankFallbackUrl + '&dev=1';
+ }
+
+ /**
+ * Adds support for old stylesheets and compressed files
+ */
+ var editorSetGraphXml = Editor.prototype.setGraphXml;
+ Editor.prototype.setGraphXml = function(node)
+ {
+ node = (node != null && node.nodeName != 'mxlibrary') ? this.extractGraphModel(node) : null;
+
+ if (node != null)
+ {
+ // Checks input for parser errors
+ var errs = node.getElementsByTagName('parsererror');
+
+ if (errs != null && errs.length > 0)
+ {
+ var elt = errs[0];
+ var divs = elt.getElementsByTagName('div');
+
+ if (divs != null && divs.length > 0)
+ {
+ elt = divs[0];
+ }
+
+ throw {message: mxUtils.getTextContent(elt)};
+ }
+ else if (node.nodeName == 'mxGraphModel')
+ {
+ var style = node.getAttribute('style') || 'default-style2';
+
+ // Decodes the style if required
+ if (urlParams['embed'] != '1' && (style == null || style == ''))
+ {
+ var node2 = (this.graph.themes != null) ?
+ this.graph.themes['default-old'] :
+ mxUtils.load(STYLE_PATH + '/default-old.xml').getDocumentElement();
+
+ if (node2 != null)
+ {
+ var dec2 = new mxCodec(node2.ownerDocument);
+ dec2.decode(node2, this.graph.getStylesheet());
+ }
+ }
+ else if (style != this.graph.currentStyle)
+ {
+ var node2 = (this.graph.themes != null) ?
+ this.graph.themes[style] :
+ mxUtils.load(STYLE_PATH + '/' + style + '.xml').getDocumentElement()
+
+ if (node2 != null)
+ {
+ var dec2 = new mxCodec(node2.ownerDocument);
+ dec2.decode(node2, this.graph.getStylesheet());
+ }
+ }
+
+ this.graph.currentStyle = style;
+ this.graph.mathEnabled = (urlParams['math'] == '1' || node.getAttribute('math') == '1');
+
+ var bgImg = node.getAttribute('backgroundImage');
+
+ if (bgImg != null)
+ {
+ bgImg = JSON.parse(bgImg);
+ this.graph.setBackgroundImage(new mxImage(bgImg.src, bgImg.width, bgImg.height));
+ }
+ else
+ {
+ this.graph.setBackgroundImage(null);
+ }
+
+ mxClient.NO_FO = (this.graph.mathEnabled) ? true : this.originalNoForeignObject;
+ this.graph.setShadowVisible(node.getAttribute('shadow') == '1', false);
+ }
+
+ // Calls updateGraphComponents
+ editorSetGraphXml.apply(this, arguments);
+ }
+ else
+ {
+ throw {
+ message: mxResources.get('notADiagramFile') || 'Invalid data',
+ toString: function() { return this.message; }
+ };
+ }
+ };
+
+ /**
+ * Adds persistent style to file
+ */
+ var editorGetGraphXml = Editor.prototype.getGraphXml;
+ Editor.prototype.getGraphXml = function(ignoreSelection)
+ {
+ ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
+ var node = editorGetGraphXml.apply(this, arguments);
+
+ // Adds the current style
+ if (this.graph.currentStyle != null && this.graph.currentStyle != 'default-style2')
+ {
+ node.setAttribute('style', this.graph.currentStyle);
+ }
+
+ // Adds the background image
+ if (this.graph.backgroundImage != null)
+ {
+ node.setAttribute('backgroundImage', JSON.stringify(this.graph.backgroundImage));
+ }
+
+ node.setAttribute('math', (this.graph.mathEnabled) ? '1' : '0');
+ node.setAttribute('shadow', (this.graph.shadowVisible) ? '1' : '0');
+
+ return node;
+ };
+
+ /**
+ * Overrides reset graph.
+ */
+ var editorResetGraph = Editor.prototype.resetGraph;
+ Editor.prototype.resetGraph = function()
+ {
+ this.graph.mathEnabled = (urlParams['math'] == '1');
+ this.graph.view.x0 = null;
+ this.graph.view.y0 = null;
+ mxClient.NO_FO = (this.graph.mathEnabled) ? true : this.originalNoForeignObject;
+ editorResetGraph.apply(this, arguments);
+ };
+
+ /**
+ * Math support.
+ */
+ Editor.prototype.originalNoForeignObject = mxClient.NO_FO;
+
+ var editorUpdateGraphComponents = Editor.prototype.updateGraphComponents;
+ Editor.prototype.updateGraphComponents = function()
+ {
+ editorUpdateGraphComponents.apply(this, arguments);
+ mxClient.NO_FO = (this.graph.mathEnabled && Editor.MathJaxRender != null) ? true : this.originalNoForeignObject;
+ };
+
+ /**
+ * Initializes math typesetting and loads respective code.
+ */
+ Editor.initMath = function(src, config)
+ {
+ src = (src != null) ? src : 'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_HTMLorMML';
+ Editor.mathJaxQueue = [];
+
+ Editor.doMathJaxRender = function(container)
+ {
+ MathJax.Hub.Queue(['Typeset', MathJax.Hub, container]);
+ };
+
+ // Disables global typesetting and messages on startup, adds queue for
+ // asynchronous rendering while MathJax is loading
+ window.MathJax =
+ {
+ skipStartupTypeset: true,
+ showMathMenu: false,
+ messageStyle: 'none',
+ AuthorInit: function ()
+ {
+ // Specification recommends using SVG over HTML-CSS if browser is known
+ // Check if too inconsistent with image export and print output
+ MathJax.Hub.Config(config || {
+ jax: ['input/TeX', 'input/MathML', 'input/AsciiMath', 'output/HTML-CSS'],
+ extensions: ['tex2jax.js', 'mml2jax.js', 'asciimath2jax.js'],
+ TeX: {
+ extensions: ['AMSmath.js', 'AMSsymbols.js', 'noErrors.js', 'noUndefined.js']
+ },
+ // Ignores math in in-place editor
+ tex2jax: {
+ ignoreClass: 'mxCellEditor'
+ },
+ asciimath2jax: {
+ ignoreClass: 'mxCellEditor'
+ }
+ });
+ MathJax.Hub.Register.StartupHook('Begin', function()
+ {
+ for (var i = 0; i < Editor.mathJaxQueue.length; i++)
+ {
+ Editor.doMathJaxRender(Editor.mathJaxQueue[i]);
+ }
+ });
+ }
+ };
+
+ // Adds global enqueue method for async rendering
+ Editor.MathJaxRender = function(container)
+ {
+ // Initial rendering when MathJax finished loading
+ if (typeof(MathJax) !== 'undefined' && typeof(MathJax.Hub) !== 'undefined')
+ {
+ Editor.doMathJaxRender(container);
+ }
+ else
+ {
+ Editor.mathJaxQueue.push(container);
+ }
+ };
+
+ // Adds global clear queue method
+ Editor.MathJaxClear = function()
+ {
+ Editor.mathJaxQueue = [];
+ };
+
+ // Updates typeset after changes
+ var editorInit = Editor.prototype.init;
+
+ Editor.prototype.init = function()
+ {
+ this.graph.addListener(mxEvent.SIZE, mxUtils.bind(this, function(sender, evt)
+ {
+ if (this.graph.mathEnabled)
+ {
+ Editor.MathJaxRender(this.graph.container);
+ }
+ }));
+ };
+
+ var tags = document.getElementsByTagName('script');
+
+ if (tags != null && tags.length > 0)
+ {
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = src;
+ tags[0].parentNode.appendChild(script);
+ }
+ };
+
+ /**
+ * Adds a shadow filter to the given svg root.
+ */
+ Editor.prototype.addSvgShadow = function(svgRoot, group, createOnly)
+ {
+ createOnly = (createOnly != null) ? createOnly : false;
+
+ var svgDoc = svgRoot.ownerDocument;
+
+ var filter = (svgDoc.createElementNS != null) ?
+ svgDoc.createElementNS(mxConstants.NS_SVG, 'filter') : svgDoc.createElement('filter');
+ filter.setAttribute('id', this.graph.shadowId);
+
+ var blur = (svgDoc.createElementNS != null) ?
+ svgDoc.createElementNS(mxConstants.NS_SVG, 'feGaussianBlur') : svgDoc.createElement('feGaussianBlur');
+ blur.setAttribute('in', 'SourceAlpha');
+ blur.setAttribute('stdDeviation', '1.7');
+ blur.setAttribute('result', 'blur');
+ filter.appendChild(blur);
+
+ var offset = (svgDoc.createElementNS != null) ?
+ svgDoc.createElementNS(mxConstants.NS_SVG, 'feOffset') : svgDoc.createElement('feOffset');
+ offset.setAttribute('in', 'blur');
+ offset.setAttribute('dx', '3');
+ offset.setAttribute('dy', '3');
+ offset.setAttribute('result', 'offsetBlur');
+ filter.appendChild(offset);
+
+ var flood = (svgDoc.createElementNS != null) ?
+ svgDoc.createElementNS(mxConstants.NS_SVG, 'feFlood') : svgDoc.createElement('feFlood');
+ flood.setAttribute('flood-color', '#3D4574');
+ flood.setAttribute('flood-opacity', '0.4');
+ flood.setAttribute('result', 'offsetColor');
+ filter.appendChild(flood);
+
+ var composite = (svgDoc.createElementNS != null) ?
+ svgDoc.createElementNS(mxConstants.NS_SVG, 'feComposite') : svgDoc.createElement('feComposite');
+ composite.setAttribute('in', 'offsetColor');
+ composite.setAttribute('in2', 'offsetBlur');
+ composite.setAttribute('operator', 'in');
+ composite.setAttribute('result', 'offsetBlur');
+ filter.appendChild(composite);
+
+ var feBlend = (svgDoc.createElementNS != null) ?
+ svgDoc.createElementNS(mxConstants.NS_SVG, 'feBlend') : svgDoc.createElement('feBlend');
+ feBlend.setAttribute('in', 'SourceGraphic');
+ feBlend.setAttribute('in2', 'offsetBlur');
+ filter.appendChild(feBlend);
+
+ // Creates defs element if not available
+ var defs = svgRoot.getElementsByTagName('defs');
+ var defsElt = null;
+
+ if (defs.length == 0)
+ {
+ defsElt = (svgDoc.createElementNS != null) ?
+ svgDoc.createElementNS(mxConstants.NS_SVG, 'defs') : svgDoc.createElement('defs');
+
+ if (svgRoot.firstChild != null)
+ {
+ svgRoot.insertBefore(defsElt, svgRoot.firstChild);
+ }
+ else
+ {
+ svgRoot.appendChild(defsElt);
+ }
+ }
+ else
+ {
+ defsElt = defs[0];
+ }
+
+ defsElt.appendChild(filter);
+
+ if (!createOnly)
+ {
+ (group || svgRoot.getElementsByTagName('g')[0]).setAttribute('filter', 'url(#' + this.graph.shadowId + ')');
+
+ if (!isNaN(parseInt(svgRoot.getAttribute('width'))))
+ {
+ svgRoot.setAttribute('width', parseInt(svgRoot.getAttribute('width')) + 6);
+ svgRoot.setAttribute('height', parseInt(svgRoot.getAttribute('height')) + 6);
+ }
+ }
+
+ return filter;
+ };
+
+ /**
+ * Adds persistence for recent colors
+ */
+ if (window.ColorDialog)
+ {
+ var colorDialogAddRecentColor = ColorDialog.addRecentColor;
+
+ ColorDialog.addRecentColor = function(color, max)
+ {
+ colorDialogAddRecentColor.apply(this, arguments);
+
+ mxSettings.setRecentColors(ColorDialog.recentColors);
+ mxSettings.save();
+ };
+
+ var colorDialogResetRecentColors = ColorDialog.resetRecentColors;
+
+ ColorDialog.resetRecentColors = function()
+ {
+ colorDialogResetRecentColors.apply(this, arguments);
+
+ mxSettings.setRecentColors(ColorDialog.recentColors);
+ mxSettings.save();
+ };
+ }
+
+ /**
+ * Global switches for the export dialog.
+ */
+ if (window.ExportDialog)
+ {
+ ExportDialog.showXmlOption = false;
+ ExportDialog.showGifOption = false;
+
+ ExportDialog.getExportParameter = function(ui, format)
+ {
+ return function()
+ {
+ // LATER Fix decoding of HTML file in backend (remove argument in getFileData)
+ return 'xml=' + encodeURIComponent(ui.getFileData(true));
+ };
+ };
+ }
+
+ // Overridden to add edit shape option
+ if (window.StyleFormatPanel != null)
+ {
+ var formatInit = Format.prototype.init;
+
+ Format.prototype.init = function()
+ {
+ formatInit.apply(this, arguments);
+
+ var ui = this.editorUi;
+ ui.editor.addListener('fileLoaded', this.update);
+ };
+
+ var formatRefresh = Format.prototype.refresh;
+
+ Format.prototype.refresh = function()
+ {
+ var ui = this.editorUi;
+
+ if (ui.getCurrentFile() != null || urlParams['embed'] == '1')
+ {
+ formatRefresh.apply(this, arguments);
+ }
+ else
+ {
+ this.clear();
+ }
+ };
+
+ /**
+ * Adds autosave and math typesetting options.
+ */
+ var diagramFormatPanelAddOptions = DiagramFormatPanel.prototype.addOptions;
+ DiagramFormatPanel.prototype.addOptions = function(div)
+ {
+ div = diagramFormatPanelAddOptions.apply(this, arguments);
+
+ var ui = this.editorUi;
+ var editor = ui.editor;
+ var graph = editor.graph;
+
+ if (graph.isEnabled())
+ {
+ var file = ui.getCurrentFile();
+
+ if (file != null && file.isAutosaveOptional())
+ {
+ var opt = this.createOption(mxResources.get('autosave'), function()
+ {
+ return ui.editor.autosave;
+ }, function(checked)
+ {
+ ui.editor.setAutosave(checked);
+ },
+ {
+ install: function(apply)
+ {
+ this.listener = function()
+ {
+ apply(ui.editor.autosave);
+ };
+
+ ui.editor.addListener('autosaveChanged', this.listener);
+ },
+ destroy: function()
+ {
+ ui.editor.removeListener(this.listener);
+ }
+ });
+
+ div.appendChild(opt);
+ }
+ }
+
+ return div;
+ };
+
+ /**
+ * Adds predefiend styles.
+ */
+ var StyleFormatPanelInit = StyleFormatPanel.prototype.init;
+ StyleFormatPanel.prototype.init = function()
+ {
+ // TODO: Update sstate in Format
+ var sstate = this.format.createSelectionState();
+
+ if (sstate.style.shape != 'image')
+ {
+ this.container.appendChild(this.addStyles(this.createPanel()));
+ }
+
+ StyleFormatPanelInit.apply(this, arguments);
+ };
+
+ /**
+ * Overridden to add copy and paste style.
+ */
+ var styleFormatPanelAddStyleOps = StyleFormatPanel.prototype.addStyleOps;
+ StyleFormatPanel.prototype.addStyleOps = function(div)
+ {
+ var btn = mxUtils.button(mxResources.get('copyStyle'), mxUtils.bind(this, function(evt)
+ {
+ this.editorUi.actions.get('copyStyle').funct();
+ }));
+
+ btn.setAttribute('title', mxResources.get('copyStyle') + ' (' + this.editorUi.actions.get('copyStyle').shortcut + ')');
+ btn.style.marginBottom = '2px';
+ btn.style.width = '100px';
+ btn.style.marginRight = '2px';
+
+ div.appendChild(btn);
+
+ var btn = mxUtils.button(mxResources.get('pasteStyle'), mxUtils.bind(this, function(evt)
+ {
+ this.editorUi.actions.get('pasteStyle').funct();
+ }));
+
+ btn.setAttribute('title', mxResources.get('pasteStyle') + ' (' + this.editorUi.actions.get('pasteStyle').shortcut + ')');
+ btn.style.marginBottom = '2px';
+ btn.style.width = '100px';
+
+ div.appendChild(btn);
+ mxUtils.br(div);
+
+ return styleFormatPanelAddStyleOps.apply(this, arguments);
+ };
+
+ /**
+ * Creates the buttons for the predefined styles.
+ */
+ StyleFormatPanel.prototype.addStyles = function(div)
+ {
+ var graph = this.editorUi.editor.graph;
+ var picker = document.createElement('div');
+ picker.style.whiteSpace = 'normal';
+ picker.style.paddingLeft = '24px';
+ picker.style.paddingRight = '20px';
+ div.style.paddingLeft = '16px';
+ div.style.paddingBottom = '6px';
+ div.style.position = 'relative';
+ div.appendChild(picker);
+
+ var stylenames = ['plain-gray', 'plain-blue', 'plain-green', 'plain-orange',
+ 'plain-yellow', 'plain-red', 'plain-purple', null];
+
+ function updateScheme(colorsets)
+ {
+ function addButton(colorset)
+ {
+ var btn = mxUtils.button('', function(evt)
+ {
+ graph.getModel().beginUpdate();
+ try
+ {
+ var cells = graph.getSelectionCells();
+
+ for (var i = 0; i < cells.length; i++)
+ {
+ var style = graph.getModel().getStyle(cells[i]);
+
+ for (var j = 0; j < stylenames.length; j++)
+ {
+ style = mxUtils.removeStylename(style, stylenames[j]);
+ }
+
+ if (colorset != null)
+ {
+ style = mxUtils.setStyle(style, mxConstants.STYLE_FILLCOLOR, colorset['fill']);
+ style = mxUtils.setStyle(style, mxConstants.STYLE_STROKECOLOR, colorset['stroke']);
+ style = mxUtils.setStyle(style, mxConstants.STYLE_GRADIENTCOLOR, colorset['gradient']);
+ }
+ else
+ {
+ style = mxUtils.setStyle(style, mxConstants.STYLE_FILLCOLOR, '#ffffff');
+ style = mxUtils.setStyle(style, mxConstants.STYLE_STROKECOLOR, '#000000');
+ style = mxUtils.setStyle(style, mxConstants.STYLE_GRADIENTCOLOR, null);
+ }
+
+ graph.getModel().setStyle(cells[i], style);
+ }
+ }
+ finally
+ {
+ graph.getModel().endUpdate();
+ }
+ })
+
+ btn.style.width = '36px';
+ btn.style.height = '30px';
+ btn.style.margin = '0px 6px 6px 0px';
+
+ if (colorset != null)
+ {
+ if (colorset['gradient'] != null)
+ {
+ if (mxClient.IS_IE && (mxClient.IS_QUIRKS || document.documentMode < 10))
+ {
+ btn.style.filter = 'progid:DXImageTransform.Microsoft.Gradient('+
+ 'StartColorStr=\'' + colorset['fill'] +
+ '\', EndColorStr=\'' + colorset['gradient'] + '\', GradientType=0)';
+ }
+ else
+ {
+ btn.style.backgroundImage = 'linear-gradient(' + colorset['fill'] + ' 0px,' +
+ colorset['gradient'] + ' 100%)';
+ }
+ }
+ else
+ {
+ btn.style.backgroundColor = colorset['fill'];
+ }
+
+ btn.style.border = '1px solid ' + colorset['stroke'];
+ }
+ else
+ {
+ btn.style.backgroundColor = '#ffffff';
+ btn.style.border = '1px solid #000000';
+ }
+
+ picker.appendChild(btn);
+ };
+
+ picker.innerHTML = '';
+
+ for (var i = 0; i < colorsets.length; i++)
+ {
+ if (i > 0 && mxUtils.mod(i, 4) == 0)
+ {
+ mxUtils.br(picker);
+ }
+
+ addButton(colorsets[i]);
+ }
+ };
+
+ if (this.editorUi.currentScheme == null)
+ {
+ this.editorUi.currentScheme = 0;
+ }
+
+ var schemes = [[null, {fill: '#f5f5f5', stroke: '#666666'},
+ {fill: '#dae8fc', stroke: '#6c8ebf'}, {fill: '#d5e8d4', stroke: '#82b366'},
+ {fill: '#ffe6cc', stroke: '#d79b00'}, {fill: '#fff2cc', stroke: '#d6b656'},
+ {fill: '#f8cecc', stroke: '#b85450'}, {fill: '#e1d5e7', stroke: '#9673a6'}],
+ [null,
+ {fill: '#f5f5f5', stroke: '#666666', gradient: '#b3b3b3'},
+ {fill: '#dae8fc', stroke: '#6c8ebf', gradient: '#7ea6e0'},
+ {fill: '#d5e8d4', stroke: '#82b366', gradient: '#97d077'},
+ {fill: '#ffcd28', stroke: '#d79b00', gradient: '#ffa500'},
+ {fill: '#fff2cc', stroke: '#d6b656', gradient: '#ffd966'},
+ {fill: '#f8cecc', stroke: '#b85450', gradient: '#ea6b66'},
+ {fill: '#e6d0de', stroke: '#996185', gradient: '#d5739d'}],
+ [null, {fill: '#eeeeee', stroke: '#36393d'},
+ {fill: '#f9f7ed', stroke: '#36393d'}, {fill: '#ffcc99', stroke: '#36393d'},
+ {fill: '#cce5ff', stroke: '#36393d'}, {fill: '#ffff88', stroke: '#36393d'},
+ {fill: '#cdeb8b', stroke: '#36393d'}, {fill: '#ffcccc', stroke: '#36393d'}]];
+
+ var left = document.createElement('div');
+ left.style.cssText = 'position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;' +
+ 'background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);';
+ div.appendChild(left);
+
+ mxEvent.addListener(left, 'click', mxUtils.bind(this, function()
+ {
+ this.editorUi.currentScheme = mxUtils.mod(this.editorUi.currentScheme - 1, schemes.length);
+ updateScheme(schemes[this.editorUi.currentScheme]);
+ }));
+
+ var right = document.createElement('div');
+ right.style.cssText = 'position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;' +
+ 'background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);';
+ div.appendChild(right);
+
+ mxEvent.addListener(right, 'click', mxUtils.bind(this, function()
+ {
+ this.editorUi.currentScheme = mxUtils.mod(this.editorUi.currentScheme + 1, schemes.length);
+ updateScheme(schemes[this.editorUi.currentScheme]);
+ }));
+
+ // Hover state
+ function addHoverState(elt)
+ {
+ mxEvent.addListener(elt, 'mouseenter', function()
+ {
+ elt.style.opacity = '1';
+ });
+ mxEvent.addListener(elt, 'mouseleave', function()
+ {
+ elt.style.opacity = '0.5';
+ });
+ };
+
+ addHoverState(left);
+ addHoverState(right);
+
+ updateScheme(schemes[this.editorUi.currentScheme]);
+
+ return div;
+ };
+
+ StyleFormatPanel.prototype.addEditOps = function(div)
+ {
+ var ss = this.format.getSelectionState();
+ var btn = null;
+
+ if (this.editorUi.editor.graph.getSelectionCount() == 1)
+ {
+ btn = mxUtils.button(mxResources.get('editStyle'), mxUtils.bind(this, function(evt)
+ {
+ this.editorUi.actions.get('editStyle').funct();
+ }));
+
+ btn.setAttribute('title', mxResources.get('editStyle') + ' (' + this.editorUi.actions.get('editStyle').shortcut + ')');
+ btn.style.width = '202px';
+ btn.style.marginBottom = '2px';
+
+ div.appendChild(btn);
+ }
+
+ var graph = this.editorUi.editor.graph;
+ var state = graph.view.getState(graph.getSelectionCell());
+
+ if (graph.getSelectionCount() == 1 && state != null && state.shape != null && state.shape.stencil != null)
+ {
+ var btn2 = mxUtils.button(mxResources.get('editShape'), mxUtils.bind(this, function(evt)
+ {
+ this.editorUi.actions.get('editShape').funct();
+ }));
+
+ btn2.setAttribute('title', mxResources.get('editShape'));
+ btn2.style.marginBottom = '2px';
+
+ if (btn == null)
+ {
+ btn2.style.width = '202px';
+ }
+ else
+ {
+ btn.style.width = '100px';
+ btn2.style.width = '100px';
+ btn2.style.marginLeft = '2px';
+ }
+
+ div.appendChild(btn2);
+ }
+ else if (ss.image)
+ {
+ var btn2 = mxUtils.button(mxResources.get('editImage'), mxUtils.bind(this, function(evt)
+ {
+ this.editorUi.actions.get('image').funct();
+ }));
+
+ btn2.setAttribute('title', mxResources.get('editImage'));
+ btn2.style.marginBottom = '2px';
+
+ if (btn == null)
+ {
+ btn2.style.width = '202px';
+ }
+ else
+ {
+ btn.style.width = '100px';
+ btn2.style.width = '100px';
+ btn2.style.marginLeft = '2px';
+ }
+
+ div.appendChild(btn2);
+ }
+
+ return div;
+ };
+ }
+
+ /**
+ * Changes the default stylename so that it matches the old named style
+ * if one was specified in the XML.
+ */
+ Graph.prototype.defaultThemeName = 'default-style2';
+
+ /**
+ * Contains the last XML that was pasted.
+ */
+ Graph.prototype.lastPasteXml = null;
+
+ /**
+ * Contains the number of times the last XML was pasted.
+ */
+ Graph.prototype.pasteCounter = 0;
+
+ /**
+ * Graph Overrides
+ */
+ Graph.prototype.defaultScrollbars = urlParams['sb'] != '0';
+
+ /**
+ * Specifies if the page should be visible for new files. Default is true.
+ */
+ Graph.prototype.defaultPageVisible = urlParams['pv'] != '0';
+
+ /**
+ * Specifies if the page should be visible for new files. Default is true.
+ */
+ Graph.prototype.shadowId = 'dropShadow';
+
+ /**
+ * Enables move of bends/segments without selecting.
+ */
+ Graph.prototype.edgeMode = urlParams['edge'] != 'move';
+
+ /**
+ * Adds rack child layout style.
+ */
+ var graphInit = Graph.prototype.init;
+ Graph.prototype.init = function()
+ {
+ graphInit.apply(this, arguments);
+
+ // Override insert location for current mouse point
+ var mouseEvent = null;
+
+ function setMouseEvent(evt)
+ {
+ mouseEvent = evt;
+
+ // Workaround for member not found in IE8-
+ if (mxClient.IS_QUIRKS || document.documentMode == 7 || document.documentMode == 8)
+ {
+ mouseEvent = mxUtils.clone(evt);
+ }
+ };
+
+ mxEvent.addListener(this.container, 'mouseenter', setMouseEvent);
+ mxEvent.addListener(this.container, 'mousemove', setMouseEvent);
+
+ mxEvent.addListener(this.container, 'mouseleave', function(evt)
+ {
+ mouseEvent = null;
+ });
+
+ // Extends getInsertPoint to use the current mouse location
+ this.isMouseInsertPoint = function()
+ {
+ return mouseEvent != null;
+ };
+
+ var getInsertPoint = this.getInsertPoint;
+
+ this.getInsertPoint = function()
+ {
+ if (mouseEvent != null)
+ {
+ return this.getPointForEvent(mouseEvent);
+ }
+
+ return getInsertPoint.apply(this, arguments);
+ };
+
+ var layoutManagerGetLayout = this.layoutManager.getLayout;
+
+ this.layoutManager.getLayout = function(cell)
+ {
+ var state = this.graph.view.getState(cell);
+ var style = (state != null) ? state.style : this.graph.getCellStyle(cell);
+
+ // mxRackContainer may be undefined as it is dynamically loaded at render time
+ if (typeof(mxRackContainer) != 'undefined' && style['childLayout'] == 'rack')
+ {
+ var rackLayout = new mxStackLayout(this.graph, false);
+
+ rackLayout.setChildGeometry = function(child, geo)
+ {
+ var unitSize = 20;
+ geo.height = Math.max(geo.height, unitSize);
+
+ if (geo.height / unitSize > 1)
+ {
+ var mod = geo.height % unitSize;
+ geo.height += mod > unitSize / 2 ? (unitSize - mod) : -mod;
+ }
+
+ this.graph.getModel().setGeometry(child, geo);
+ };
+
+ rackLayout.fill = true;
+ rackLayout.unitSize = mxRackContainer.unitSize | 20;
+ rackLayout.marginLeft = style['marginLeft'] || 0;
+ rackLayout.marginRight = style['marginRight'] || 0;
+ rackLayout.marginTop = style['marginTop'] || 0;
+ rackLayout.marginBottom = style['marginBottom'] || 0;
+ rackLayout.resizeParent = false;
+
+ return rackLayout;
+ }
+
+ return layoutManagerGetLayout.apply(this, arguments);
+ }
+ };
+
+ /**
+ * Sets default style (used in editor.get/setGraphXml below)
+ */
+ var graphLoadStylesheet = Graph.prototype.loadStylesheet;
+ Graph.prototype.loadStylesheet = function()
+ {
+ graphLoadStylesheet.apply(this, arguments);
+ this.currentStyle = 'default-style2';
+ };
+
+ /**
+ * Loads the stylesheet for this graph.
+ */
+ Graph.prototype.setShadowVisible = function(value, fireEvent)
+ {
+ if (mxClient.IS_SVG)
+ {
+ fireEvent = (fireEvent != null) ? fireEvent : true;
+ this.shadowVisible = value;
+
+ if (this.shadowVisible)
+ {
+ this.view.getDrawPane().setAttribute('filter', 'url(#' + this.shadowId + ')');
+ }
+ else
+ {
+ this.view.getDrawPane().removeAttribute('filter');
+ }
+
+ if (fireEvent)
+ {
+ this.fireEvent(new mxEventObject('shadowVisibleChanged'));
+ }
+ }
+ };
+
+ /**
+ * Selects first unlocked layer if one exists
+ */
+ Graph.prototype.selectUnlockedLayer = function()
+ {
+ if (this.defaultParent == null)
+ {
+ var childCount = this.model.getChildCount(this.model.root);
+ var cell = null;
+ var index = 0;
+
+ do
+ {
+ cell = this.model.getChildAt(this.model.root, index);
+ } while (index++ < childCount && mxUtils.getValue(this.getCellStyle(cell), 'locked', '0') == '1')
+
+ if (cell != null)
+ {
+ this.setDefaultParent(cell);
+ }
+ }
+ };
+
+ /**
+ * Specifies special libraries that are loaded via dynamic JS. Add cases
+ * where the filename cannot be worked out from the package name. The
+ * standard scheme for this mapping is stencils/packagename.xml. If there
+ * are multiple XML files, any JS files or any anomalies in the filename or
+ * directory that contains the file, then an entry must be added here and
+ * in EmbedServlet2 for the loading of the shapes to work.
+ */
+ // Required to avoid 404 for mockup.xml since naming of mxgraph.mockup.anchor does not contain
+ // buttons even though it is defined in the mxMockupButtons.js file. This could only be fixed
+ // with aliases for existing shapes or aliases for basenames, but this is essentially the same.
+ mxStencilRegistry.libraries['mockup'] = [SHAPES_PATH + '/mockup/mxMockupButtons.js'];
+
+ mxStencilRegistry.libraries['arrows2'] = [SHAPES_PATH + '/mxArrows.js'];
+ mxStencilRegistry.libraries['bpmn'] = [SHAPES_PATH + '/bpmn/mxBpmnShape2.js', STENCIL_PATH + '/bpmn.xml'];
+ mxStencilRegistry.libraries['er'] = [SHAPES_PATH + '/er/mxER.js'];
+ mxStencilRegistry.libraries['ios'] = [SHAPES_PATH + '/mockup/mxMockupiOS.js'];
+ mxStencilRegistry.libraries['rackGeneral'] = [SHAPES_PATH + '/rack/mxRack.js', STENCIL_PATH + '/rack/general.xml'];
+ mxStencilRegistry.libraries['rackF5'] = [STENCIL_PATH + '/rack/f5.xml'];
+ mxStencilRegistry.libraries['lean_mapping'] = [SHAPES_PATH + '/mxLeanMap.js', STENCIL_PATH + '/lean_mapping.xml'];
+ mxStencilRegistry.libraries['basic'] = [SHAPES_PATH + '/mxBasic.js', STENCIL_PATH + '/basic.xml'];
+ mxStencilRegistry.libraries['ios7icons'] = [STENCIL_PATH + '/ios7/icons.xml'];
+ mxStencilRegistry.libraries['ios7ui'] = [SHAPES_PATH + '/ios7/mxIOS7Ui.js', STENCIL_PATH + '/ios7/misc.xml'];
+ mxStencilRegistry.libraries['android'] = [SHAPES_PATH + '/mxAndroid.js', STENCIL_PATH + '/android/android.xml'];
+ mxStencilRegistry.libraries['electrical/transmission'] = [SHAPES_PATH + '/mxElectrical.js', STENCIL_PATH + '/electrical/transmission.xml'];
+ mxStencilRegistry.libraries['mockup/buttons'] = [SHAPES_PATH + '/mockup/mxMockupButtons.js'];
+ mxStencilRegistry.libraries['mockup/containers'] = [SHAPES_PATH + '/mockup/mxMockupContainers.js'];
+ mxStencilRegistry.libraries['mockup/forms'] = [SHAPES_PATH + '/mockup/mxMockupForms.js'];
+ mxStencilRegistry.libraries['mockup/graphics'] = [SHAPES_PATH + '/mockup/mxMockupGraphics.js', STENCIL_PATH + '/mockup/misc.xml'];
+ mxStencilRegistry.libraries['mockup/markup'] = [SHAPES_PATH + '/mockup/mxMockupMarkup.js'];
+ mxStencilRegistry.libraries['mockup/misc'] = [SHAPES_PATH + '/mockup/mxMockupMisc.js', STENCIL_PATH + '/mockup/misc.xml'];
+ mxStencilRegistry.libraries['mockup/navigation'] = [SHAPES_PATH + '/mockup/mxMockupNavigation.js', STENCIL_PATH + '/mockup/misc.xml'];
+ mxStencilRegistry.libraries['mockup/text'] = [SHAPES_PATH + '/mockup/mxMockupText.js'];
+ mxStencilRegistry.libraries['floorplan'] = [SHAPES_PATH + '/mxFloorplan.js', STENCIL_PATH + '/floorplan.xml'];
+ mxStencilRegistry.libraries['bootstrap'] = [SHAPES_PATH + '/mxBootstrap.js', STENCIL_PATH + '/bootstrap.xml'];
+ mxStencilRegistry.libraries['gmdl'] = [SHAPES_PATH + '/mxGmdl.js', STENCIL_PATH + '/gmdl.xml'];
+ mxStencilRegistry.libraries['cabinets'] = [SHAPES_PATH + '/mxCabinets.js', STENCIL_PATH + '/cabinets.xml'];
+ mxStencilRegistry.libraries['archimate'] = [SHAPES_PATH + '/mxArchiMate.js'];
+ mxStencilRegistry.libraries['archimate3'] = [SHAPES_PATH + '/mxArchiMate3.js'];
+ mxStencilRegistry.libraries['sysml'] = [SHAPES_PATH + '/mxSysML.js'];
+ mxStencilRegistry.libraries['eip'] = [SHAPES_PATH + '/mxEip.js', STENCIL_PATH + '/eip.xml'];
+ mxStencilRegistry.libraries['networks'] = [SHAPES_PATH + '/mxNetworks.js', STENCIL_PATH + '/networks.xml'];
+ mxStencilRegistry.libraries['aws3d'] = [SHAPES_PATH + '/mxAWS3D.js', STENCIL_PATH + '/aws3d.xml'];
+ mxStencilRegistry.libraries['pid2inst'] = [SHAPES_PATH + '/pid2/mxPidInstruments.js'];
+ mxStencilRegistry.libraries['pid2misc'] = [SHAPES_PATH + '/pid2/mxPidMisc.js', STENCIL_PATH + '/pid/misc.xml'];
+ mxStencilRegistry.libraries['pid2valves'] = [SHAPES_PATH + '/pid2/mxPidValves.js'];
+ mxStencilRegistry.libraries['pidFlowSensors'] = [STENCIL_PATH + '/pid/flow_sensors.xml'];
+
+ // Triggers dynamic loading for markers
+ mxMarker.getPackageForType = function(type)
+ {
+ var name = null;
+
+ if (type != null && type.length > 0)
+ {
+ if (type.substring(0, 2) == 'ER')
+ {
+ name = 'mxgraph.er';
+ }
+ else if (type.substring(0, 5) == 'sysML')
+ {
+ name = 'mxgraph.sysml';
+ }
+ }
+
+ return name;
+ };
+
+ var mxMarkerCreateMarker = mxMarker.createMarker;
+
+ mxMarker.createMarker = function(canvas, shape, type, pe, unitX, unitY, size, source, sw, filled)
+ {
+ if (type != null)
+ {
+ var f = mxMarker.markers[type];
+
+ if (f == null)
+ {
+ var name = this.getPackageForType(type);
+
+ if (name != null)
+ {
+ mxStencilRegistry.getStencil(name);
+ }
+ }
+ }
+
+ return mxMarkerCreateMarker.apply(this, arguments);
+ };
+})();
diff --git a/war/js/diagramly/EditorUi.js b/war/js/diagramly/EditorUi.js
index 1f65bbec..1343ba1c 100644
--- a/war/js/diagramly/EditorUi.js
+++ b/war/js/diagramly/EditorUi.js
@@ -18,15 +18,26 @@
* Overrides compact UI setting.
*/
EditorUi.isElectronApp = window && window.process && window.process.type; // https://github.com/electron/electron/issues/2288
+
+ /**
+ *
+ */
+ EditorUi.plusImage = (!mxClient.IS_SVG) ? IMAGE_PATH + '/plus.png' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=';
+
+ /**
+ *
+ */
+ EditorUi.spinImage = (!mxClient.IS_SVG) ? IMAGE_PATH + '/spin.gif' : 'data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw==';
/**
*
*/
- if (urlParams['dev'] == '1')
- {
- Editor.prototype.editBlankUrl = Editor.prototype.editBlankUrl + '&dev=1';
- Editor.prototype.editBlankFallbackUrl = Editor.prototype.editBlankFallbackUrl + '&dev=1';
- }
+ EditorUi.prototype.emptyLibraryXml = '<mxlibrary>[]</mxlibrary>';
+
+ /**
+ * Sets the delay for autosave in milliseconds. Default is 2000.
+ */
+ EditorUi.prototype.mode = null;
/**
* Capability check for canvas export
@@ -67,205 +78,7 @@
// ignore
}
})();
-
- /**
- * Initializes math typesetting and loads respective code.
- */
- Editor.initMath = function(src, config)
- {
- src = (src != null) ? src : 'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_HTMLorMML';
- Editor.mathJaxQueue = [];
-
- Editor.doMathJaxRender = function(container)
- {
- MathJax.Hub.Queue(['Typeset', MathJax.Hub, container]);
- };
- // Disables global typesetting and messages on startup, adds queue for
- // asynchronous rendering while MathJax is loading
- window.MathJax =
- {
- skipStartupTypeset: true,
- showMathMenu: false,
- messageStyle: 'none',
- AuthorInit: function ()
- {
- // Specification recommends using SVG over HTML-CSS if browser is known
- // Check if too inconsistent with image export and print output
- MathJax.Hub.Config(config || {
- jax: ['input/TeX', 'input/MathML', 'input/AsciiMath', 'output/HTML-CSS'],
- extensions: ['tex2jax.js', 'mml2jax.js', 'asciimath2jax.js'],
- TeX: {
- extensions: ['AMSmath.js', 'AMSsymbols.js', 'noErrors.js', 'noUndefined.js']
- },
- // Ignores math in in-place editor
- tex2jax: {
- ignoreClass: 'mxCellEditor'
- },
- asciimath2jax: {
- ignoreClass: 'mxCellEditor'
- }
- });
- MathJax.Hub.Register.StartupHook('Begin', function()
- {
- for (var i = 0; i < Editor.mathJaxQueue.length; i++)
- {
- Editor.doMathJaxRender(Editor.mathJaxQueue[i]);
- }
- });
- }
- };
-
- // Adds global enqueue method for async rendering
- Editor.MathJaxRender = function(container)
- {
- // Initial rendering when MathJax finished loading
- if (typeof(MathJax) !== 'undefined' && typeof(MathJax.Hub) !== 'undefined')
- {
- Editor.doMathJaxRender(container);
- }
- else
- {
- Editor.mathJaxQueue.push(container);
- }
- };
-
- // Adds global clear queue method
- Editor.MathJaxClear = function()
- {
- Editor.mathJaxQueue = [];
- };
-
- // Updates typeset after changes
- var editorInit = Editor.prototype.init;
-
- Editor.prototype.init = function()
- {
- this.graph.addListener(mxEvent.SIZE, mxUtils.bind(this, function(sender, evt)
- {
- if (this.graph.mathEnabled)
- {
- Editor.MathJaxRender(this.graph.container);
- }
- }));
- };
-
- var tags = document.getElementsByTagName('script');
-
- if (tags != null && tags.length > 0)
- {
- var script = document.createElement('script');
- script.type = 'text/javascript';
- script.src = src;
- tags[0].parentNode.appendChild(script);
- }
- };
-
- /**
- * Used in the GraphViewer lightbox.
- */
- Editor.closeImage = (mxClient.IS_SVG) ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC' : IMAGE_PATH + '/delete.png';
-
- /**
- * Adds a shadow filter to the given svg root.
- */
- Editor.prototype.addSvgShadow = function(svgRoot, group, createOnly)
- {
- createOnly = (createOnly != null) ? createOnly : false;
-
- var svgDoc = svgRoot.ownerDocument;
-
- var filter = (svgDoc.createElementNS != null) ?
- svgDoc.createElementNS(mxConstants.NS_SVG, 'filter') : svgDoc.createElement('filter');
- filter.setAttribute('id', this.graph.shadowId);
-
- var blur = (svgDoc.createElementNS != null) ?
- svgDoc.createElementNS(mxConstants.NS_SVG, 'feGaussianBlur') : svgDoc.createElement('feGaussianBlur');
- blur.setAttribute('in', 'SourceAlpha');
- blur.setAttribute('stdDeviation', '1.7');
- blur.setAttribute('result', 'blur');
- filter.appendChild(blur);
-
- var offset = (svgDoc.createElementNS != null) ?
- svgDoc.createElementNS(mxConstants.NS_SVG, 'feOffset') : svgDoc.createElement('feOffset');
- offset.setAttribute('in', 'blur');
- offset.setAttribute('dx', '3');
- offset.setAttribute('dy', '3');
- offset.setAttribute('result', 'offsetBlur');
- filter.appendChild(offset);
-
- var flood = (svgDoc.createElementNS != null) ?
- svgDoc.createElementNS(mxConstants.NS_SVG, 'feFlood') : svgDoc.createElement('feFlood');
- flood.setAttribute('flood-color', '#3D4574');
- flood.setAttribute('flood-opacity', '0.4');
- flood.setAttribute('result', 'offsetColor');
- filter.appendChild(flood);
-
- var composite = (svgDoc.createElementNS != null) ?
- svgDoc.createElementNS(mxConstants.NS_SVG, 'feComposite') : svgDoc.createElement('feComposite');
- composite.setAttribute('in', 'offsetColor');
- composite.setAttribute('in2', 'offsetBlur');
- composite.setAttribute('operator', 'in');
- composite.setAttribute('result', 'offsetBlur');
- filter.appendChild(composite);
-
- var feBlend = (svgDoc.createElementNS != null) ?
- svgDoc.createElementNS(mxConstants.NS_SVG, 'feBlend') : svgDoc.createElement('feBlend');
- feBlend.setAttribute('in', 'SourceGraphic');
- feBlend.setAttribute('in2', 'offsetBlur');
- filter.appendChild(feBlend);
-
- // Creates defs element if not available
- var defs = svgRoot.getElementsByTagName('defs');
- var defsElt = null;
-
- if (defs.length == 0)
- {
- defsElt = (svgDoc.createElementNS != null) ?
- svgDoc.createElementNS(mxConstants.NS_SVG, 'defs') : svgDoc.createElement('defs');
-
- if (svgRoot.firstChild != null)
- {
- svgRoot.insertBefore(defsElt, svgRoot.firstChild);
- }
- else
- {
- svgRoot.appendChild(defsElt);
- }
- }
- else
- {
- defsElt = defs[0];
- }
-
- defsElt.appendChild(filter);
-
- if (!createOnly)
- {
- (group || svgRoot.getElementsByTagName('g')[0]).setAttribute('filter', 'url(#' + this.graph.shadowId + ')');
-
- if (!isNaN(parseInt(svgRoot.getAttribute('width'))))
- {
- svgRoot.setAttribute('width', parseInt(svgRoot.getAttribute('width')) + 6);
- svgRoot.setAttribute('height', parseInt(svgRoot.getAttribute('height')) + 6);
- }
- }
-
- return filter;
- };
-
- /**
- * Math support.
- */
- Editor.prototype.originalNoForeignObject = mxClient.NO_FO;
-
- var editorUpdateGraphComponents = Editor.prototype.updateGraphComponents;
- Editor.prototype.updateGraphComponents = function()
- {
- editorUpdateGraphComponents.apply(this, arguments);
- mxClient.NO_FO = (this.graph.mathEnabled && Editor.MathJaxRender != null) ? true : this.originalNoForeignObject;
- };
-
/**
* Abstraction for local storage access.
*/
@@ -321,27 +134,44 @@
};
/**
- * Global switches for the export dialog.
+ * Allows for two buttons in the sidebar footer.
*/
- if (window.ExportDialog)
- {
- ExportDialog.showXmlOption = false;
- ExportDialog.showGifOption = false;
-
- ExportDialog.getExportParameter = function(ui, format)
- {
- return function()
- {
- // LATER Fix decoding of HTML file in backend (remove argument in getFileData)
- return 'xml=' + encodeURIComponent(ui.getFileData(true));
- };
- };
- }
+ EditorUi.prototype.sidebarFooterHeight = (uiTheme == 'atlas') ? 36 : 36;
+
+ /**
+ * Specifies the default custom shape style.
+ */
+ EditorUi.prototype.defaultCustomShapeStyle = 'shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;';
+
+ /**
+ * Defines the maximum size for images.
+ */
+ EditorUi.prototype.maxBackgroundSize = 1600;
+
+ /**
+ * Defines the maximum size for images.
+ */
+ EditorUi.prototype.maxImageSize = 520;
+
+ /**
+ * Images above 100K should be resampled.
+ */
+ EditorUi.prototype.resampleThreshold = 100000;
+
+ /**
+ * Maximum allowed size for images is 1 MB.
+ */
+ EditorUi.prototype.maxImageBytes = 1000000;
/**
- * Specifies the app name. Default is document.title.
+ * Maximum size for background images is 2.5 MB.
+ */
+ EditorUi.prototype.maxBackgroundBytes = 2500000;
+
+ /**
+ * Holds the current file.
*/
- Editor.prototype.appName = 'draw.io';
+ EditorUi.prototype.currentFile = null;
/**
* Translates this point by the given vector.
@@ -822,6 +652,345 @@
}
}
};
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.createFileData = function(node, graph, file, url, forceXml, forceSvg, forceHtml, embeddedCallback, ignoreSelection)
+ {
+ graph = (graph != null) ? graph : this.editor.graph;
+ forceXml = (forceXml != null) ? forceXml : false;
+ ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
+
+ var editLink = null;
+ var redirect = null;
+
+ if (file == null || file.getMode() == App.MODE_DEVICE || file.getMode() == App.MODE_BROWSER)
+ {
+ editLink = '_blank';
+ }
+ else
+ {
+ editLink = url;
+ redirect = editLink;
+ }
+
+ if (node == null)
+ {
+ return '';
+ }
+ else
+ {
+ var fileNode = node;
+
+ // Ignores case for possible HTML or XML nodes
+ if (fileNode.nodeName.toLowerCase() != 'mxfile')
+ {
+ // Removes control chars in input for correct roundtrip check
+ var text = graph.zapGremlins(mxUtils.getXml(node));
+ var data = graph.compress(text);
+
+ // Fallback to plain XML for invalid compression
+ // TODO: Remove this fallback with active pages
+ if (graph.decompress(data) != text)
+ {
+ return text;
+ }
+ else
+ {
+ var diagramNode = node.ownerDocument.createElement('diagram');
+ mxUtils.setTextContent(diagramNode, data);
+
+ fileNode = node.ownerDocument.createElement('mxfile');
+ fileNode.appendChild(diagramNode);
+ }
+ }
+
+ fileNode.setAttribute('userAgent', navigator.userAgent);
+ fileNode.setAttribute('version', EditorUi.VERSION);
+ fileNode.setAttribute('editor', 'www.draw.io');
+
+ var md = (file != null) ? file.getMode() : this.mode;
+
+ if (md != null)
+ {
+ fileNode.setAttribute('type', md);
+ }
+
+ var xml = mxUtils.getXml(fileNode);
+
+ // Writes the file as an embedded HTML file
+ if (!forceSvg && !forceXml && (forceHtml || (file != null && /(\.html)$/i.test(file.getTitle()))))
+ {
+ xml = this.getHtml2(mxUtils.getXml(fileNode), graph, (file != null) ? file.getTitle() : null, editLink, redirect);
+ }
+ // Maps the XML data to the content attribute in the SVG node
+ else if (forceSvg || (!forceXml && file != null && /(\.svg)$/i.test(file.getTitle())))
+ {
+ if (file != null && (file.getMode() == App.MODE_DEVICE || file.getMode() == App.MODE_BROWSER))
+ {
+ url = null;
+ }
+
+ xml = this.getEmbeddedSvg(xml, graph, url, null, embeddedCallback, ignoreSelection, redirect);
+ }
+
+ return xml;
+ }
+ };
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.getXmlFileData = function(ignoreSelection, currentPage)
+ {
+ ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
+ currentPage = (currentPage != null) ? currentPage : false;
+
+ var node = this.editor.getGraphXml(ignoreSelection);
+
+ if (ignoreSelection && this.fileNode != null && this.currentPage != null)
+ {
+ var data = this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(node)));
+ mxUtils.setTextContent(this.currentPage.node, data);
+ node = this.fileNode.cloneNode(false);
+
+ if (currentPage)
+ {
+ node.appendChild(this.currentPage.node);
+ }
+ else
+ {
+ // Restores order of pages
+ for (var i = 0; i < this.pages.length; i++)
+ {
+ var mapping = this.pages[i].mapping;
+
+ // Updates XML of all pages for realtime
+ if (this.currentPage != this.pages[i] && mapping != null && mapping.needsUpdate)
+ {
+ var enc = new mxCodec(mxUtils.createXmlDocument());
+ var temp = enc.encode(mapping.graphModel);
+
+ // Uses the graph state from the realtime model
+ mapping.writeRealtimeToNode(temp);
+
+ var data = this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(temp)));
+ mxUtils.setTextContent(this.pages[i].node, data);
+
+ // Marks the page as up-to-date
+ mapping.needsUpdate = false;
+ }
+
+ node.appendChild(this.pages[i].node);
+ }
+ }
+ }
+
+ return node;
+ };
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.getFileData = function(forceXml, forceSvg, forceHtml, embeddedCallback, ignoreSelection, currentPage, node)
+ {
+ ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
+ currentPage = (currentPage != null) ? currentPage : false;
+
+ node = (node != null) ? node : this.getXmlFileData(ignoreSelection, currentPage);
+ var graph = this.editor.graph;
+ var file = this.getCurrentFile();
+
+ // Exports SVG for first page while other page is visible by creating a graph
+ // LATER: Add caching for the graph or SVG while not on first page
+ if (this.pages != null && this.currentPage != this.pages[0] && (forceSvg ||
+ (!forceXml && file != null && /(\.svg)$/i.test(file.getTitle()))))
+ {
+ graph = this.createTemporaryGraph(graph.getStylesheet());
+ var graphGetGlobalVariable = graph.getGlobalVariable;
+ var page = this.pages[0];
+
+ graph.getGlobalVariable = function(name)
+ {
+ if (name == 'page')
+ {
+ return page.getName();
+ }
+ else if (name == 'pagenumber')
+ {
+ return 1;
+ }
+
+ return graphGetGlobalVariable.apply(this, arguments);
+ };
+
+ document.body.appendChild(graph.container);
+ graph.model.setRoot(page.root);
+ }
+
+ var result = this.createFileData(node, graph, file, window.location.href,
+ forceXml, forceSvg, forceHtml, embeddedCallback, ignoreSelection);
+
+ // Removes temporary graph from DOM
+ if (graph != this.editor.graph)
+ {
+ graph.container.parentNode.removeChild(graph.container);
+ }
+
+ return result;
+ };
+
+ /**
+ *
+ */
+ EditorUi.prototype.getHtml = function(node, graph, title, editLink, redirect, ignoreSelection)
+ {
+ ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
+ var bg = null;
+ var js = 'https://www.draw.io/js/embed-static.min.js';
+
+ // LATER: Merge common code with EmbedDialog
+ if (graph != null)
+ {
+ var bounds = (ignoreSelection) ? graph.getGraphBounds() : graph.getBoundingBox(graph.getSelectionCells());
+ var scale = graph.view.scale;
+ var x0 = Math.floor(bounds.x / scale - graph.view.translate.x);
+ var y0 = Math.floor(bounds.y / scale - graph.view.translate.y);
+ bg = graph.background;
+
+ // Embed script only used if no redirect
+ if (redirect == null)
+ {
+ var s = this.getBasenames().join(';');
+
+ if (s.length > 0)
+ {
+ js = 'https://www.draw.io/embed.js?s=' + s;
+ }
+ }
+
+ // Adds embed attributes
+ node.setAttribute('x0', x0);
+ node.setAttribute('y0', y0);
+ }
+
+ if (node != null)
+ {
+ node.setAttribute('pan', '1');
+ node.setAttribute('zoom', '1');
+ node.setAttribute('resize', '0');
+ node.setAttribute('fit', '0');
+ node.setAttribute('border', '20');
+
+ // Hidden attributes
+ node.setAttribute('links', '1');
+
+ if (editLink != null)
+ {
+ node.setAttribute('edit', editLink);
+ }
+ }
+
+ // Makes XHTML compatible
+ if (redirect != null)
+ {
+ redirect = redirect.replace(/&/g, '&amp;');
+ }
+
+ // Removes control chars in input for correct roundtrip check
+ var text = (node != null) ? this.editor.graph.zapGremlins(mxUtils.getXml(node)) : '';
+
+ // Double compression for mxfile not fixed since it may cause imcompatibilites with
+ // embed clients that rely on this format. HTML files and export use getHtml2.
+ var data = this.editor.graph.compress(text);
+
+ // Fallback to URI encoded XML for invalid compression
+ if (this.editor.graph.decompress(data) != text)
+ {
+ data = encodeURIComponent(text);
+ }
+
+ var style = 'position:relative;overflow:auto;width:100%;';
+
+ return ((redirect == null) ? '<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->\n' : '') +
+ '<!DOCTYPE html>\n<html' + ((redirect != null) ? ' xmlns="http://www.w3.org/1999/xhtml">' : '>') +
+ '\n<head>\n' + ((redirect == null) ? ((title != null) ? '<title>' + mxUtils.htmlEntities(title) +
+ '</title>\n' : '') : '<title>Draw.io Diagram</title>\n') +
+ ((redirect != null) ? '<meta http-equiv="refresh" content="0;URL=\'' + redirect + '\'"/>\n' : '') +
+ '</head>\n<body' +
+ (((redirect == null && bg != null && bg != mxConstants.NONE) ? ' style="background-color:' + bg + ';">' : '>')) +
+ '\n<div class="mxgraph" style="' + style + '">\n' +
+ '<div style="width:1px;height:1px;overflow:hidden;">' + data + '</div>\n</div>\n' +
+ ((redirect == null) ? '<script type="text/javascript" src="' + js + '"></script>' :
+ '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" ' +
+ 'href="' + redirect + '" target="_blank"><img border="0" ' +
+ 'src="https://www.draw.io/images/drawlogo128.png"/></a>') +
+ '\n</body>\n</html>\n';
+ };
+
+ /**
+ * Same as above but using the new embed code.
+ */
+ EditorUi.prototype.getHtml2 = function(xml, graph, title, editLink, redirect)
+ {
+ var bg = null;
+ var js = 'https://www.draw.io/js/viewer.min.js';
+ var s = '';
+
+ // LATER: Merge common code with EmbedDialog
+ if (graph != null)
+ {
+ // Embed script only used if no redirect
+ if (redirect == null)
+ {
+ var s = this.getBasenames().join(';');
+
+ if (s.length > 0)
+ {
+ js = 'https://www.draw.io/embed2.js?s=' + s;
+ }
+ }
+ }
+
+ // Makes XHTML compatible
+ if (redirect != null)
+ {
+ redirect = redirect.replace(/&/g, '&amp;');
+ }
+
+ var data = {highlight: '#0000ff', nav: this.editor.graph.foldingEnabled, resize: true,
+ xml: this.editor.graph.zapGremlins(xml), toolbar: 'pages zoom layers lightbox'};
+
+ if (this.pages != null && this.currentPage != null)
+ {
+ data.page = mxUtils.indexOf(this.pages, this.currentPage);
+ }
+
+ var style = 'max-width:100%;border:1px solid transparent;';
+
+ return ((redirect == null) ? '<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->\n' : '') +
+ '<!DOCTYPE html>\n<html' + ((redirect != null) ? ' xmlns="http://www.w3.org/1999/xhtml">' : '>') +
+ '\n<head>\n' + ((redirect == null) ? ((title != null) ? '<title>' + mxUtils.htmlEntities(title) +
+ '</title>\n' : '') : '<title>Draw.io Diagram</title>\n') +
+ ((redirect != null) ? '<meta http-equiv="refresh" content="0;URL=\'' + redirect + '\'"/>\n' : '') +
+ '<meta charset="utf-8"/>\n</head>\n<body>' +
+ '\n<div class="mxgraph" style="' + style + '" data-mxgraph="' + mxUtils.htmlEntities(JSON.stringify(data)) + '"></div>\n' +
+ ((redirect == null) ? '<script type="text/javascript" src="' + js + '"></script>' :
+ '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" ' +
+ 'href="' + redirect + '" target="_blank"><img border="0" ' +
+ 'src="https://www.draw.io/images/drawlogo128.png"/></a>') +
+ '\n</body>\n</html>\n';
+ };
/**
*
@@ -893,126 +1062,975 @@
};
/**
- * Adds support for old stylesheets and compressed files
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
*/
- var editorSetGraphXml = Editor.prototype.setGraphXml;
- Editor.prototype.setGraphXml = function(node)
+ EditorUi.prototype.downloadFile = function(format, nonCompressed, addShadow, ignoreSelection, currentPage)
{
- node = (node != null && node.nodeName != 'mxlibrary') ? this.extractGraphModel(node) : null;
-
- if (node != null)
+ try
{
- // Checks input for parser errors
- var errs = node.getElementsByTagName('parsererror');
+ var file = this.getCurrentFile();
+ ignoreSelection = (ignoreSelection != null) ? ignoreSelection : this.editor.graph.isSelectionEmpty();
+ // LATER: Double URI encoding for needed for newlines in simulate (truncates body otherwise).
+ var basename = (file != null && file.getTitle() != null) ? file.getTitle() : this.defaultFilename;
- if (errs != null && errs.length > 0)
+ if (/(\.xml)$/i.test(basename) || /(\.html)$/i.test(basename) || /(\.svg)$/i.test(basename))
{
- var elt = errs[0];
- var divs = elt.getElementsByTagName('div');
+ basename = basename.substring(0, basename.lastIndexOf('.'));
+ }
+
+ var filename = basename + '.' + format;
+
+ if (format == 'xml')
+ {
+ var data = '<?xml version="1.0" encoding="UTF-8"?>\n' +
+ ((nonCompressed) ? mxUtils.getXml(this.editor.getGraphXml(ignoreSelection)) :
+ this.getFileData(true, null, null, null, ignoreSelection, currentPage));
+
+ this.saveData(filename, format, data, 'text/xml');
+ }
+ else if (format == 'html')
+ {
+ var data = this.getHtml2(this.getFileData(true), this.editor.graph, basename);
+ this.saveData(filename, format, data, 'text/html');
+ }
+ else if ((format == 'svg' || format == 'xmlsvg') && this.spinner.spin(document.body, mxResources.get('export')))
+ {
+ var svg = null;
+
+ var saveSvg = mxUtils.bind(this, function(data)
+ {
+ if (data.length <= MAX_REQUEST_SIZE)
+ {
+ this.saveData(filename, 'svg', data, 'image/svg+xml');
+ }
+ else
+ {
+ this.handleError({message: mxResources.get('drawingTooLarge')}, mxResources.get('error'), mxUtils.bind(this, function()
+ {
+ mxUtils.popup(svg);
+ }));
+ }
+ });
+
+ if (format == 'svg')
+ {
+ var bg = this.editor.graph.background;
+
+ if (bg == mxConstants.NONE)
+ {
+ bg = null;
+ }
+
+ // Sets or disables alternate text for foreignObjects. Disabling is needed
+ // because PhantomJS seems to ignore switch statements and paint all text.
+ var svgRoot = this.editor.graph.getSvg(bg, null, null, false, null, ignoreSelection);
+
+ if (addShadow)
+ {
+ this.editor.addSvgShadow(svgRoot);
+ }
+
+ // Embeds the images in the SVG output (async)
+ this.convertImages(svgRoot, mxUtils.bind(this, mxUtils.bind(this, function(svgRoot2)
+ {
+ this.spinner.stop();
+
+ saveSvg('<?xml version="1.0" encoding="UTF-8"?>\n' +
+ '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n' +
+ mxUtils.getXml(svgRoot2));
+ })));
+ }
+ else
+ {
+ filename = basename + '.svg';
+ svg = this.getFileData(false, true, null, mxUtils.bind(this, function(svg)
+ {
+ this.spinner.stop();
+ saveSvg(svg);
+ }), ignoreSelection);
+ }
+ }
+ else
+ {
+ var bounds = this.editor.graph.getGraphBounds();
- if (divs != null && divs.length > 0)
+ // Exports only current page for PDF since it does not contain file data, but for
+ // the other formats with XML included we need to send the complete data and use
+ // the from/to URL parameters to specify the page to be exported.
+ var data = this.getFileData(true, null, null, null, ignoreSelection, format != 'xmlpng');
+ var range = '';
+
+ if (bounds.width * bounds.height <= MAX_AREA && data.length <= MAX_REQUEST_SIZE)
{
- elt = divs[0];
+ var embed = '0';
+
+ if (format == 'xmlpng')
+ {
+ embed = '1';
+ format = 'png';
+ filename = basename + '.' + format;
+
+ // Finds the current page number
+ if (this.pages != null && this.currentPage != null)
+ {
+ for (var i = 0; i < this.pages.length; i++)
+ {
+ if (this.pages[i] == this.currentPage)
+ {
+ range = '&from=' + i;
+ break;
+ }
+ }
+ }
+ }
+
+ this.saveRequest(data, filename, format, function(newTitle, base64)
+ {
+ return new mxXmlRequest(EXPORT_URL, 'format=' + format + range +
+ '&base64=' + base64 + '&embedXml=' + embed + '&xml=' +
+ encodeURIComponent(data) + ((newTitle != null) ?
+ '&filename=' + encodeURIComponent(newTitle) : ''));
+ });
}
-
- throw {message: mxUtils.getTextContent(elt)};
+ else
+ {
+ this.handleError({message: mxResources.get('drawingTooLarge')}, mxResources.get('error'));
+ }
+ }
+ }
+ catch (e)
+ {
+ this.handleError(e);
+ }
+ };
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.setMode = function(mode, remember)
+ {
+ this.mode = mode;
+ };
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.fileLoaded = function(file)
+ {
+ this.hideDialog();
+ var oldFile = this.getCurrentFile();
+ this.setCurrentFile(null);
+
+ if (oldFile != null)
+ {
+ oldFile.removeListener(this.descriptorChangedListener);
+ oldFile.close();
+ }
+
+ this.editor.graph.model.clear();
+ this.editor.undoManager.clear();
+
+ var noFile = mxUtils.bind(this, function()
+ {
+ this.diagramContainer.style.visibility = 'hidden';
+ this.formatContainer.style.visibility = 'hidden';
+ this.hsplit.style.display = 'none';
+ this.sidebarContainer.style.display = 'none';
+ this.sidebarFooterContainer.style.display = 'none';
+ this.editor.graph.setEnabled(false);
+
+ // Keeps initial title if no file existed before
+ if (oldFile != null)
+ {
+ this.updateDocumentTitle();
+ }
+
+ // File might have been loaded halfway
+ this.editor.graph.model.clear();
+ this.editor.undoManager.clear();
+
+ // Avoids empty hash with no value
+ if (window.location.hash != null && window.location.hash.length > 0)
+ {
+ window.location.hash = '';
}
- else if (node.nodeName == 'mxGraphModel')
+
+ if (this.fname != null)
{
- var style = node.getAttribute('style') || 'default-style2';
+ this.fnameWrapper.style.display = 'none';
+ this.fname.innerHTML = '';
+ this.fname.setAttribute('title', mxResources.get('rename'));
+ }
+
+ this.updateUi();
+ this.showSplash();
+ });
+
+ if (file != null)
+ {
+ try
+ {
+ // Order is significant, current file needed for correct
+ // file format for initial save after starting realtime
+ this.setCurrentFile(file);
+ file.addListener('descriptorChanged', this.descriptorChangedListener);
+ file.addListener('contentChanged', this.descriptorChangedListener);
+ this.setMode(file.getMode());
+ this.descriptorChanged();
+ file.open();
+
+ this.diagramContainer.style.visibility = '';
+ this.formatContainer.style.visibility = '';
+ this.hsplit.style.display = '';
+ this.sidebarContainer.style.display = '';
+ this.sidebarFooterContainer.style.display = '';
+ this.editor.undoManager.clear();
+ this.updateUi();
- // Decodes the style if required
- if (urlParams['embed'] != '1' && (style == null || style == ''))
+ // Realtime files have a valid status message
+ if (file.realtime == null)
{
- var node2 = (this.graph.themes != null) ?
- this.graph.themes['default-old'] :
- mxUtils.load(STYLE_PATH + '/default-old.xml').getDocumentElement();
-
- if (node2 != null)
- {
- var dec2 = new mxCodec(node2.ownerDocument);
- dec2.decode(node2, this.graph.getStylesheet());
- }
+ if (!file.isEditable())
+ {
+ this.editor.setStatus(mxResources.get('readOnly'));
+ }
+ else
+ {
+ this.editor.setStatus('');
+ }
}
- else if (style != this.graph.currentStyle)
+
+ if (!this.editor.chromeless)
{
- var node2 = (this.graph.themes != null) ?
- this.graph.themes[style] :
- mxUtils.load(STYLE_PATH + '/' + style + '.xml').getDocumentElement()
-
- if (node2 != null)
- {
- var dec2 = new mxCodec(node2.ownerDocument);
- dec2.decode(node2, this.graph.getStylesheet());
- }
+ this.editor.graph.selectUnlockedLayer();
+ this.showLayersDialog();
+ this.restoreLibraries();
+ }
+ else if (this.editor.graph.lightbox)
+ {
+ this.lightboxFit();
}
- this.graph.currentStyle = style;
- this.graph.mathEnabled = (urlParams['math'] == '1' || node.getAttribute('math') == '1');
+ if (this.chromelessResize)
+ {
+ this.chromelessResize();
+ }
- var bgImg = node.getAttribute('backgroundImage');
+ this.editor.fireEvent(new mxEventObject('fileLoaded'));
- if (bgImg != null)
+ // if (this.enableLogging)
+ // {
+ // try
+ // {
+ // if (!this.isOffline())
+ // {
+ // var img = new Image();
+ // var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : '';
+ // img.src = logDomain + '/log?msg=storageMode:' + encodeURIComponent(file.getMode()) +
+ // '&v=' + encodeURIComponent(EditorUi.VERSION);
+ // }
+ // }
+ // catch (e)
+ // {
+ // // ignore
+ // }
+ // }
+
+ if (this.mode == file.getMode() && file.getMode() != App.MODE_DEVICE)
{
- bgImg = JSON.parse(bgImg);
- this.graph.setBackgroundImage(new mxImage(bgImg.src, bgImg.width, bgImg.height));
+ try
+ {
+ this.addRecent({id: file.getHash(), title: file.getTitle(), mode: file.getMode()});
+ }
+ catch (e)
+ {
+ // ignore
+ }
}
- else
+ }
+ catch (e)
+ {
+ // Makes sure the file does not save the invalid UI model and overwrites anything important
+ if (window.console != null)
{
- this.graph.setBackgroundImage(null);
+ console.log('error in fileLoaded:', file, e);
}
- mxClient.NO_FO = (this.graph.mathEnabled) ? true : this.originalNoForeignObject;
- this.graph.setShadowVisible(node.getAttribute('shadow') == '1', false);
+ // Asynchronous handling of errors
+ this.handleError(e, mxResources.get('errorLoadingFile'), mxUtils.bind(this, function()
+ {
+ // Removes URL parameter and reloads the page
+ if (urlParams['url'] != null && this.spinner.spin(document.body, mxResources.get('reconnecting')))
+ {
+ window.location.search = this.getSearch(['url']);
+ }
+ else if (oldFile != null)
+ {
+ this.fileLoaded(oldFile);
+ }
+ else
+ {
+ noFile();
+ }
+ }));
}
-
- // Calls updateGraphComponents
- editorSetGraphXml.apply(this, arguments);
}
else
{
- throw {
- message: mxResources.get('notADiagramFile') || 'Invalid data',
- toString: function() { return this.message; }
- };
+ noFile();
}
};
-
+
/**
- * Adds persistent style to file
+ * Shows or hides the scratchpad library.
*/
- var editorGetGraphXml = Editor.prototype.getGraphXml;
- Editor.prototype.getGraphXml = function(ignoreSelection)
+ EditorUi.prototype.toggleScratchpad = function()
{
- ignoreSelection = (ignoreSelection != null) ? ignoreSelection : true;
- var node = editorGetGraphXml.apply(this, arguments);
+ if (isLocalStorage || mxClient.IS_CHROMEAPP)
+ {
+ if (this.scratchpad == null)
+ {
+ this.getLocalData('.scratchpad', mxUtils.bind(this, function(xml)
+ {
+ if (xml == null)
+ {
+ xml = this.emptyLibraryXml;
+ }
+
+ this.loadLibrary(new StorageLibrary(this, xml, '.scratchpad'));
+
+ }));
+ }
+ else
+ {
+ this.closeLibrary(this.scratchpad);
+ }
+ }
+ };
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.createLibraryDataFromImages = function(images)
+ {
+ var doc = mxUtils.createXmlDocument();
+ var library = doc.createElement('mxlibrary');
+ mxUtils.setTextContent(library, JSON.stringify(images));
+ doc.appendChild(library);
- // Adds the current style
- if (this.graph.currentStyle != null && this.graph.currentStyle != 'default-style2')
+ return mxUtils.getXml(doc);
+ };
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.closeLibrary = function(file)
+ {
+ if (file != null)
{
- node.setAttribute('style', this.graph.currentStyle);
+ this.removeLibrarySidebar(file.getHash());
+
+ if (file.constructor != LocalLibrary)
+ {
+ mxSettings.removeCustomLibrary(file.getHash());
+ }
+
+ if (file.title == '.scratchpad')
+ {
+ this.scratchpad = null;
+ }
}
+ };
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.removeLibrarySidebar = function(id)
+ {
+ var elts = this.sidebar.palettes[id];
- // Adds the background image
- if (this.graph.backgroundImage != null)
+ if (elts != null)
{
- node.setAttribute('backgroundImage', JSON.stringify(this.graph.backgroundImage));
+ for (var i = 0; i < elts.length; i++)
+ {
+ elts[i].parentNode.removeChild(elts[i]);
+ }
+
+ delete this.sidebar.palettes[id];
}
+ };
+
+ /**
+ * Changes the position of the library in the sidebar
+ */
+ EditorUi.prototype.repositionLibrary = function(nextChild)
+ {
+ var c = this.sidebar.container;
+ nextChild = (nextChild != null) ? nextChild : c.firstChild.nextSibling.nextSibling;
- node.setAttribute('math', (this.graph.mathEnabled) ? '1' : '0');
- node.setAttribute('shadow', (this.graph.shadowVisible) ? '1' : '0');
+ var content = c.lastChild;
+ var title = content.previousSibling;
- return node;
+ c.insertBefore(content, nextChild);
+ c.insertBefore(title, content);
+ }
+
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.loadLibrary = function(file)
+ {
+ var doc = mxUtils.parseXml(file.getData());
+
+ if (doc.documentElement.nodeName == 'mxlibrary')
+ {
+ var images = JSON.parse(mxUtils.getTextContent(doc.documentElement));
+ this.libraryLoaded(file, images);
+ }
+ else
+ {
+ throw {message: mxResources.get('notALibraryFile')};
+ }
};
- var editorResetGraph = Editor.prototype.resetGraph;
- Editor.prototype.resetGraph = function()
+ /**
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
+ */
+ EditorUi.prototype.libraryLoaded = function(file, images)
{
- this.graph.mathEnabled = (urlParams['math'] == '1');
- this.graph.view.x0 = null;
- this.graph.view.y0 = null;
- mxClient.NO_FO = (this.graph.mathEnabled) ? true : this.originalNoForeignObject;
- editorResetGraph.apply(this, arguments);
+ if (file.constructor != LocalLibrary)
+ {
+ mxSettings.addCustomLibrary(file.getHash());
+ }
+
+ if (file.title == '.scratchpad')
+ {
+ this.scratchpad = file;
+ }
+
+ var elts = this.sidebar.palettes[file.getHash()];
+ var nextSibling = (elts != null) ? elts[elts.length - 1].nextSibling : null;
+
+ // Removes existing sidebar entry for this library
+ this.removeLibrarySidebar(file.getHash());
+ var dropTarget = null;
+
+ var addImages = mxUtils.bind(this, function(imgs, content)
+ {
+ if (imgs.length == 0 && file.isEditable())
+ {
+ if (dropTarget == null)
+ {
+ dropTarget = document.createElement('div');
+ mxUtils.setPrefixedStyle(dropTarget.style, 'borderRadius', '6px');
+ dropTarget.style.border = '3px dotted lightGray';
+ dropTarget.style.textAlign = 'center';
+ dropTarget.style.padding = '8px';
+ dropTarget.style.color = '#B3B3B3';
+ mxUtils.write(dropTarget, mxResources.get('dragElementsHere'));
+ }
+
+ content.appendChild(dropTarget);
+ }
+ else
+ {
+ for (var i = 0; i < imgs.length; i++)
+ {
+ var img = imgs[i];
+ var data = img.data;
+
+ if (data != null)
+ {
+ data = this.convertDataUri(data);
+ var s = 'shape=image;verticalLabelPosition=bottom;verticalAlign=top;';
+
+ if (img.aspect == 'fixed')
+ {
+ s += 'aspect=fixed;'
+ }
+ else
+ {
+ s += 'imageAspect=0;'
+ }
+
+ content.appendChild(this.sidebar.createVertexTemplate(s + 'image=' +
+ data, img.w, img.h, '', img.title || '', false, false, false));
+ }
+ else if (img.xml != null)
+ {
+ var cells = this.stringToCells(this.editor.graph.decompress(img.xml));
+
+ if (cells.length > 0)
+ {
+ content.appendChild(this.sidebar.createVertexTemplateFromCells(
+ cells, img.w, img.h, img.title || '', true, false, false));
+ }
+ }
+ }
+ }
+ });
+
+ // Adds new sidebar entry for this library
+ var contentDiv = this.sidebar.addPalette(file.getHash(), file.getTitle(), true, mxUtils.bind(this, function(content)
+ {
+ addImages(images, content);
+ }));
+
+ this.repositionLibrary(nextSibling);
+
+ // Adds tooltip for backend
+ var title = contentDiv.parentNode.previousSibling;
+ var tip = title.getAttribute('title');
+
+ if (tip != null && tip.length > 0 && file.title != '.scratchpad')
+ {
+ title.setAttribute('title', this.getLibraryStorageHint(file) + '\n' + tip);
+ }
+
+ var buttons = document.createElement('div');
+ buttons.style.position = 'absolute';
+ buttons.style.right = '0px';
+ buttons.style.top = '5px';
+ title.style.position = 'relative';
+
+ var btn = document.createElement('img');
+ btn.setAttribute('src', Dialog.prototype.closeImage);
+ btn.setAttribute('title', mxResources.get('close'));
+ btn.setAttribute('align', 'top');
+ btn.setAttribute('border', '0');
+ btn.style.cursor = 'pointer';
+ btn.style.marginRight = '8px';
+ btn.style.marginTop = '3px';
+ buttons.appendChild(btn);
+
+ var saveBtn = null;
+
+ mxEvent.addListener(btn, 'click', mxUtils.bind(this, function(evt)
+ {
+ // Workaround for close after any button click in IE8/quirks
+ if (!mxEvent.isConsumed(evt))
+ {
+ var fn = mxUtils.bind(this, function()
+ {
+ this.closeLibrary(file);
+ });
+
+ if (saveBtn != null)
+ {
+ this.confirm(mxResources.get('allChangesLost'), fn);
+ }
+ else
+ {
+ fn();
+ }
+
+ mxEvent.consume(evt);
+ }
+ }));
+
+ // Shows tooltip if mouse over background
+ mxEvent.addListener(contentDiv, 'mousemove', mxUtils.bind(this, function(evt)
+ {
+ if (mxEvent.getSource(evt) == contentDiv)
+ {
+ contentDiv.setAttribute('title', mxResources.get('libraryTooltip'));
+ }
+ else
+ {
+ contentDiv.removeAttribute('title');
+ }
+ }));
+
+ if (file.isEditable())
+ {
+ var graph = this.editor.graph;
+
+ var editLibrary = mxUtils.bind(this, function(evt)
+ {
+ this.showLibraryDialog(file.getTitle(), contentDiv, images, file, file.getMode());
+ mxEvent.consume(evt);
+ });
+
+ var saveLibrary = mxUtils.bind(this, function(evt)
+ {
+ if (file.constructor != LocalLibrary || file.isAutosave())
+ {
+ if (spinBtn != null && spinBtn.parentNode != null)
+ {
+ spinBtn.parentNode.removeChild(spinBtn);
+ }
+
+ spinBtn = btn.cloneNode(false);
+ spinBtn.setAttribute('src', EditorUi.spinImage);
+ spinBtn.setAttribute('title', mxResources.get('saving'));
+ spinBtn.style.cursor = 'default';
+ spinBtn.style.marginRight = '6px';
+ spinBtn.style.marginTop = '2px';
+ buttons.insertBefore(spinBtn, buttons.firstChild);
+
+ this.saveLibrary(file.getTitle(), images, file, file.getMode(), true, true, function()
+ {
+ if (spinBtn != null && spinBtn.parentNode != null)
+ {
+ spinBtn.parentNode.removeChild(spinBtn);
+ }
+ });
+ }
+ else if (saveBtn == null)
+ {
+ saveBtn = btn.cloneNode(false);
+ saveBtn.setAttribute('src', IMAGE_PATH + '/download.png');
+ saveBtn.setAttribute('title', mxResources.get('save'));
+ buttons.insertBefore(saveBtn, buttons.firstChild);
+
+ mxEvent.addListener(saveBtn, 'click', mxUtils.bind(this, function(evt)
+ {
+ this.saveLibrary(file.getTitle(), images, file, file.getMode(), true, true);
+ saveBtn.parentNode.removeChild(saveBtn);
+ saveBtn = null;
+
+ mxEvent.consume(evt);
+ }));
+ }
+ });
+
+ var addCells = mxUtils.bind(this, function(cells, bounds, evt, title)
+ {
+ cells = graph.cloneCells(graph.model.getTopmostCells(cells));
+
+ // Translates cells to origin
+ for (var i = 0; i < cells.length; i++)
+ {
+ var geo = graph.getCellGeometry(cells[i]);
+
+ if (geo != null)
+ {
+ geo.translate(-bounds.x, -bounds.y);
+ }
+ }
+
+ contentDiv.appendChild(this.sidebar.createVertexTemplateFromCells(
+ cells, bounds.width, bounds.height, title || '', true, false, false));
+
+ var xml = this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(cells)));
+ var entry = {xml: xml, w: bounds.width, h: bounds.height};
+
+ if (title != null)
+ {
+ entry.title = title;
+ }
+
+ images.push(entry);
+ saveLibrary(evt);
+
+ if (dropTarget != null && dropTarget.parentNode != null && images.length > 0)
+ {
+ dropTarget.parentNode.removeChild(dropTarget);
+ dropTarget = null;
+ }
+ });
+
+ var addSelection = mxUtils.bind(this, function(evt)
+ {
+ if (!graph.isSelectionEmpty())
+ {
+ var cells = graph.getSelectionCells();
+ var bounds = graph.view.getBounds(cells);
+
+ var s = graph.view.scale;
+
+ bounds.x /= s;
+ bounds.y /= s;
+ bounds.width /= s;
+ bounds.height /= s;
+
+ bounds.x -= graph.view.translate.x;
+ bounds.y -= graph.view.translate.y;
+
+ addCells(cells, bounds);
+ }
+ else if (graph.getRubberband().isActive())
+ {
+ graph.getRubberband().execute(evt);
+ graph.getRubberband().reset();
+ }
+ else
+ {
+ this.showError(mxResources.get('error'), mxResources.get('nothingIsSelected'), mxResources.get('ok'));
+ }
+
+ mxEvent.consume(evt);
+ });
+
+ // Defines inactive border state
+ contentDiv.style.border = '3px solid transparent';
+
+ // Adds drop handler from graph
+ mxEvent.addGestureListeners(contentDiv, function(){}, mxUtils.bind(this, function(evt)
+ {
+ if (graph.isMouseDown && graph.panningManager != null && graph.graphHandler.shape != null)
+ {
+ graph.graphHandler.shape.node.style.visibility = 'hidden';
+
+ if (dropTarget != null)
+ {
+ dropTarget.style.border = '3px dotted rgb(254, 137, 12)';
+ }
+ else
+ {
+ contentDiv.style.border = '3px dotted rgb(254, 137, 12)';
+ }
+
+ contentDiv.style.cursor = 'copy';
+ graph.panningManager.stop();
+ graph.autoScroll = false;
+
+ if (graph.graphHandler.guide != null)
+ {
+ graph.graphHandler.guide.setVisible(false);
+ }
+
+ if (graph.graphHandler.hint != null)
+ {
+ graph.graphHandler.hint.style.visibility = 'hidden';
+ }
+
+ mxEvent.consume(evt);
+ }
+ }), mxUtils.bind(this, function(evt)
+ {
+ if (graph.isMouseDown && graph.panningManager != null && graph.graphHandler != null)
+ {
+ contentDiv.style.border = '3px solid transparent';
+
+ if (dropTarget != null)
+ {
+ dropTarget.style.border = '3px dotted lightGray';
+ }
+
+ contentDiv.style.cursor = 'default';
+ this.sidebar.showTooltips = true;
+ graph.panningManager.stop();
+ graph.graphHandler.reset();
+ graph.isMouseDown = false;
+ graph.autoScroll = true;
+ addSelection(evt);
+ mxEvent.consume(evt);
+ }
+ }));
+
+ // Handles mouse leaving the library and restoring move
+ mxEvent.addListener(contentDiv, 'mouseleave', mxUtils.bind(this, function(evt)
+ {
+ if (graph.isMouseDown && graph.graphHandler.shape != null)
+ {
+ graph.graphHandler.shape.node.style.visibility = 'visible';
+ contentDiv.style.border = '3px solid transparent';
+ contentDiv.style.cursor = '';
+ graph.autoScroll = true;
+
+ if (graph.graphHandler.guide != null)
+ {
+ graph.graphHandler.guide.setVisible(true);
+ }
+
+ if (graph.graphHandler.hint != null)
+ {
+ graph.graphHandler.hint.style.visibility = 'visible';
+ }
+
+ if (dropTarget != null)
+ {
+ dropTarget.style.border = '3px dotted lightGray';
+ }
+ }
+ }));
+
+ // Adds drop handler from filesystem
+ if (Graph.fileSupport)
+ {
+ mxEvent.addListener(contentDiv, 'dragover', mxUtils.bind(this, function(evt)
+ {
+ if (dropTarget != null)
+ {
+ dropTarget.style.border = '3px dotted rgb(254, 137, 12)';
+ }
+ else
+ {
+ contentDiv.style.border = '3px dotted rgb(254, 137, 12)';
+ }
+
+ evt.dataTransfer.dropEffect = 'copy';
+ contentDiv.style.cursor = 'copy';
+ this.sidebar.hideTooltip();
+ evt.stopPropagation();
+ evt.preventDefault();
+ }));
+
+ mxEvent.addListener(contentDiv, 'drop', mxUtils.bind(this, function(evt)
+ {
+ contentDiv.style.border = '3px solid transparent';
+ contentDiv.style.cursor = '';
+
+ if (dropTarget != null)
+ {
+ dropTarget.style.border = '3px dotted lightGray';
+ }
+
+ if (evt.dataTransfer.files.length > 0)
+ {
+ this.importFiles(evt.dataTransfer.files, 0, 0, this.maxImageSize, mxUtils.bind(this, function(data, mimeType, x, y, w, h, img)
+ {
+ if (data != null && mimeType.substring(0, 6) == 'image/')
+ {
+ var style = 'shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image=' +
+ this.convertDataUri(data);
+ var cells = [new mxCell('', new mxGeometry(0, 0, w, h), style)];
+ cells[0].vertex = true;
+
+ addCells(cells, new mxRectangle(0, 0, w, h), evt, (mxEvent.isAltDown(evt)) ? null : img.substring(0, img.lastIndexOf('.')).replace(/_/g, ' '));
+ }
+ else
+ {
+ var done = false;
+
+ if (data != null && mimeType == 'text/xml')
+ {
+ var doc = mxUtils.parseXml(data);
+
+ if (doc.documentElement.nodeName == 'mxlibrary')
+ {
+ try
+ {
+ var temp = JSON.parse(mxUtils.getTextContent(doc.documentElement));
+ addImages(temp, contentDiv);
+ images = images.concat(temp);
+ saveLibrary(evt);
+ this.spinner.stop();
+ done = true;
+ }
+ catch (e)
+ {
+ // ignore
+ }
+ }
+ else if (doc.documentElement.nodeName == 'mxfile')
+ {
+ try
+ {
+ var temp = mxUtils.getTextContent(doc.documentElement.getElementsByTagName('diagram')[0]);
+ var cells = this.stringToCells(this.editor.graph.decompress(temp));
+ addCells(cells, new mxRectangle(0, 0, w, h), evt);
+ done = true;
+ }
+ catch (e)
+ {
+ // ignore
+ }
+ }
+ }
+
+ if (!done)
+ {
+ this.spinner.stop();
+ this.handleError({message: mxResources.get('errorLoadingFile')})
+ }
+ }
+
+ if (dropTarget != null && dropTarget.parentNode != null && images.length > 0)
+ {
+ dropTarget.parentNode.removeChild(dropTarget);
+ dropTarget = null;
+ }
+ }));
+ }
+
+ evt.stopPropagation();
+ evt.preventDefault();
+ }));
+
+ mxEvent.addListener(contentDiv, 'dragleave', function(evt)
+ {
+ if (dropTarget != null)
+ {
+ dropTarget.style.border = '3px dotted lightGray';
+ }
+ else
+ {
+ contentDiv.style.border = '3px solid transparent';
+ contentDiv.style.cursor = '';
+ }
+
+ evt.stopPropagation();
+ evt.preventDefault();
+ });
+ }
+
+ btn = btn.cloneNode(false);
+ btn.setAttribute('src', IMAGE_PATH + '/edit.gif');
+ btn.setAttribute('title', mxResources.get('edit'));
+ buttons.insertBefore(btn, buttons.firstChild);
+
+ mxEvent.addListener(btn, 'click', editLibrary);
+ mxEvent.addListener(contentDiv, 'dblclick', function(evt)
+ {
+ if (mxEvent.getSource(evt) == contentDiv)
+ {
+ editLibrary(evt);
+ }
+ });
+
+ btn = btn.cloneNode(false);
+ btn.setAttribute('src', EditorUi.plusImage);
+ btn.setAttribute('title', mxResources.get('add'));
+ buttons.insertBefore(btn, buttons.firstChild);
+
+ if (!this.isOffline())
+ {
+ var link = document.createElement('span');
+ link.setAttribute('title', mxResources.get('help'));
+ link.style.cssText = 'color:gray;text-decoration:none;margin-right:8px;';
+ mxUtils.write(link, '?');
+
+ mxEvent.addGestureListeners(link, mxUtils.bind(this, function(evt)
+ {
+ window.open('https://support.draw.io/questions/10420280');
+ mxEvent.consume(evt);
+ }));
+
+ buttons.insertBefore(link, buttons.firstChild);
+ }
+
+ var spinBtn = null;
+
+ mxEvent.addListener(btn, 'click', addSelection);
+ }
+
+ title.appendChild(buttons);
};
/**
@@ -1149,16 +2167,6 @@
};
/**
- * Allows for two buttons in the sidebar footer.
- */
- EditorUi.prototype.sidebarFooterHeight = (uiTheme == 'atlas') ? 36 : 36;
-
- /**
- * Specifies the default custom shape style.
- */
- EditorUi.prototype.defaultCustomShapeStyle = 'shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;';
-
- /**
* Hook for sidebar footer container.
*/
EditorUi.prototype.createSidebarFooterContainer = function()
@@ -1186,40 +2194,135 @@
return div;
};
-
- /**
- * Setting the current file.
- */
-
- /**
- * Defines the maximum size for images.
- */
- EditorUi.prototype.maxBackgroundSize = 1600;
-
- /**
- * Defines the maximum size for images.
- */
- EditorUi.prototype.maxImageSize = 520;
-
+
/**
- * Images above 100K should be resampled.
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
*/
- EditorUi.prototype.resampleThreshold = 100000;
-
+ EditorUi.prototype.handleError = function(resp, title, fn)
+ {
+ var resume = this.spinner.pause();
+ var e = (resp != null && resp.error != null) ? resp.error : resp;
+
+ if (e != null || title != null)
+ {
+ var msg = mxResources.get('unknownError');
+ var btn = mxResources.get('ok');
+ var retry = null;
+ title = (title != null) ? title : mxResources.get('error');
+
+ if (e != null)
+ {
+ if (typeof(gapi) != 'undefined' && typeof(gapi.drive) != 'undefined' && typeof(gapi.drive.realtime) != 'undefined' &&
+ e.type == gapi.drive.realtime.ErrorType.FORBIDDEN)
+ {
+ msg = mxResources.get('forbidden');
+ }
+ else if (e.code == 404 || e.status == 404 || (typeof(gapi) != 'undefined' && typeof(gapi.drive) != 'undefined' &&
+ typeof(gapi.drive.realtime) != 'undefined' && e.type == gapi.drive.realtime.ErrorType.NOT_FOUND))
+ {
+ msg = mxResources.get('fileNotFoundOrDenied');
+ var id = window.location.hash;
+
+ if (id != null && id.substring(0, 2) == '#G')
+ {
+ id = id.substring(2);
+ msg += ' <a href="https://drive.google.com/open?id=' + id + '" target="_blank">' +
+ mxResources.get('tryOpeningViaThisPage') + '</a>';
+ }
+ }
+ else if (e.code == App.ERROR_TIMEOUT)
+ {
+ msg = mxResources.get('timeout');
+
+ if (e.retry != null)
+ {
+ btn = mxResources.get('cancel');
+ retry = function()
+ {
+ resume();
+ e.retry();
+ };
+ }
+ }
+ else if (e.code == App.ERROR_BUSY)
+ {
+ msg = mxResources.get('busy');
+ }
+ else if (e.message != null)
+ {
+ msg = e.message;
+ }
+ else if (e.response != null && e.response.error != null)
+ {
+ msg = e.response.error;
+ }
+ }
+
+ this.showError(title, msg, btn, fn, retry);
+ }
+ else if (fn != null)
+ {
+ fn();
+ }
+ };
+
/**
- * Maximum allowed size for images is 1 MB.
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
*/
- EditorUi.prototype.maxImageBytes = 1000000;
-
+ EditorUi.prototype.showError = function(title, msg, btn, fn, retry, btn2, fn2)
+ {
+ var dlg = new ErrorDialog(this, title, msg, btn, fn, retry, btn2, fn2);
+ this.showDialog(dlg.container, 340, 150, true, false);
+ dlg.init();
+ };
+
/**
- * Maximum size for background images is 2.5 MB.
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
*/
- EditorUi.prototype.maxBackgroundBytes = 2500000;
-
+ EditorUi.prototype.alert = function(msg, fn)
+ {
+ var dlg = new ErrorDialog(this, null, msg, mxResources.get('ok'), fn);
+ this.showDialog(dlg.container, 340, 100, true, false);
+ dlg.init();
+ };
+
/**
- * Holds the current file.
+ * Translates this point by the given vector.
+ *
+ * @param {number} dx X-coordinate of the translation.
+ * @param {number} dy Y-coordinate of the translation.
*/
- EditorUi.prototype.currentFile = null;
+ EditorUi.prototype.confirm = function(msg, okFn, cancelFn)
+ {
+ var resume = (this.spinner.pause != null) ? this.spinner.pause() : function() {};
+
+ this.showDialog(new ConfirmDialog(this, msg, function()
+ {
+ resume();
+
+ if (okFn != null)
+ {
+ okFn();
+ }
+ }, function()
+ {
+ resume();
+
+ if (cancelFn != null)
+ {
+ cancelFn();
+ }
+ }).container, 340, 90, true, false);
+ };
/**
* Translates this point by the given vector.
@@ -3089,6 +4192,10 @@
}
};
+
+
+
+
/**
* Parses the file using XHR2 via the server. File can be a blob or file object.
* Filename is an optional parameter for blobs (that do not have a filename).
@@ -3182,41 +4289,38 @@
/**
* Initializes CRC table.
*/
- (function()
+ EditorUi.prototype.crcTable = [];
+
+ for (var n = 0; n < 256; n++)
{
- EditorUi.prototype.crcTable = [];
+ var c = n;
- for (var n = 0; n < 256; n++)
+ for (var k = 0; k < 8; k++)
{
- var c = n;
-
- for (var k = 0; k < 8; k++)
+ if ((c & 1) == 1)
{
- if ((c & 1) == 1)
- {
- c = 0xedb88320 ^ (c >>> 1);
- }
- else
- {
- c >>>= 1;
- }
-
- EditorUi.prototype.crcTable[n] = c;
+ c = 0xedb88320 ^ (c >>> 1);
}
- }
-
- EditorUi.prototype.updateCRC = function(crc, data, off, len)
- {
- var c = crc;
-
- for (var n = 0; n < len; n++)
+ else
{
- c = EditorUi.prototype.crcTable[(c ^ data[off + n]) & 0xff] ^ (c >>> 8);
+ c >>>= 1;
}
-
- return c;
- };
- })();
+
+ EditorUi.prototype.crcTable[n] = c;
+ }
+ }
+
+ EditorUi.prototype.updateCRC = function(crc, data, off, len)
+ {
+ var c = crc;
+
+ for (var n = 0; n < len; n++)
+ {
+ c = EditorUi.prototype.crcTable[(c ^ data[off + n]) & 0xff] ^ (c >>> 8);
+ }
+
+ return c;
+ };
/**
* Adds the given text to the compressed or non-compressed text chunk.
@@ -4171,393 +5275,7 @@
}
}
};
-
- /**
- * Creates the format panel and adds overrides.
- */
- var editorUiCreateFormat = EditorUi.prototype.createFormat;
- EditorUi.prototype.createFormat = function(container)
- {
- /**
- * Overrides for Format sidebar.
- */
- var formatInit = Format.prototype.init;
-
- Format.prototype.init = function()
- {
- formatInit.apply(this, arguments);
-
- var ui = this.editorUi;
- ui.editor.addListener('fileLoaded', this.update);
- };
-
- var formatRefresh = Format.prototype.refresh;
-
- Format.prototype.refresh = function()
- {
- var ui = this.editorUi;
-
- if (ui.getCurrentFile() != null || urlParams['embed'] == '1')
- {
- formatRefresh.apply(this, arguments);
- }
- else
- {
- this.clear();
- }
- };
-
- /**
- * Adds autosave and math typesetting options.
- */
- var diagramFormatPanelAddOptions = DiagramFormatPanel.prototype.addOptions;
- DiagramFormatPanel.prototype.addOptions = function(div)
- {
- div = diagramFormatPanelAddOptions.apply(this, arguments);
-
- var ui = this.editorUi;
- var editor = ui.editor;
- var graph = editor.graph;
-
- if (graph.isEnabled())
- {
- var file = ui.getCurrentFile();
-
- if (file != null && file.isAutosaveOptional())
- {
- var opt = this.createOption(mxResources.get('autosave'), function()
- {
- return ui.editor.autosave;
- }, function(checked)
- {
- ui.editor.setAutosave(checked);
- },
- {
- install: function(apply)
- {
- this.listener = function()
- {
- apply(ui.editor.autosave);
- };
-
- ui.editor.addListener('autosaveChanged', this.listener);
- },
- destroy: function()
- {
- ui.editor.removeListener(this.listener);
- }
- });
-
- div.appendChild(opt);
- }
- }
- return div;
- };
-
- /**
- * Adds predefiend styles.
- */
- var StyleFormatPanelInit = StyleFormatPanel.prototype.init;
- StyleFormatPanel.prototype.init = function()
- {
- // TODO: Update sstate in Format
- var sstate = this.format.createSelectionState();
-
- if (sstate.style.shape != 'image')
- {
- this.container.appendChild(this.addStyles(this.createPanel()));
- }
-
- StyleFormatPanelInit.apply(this, arguments);
- };
-
- /**
- * Overridden to add copy and paste style.
- */
- var styleFormatPanelAddStyleOps = StyleFormatPanel.prototype.addStyleOps;
- StyleFormatPanel.prototype.addStyleOps = function(div)
- {
- var btn = mxUtils.button(mxResources.get('copyStyle'), mxUtils.bind(this, function(evt)
- {
- this.editorUi.actions.get('copyStyle').funct();
- }));
-
- btn.setAttribute('title', mxResources.get('copyStyle') + ' (' + this.editorUi.actions.get('copyStyle').shortcut + ')');
- btn.style.marginBottom = '2px';
- btn.style.width = '100px';
- btn.style.marginRight = '2px';
-
- div.appendChild(btn);
-
- var btn = mxUtils.button(mxResources.get('pasteStyle'), mxUtils.bind(this, function(evt)
- {
- this.editorUi.actions.get('pasteStyle').funct();
- }));
-
- btn.setAttribute('title', mxResources.get('pasteStyle') + ' (' + this.editorUi.actions.get('pasteStyle').shortcut + ')');
- btn.style.marginBottom = '2px';
- btn.style.width = '100px';
-
- div.appendChild(btn);
- mxUtils.br(div);
-
- return styleFormatPanelAddStyleOps.apply(this, arguments);
- };
-
- /**
- * Creates the buttons for the predefined styles.
- */
- StyleFormatPanel.prototype.addStyles = function(div)
- {
- var graph = this.editorUi.editor.graph;
- var picker = document.createElement('div');
- picker.style.whiteSpace = 'normal';
- picker.style.paddingLeft = '24px';
- picker.style.paddingRight = '20px';
- div.style.paddingLeft = '16px';
- div.style.paddingBottom = '6px';
- div.style.position = 'relative';
- div.appendChild(picker);
-
- var stylenames = ['plain-gray', 'plain-blue', 'plain-green', 'plain-orange',
- 'plain-yellow', 'plain-red', 'plain-purple', null];
-
- function updateScheme(colorsets)
- {
- function addButton(colorset)
- {
- var btn = mxUtils.button('', function(evt)
- {
- graph.getModel().beginUpdate();
- try
- {
- var cells = graph.getSelectionCells();
-
- for (var i = 0; i < cells.length; i++)
- {
- var style = graph.getModel().getStyle(cells[i]);
-
- for (var j = 0; j < stylenames.length; j++)
- {
- style = mxUtils.removeStylename(style, stylenames[j]);
- }
-
- if (colorset != null)
- {
- style = mxUtils.setStyle(style, mxConstants.STYLE_FILLCOLOR, colorset['fill']);
- style = mxUtils.setStyle(style, mxConstants.STYLE_STROKECOLOR, colorset['stroke']);
- style = mxUtils.setStyle(style, mxConstants.STYLE_GRADIENTCOLOR, colorset['gradient']);
- }
- else
- {
- style = mxUtils.setStyle(style, mxConstants.STYLE_FILLCOLOR, '#ffffff');
- style = mxUtils.setStyle(style, mxConstants.STYLE_STROKECOLOR, '#000000');
- style = mxUtils.setStyle(style, mxConstants.STYLE_GRADIENTCOLOR, null);
- }
-
- graph.getModel().setStyle(cells[i], style);
- }
- }
- finally
- {
- graph.getModel().endUpdate();
- }
- })
-
- btn.style.width = '36px';
- btn.style.height = '30px';
- btn.style.margin = '0px 6px 6px 0px';
-
- if (colorset != null)
- {
- if (colorset['gradient'] != null)
- {
- if (mxClient.IS_IE && (mxClient.IS_QUIRKS || document.documentMode < 10))
- {
- btn.style.filter = 'progid:DXImageTransform.Microsoft.Gradient('+
- 'StartColorStr=\'' + colorset['fill'] +
- '\', EndColorStr=\'' + colorset['gradient'] + '\', GradientType=0)';
- }
- else
- {
- btn.style.backgroundImage = 'linear-gradient(' + colorset['fill'] + ' 0px,' +
- colorset['gradient'] + ' 100%)';
- }
- }
- else
- {
- btn.style.backgroundColor = colorset['fill'];
- }
-
- btn.style.border = '1px solid ' + colorset['stroke'];
- }
- else
- {
- btn.style.backgroundColor = '#ffffff';
- btn.style.border = '1px solid #000000';
- }
-
- picker.appendChild(btn);
- };
-
- picker.innerHTML = '';
-
- for (var i = 0; i < colorsets.length; i++)
- {
- if (i > 0 && mxUtils.mod(i, 4) == 0)
- {
- mxUtils.br(picker);
- }
-
- addButton(colorsets[i]);
- }
- };
-
- if (this.editorUi.currentScheme == null)
- {
- this.editorUi.currentScheme = 0;
- }
-
- var schemes = [[null, {fill: '#f5f5f5', stroke: '#666666'},
- {fill: '#dae8fc', stroke: '#6c8ebf'}, {fill: '#d5e8d4', stroke: '#82b366'},
- {fill: '#ffe6cc', stroke: '#d79b00'}, {fill: '#fff2cc', stroke: '#d6b656'},
- {fill: '#f8cecc', stroke: '#b85450'}, {fill: '#e1d5e7', stroke: '#9673a6'}],
- [null,
- {fill: '#f5f5f5', stroke: '#666666', gradient: '#b3b3b3'},
- {fill: '#dae8fc', stroke: '#6c8ebf', gradient: '#7ea6e0'},
- {fill: '#d5e8d4', stroke: '#82b366', gradient: '#97d077'},
- {fill: '#ffcd28', stroke: '#d79b00', gradient: '#ffa500'},
- {fill: '#fff2cc', stroke: '#d6b656', gradient: '#ffd966'},
- {fill: '#f8cecc', stroke: '#b85450', gradient: '#ea6b66'},
- {fill: '#e6d0de', stroke: '#996185', gradient: '#d5739d'}],
- [null, {fill: '#eeeeee', stroke: '#36393d'},
- {fill: '#f9f7ed', stroke: '#36393d'}, {fill: '#ffcc99', stroke: '#36393d'},
- {fill: '#cce5ff', stroke: '#36393d'}, {fill: '#ffff88', stroke: '#36393d'},
- {fill: '#cdeb8b', stroke: '#36393d'}, {fill: '#ffcccc', stroke: '#36393d'}]];
-
- var left = document.createElement('div');
- left.style.cssText = 'position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;' +
- 'background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);';
- div.appendChild(left);
-
- mxEvent.addListener(left, 'click', mxUtils.bind(this, function()
- {
- this.editorUi.currentScheme = mxUtils.mod(this.editorUi.currentScheme - 1, schemes.length);
- updateScheme(schemes[this.editorUi.currentScheme]);
- }));
-
- var right = document.createElement('div');
- right.style.cssText = 'position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;' +
- 'background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);';
- div.appendChild(right);
-
- mxEvent.addListener(right, 'click', mxUtils.bind(this, function()
- {
- this.editorUi.currentScheme = mxUtils.mod(this.editorUi.currentScheme + 1, schemes.length);
- updateScheme(schemes[this.editorUi.currentScheme]);
- }));
-
- // Hover state
- function addHoverState(elt)
- {
- mxEvent.addListener(elt, 'mouseenter', function()
- {
- elt.style.opacity = '1';
- });
- mxEvent.addListener(elt, 'mouseleave', function()
- {
- elt.style.opacity = '0.5';
- });
- };
-
- addHoverState(left);
- addHoverState(right);
-
- updateScheme(schemes[this.editorUi.currentScheme]);
-
- return div;
- };
-
- return editorUiCreateFormat.apply(this, arguments);
- };
-
- // Overridden to add edit shape option
- if (window.StyleFormatPanel != null)
- {
- StyleFormatPanel.prototype.addEditOps = function(div)
- {
- var ss = this.format.getSelectionState();
- var btn = null;
-
- if (this.editorUi.editor.graph.getSelectionCount() == 1)
- {
- btn = mxUtils.button(mxResources.get('editStyle'), mxUtils.bind(this, function(evt)
- {
- this.editorUi.actions.get('editStyle').funct();
- }));
-
- btn.setAttribute('title', mxResources.get('editStyle') + ' (' + this.editorUi.actions.get('editStyle').shortcut + ')');
- btn.style.width = '202px';
- btn.style.marginBottom = '2px';
-
- div.appendChild(btn);
- }
-
- var graph = this.editorUi.editor.graph;
- var state = graph.view.getState(graph.getSelectionCell());
-
- if (graph.getSelectionCount() == 1 && state != null && state.shape != null && state.shape.stencil != null)
- {
- var btn2 = mxUtils.button(mxResources.get('editShape'), mxUtils.bind(this, function(evt)
- {
- this.editorUi.actions.get('editShape').funct();
- }));
-
- btn2.setAttribute('title', mxResources.get('editShape'));
- btn2.style.marginBottom = '2px';
-
- if (btn == null)
- {
- btn2.style.width = '202px';
- }
- else
- {
- btn.style.width = '100px';
- btn2.style.width = '100px';
- btn2.style.marginLeft = '2px';
- }
-
- div.appendChild(btn2);
- }
- else if (ss.image)
- {
- var btn2 = mxUtils.button(mxResources.get('editImage'), mxUtils.bind(this, function(evt)
- {
- this.editorUi.actions.get('image').funct();
- }));
-
- btn2.setAttribute('title', mxResources.get('editImage'));
- btn2.style.marginBottom = '2px';
-
- if (btn == null)
- {
- btn2.style.width = '202px';
- }
- else
- {
- btn.style.width = '100px';
- btn2.style.width = '100px';
- btn2.style.marginLeft = '2px';
- }
-
- div.appendChild(btn2);
- }
-
- return div;
- };
- }
-
/**
* Adds a file drop handler for opening local files.
*/
@@ -5743,7 +6461,111 @@
return outline;
};
-
+
+ /**
+ * Updates action and menu states depending on the file.
+ */
+ EditorUi.prototype.updateUi = function()
+ {
+ this.updateButtonContainer();
+ this.updateActionStates();
+
+ // Action states that only need update for new files
+ var file = this.getCurrentFile();
+ var active = file != null || urlParams['embed'] == '1';
+ this.menus.get('viewPanels').setEnabled(active);
+ this.menus.get('viewZoom').setEnabled(active);
+
+ var restricted = urlParams['embed'] != '1' && (file == null || file.isRestricted());
+ this.actions.get('makeCopy').setEnabled(!restricted);
+ this.actions.get('print').setEnabled(!restricted);
+ this.menus.get('exportAs').setEnabled(!restricted);
+ this.menus.get('embed').setEnabled(!restricted);
+
+ // Disables actions in the toolbar
+ var editable = (urlParams['embed'] == '1') || (file != null && file.isEditable());
+ this.actions.get('image').setEnabled(active);
+ this.actions.get('zoomIn').setEnabled(active);
+ this.actions.get('zoomOut').setEnabled(active);
+ this.actions.get('resetView').setEnabled(active);
+
+ // Disables menus
+ this.menus.get('edit').setEnabled(active);
+ this.menus.get('view').setEnabled(active);
+ this.menus.get('importFrom').setEnabled(editable);
+ this.menus.get('arrange').setEnabled(editable);
+
+ // Disables connection drop downs in toolbar
+ if (this.toolbar != null)
+ {
+ if (this.toolbar.edgeShapeMenu != null)
+ {
+ this.toolbar.edgeShapeMenu.setEnabled(editable);
+ }
+
+ if (this.toolbar.edgeStyleMenu != null)
+ {
+ this.toolbar.edgeStyleMenu.setEnabled(editable);
+ }
+ }
+
+ if (this.isOfflineApp())
+ {
+ // In FF, IE and Safari (desktop) the cache status never changes
+ if ((mxClient.IS_GC || (mxClient.IS_IOS && mxClient.IS_SF)) && applicationCache != null)
+ {
+ var appCache = applicationCache;
+
+ if (this.offlineStatus == null)
+ {
+ this.offlineStatus = document.createElement('div');
+ this.offlineStatus.className = 'geItem';
+ this.offlineStatus.style.position = 'absolute';
+ this.offlineStatus.style.fontSize = '8pt';
+ this.offlineStatus.style.top = '2px';
+ this.offlineStatus.style.right = '12px';
+ this.offlineStatus.style.color = '#666';
+ this.offlineStatus.style.margin = '4px';
+ this.offlineStatus.style.padding = '2px';
+ this.offlineStatus.style.verticalAlign = 'middle';
+ this.offlineStatus.innerHTML = '';
+
+ this.menubarContainer.appendChild(this.offlineStatus);
+
+ // Events are not working, use polling instead (10 secs interval)
+ var thread = window.setTimeout(mxUtils.bind(this, function()
+ {
+ if (appCache.status == appCache.IDLE)
+ {
+ this.offlineStatus.innerHTML = '[' + '<img title="Cached" border="0" src="' + IMAGE_PATH + '/checkmark.gif"/>]';
+ window.clearTimeout(thread);
+ }
+ }), 5000);
+ }
+ }
+ }
+ else
+ {
+ this.updateUserElement();
+ }
+ };
+
+ /**
+ * Hook for subclassers
+ */
+ EditorUi.prototype.updateButtonContainer = function()
+ {
+ // do nothing
+ };
+
+ /**
+ * Hook for subclassers
+ */
+ EditorUi.prototype.updateUserElement = function()
+ {
+ // do nothing
+ };
+
/**
* Updates action states depending on the selection.
*/
@@ -5780,291 +6602,4 @@
var state = graph.view.getState(graph.getSelectionCell());
this.actions.get('editShape').setEnabled(active && state != null && state.shape != null && state.shape.stencil != null);
};
-
- /**
- * Changes the default stylename so that it matches the old named style
- * if one was specified in the XML.
- */
- Graph.prototype.defaultThemeName = 'default-style2';
-
- /**
- * Contains the last XML that was pasted.
- */
- Graph.prototype.lastPasteXml = null;
-
- /**
- * Contains the number of times the last XML was pasted.
- */
- Graph.prototype.pasteCounter = 0;
-
- // Experimental edge mode
- Graph.prototype.edgeMode = urlParams['edge'] != 'move';
-
- /**
- * Sets default style (used in editor.get/setGraphXml below)
- */
- var graphLoadStylesheet = Graph.prototype.loadStylesheet;
- Graph.prototype.loadStylesheet = function()
- {
- graphLoadStylesheet.apply(this, arguments);
- this.currentStyle = 'default-style2';
- };
-
- /**
- * Graph Overrides
- */
- Graph.prototype.defaultScrollbars = urlParams['sb'] != '0';
-
- /**
- * Specifies if the page should be visible for new files. Default is true.
- */
- Graph.prototype.defaultPageVisible = urlParams['pv'] != '0';
-
- /**
- * Specifies if the page should be visible for new files. Default is true.
- */
- Graph.prototype.shadowId = 'dropShadow';
-
- /**
- * Loads the stylesheet for this graph.
- */
- Graph.prototype.setShadowVisible = function(value, fireEvent)
- {
- if (mxClient.IS_SVG)
- {
- fireEvent = (fireEvent != null) ? fireEvent : true;
- this.shadowVisible = value;
-
- if (this.shadowVisible)
- {
- this.view.getDrawPane().setAttribute('filter', 'url(#' + this.shadowId + ')');
- }
- else
- {
- this.view.getDrawPane().removeAttribute('filter');
- }
-
- if (fireEvent)
- {
- this.fireEvent(new mxEventObject('shadowVisibleChanged'));
- }
- }
- };
-
- /**
- * Selects first unlocked layer if one exists
- */
- Graph.prototype.selectUnlockedLayer = function()
- {
- if (this.defaultParent == null)
- {
- var childCount = this.model.getChildCount(this.model.root);
- var cell = null;
- var index = 0;
-
- do
- {
- cell = this.model.getChildAt(this.model.root, index);
- } while (index++ < childCount && mxUtils.getValue(this.getCellStyle(cell), 'locked', '0') == '1')
-
- if (cell != null && index > 1)
- {
- this.setDefaultParent(cell);
- }
- }
- };
-
- /**
- * Adds rack child layout style.
- */
- var graphInit = Graph.prototype.init;
- Graph.prototype.init = function()
- {
- graphInit.apply(this, arguments);
-
- // Override insert location for current mouse point
- var mouseEvent = null;
-
- function setMouseEvent(evt)
- {
- mouseEvent = evt;
-
- // Workaround for member not found in IE8-
- if (mxClient.IS_QUIRKS || document.documentMode == 7 || document.documentMode == 8)
- {
- mouseEvent = mxUtils.clone(evt);
- }
- };
-
- mxEvent.addListener(this.container, 'mouseenter', setMouseEvent);
- mxEvent.addListener(this.container, 'mousemove', setMouseEvent);
-
- mxEvent.addListener(this.container, 'mouseleave', function(evt)
- {
- mouseEvent = null;
- });
-
- // Extends getInsertPoint to use the current mouse location
- this.isMouseInsertPoint = function()
- {
- return mouseEvent != null;
- };
-
- var getInsertPoint = this.getInsertPoint;
-
- this.getInsertPoint = function()
- {
- if (mouseEvent != null)
- {
- return this.getPointForEvent(mouseEvent);
- }
-
- return getInsertPoint.apply(this, arguments);
- };
-
- var layoutManagerGetLayout = this.layoutManager.getLayout;
-
- this.layoutManager.getLayout = function(cell)
- {
- var state = this.graph.view.getState(cell);
- var style = (state != null) ? state.style : this.graph.getCellStyle(cell);
-
- // mxRackContainer may be undefined as it is dynamically loaded at render time
- if (typeof(mxRackContainer) != 'undefined' && style['childLayout'] == 'rack')
- {
- var rackLayout = new mxStackLayout(this.graph, false);
-
- rackLayout.setChildGeometry = function(child, geo)
- {
- var unitSize = 20;
- geo.height = Math.max(geo.height, unitSize);
-
- if (geo.height / unitSize > 1)
- {
- var mod = geo.height % unitSize;
- geo.height += mod > unitSize / 2 ? (unitSize - mod) : -mod;
- }
-
- this.graph.getModel().setGeometry(child, geo);
- };
-
- rackLayout.fill = true;
- rackLayout.unitSize = mxRackContainer.unitSize | 20;
- rackLayout.marginLeft = style['marginLeft'] || 0;
- rackLayout.marginRight = style['marginRight'] || 0;
- rackLayout.marginTop = style['marginTop'] || 0;
- rackLayout.marginBottom = style['marginBottom'] || 0;
- rackLayout.resizeParent = false;
-
- return rackLayout;
- }
-
- return layoutManagerGetLayout.apply(this, arguments);
- }
- };
-
- /**
- * Specifies special libraries that are loaded via dynamic JS. Add cases
- * where the filename cannot be worked out from the package name. The
- * standard scheme for this mapping is stencils/packagename.xml. If there
- * are multiple XML files, any JS files or any anomalies in the filename or
- * directory that contains the file, then an entry must be added here and
- * in EmbedServlet2 for the loading of the shapes to work.
- */
- // Required to avoid 404 for mockup.xml since naming of mxgraph.mockup.anchor does not contain
- // buttons even though it is defined in the mxMockupButtons.js file. This could only be fixed
- // with aliases for existing shapes or aliases for basenames, but this is essentially the same.
- mxStencilRegistry.libraries['mockup'] = [SHAPES_PATH + '/mockup/mxMockupButtons.js'];
-
- mxStencilRegistry.libraries['arrows2'] = [SHAPES_PATH + '/mxArrows.js'];
- mxStencilRegistry.libraries['bpmn'] = [SHAPES_PATH + '/bpmn/mxBpmnShape2.js', STENCIL_PATH + '/bpmn.xml'];
- mxStencilRegistry.libraries['er'] = [SHAPES_PATH + '/er/mxER.js'];
- mxStencilRegistry.libraries['ios'] = [SHAPES_PATH + '/mockup/mxMockupiOS.js'];
- mxStencilRegistry.libraries['rackGeneral'] = [SHAPES_PATH + '/rack/mxRack.js', STENCIL_PATH + '/rack/general.xml'];
- mxStencilRegistry.libraries['rackF5'] = [STENCIL_PATH + '/rack/f5.xml'];
- mxStencilRegistry.libraries['lean_mapping'] = [SHAPES_PATH + '/mxLeanMap.js', STENCIL_PATH + '/lean_mapping.xml'];
- mxStencilRegistry.libraries['basic'] = [SHAPES_PATH + '/mxBasic.js', STENCIL_PATH + '/basic.xml'];
- mxStencilRegistry.libraries['ios7icons'] = [STENCIL_PATH + '/ios7/icons.xml'];
- mxStencilRegistry.libraries['ios7ui'] = [SHAPES_PATH + '/ios7/mxIOS7Ui.js', STENCIL_PATH + '/ios7/misc.xml'];
- mxStencilRegistry.libraries['android'] = [SHAPES_PATH + '/mxAndroid.js', STENCIL_PATH + '/android/android.xml'];
- mxStencilRegistry.libraries['eeLogicGates'] = [STENCIL_PATH + '/electrical/logic_gates.xml'];
- mxStencilRegistry.libraries['eeResistors'] = [STENCIL_PATH + '/electrical/resistors.xml'];
- mxStencilRegistry.libraries['eeCapacitors'] = [STENCIL_PATH + '/electrical/capacitors.xml'];
- mxStencilRegistry.libraries['eeInductors'] = [STENCIL_PATH + '/electrical/inductors.xml'];
- mxStencilRegistry.libraries['eeSwitchesRelays'] = [STENCIL_PATH + '/electrical/switchesRelays.xml', STENCIL_PATH + '/electrical/electro-mechanical.xml'];
- mxStencilRegistry.libraries['eeDiodes'] = [STENCIL_PATH + '/electrical/diodes.xml'];
- mxStencilRegistry.libraries['eeSources'] = [STENCIL_PATH + '/electrical/signal_sources.xml'];
- mxStencilRegistry.libraries['eeTransistors'] = [STENCIL_PATH + '/electrical/mosfets1.xml', STENCIL_PATH + '/electrical/mosfets2.xml', STENCIL_PATH + '/electrical/transistors.xml'];
- mxStencilRegistry.libraries['eeMisc'] = [STENCIL_PATH + '/electrical/electro-mechanical.xml', STENCIL_PATH + '/electrical/miscellaneous.xml'];
- mxStencilRegistry.libraries['eeAudio'] = [STENCIL_PATH + '/electrical/radio.xml'];
- mxStencilRegistry.libraries['eePlcLadder'] = [STENCIL_PATH + '/electrical/plc_ladder.xml'];
- mxStencilRegistry.libraries['eeAbstract'] = [STENCIL_PATH + '/electrical/abstract.xml', STENCIL_PATH + '/electrical/logic_gates.xml'];
- mxStencilRegistry.libraries['eeOptical'] = [STENCIL_PATH + '/electrical/opto_electronics.xml'];
- mxStencilRegistry.libraries['eeVacuumTubes'] = [STENCIL_PATH + '/electrical/vacuum_tubes.xml'];
- mxStencilRegistry.libraries['eeWaveforms'] = [STENCIL_PATH + '/electrical/waveforms.xml'];
- mxStencilRegistry.libraries['eeInstruments'] = [STENCIL_PATH + '/electrical/instruments.xml'];
- mxStencilRegistry.libraries['mockup/buttons'] = [SHAPES_PATH + '/mockup/mxMockupButtons.js'];
- mxStencilRegistry.libraries['mockup/containers'] = [SHAPES_PATH + '/mockup/mxMockupContainers.js'];
- mxStencilRegistry.libraries['mockup/forms'] = [SHAPES_PATH + '/mockup/mxMockupForms.js'];
- mxStencilRegistry.libraries['mockup/graphics'] = [SHAPES_PATH + '/mockup/mxMockupGraphics.js', STENCIL_PATH + '/mockup/misc.xml'];
- mxStencilRegistry.libraries['mockup/markup'] = [SHAPES_PATH + '/mockup/mxMockupMarkup.js'];
- mxStencilRegistry.libraries['mockup/misc'] = [SHAPES_PATH + '/mockup/mxMockupMisc.js', STENCIL_PATH + '/mockup/misc.xml'];
- mxStencilRegistry.libraries['mockup/navigation'] = [SHAPES_PATH + '/mockup/mxMockupNavigation.js', STENCIL_PATH + '/mockup/misc.xml'];
- mxStencilRegistry.libraries['mockup/text'] = [SHAPES_PATH + '/mockup/mxMockupText.js'];
- mxStencilRegistry.libraries['floorplan'] = [SHAPES_PATH + '/mxFloorplan.js', STENCIL_PATH + '/floorplan.xml'];
- mxStencilRegistry.libraries['bootstrap'] = [SHAPES_PATH + '/mxBootstrap.js', STENCIL_PATH + '/bootstrap.xml'];
- mxStencilRegistry.libraries['gmdl'] = [SHAPES_PATH + '/mxGmdl.js', STENCIL_PATH + '/gmdl.xml'];
- mxStencilRegistry.libraries['cabinets'] = [SHAPES_PATH + '/mxCabinets.js', STENCIL_PATH + '/cabinets.xml'];
- mxStencilRegistry.libraries['archimate'] = [SHAPES_PATH + '/mxArchiMate.js'];
- mxStencilRegistry.libraries['archimate3'] = [SHAPES_PATH + '/mxArchiMate3.js'];
- mxStencilRegistry.libraries['sysml'] = [SHAPES_PATH + '/mxSysML.js'];
- mxStencilRegistry.libraries['eip'] = [SHAPES_PATH + '/mxEip.js', STENCIL_PATH + '/eip.xml'];
- mxStencilRegistry.libraries['networks'] = [SHAPES_PATH + '/mxNetworks.js', STENCIL_PATH + '/networks.xml'];
- mxStencilRegistry.libraries['aws3d'] = [SHAPES_PATH + '/mxAWS3D.js', STENCIL_PATH + '/aws3d.xml'];
- mxStencilRegistry.libraries['pid2inst'] = [SHAPES_PATH + '/pid2/mxPidInstruments.js'];
- mxStencilRegistry.libraries['pid2misc'] = [SHAPES_PATH + '/pid2/mxPidMisc.js', STENCIL_PATH + '/pid/misc.xml'];
- mxStencilRegistry.libraries['pid2valves'] = [SHAPES_PATH + '/pid2/mxPidValves.js'];
- mxStencilRegistry.libraries['pidFlowSensors'] = [STENCIL_PATH + '/pid/flow_sensors.xml'];
-
- // Triggers dynamic loading for markers
- mxMarker.getPackageForType = function(type)
- {
- var name = null;
-
- if (type != null && type.length > 0)
- {
- if (type.substring(0, 2) == 'ER')
- {
- name = 'mxgraph.er';
- }
- else if (type.substring(0, 5) == 'sysML')
- {
- name = 'mxgraph.sysml';
- }
- }
-
- return name;
- };
-
- var mxMarkerCreateMarker = mxMarker.createMarker;
-
- mxMarker.createMarker = function(canvas, shape, type, pe, unitX, unitY, size, source, sw, filled)
- {
- if (type != null)
- {
- var f = mxMarker.markers[type];
-
- if (f == null)
- {
- var name = this.getPackageForType(type);
-
- if (name != null)
- {
- mxStencilRegistry.getStencil(name);
- }
- }
- }
-
- return mxMarkerCreateMarker.apply(this, arguments);
- };
})();
diff --git a/war/js/diagramly/Init.js b/war/js/diagramly/Init.js
index b850a06d..e13964ca 100644
--- a/war/js/diagramly/Init.js
+++ b/war/js/diagramly/Init.js
@@ -4,6 +4,9 @@ window.urlParams = window.urlParams || {};
// isLocalStorage controls access to local storage
window.isLocalStorage = window.isLocalStorage || false;
+// Checks for SVG support
+window.isSvgBrowser = window.isSvgBrowser || (navigator.userAgent.indexOf('MSIE') < 0 || document.documentMode >= 9);
+
// CUSTOM_PARAMETERS - URLs for save and export
window.EXPORT_URL = window.EXPORT_URL || 'https://exp.draw.io/ImageExport4/export';
window.SAVE_URL = window.SAVE_URL || 'save';
diff --git a/war/js/diagramly/Pages.js b/war/js/diagramly/Pages.js
index 4c408147..6e44d0b8 100644
--- a/war/js/diagramly/Pages.js
+++ b/war/js/diagramly/Pages.js
@@ -132,7 +132,9 @@ function SelectPage(ui, page)
*/
SelectPage.prototype.execute = function()
{
- if (this.page != null && mxUtils.indexOf(this.ui.pages, this.previousPage) >= 0)
+ var prevIndex = mxUtils.indexOf(this.ui.pages, this.previousPage);
+
+ if (this.page != null && prevIndex >= 0)
{
var page = this.ui.currentPage;
var editor = this.ui.editor;
@@ -144,6 +146,12 @@ SelectPage.prototype.execute = function()
page.viewState = graph.getViewState();
page.root = graph.model.root;
+ // Transitions for switching pages
+// var curIndex = mxUtils.indexOf(this.ui.pages, page);
+// mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transition', null);
+// mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transform',
+// (curIndex > prevIndex) ? 'translate(-50%,0)' : 'translate(50%,0)');
+
// Removes the previous cells and clears selection
graph.view.clear(page.root, true);
graph.clearSelection();
@@ -169,6 +177,9 @@ SelectPage.prototype.execute = function()
graph.view.validate();
graph.sizeDidChange();
+// mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transition', 'transform 0.2s');
+// mxUtils.setPrefixedStyle(graph.view.canvas.style, 'transform', 'translate(0,0)');
+
if (this.neverShown)
{
this.neverShown = false;
diff --git a/war/js/diagramly/sidebar/Sidebar-Electrical.js b/war/js/diagramly/sidebar/Sidebar-Electrical.js
index 502cda32..8e47a437 100644
--- a/war/js/diagramly/sidebar/Sidebar-Electrical.js
+++ b/war/js/diagramly/sidebar/Sidebar-Electrical.js
@@ -23,6 +23,8 @@
var mew = s + '=mxgraph.electrical.waveforms.';
var mein = 'perimeter=ellipsePerimeter;' + s + '=mxgraph.electrical.instruments.';
var meiecl = s + '=mxgraph.electrical.iec_logic_gates.';
+ var merm = s + '=mxgraph.electrical.rot_mech.';
+ var metr = s + '=mxgraph.electrical.transmission.';
var gnmel = 'mxgraph.electrical.logic_gates';
var dtmel = 'electrical logic gate ';
var gnmeiecl = 'mxgraph.electrical.iec_logic_gates';
@@ -57,8 +59,12 @@
var dtmetd = 'electrical thermionic thermo device vacuum tube ';
var gnmew = 'mxgraph.electrical.waveforms';
var dtmew = 'electrical waveform signal ';
+ var gnmerm = 'mxgraph.electrical.rot_mech';
+ var dtmerm = 'electrical rotating equipment mechanical function functions';
+ var gnmetr = 'mxgraph.electrical.transmission';
+ var dtmetr = 'electrical transmission paths bus buses';
- this.addPaletteFunctions('eeLogicGates', 'Electrical / Logic Gates', false,
+ this.addPaletteFunctions('electrical\LogicGates', 'Electrical / Logic Gates', false,
[
this.createVertexTemplateEntry(mel + 'and;', 100, 60, '', 'AND', null, null, this.getTagsForStencil(gnmel, 'and', dtmel).join(' ')),
this.createVertexTemplateEntry(mel + 'buffer;', 100, 60, '', 'Buffer', null, null, this.getTagsForStencil(gnmel, 'buffer', dtmel).join(' ')),
@@ -87,7 +93,7 @@
this.createVertexTemplateEntry(meiecl + 'xor;', 60, 80, '', 'XOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' '))
]);
- this.addPaletteFunctions('eeResistors', 'Electrical / Resistors', false,
+ this.addPaletteFunctions('electrical\Resistors', 'Electrical / Resistors', false,
[
this.createVertexTemplateEntry(mere + 'resistor_1;',
100, 20, '', 'Resistor', null, null, this.getTagsForStencil(gnmere, 'resistor_1', dtmere).join(' ')),
@@ -111,6 +117,8 @@
100, 60, '', 'Resistor (Variable)', null, null, this.getTagsForStencil(gnmere, 'variable_resistor_2', dtmere).join(' ')),
this.createVertexTemplateEntry(mere + 'resistor_with_instrument_or_relay_shunt;',
100, 20, '', 'Resistor (Instrument/Relay Shunt)', null, null, this.getTagsForStencil(gnmere, 'resistor_with_instrument_or_relay_shunt', dtmere).join(' ')),
+ this.createVertexTemplateEntry(mere + 'attenuator;',
+ 100, 60, '', 'Attenuator', null, null, this.getTagsForStencil(gnmere, 'attenuator', dtmere).join(' ')),
this.createVertexTemplateEntry(mere + 'resistor,_adjustable_contact;',
100, 40, '', 'Resistor (Adjustable Contact)', null, null, this.getTagsForStencil(gnmere, 'resistor,_adjustable_contact', dtmere).join(' ')),
this.createVertexTemplateEntry(mere + 'resistor,_shunt;',
@@ -131,7 +139,7 @@
100, 40, '', 'Photoconductive Transducer (Symmetrical)', null, null, this.getTagsForStencil(gnmere, 'symmetrical_photoconductive_transducer', dtmere).join(' '))
]);
- this.addPaletteFunctions('eeCapacitors', 'Electrical / Capacitors', false,
+ this.addPaletteFunctions('electrical\Capacitors', 'Electrical / Capacitors', false,
[
this.createVertexTemplateEntry(mec + 'capacitor_1;',
100, 60, '', 'Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_1', dtmec).join(' ')),
@@ -167,7 +175,7 @@
100, 130, '', 'Multiple Electrolytic Capacitor (Common Positive)', null, null, this.getTagsForStencil(gnmec, 'multiple_electrolytic_capacitor_comm_pos', dtmec).join(' '))
]);
- this.addPaletteFunctions('eeInductors', 'Electrical / Inductors', false,
+ this.addPaletteFunctions('electrical\Inductors', 'Electrical / Inductors', false,
[
this.createVertexTemplateEntry(mei + 'inductor_3;',
100, 8, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_3', dtmei).join(' ')),
@@ -181,31 +189,169 @@
64, 4, '', 'Ferrite Core', null, null, this.getTagsForStencil(gnmei, 'ferrite_core', dtmei).join(' ')),
this.createVertexTemplateEntry(mei + 'iron_core;',
64, 4, '', 'Iron Core', null, null, this.getTagsForStencil(gnmei, 'iron_core', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'magnetic_core;direction=north;',
+ 64, 3, '', 'Magnetic Core', null, null, this.getTagsForStencil(gnmei, 'magnetic core', dtmei).join(' ')),
this.createVertexTemplateEntry(mei + 'transformer_1;',
64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_1', dtmei).join(' ')),
this.createVertexTemplateEntry(mei + 'transformer_2;',
- 64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_2', dtmei).join(' '))
+ 64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_2', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'half_inductor;',
+ 32, 23, '', 'Half Inductor', null, null, this.getTagsForStencil(gnmei, 'half inductor', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'transformer;direction=north;',
+ 64, 64, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, 'transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'inductor;',
+ 100, 42, '', 'Inductor', null, null, this.getTagsForStencil(gnmei, 'inductor', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'choke;',
+ 100, 200, '', 'Choke', null, null, this.getTagsForStencil(gnmei, 'choke', dtmei).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.inductors.variometer;',
+ 150, 88, '', 'Variometer', null, null, this.getTagsForStencil(gnmei, 'variometer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'coaxial_choke;',
+ 300, 50, '', 'Coaxial Choke', null, null, this.getTagsForStencil(gnmei, 'coaxial choke', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'transductor;',
+ 200, 100, '', 'Transductor', null, null, this.getTagsForStencil(gnmei, 'transductor', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'saturating_transformer;',
+ 200, 150, '', 'Saturating Transformer', null, null, this.getTagsForStencil(gnmei, 'saturating_transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'potential_transformer_2;',
+ 92, 40, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'pot_trans_3_windings;',
+ 67, 96, '', 'Pot. Trans. 3 Windings', null, null, this.getTagsForStencil(gnmei, 'potential transformer 3 three windings', dtmei).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.signal_sources.current_source;',
+ 40, 60, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, '', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'adjustable_transformer;',
+ 46, 60, '', 'Adjustable Transformer', null, null, this.getTagsForStencil(gnmei, 'adjustable_transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + '1_phase_induction_volt_reg;',
+ 100, 100, '', '1-Phase Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, '1 phase induction voltage regulator monophase', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'triplex_induction_volt_reg;',
+ 100, 100, '', 'Triplex Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'triplex induction voltage regulator', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'induction_voltage_regulator;',
+ 160, 210, '', 'Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'induction voltage regulator', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'current_transformer_1;',
+ 12, 75, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'current_transformer_2;',
+ 125, 175, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'current_transformer_3;',
+ 75, 10, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'potential_transformer;',
+ 100, 50, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'outdoor_metering_device;',
+ 100, 100, '', 'Outdoor Metering Device', null, null, this.getTagsForStencil(gnmei, 'outdoor metering device', dtmei).join(' ')),
+ this.createVertexTemplateEntry(mei + 'linear_coupler;',
+ 80, 20, '', 'Linear Coupler', null, null, this.getTagsForStencil(gnmei, 'linear coupler', dtmei).join(' '))
]);
- this.addPaletteFunctions('eeSwitchesRelays', 'Electrical / Switches and Relays', false,
+ this.addPaletteFunctions('electrical\SwitchesRelays', 'Electrical / Switches and Relays', false,
[
this.createVertexTemplateEntry(meem + '2-way_switch;',
- 75, 26, '', 'SPDT', null, null, this.getTagsForStencil(gnmeem, '2-way_switch', dtmeem).join(' ')),
+ 75, 26, '', 'SPDT', null, null, this.getTagsForStencil(gnmeem, '2-way switch', dtmeem).join(' ')),
this.createVertexTemplateEntry(meem + 'push_switch_nc;',
- 75, 10, '', 'Pushbutton NC', null, null, this.getTagsForStencil(gnmeem, 'push_switch_nc', dtmeem).join(' ')),
+ 75, 10, '', 'Pushbutton NC', null, null, this.getTagsForStencil(gnmeem, 'push switch nc', dtmeem).join(' ')),
this.createVertexTemplateEntry(meem + 'push_switch_no;',
- 75, 19, '', 'Pushbutton NO', null, null, this.getTagsForStencil(gnmeem, 'push_switch_no', dtmeem).join(' ')),
+ 75, 19, '', 'Pushbutton NO', null, null, this.getTagsForStencil(gnmeem, 'push switch no', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'simple_switch;',
+ 75, 19, '', 'SPST', null, null, this.getTagsForStencil(gnmeem, 'simple switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'switch_disconnector;',
+ 75, 19, '', 'Switch Disconnector', null, null, this.getTagsForStencil(gnmeem, 'switch disconnector', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'fuse;',
+ 75, 16, '', 'Fuse', null, null, this.getTagsForStencil(gnmeem, 'fuse', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'liquid_level_actuated;',
+ 75, 28, '', 'Liquid Level Actuated', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'liquid_level_actuated_2;',
+ 75, 32, '', 'Liquid Level Actuated', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'gas_flow_actuated;',
+ 75, 32, '', 'Gas Flow Actuated', null, null, this.getTagsForStencil(gnmeem, 'gas flow actuated', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'flow_actuated;',
+ 75, 31, '', 'Flow Actuated', null, null, this.getTagsForStencil(gnmeem, 'flow actuated', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'pressure_actuated;',
+ 75, 31, '', 'Pressure Actuated', null, null, this.getTagsForStencil(gnmeem, 'pressure actuated', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'temperature_actuated;',
+ 75, 31, '', 'Temperature Actuated', null, null, this.getTagsForStencil(gnmeem, 'temperature actuated', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'safety_interlock;',
+ 75, 37, '', 'Safety Interlock', null, null, this.getTagsForStencil(gnmeem, 'safety interlock', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'temperature_switch;',
+ 75, 18, '', 'Temperature Switch', null, null, this.getTagsForStencil(gnmeem, 'temperature switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.electro-mechanical.thermostat;fontColor=#000000;fontSize=10;',
+ 75, 7, 'tº', 'Thermostat', null, null, this.getTagsForStencil(gnmeem, 'thermostat', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'limit_switch;',
+ 75, 16, '', 'Limit Switch', null, null, this.getTagsForStencil(gnmeem, 'limit switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'circuit_breaker;',
+ 75, 20, '', 'Circuit Breaker', null, null, this.getTagsForStencil(gnmeem, 'circuit breaker', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'selector_switch;',
+ 75, 66, '', 'Selector Switch', null, null, this.getTagsForStencil(gnmeem, 'selector_switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'shorting_selector;',
+ 60, 66, '', 'Shorting Selector', null, null, this.getTagsForStencil(gnmeem, 'shorting selector', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'proximity_limit_switch;',
+ 75, 55, '', 'Proximity Limit Switch', null, null, this.getTagsForStencil(gnmeem, 'proximity limit switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'inertia_switch;',
+ 75, 19, '', 'Inertia Switch', null, null, this.getTagsForStencil(gnmeem, 'inertia switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'pushbutton_break;',
+ 75, 54, '', 'Pushbutton Break', null, null, this.getTagsForStencil(gnmeem, 'pushbutton break', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'manual_switch;',
+ 75, 18, '', 'Manual Switch', null, null, this.getTagsForStencil(gnmeem, 'manual switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'make_contact;',
+ 75, 16, '', 'Make Contact', null, null, this.getTagsForStencil(gnmeem, 'make contact', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'break_contact;',
+ 75, 10, '', 'Break Contact', null, null, this.getTagsForStencil(gnmeem, 'break contact', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'two_way_contact;',
+ 75, 30, '', 'Two Way Contact', null, null, this.getTagsForStencil(gnmeem, 'two way contact', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'passing_make_contact;',
+ 75, 23, '', 'Passing Make-Contact', null, null, this.getTagsForStencil(gnmeem, 'passing make contact', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'stay_put;',
+ 75, 7, '', 'Stay Put', null, null, this.getTagsForStencil(gnmeem, 'stay put', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'dpst;',
+ 75, 26, '', 'DPST', null, null, this.getTagsForStencil(gnmeem, 'dpst', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'spring_return;',
+ 75, 10, '', 'Spring Return', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'spring_return_2;',
+ 75, 19, '', 'Spring Return', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'limit_switch_no;',
+ 75, 24, '', 'Limit Switch NO', null, null, this.getTagsForStencil(gnmeem, 'limit switch no normally open', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'limit_switch_nc;',
+ 75, 13, '', 'Limit Switch NC', null, null, this.getTagsForStencil(gnmeem, 'limit switch nc normally closed', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'dpdt;',
+ 75, 32, '', 'DPDT', null, null, this.getTagsForStencil(gnmeem, 'dpdt', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + '2_position_switch;',
+ 75, 70, '', '2-Position Switch', null, null, this.getTagsForStencil(gnmeem, '2 position switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + '3_position_switch;',
+ 60, 60, '', '3-Position Switch', null, null, this.getTagsForStencil(gnmeem, '3 position switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + '4_position_switch;',
+ 75, 70, '', '4-Position Switch', null, null, this.getTagsForStencil(gnmeem, '4 position switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'pushbutton_make;',
+ 75, 53, '', 'Pushbutton Make', null, null, this.getTagsForStencil(gnmeem, 'pushbutton make', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'pushbutton_2_circuit;',
+ 75, 73, '', 'Pushbutton 2-Circuit', null, null, this.getTagsForStencil(gnmeem, 'pushbutton 2 circuit', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'time_delay_make;',
+ 75, 31, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'time_delay_break;',
+ 75, 32, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'time_delay_make_2;',
+ 75, 36, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'time_delay_break_2;',
+ 75, 30, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'isolator;',
+ 75, 20, '', 'Isolator', null, null, this.getTagsForStencil(gnmeem, 'isolator', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'changeover_contact;',
+ 75, 20, '', 'Changeover Contact', null, null, this.getTagsForStencil(gnmeem, 'changeover contact', dtmeem).join(' ')),
this.createVertexTemplateEntry(meem + 'reed_switch;',
- 75, 20, '', 'Reed Switch', null, null, this.getTagsForStencil(gnmeem, 'reed_switch', dtmeem).join(' ')),
+ 75, 20, '', 'Reed Switch', null, null, this.getTagsForStencil(gnmeem, 'reed switch', dtmeem).join(' ')),
this.createVertexTemplateEntry(meem + 'relay_coil;',
- 70, 35, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay_coil', dtmeem).join(' ')),
+ 70, 35, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'relay;',
+ 100, 50, '', 'Relay', null, null, this.getTagsForStencil(gnmeem, 'relay', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'relay_contacts;',
+ 30, 24, '', 'Relay Contacts', null, null, this.getTagsForStencil(gnmeem, 'relay contacts', dtmeem).join(' ')),
this.createVertexTemplateEntry(meem + 'resonator;',
100, 50, '', 'Resonator', null, null, this.getTagsForStencil(gnmeem, 'resonator', dtmeem).join(' ')),
- this.createVertexTemplateEntry(meem + 'simple_switch;',
- 75, 32, '', 'SPST', null, null, this.getTagsForStencil(gnmeem, 'simple_switch', dtmeem).join(' '))
+ this.createVertexTemplateEntry(meem + 'pilot_light;',
+ 100, 100, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmeem, 'pilot light', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'relay_coil_2;',
+ 100, 70, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'mercury_switch;',
+ 80, 80, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' ')),
+ this.createVertexTemplateEntry(meem + 'mercury_switch_2;',
+ 50, 90, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' '))
]);
- this.addPaletteFunctions('eeDiodes', 'Electrical / Diodes', false,
+ this.addPaletteFunctions('electrical\Diodes', 'Electrical / Diodes', false,
[
this.createVertexTemplateEntry(med + 'diode;',
100, 60, '', 'PN Diode', null, null, this.getTagsForStencil(gnmed, 'diode', dtmed).join(' ')),
@@ -235,7 +381,7 @@
100, 60, '', 'Transorb 2', null, null, this.getTagsForStencil(gnmed, 'transorb_2', dtmed).join(' '))
]);
- this.addPaletteFunctions('eeSources', 'Electrical / Sources', false,
+ this.addPaletteFunctions('electrical\Sources', 'Electrical / Sources', false,
[
this.createVertexTemplateEntry(mess + 'ac_source;',
60, 60, '', 'AC', null, null, this.getTagsForStencil(gnmess, 'ac_source', dtmess).join(' ')),
@@ -254,10 +400,20 @@
this.createVertexTemplateEntry(mess + 'dependent_source_3;',
60, 60, '', 'Dependent', null, null, this.getTagsForStencil(gnmess, 'dependent_source_3', dtmess).join(' ')),
this.createVertexTemplateEntry(mess + 'noise_source;',
- 60, 60, '', 'Noise', null, null, this.getTagsForStencil(gnmess, 'noise_source', dtmess).join(' '))
+ 60, 60, '', 'Noise', null, null, this.getTagsForStencil(gnmess, 'noise_source', dtmess).join(' ')),
+ this.createVertexTemplateEntry(mess + 'ideal_source;',
+ 60, 60, '', 'Ideal Source', null, null, this.getTagsForStencil(gnmess, 'ideal source', dtmess).join(' ')),
+ this.createVertexTemplateEntry(mess + 'explosive_squib',
+ 60, 60, '', 'Explosive Squib', null, null, this.getTagsForStencil(gnmess, 'explosive squib', dtmem).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.monocell_battery;',
+ 100, 60, '', 'Accumulator / Monocell Battery', null, null, this.getTagsForStencil(gnmess, 'accumulator monocell battery single cell', dtmem).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.multicell_battery;',
+ 100, 60, '', 'Multicell Battery', null, null, this.getTagsForStencil(gnmess, 'accumulator multicell battery multi multiple cell', dtmem).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.multicell_battery_tapped;',
+ 100, 70, '', 'Multicell Battery Tapped', null, null, this.getTagsForStencil(gnmess, 'accumulator multicell battery tapped multi multiple cell', dtmem).join(' '))
]);
- this.addPaletteFunctions('eeTransistors', 'Electrical / Transistors', false,
+ this.addPaletteFunctions('electrical\Transistors', 'Electrical / Transistors', false,
[
this.createVertexTemplateEntry(met + 'npn_transistor_1;',
95, 100, '', 'BJT (NPN)', null, null, this.getTagsForStencil(gnmet, 'npn_transistor_1', dtmet).join(' ')),
@@ -287,7 +443,7 @@
95, 100, '', 'Dual Gate MOSFET (P)', null, null, this.getTagsForStencil(gnmet, 'dual_gate_mosfet_p', dtmet).join(' '))
]);
- this.addPaletteFunctions('eeInstruments', 'Electrical / Instruments', false,
+ this.addPaletteFunctions('electrical\Instruments', 'Electrical / Instruments', false,
[
this.createVertexTemplateEntry(mein + 'ampermeter;',
90, 90, '', 'Ampermeter', null, null, this.getTagsForStencil(gnmein, 'ampermeter', dtmein).join(' ')),
@@ -301,7 +457,7 @@
90, 90, '', 'Voltmeter', null, null, this.getTagsForStencil(gnmein, 'voltmeter', dtmein).join(' '))
]);
- this.addPaletteFunctions('eeMisc', 'Electrical / Misc', false,
+ this.addPaletteFunctions('electrical\Misc', 'Electrical / Misc', false,
[
this.createVertexTemplateEntry(mer + 'aerial_-_antenna_1;',
80, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_1', dtmer).join(' ')),
@@ -309,6 +465,8 @@
79, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_2', dtmer).join(' ')),
this.createVertexTemplateEntry(mer + 'loop_antenna;',
64.8, 69.78, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmer, 'loop_antenna', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'loop_antenna',
+ 100, 100, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmess, 'loop antenna', dtmem).join(' ')),
this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.electro-mechanical.motor_1;html=1;shadow=0;dashed=0;fillColor=#ffffff;align=center;fontSize=30;strokeColor=#000000;strokeWidth=1;',
100, 60, 'M', 'Electrical Motor', null, null, this.getTagsForStencil(gnmeem, 'motor_1', dtmeem).join(' ')),
this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.electro-mechanical.motor_2;html=1;shadow=0;dashed=0;fillColor=#ffffff;align=center;fontSize=30;strokeColor=#000000;strokeWidth=1;',
@@ -333,6 +491,10 @@
60, 50, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmem, 'light_bulb', dtmem).join(' ')),
this.createVertexTemplateEntry(mem + 'neon_lamp_2;',
60, 50, '', 'Neon Lamp', null, null, this.getTagsForStencil(gnmem, 'neon_lamp_2', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'flourescent_lamp',
+ 80, 30, '', 'Flourescent Lamp', null, null, this.getTagsForStencil(gnmess, 'flourescent lamp', dtmem).join(' ')),
+ this.createVertexTemplateEntry(meoe + 'lamp',
+ 50, 100, '', 'Lamp', null, null, this.getTagsForStencil(gnmess, 'lamp', dtmeoe).join(' ')),
this.createVertexTemplateEntry(mem + 'thermocouple;',
80, 81, '', 'Thermocouple', null, null, this.getTagsForStencil(gnmem, 'thermocouple', dtmem).join(' ')),
this.createVertexTemplateEntry(mea + 'amplifier;',
@@ -379,7 +541,7 @@
52, 46, '', 'Highpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'highpass_filter', '').join(' ')),
this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.lowpass_filter;',
52, 46, '', 'Lowpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'lowpass_filter', '').join(' ')),
- this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html=1;shadow=0;dashed=0;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;align=center;overflow=fill;',
+ this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html=1;shadow=0;dashed=0;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;align=center;overflow=fill;fontSize=12;',
100, 94.25,
'<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;">' +
'<tr height="45%">' +
@@ -407,12 +569,104 @@
this.createVertexTemplateEntry(mess + 'equipotential;',
90, 90, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'equipotential', dtmess).join(' ')),
this.createVertexTemplateEntry(mess + 'protective_earth;',
- 50, 40, '', 'Protective Earth', null, null, this.getTagsForStencil(gnmess, 'protective_earth', dtmess).join(' ')),
+ 25, 20, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'protective_earth', dtmess).join(' ')),
this.createVertexTemplateEntry(mess + 'signal_ground;',
- 90, 60, '', 'Signal Ground', null, null, this.getTagsForStencil(gnmess, 'signal_ground', dtmess).join(' '))
+ 45, 30, '', 'Ground', null, null, this.getTagsForStencil(gnmess, 'signal_ground', dtmess).join(' ')),
+ this.createVertexTemplateEntry(mem + 'chassis;',
+ 65, 32, '', 'Chassis', null, null, this.getTagsForStencil(gnmess, 'chassis', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'circuit_breaker;',
+ 100, 13, '', 'Circuit Breaker', null, null, this.getTagsForStencil(gnmess, 'circuit breaker', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'generic_component',
+ 60, 60, '', 'Generic Component', null, null, this.getTagsForStencil(gnmess, 'generic component', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'permanent_magnet',
+ 20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmess, 'permanent magnet', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'thermal_element',
+ 100, 32, '', 'Thermal Element', null, null, this.getTagsForStencil(gnmess, 'thermal element', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'igniter_plug',
+ 72, 39, '', 'Igniter Plug', null, null, this.getTagsForStencil(gnmess, 'igniter plug', dtmem).join(' ')),
+ this.createVertexTemplateEntry('shape=mxgraph.arrows2.arrow;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;dy=0;dx=10;notch=0;',
+ 100, 30, '', 'Pickup Head', null, null, this.getTagsForStencil(gnmess, 'pickup head', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'squib_ignitor',
+ 100, 100, '', 'Squib Ignitor', null, null, this.getTagsForStencil(gnmess, 'squib ignitor', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'transducer',
+ 70, 60, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'transducer_2',
+ 80, 100, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'thermopile',
+ 80, 82, '', 'Thermopile', null, null, this.getTagsForStencil(gnmess, 'thermopile', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'indicator',
+ 60, 60, '', 'Indicator', null, null, this.getTagsForStencil(gnmess, 'indicator', dtmem).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.surge_protector;',
+ 70, 20, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'surge_protector_2;',
+ 70, 24, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;shape=rect;',
+ 130, 50, '', 'Material', null, null, this.getTagsForStencil(gnmess, 'material', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'sensing_link_squib',
+ 130, 40, '', 'Sensing Link Squib', null, null, this.getTagsForStencil(gnmess, 'sensing link squib', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mem + 'delay_element',
+ 100, 100, '', 'Delay Element', null, null, this.getTagsForStencil(gnmess, 'delay_element', dtmem).join(' ')),
+ this.createVertexTemplateEntry(mer + 'buzzer',
+ 80, 50, '', 'Buzzer', null, null, this.getTagsForStencil(gnmess, 'buzzer', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'adapter',
+ 100, 40, '', 'Adapter', null, null, this.getTagsForStencil(gnmess, 'adapter', dtmer).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;perimeter=ellipsePerimeter;',
+ 15, 15, '', 'Circuit Terminal', null, null, this.getTagsForStencil(gnmess, 'circuit terminal', dtmer).join(' ')),
+ this.createEdgeTemplateEntry('endArrow=open;html=1;strokeColor=#000000;strokeWidth=1;endFill=0;endSize=20;',
+ 100, 0, '', 'M/F Contact', null, this.getTagsForStencil(gnmess, '', 'mf contact').join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.mf_contact_2',
+ 100, 10, '', 'MF Contact 2', null, null, this.getTagsForStencil(gnmess, 'mf contact', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'terminal_board',
+ 75, 150, '', 'Terminal Board', null, null, this.getTagsForStencil(gnmess, 'terminal board', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'cable_termination',
+ 100, 50, '', 'Cable Termination', null, null, this.getTagsForStencil(gnmess, 'cable termination', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + '2_conductor_jack',
+ 100, 50, '', '2-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '2 conductor jack two', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + '3_conductor_jack',
+ 100, 50, '', '3-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '3 conductor jack three', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + '2_conductor_plug',
+ 53, 24, '', '2-Conductor Plug', null, null, this.getTagsForStencil(gnmess, '2 conductor plug two', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + '3_conductor_plug',
+ 53, 24, '', '3 Conductor Plug', null, null, this.getTagsForStencil(gnmess, '3 conductor plug', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'normalled_jacks',
+ 230, 65, '', 'Normalled Jacks', null, null, this.getTagsForStencil(gnmess, 'normalled jacks', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'normalled_jack',
+ 110, 65, '', 'Normalled Jack', null, null, this.getTagsForStencil(gnmess, 'normalled jack', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'coaxial_outside_conductor',
+ 300, 150, '', 'Coaxial Outside Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial outside conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'coaxial_center_conductor',
+ 300, 150, '', 'Coaxial Center Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial center conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'large_d_connector',
+ 375, 75, '', 'Large D Connector', null, null, this.getTagsForStencil(gnmess, 'large d connector', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'small_d_connector',
+ 150, 75, '', 'Small D Connector', null, null, this.getTagsForStencil(gnmess, 'small d connector', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'c_header_connector',
+ 200, 75, '', 'C Header Connector', null, null, this.getTagsForStencil(gnmess, 'c header connector', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'ac_out',
+ 200, 100, '', 'AC Out', null, null, this.getTagsForStencil(gnmess, 'ac out alternate current', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'shielded_jack_plug',
+ 50, 100, '', 'Shielded Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'shielded jack plug', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'coaxial_jack_plug',
+ 50, 100, '', 'Coaxial Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'coaxial jack/plug', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_2_conductor_1',
+ 100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_2_conductor_2',
+ 100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_2_conductor_3',
+ 100, 50, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_3_conductor_1',
+ 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_3_conductor_2',
+ 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_3_conductor_3',
+ 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_3_conductor_4',
+ 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
+ this.createVertexTemplateEntry(mem + 'f_m_3_conductor_5',
+ 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' '))
]);
- this.addPaletteFunctions('eeAudio', 'Electrical / Audio', false,
+ this.addPaletteFunctions('electrical\Audio', 'Electrical / Audio', false,
[
this.createVertexTemplateEntry(mer + 'dipole;',
100, 40, '', 'Dipole', null, null, this.getTagsForStencil(gnmer, 'dipole', dtmer).join(' ')),
@@ -429,10 +683,12 @@
this.createVertexTemplateEntry(meem + 'loudspeaker;',
25, 50, '', 'Loudspeaker', null, null, this.getTagsForStencil(gnmeem, 'loudspeaker', dtmeem).join(' ')),
this.createVertexTemplateEntry(mer + 'headphones;',
- 66, 56, '', 'Headphones', null, null, this.getTagsForStencil(gnmer, 'headphones', dtmer).join(' '))
+ 66, 56, '', 'Headphones', null, null, this.getTagsForStencil(gnmer, 'headphones', dtmer).join(' ')),
+ this.createVertexTemplateEntry(meem + 'bell;',
+ 47, 60, '', 'Bell', null, null, this.getTagsForStencil(gnmeem, 'bell', dtmeem).join(' '))
]);
- this.addPaletteFunctions('eePlcLadder', 'Electrical / PLC Ladder', false,
+ this.addPaletteFunctions('electrical\PlcLadder', 'Electrical / PLC Ladder', false,
[
this.createVertexTemplateEntry(mep + 'contact;',
50, 25, '', 'Contact', null, null, this.getTagsForStencil(gnmep, 'contact', dtmep).join(' ')),
@@ -448,7 +704,7 @@
50, 25, '', 'Output', null, null, this.getTagsForStencil(gnmep, 'output_2', dtmep).join(' '))
]);
- this.addPaletteFunctions('eeOptical', 'Electrical / Optical', false,
+ this.addPaletteFunctions('electrical\Optical', 'Electrical / Optical', false,
[
this.createVertexTemplateEntry(meoe + '7_segment_display;',
74.7, 96.1, '', '7 Segment Display', null, null, this.getTagsForStencil(gnmeoe, '7_segment_display', dtmeoe).join(' ')),
@@ -480,7 +736,7 @@
100, 70, '', 'Solar Cell', null, null, this.getTagsForStencil(gnmeoe, 'solar_cell', dtmeoe).join(' '))
]);
- this.addPaletteFunctions('eeVacuumTubes', 'Electrical / Vacuum Tubes', false,
+ this.addPaletteFunctions('electrical\VacuumTubes', 'Electrical / Vacuum Tubes', false,
[
this.createVertexTemplateEntry(metd + 'diode;',
70, 77, '', 'Diode', null, null, this.getTagsForStencil(gnmetd, 'diode', dtmetd).join(' ')),
@@ -498,7 +754,7 @@
70, 87, '', 'Photocell', null, null, this.getTagsForStencil(gnmetd, 'photocell', dtmetd).join(' '))
]);
- this.addPaletteFunctions('eeWaveforms', 'Electrical / Waveforms', false,
+ this.addPaletteFunctions('electrical\Waveforms', 'Electrical / Waveforms', false,
[
this.createVertexTemplateEntry(mew + 'pulse_1;',
90, 90, '', 'Pulse', null, null, this.getTagsForStencil(gnmew, 'pulse_1', dtmew).join(' ')),
@@ -517,6 +773,108 @@
this.createVertexTemplateEntry(mew + 'step_2;',
90, 90, '', 'Step', null, null, this.getTagsForStencil(gnmew, 'step_2', dtmew).join(' '))
]);
+
+ this.addPaletteFunctions('electrical\RotMech', 'Electrical / Rotating Equipment & Mechanical Functions', false,
+ [
+ this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=32;fontColor=#000000;perimeter=ellipsePerimeter;',
+ 100, 100, 'M', 'Rotating Machine', null, null, this.getTagsForStencil(gnmerm, 'rotating machine', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'armature;',
+ 100, 100, '', 'Armature', null, null, this.getTagsForStencil(gnmerm, 'armature', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'field;',
+ 90, 15, '', 'Field', null, null, this.getTagsForStencil(gnmerm, 'field', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(mem + 'permanent_magnet;',
+ 20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmerm, 'permanent magnet', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'winding_connection;',
+ 100, 100, '', 'Winding Connection', null, null, this.getTagsForStencil(gnmerm, 'winding connection', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'synchro;',
+ 80, 100, '', 'Synchro', null, null, this.getTagsForStencil(gnmerm, 'synchro', dtmerm).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;html=1;verticalAlign=top;strokeWidth=1;shape=trapezoid;perimeter=none;',
+ 75, 25, '', 'Brake', null, null, this.getTagsForStencil(gnmerm, 'brake', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'gearing;',
+ 100, 64, '', 'Gearing', null, null, this.getTagsForStencil(gnmerm, 'gearing', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.rot_mech.rotation;',
+ 69, 54, '', 'Rotation', null, null, this.getTagsForStencil(gnmerm, 'rotation', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'clutch;',
+ 100, 20, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'clutch_2;',
+ 90, 60, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'delayed_action;',
+ 72, 50, '', 'Delayed Action', null, null, this.getTagsForStencil(gnmerm, 'delayed action', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'manual_control;',
+ 50, 50, '', 'Manual Control', null, null, this.getTagsForStencil(gnmerm, 'manual control', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'blocking_device;',
+ 100, 15, '', 'Blocking Device', null, null, this.getTagsForStencil(gnmerm, 'blocking device', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'latching_device;',
+ 100, 22, '', 'Latching Device', null, null, this.getTagsForStencil(gnmerm, 'latching device', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'mechanical_interlock;',
+ 100, 30, '', 'Mechanical Interlock', null, null, this.getTagsForStencil(gnmerm, 'mechanical interlock', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'automatic_return;',
+ 100, 12, '', 'Automatic Return', null, null, this.getTagsForStencil(gnmerm, 'automatic_return', dtmerm).join(' ')),
+ this.createVertexTemplateEntry(merm + 'detent;',
+ 100, 8, '', 'Detent', null, null, this.getTagsForStencil(gnmerm, 'detent', dtmerm).join(' '))
+ ]);
+
+ var sb = this;
+
+ var fns =
+ [
+ this.createVertexTemplateEntry(metr + 'bus_width;',
+ 130, 156, '', 'Bus Width', null, null, this.getTagsForStencil(gnmetr, 'bus width', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'line_concentrator;',
+ 130, 130, '', 'Line Concentrator', null, null, this.getTagsForStencil(gnmetr, 'line concentrator', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'cable_group;',
+ 130, 130, '', 'Cable Group', null, null, this.getTagsForStencil(gnmetr, 'cable group', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'overground_enclosure;',
+ 130, 136, '', 'Overground Enclosure', null, null, this.getTagsForStencil(gnmetr, 'overground enclosure', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'optical_fiber;',
+ 130, 80, '', 'Optical Fiber', null, null, this.getTagsForStencil(gnmetr, 'optical fiber', dtmetr).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;',
+ 10, 10, '', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'terminal_3_phase;',
+ 43, 10, '', 'Terminal 3 Phase', null, null, this.getTagsForStencil(gnmetr, 'Terminal 3 Phase', dtmetr).join(' ')),
+ this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;fillColor=#ffffff;strokeColor=#000000;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontColor=#000000;fontSize=50;fontStyle=1;perimeter=ellipsePerimeter;',
+ 130, 130, 'T', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'line_cable;',
+ 130, 60, '', 'Line/Cable', null, null, this.getTagsForStencil(gnmetr, 'line cable', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'anticreepage_device;',
+ 130, 88, '', 'Anticreepage Device', null, null, this.getTagsForStencil(gnmetr, 'anticreepage device', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'testPoint;',
+ 60, 130, '', 'Test Point', null, null, this.getTagsForStencil(gnmetr, 'test point', dtmetr).join(' ')),
+ this.createEdgeTemplateEntry('endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;',
+ 100, 0, '', 'Transmission Path', null, this.getTagsForStencil(gnmess, '', 'transmission path').join(' ')),
+ this.createEdgeTemplateEntry('endArrow=classicThin;html=1;strokeColor=#000000;strokeWidth=1;endSize=20;',
+ 100, 0, '', 'Direction of Flow', null, this.getTagsForStencil(gnmess, '', 'direction flow').join(' ')),
+ this.createVertexTemplateEntry(metr + 'straightBus;',
+ 90, 130, '', 'Straight Bus', null, null, this.getTagsForStencil(gnmetr, 'straight bus', dtmetr).join(' ')),
+ this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeColor=#000000;strokeWidth=1;fillColor=#FFFFFF;',
+ 130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')),
+ this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeColor=#000000;strokeWidth=1;fillColor=#FFFFFF;flipH=1;',
+ 130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + '2_line_bus;',
+ 130, 25, '', '2-Line Bus', null, null, this.getTagsForStencil(gnmetr, '2 two line bus', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + '3_line_bus;',
+ 130, 30, '', '3-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + '4_line_bus;',
+ 130, 75, '', '4-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + '8_line_bus;',
+ 130, 180, '', '8-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'twoLineBusElbow;notch=25;',
+ 120, 120, '', '2-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '2 two line bus elbow', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'threeLineBusElbow;notch=30;',
+ 120, 120, '', '3-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '3 two line bus elbow', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'fourLineBusElbow;notch=75;',
+ 120, 120, '', '4-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '4 two line bus elbow', dtmetr).join(' ')),
+ this.createVertexTemplateEntry(metr + 'eightLineBusElbow;notch=180;',
+ 200, 200, '', '8-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '8 two line bus elbow', dtmetr).join(' '))
+ ];
+
+ this.addPalette('electrical\Transmission', 'Electrical / Transmission Paths', 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 43e6ec78..68a1e5c6 100644
--- a/war/js/diagramly/sidebar/Sidebar.js
+++ b/war/js/diagramly/sidebar/Sidebar.js
@@ -85,6 +85,11 @@
Sidebar.prototype.archimate3 = ['Application', 'Business', 'Composite', 'Implementation and Migration', 'Motivation', 'Physical', 'Relationships', 'Strategy', 'Technology'];
/**
+ *
+ */
+ Sidebar.prototype.electrical = ['LogicGates', 'Resistors', 'Capacitors', 'Inductors', 'SwitchesRelays', 'Diodes', 'Sources', 'Transistors', 'Misc', 'Audio', 'PlcLadder', 'Abstract', 'Optical', 'VacuumTubes', 'Waveforms', 'Instruments', 'RotMech', 'Transmission'];
+
+ /**
*
*/
Sidebar.prototype.configuration = [{id: 'general', libs: ['general', 'misc', 'advanced']}, {id: 'uml'}, {id: 'search'}, {id: 'er'},
@@ -103,9 +108,7 @@
'Mixers', 'Piping', 'Pumps', 'Pumps DIN', 'Pumps ISO', 'Separators', 'Shaping Machines', 'Valves', 'Vessels']},
{id: 'signs', prefix: 'signs', libs: Sidebar.prototype.signs},
{id: 'rack', prefix: 'rack', libs: Sidebar.prototype.rack},
- {id: 'electrical', prefix: 'ee', libs: ['LogicGates', 'Resistors', 'Capacitors', 'Inductors', 'SwitchesRelays', 'Diodes',
- 'Sources', 'Transistors', 'Misc', 'Audio', 'PlcLadder', 'Abstract', 'Optical',
- 'VacuumTubes', 'Waveforms', 'Instruments']},
+ {id: 'electrical', prefix: 'electrical', libs: Sidebar.prototype.electrical},
{id: 'aws2', prefix: 'aws2', libs: Sidebar.prototype.aws2},
{id: 'pid', prefix: 'pid', libs: Sidebar.prototype.pids},
{id: 'cisco', prefix: 'cisco', libs: Sidebar.prototype.cisco},
@@ -573,6 +576,7 @@
var office = this.office;
var veeam = this.veeam;
var archimate3 = this.archimate3;
+ var electrical = this.electrical;
if (urlParams['createindex'] == '1')
{
diff --git a/war/js/diagramly/vsdx/mxVsdxModel.js b/war/js/diagramly/vsdx/mxVsdxModel.js
deleted file mode 100644
index 239cd03f..00000000
--- a/war/js/diagramly/vsdx/mxVsdxModel.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * mxVsdxModel
- *
- */
-
-function mxVsdxModel()
-{
-};
-
-mxVsdxModel.prototype.decode = function(data)
-{
- var unzipFinished = 0;
- var srcDocs = new mxDictionary();
- zip.workerScripts = 'js/deflate/';
- zip.useWebWorkers = false;
-
- var unzipBlob = function(blob, callback)
- {
- zip.createReader(new zip.BlobReader(blob), function(zipReader)
- {
- zipReader.getEntries(function(entries)
- {
- for (var i = 0; i < entries.length; i++)
- {
- unzipFinished = unzipFinished + 1;
-
- (function(entry)
- {
- entry.getData(new zip.TextWriter(), function(text) {
- callback(entry, text);
- }, function()
- {
- // console.log('progress', arguments);
- });
-
- })(entries[i]);
- }
- });
- }, onerror);
- }
-
- var doc;
- var parser = new DOMParser();
-
- unzipBlob(data, function(entry, data)
- {
- doc = parser.parseFromString(data, 'text/xml');
-
- srcDocs.put(entry.filename, doc);
- unzipFinished = unzipFinished - 1;
-
- if (unzipFinished == 0)
- {
- //the point when we have a filled array of unzipped DOM documents.
- //getDocument(srcDocs, "visio/pages/page1.xml");
- };
-
- return null;
- });
-}; \ No newline at end of file
diff --git a/war/js/embed-static.min.js b/war/js/embed-static.min.js
index e0088b7b..83701c47 100644
--- a/war/js/embed-static.min.js
+++ b/war/js/embed-static.min.js
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+w.join(",")+"}";f=t;return r}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=mxLoadResources=!1,mxLanguage="en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||1E8;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.1.1",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.1.2",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/")||
@@ -1638,16 +1638,16 @@ mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);e==mxConstants.NONE&&d==mxConstant
d.setAttribute("label",a.value||""));null!=c&&0<c.length?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=
a.getSource()};Graph.prototype.dblClick=function(a,b){if(this.isEnabled()){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);if(this.firstClickState==d&&this.firstClickSource==e&&(null==d||null==d.text||null==d.text.node||!mxUtils.contains(d.text.boundingBox,c.x,c.y)&&!mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a))))if(null==d&&!this.isCellLocked(this.getDefaultParent())||
null!=d&&!this.isCellLocked(d.cell))if(null!=d||mxClient.IS_VML&&e==this.view.getCanvas()||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)b=this.addText(c.x,c.y,d)}mxGraph.prototype.dblClick.call(this,a,b)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*
-e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0))),a=this.snap(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,b,c){var d=
-new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-
-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=function(a){return a};
-Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=function(a,b,
-c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],"click",
-b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,b){this.startX=
-b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&(b.getState()==
-this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),h=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=h?(g.isBlankLink(h)?window.open(h):(null!=b&&b(d.getEvent()),"#"==h.charAt(0)?window!=window.top?window.open(g.baseUrl+
-h,"_top"):window.location.hash=h:window!=window.top?window.open(g.getAbsoluteUrl(h),"_top"):window.location=h),d.consume()):null!=c&&(!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor="pointer",
-null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
+e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(a,b,c){var d=new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=
+new mxPoint(Math.round((a-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=
+function(a){return a};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=
+function(a,b,c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],
+"click",b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,
+b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&
+(b.getState()==this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),h=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=h?(g.isBlankLink(h)?window.open(h):(null!=b&&b(d.getEvent()),"#"==h.charAt(0)?window!=window.top?
+window.open(g.baseUrl+h,"_top"):window.location.hash=h:window!=window.top?window.open(g.getAbsoluteUrl(h),"_top"):window.location=h),d.consume()):null!=c&&(!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor=
+"pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
try{for(var f=this.cloneCells(a,!1),g=0;g<a.length;g++){var h=c.getParent(a[g]),k=this.moveCells([f[g]],d,d,!1,h)[0];e.push(k);if(b)c.add(h,f[g]);else{var l=h.getIndex(a[g]);c.add(h,f[g],l+1)}}}finally{c.endUpdate()}return e};Graph.prototype.insertImage=function(a,b,c){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=
a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=
[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;h=this.view.scale;e=e/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var l=this.getCellGeometry(c[f].cell),d=d+k;null!=l&&(l=l.clone(),
diff --git a/war/js/mxgraph/Actions.js b/war/js/mxgraph/Actions.js
index 151f3a97..d292ff34 100644
--- a/war/js/mxgraph/Actions.js
+++ b/war/js/mxgraph/Actions.js
@@ -232,6 +232,13 @@ Actions.prototype.init = function()
}, null, null, 'Ctrl+Shift+U');
this.addAction('removeFromGroup', function() { graph.removeCellsFromParent(); });
// Adds action
+ this.addAction('edit', function()
+ {
+ if (graph.isEnabled())
+ {
+ graph.startEditingAtCell();
+ }
+ }, null, null, 'F2/Enter');
this.addAction('editData...', function()
{
var cell = graph.getSelectionCell() || graph.getModel().getRoot();
diff --git a/war/js/mxgraph/Dialogs.js b/war/js/mxgraph/Dialogs.js
index 7478b408..d3de8537 100644
--- a/war/js/mxgraph/Dialogs.js
+++ b/war/js/mxgraph/Dialogs.js
@@ -2261,47 +2261,44 @@ var EditDataDialog = function(ui, cell)
var addBtn = mxUtils.button(mxResources.get('addProperty'), function()
{
- if (nameInput.value.length > 0)
+ var name = nameInput.value;
+
+ if (name.length > 0 && name != 'label' && name != 'placeholders')
{
- var name = nameInput.value;
-
- if (name != null && name.length > 0 && name != 'label' && name != 'placeholders')
+ try
{
- try
+ var idx = mxUtils.indexOf(names, name);
+
+ if (idx >= 0 && texts[idx] != null)
{
- var idx = mxUtils.indexOf(names, name);
+ texts[idx].focus();
+ }
+ else
+ {
+ // Checks if the name is valid
+ var clone = value.cloneNode(false);
+ clone.setAttribute(name, '');
- if (idx >= 0 && texts[idx] != null)
+ if (idx >= 0)
{
- texts[idx].focus();
+ names.splice(idx, 1);
+ texts.splice(idx, 1);
}
- else
- {
- // Checks if the name is valid
- var clone = value.cloneNode(false);
- clone.setAttribute(name, '');
-
- if (idx >= 0)
- {
- names.splice(idx, 1);
- texts.splice(idx, 1);
- }
-
- names.push(name);
- var text = form.addTextarea(name + ':', '', 2);
- text.style.width = '100%';
- texts.push(text);
- addRemoveButton(text, name);
- text.focus();
- }
+ names.push(name);
+ var text = form.addTextarea(name + ':', '', 2);
+ text.style.width = '100%';
+ texts.push(text);
+ addRemoveButton(text, name);
- nameInput.value = '';
- }
- catch (e)
- {
- mxUtils.alert(e);
+ text.focus();
}
+
+ nameInput.value = '';
+ }
+ catch (e)
+ {
+ mxUtils.alert(e);
}
}
else
@@ -2341,6 +2338,7 @@ var EditDataDialog = function(ui, cell)
// Clones and updates the value
value = value.cloneNode(true);
+ var removeLabel = false;
for (var i = 0; i < names.length; i++)
{
@@ -2351,9 +2349,17 @@ var EditDataDialog = function(ui, cell)
else
{
value.setAttribute(names[i], texts[i].value);
+ removeLabel = removeLabel || (names[i] == 'placeholder' &&
+ value.getAttribute('placeholders') == '1');
}
}
+ // Removes label if placeholder is assigned
+ if (removeLabel)
+ {
+ value.removeAttribute('label');
+ }
+
// Updates the value of the cell (undoable)
graph.getModel().setValue(cell, value);
}
@@ -2773,6 +2779,13 @@ var LayersWindow = function(editorUi, x, y, w, h)
evt.stopPropagation();
evt.preventDefault();
});
+
+ // Workaround for "element not found" error in FF
+ mxEvent.addListener(div, 'drop', function(evt)
+ {
+ evt.stopPropagation();
+ evt.preventDefault();
+ });
var layerCount = null;
var selectionLayer = null;
diff --git a/war/js/mxgraph/EditorUi.js b/war/js/mxgraph/EditorUi.js
index 9e750bd1..c144f105 100644
--- a/war/js/mxgraph/EditorUi.js
+++ b/war/js/mxgraph/EditorUi.js
@@ -2544,7 +2544,7 @@ EditorUi.prototype.updateActionStates = function()
// Updates action states
var actions = ['cut', 'copy', 'bold', 'italic', 'underline', 'delete', 'duplicate',
'editStyle', 'editTooltip', 'editLink', 'backgroundColor', 'borderColor',
- 'toFront', 'toBack', 'lockUnlock', 'solid', 'dashed',
+ 'edit', 'toFront', 'toBack', 'lockUnlock', 'solid', 'dashed',
'dotted', 'fillColor', 'gradientColor', 'shadow', 'fontColor',
'formattedText', 'rounded', 'toggleRounded', 'sharp', 'strokeColor'];
diff --git a/war/js/mxgraph/Graph.js b/war/js/mxgraph/Graph.js
index 177b4767..9520fb06 100644
--- a/war/js/mxgraph/Graph.js
+++ b/war/js/mxgraph/Graph.js
@@ -4254,10 +4254,10 @@ if (typeof mxVertexHandler != 'undefined')
var pt = this.getInsertPoint();
// Places at same x-coord and 2 grid sizes below existing graph
- var x = this.snap(Math.max(pt.x, bds.x / view.scale - view.translate.x +
- ((bds.width == 0) ? this.gridSize : 0)));
- var y = this.snap(Math.max(pt.y, (bds.y + bds.height) / view.scale - view.translate.y +
- ((bds.height == 0) ? 1 : 2) * this.gridSize));
+ var x = this.snap(Math.round(Math.max(pt.x, bds.x / view.scale - view.translate.x +
+ ((bds.width == 0) ? this.gridSize : 0))));
+ var y = this.snap(Math.round(Math.max(pt.y, (bds.y + bds.height) / view.scale - view.translate.y +
+ ((bds.height == 0) ? 1 : 2) * this.gridSize)));
return new mxPoint(x, y);
};
diff --git a/war/js/mxgraph/Menus.js b/war/js/mxgraph/Menus.js
index e44a8bc3..6962f902 100644
--- a/war/js/mxgraph/Menus.js
+++ b/war/js/mxgraph/Menus.js
@@ -432,8 +432,8 @@ Menus.prototype.init = function()
this.put('edit', new Menu(mxUtils.bind(this, function(menu, parent)
{
this.addMenuItems(menu, ['undo', 'redo', '-', 'cut', 'copy', 'paste', 'delete', '-', 'duplicate', '-',
- 'editData', 'editTooltip', 'editStyle', '-', 'editLink', 'openLink', '-', 'selectVertices',
- 'selectEdges', 'selectAll', 'selectNone', '-', 'lockUnlock']);
+ 'editData', 'editTooltip', 'editStyle', '-', 'edit', '-', 'editLink', 'openLink', '-',
+ 'selectVertices', 'selectEdges', 'selectAll', 'selectNone', '-', 'lockUnlock']);
})));
this.put('extras', new Menu(mxUtils.bind(this, function(menu, parent)
{
@@ -1024,7 +1024,7 @@ Menus.prototype.createPopupMenu = function(menu, cell, evt)
if (graph.getSelectionCount() == 1)
{
menu.addSeparator();
- this.addMenuItems(menu, ['editData', 'editLink'], null, evt);
+ this.addMenuItems(menu, ['edit', '-', 'editData', 'editLink'], null, evt);
// Shows edit image action if there is an image in the style
if (graph.getModel().isVertex(cell) && mxUtils.getValue(state.style, mxConstants.STYLE_IMAGE, null) != null)
diff --git a/war/js/reader.min.js b/war/js/reader.min.js
index 37d4356f..c4071e89 100644
--- a/war/js/reader.min.js
+++ b/war/js/reader.min.js
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+w.join(",")+"}";f=t;return r}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=mxLoadResources=!1,mxLanguage="en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||1E8;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.1.1",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.0.1.2",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/")||
@@ -1638,16 +1638,16 @@ mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);e==mxConstants.NONE&&d==mxConstant
d.setAttribute("label",a.value||""));null!=c&&0<c.length?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=
a.getSource()};Graph.prototype.dblClick=function(a,b){if(this.isEnabled()){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);if(this.firstClickState==d&&this.firstClickSource==e&&(null==d||null==d.text||null==d.text.node||!mxUtils.contains(d.text.boundingBox,c.x,c.y)&&!mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a))))if(null==d&&!this.isCellLocked(this.getDefaultParent())||
null!=d&&!this.isCellLocked(d.cell))if(null!=d||mxClient.IS_VML&&e==this.view.getCanvas()||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)b=this.addText(c.x,c.y,d)}mxGraph.prototype.dblClick.call(this,a,b)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*
-e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0))),a=this.snap(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,b,c){var d=
-new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-
-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=function(a){return a};
-Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=function(a,b,
-c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],"click",
-b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,b){this.startX=
-b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&(b.getState()==
-this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),h=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=h?(g.isBlankLink(h)?window.open(h):(null!=b&&b(d.getEvent()),"#"==h.charAt(0)?window!=window.top?window.open(g.baseUrl+
-h,"_top"):window.location.hash=h:window!=window.top?window.open(g.getAbsoluteUrl(h),"_top"):window.location=h),d.consume()):null!=c&&(!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor="pointer",
-null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
+e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(a,b,c){var d=new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=
+new mxPoint(Math.round((a-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=
+function(a){return a};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=
+function(a,b,c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],
+"click",b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,
+b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&
+(b.getState()==this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),h=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=h?(g.isBlankLink(h)?window.open(h):(null!=b&&b(d.getEvent()),"#"==h.charAt(0)?window!=window.top?
+window.open(g.baseUrl+h,"_top"):window.location.hash=h:window!=window.top?window.open(g.getAbsoluteUrl(h),"_top"):window.location=h),d.consume()):null!=c&&(!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor=
+"pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
try{for(var f=this.cloneCells(a,!1),g=0;g<a.length;g++){var h=c.getParent(a[g]),k=this.moveCells([f[g]],d,d,!1,h)[0];e.push(k);if(b)c.add(h,f[g]);else{var l=h.getIndex(a[g]);c.add(h,f[g],l+1)}}}finally{c.endUpdate()}return e};Graph.prototype.insertImage=function(a,b,c){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=
a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=
[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;h=this.view.scale;e=e/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var k=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var l=this.getCellGeometry(c[f].cell),d=d+k;null!=l&&(l=l.clone(),
diff --git a/war/js/shapes.min.js b/war/js/shapes.min.js
index 2ab13c9d..05dc6d0d 100644
--- a/war/js/shapes.min.js
+++ b/war/js/shapes.min.js
@@ -1642,7 +1642,26 @@ mxShapeEipInvalidMessageChannel.prototype.constraints=[new mxConnectionConstrain
0),!0),new mxConnectionConstraint(new mxPoint(0.4,0),!0),new mxConnectionConstraint(new mxPoint(0.45,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.55,0),!0),new mxConnectionConstraint(new mxPoint(0.6,0),!0),new mxConnectionConstraint(new mxPoint(0.65,0),!0),new mxConnectionConstraint(new mxPoint(0.7,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0.8,0),!0),new mxConnectionConstraint(new mxPoint(0.85,
0),!0),new mxConnectionConstraint(new mxPoint(0.9,0),!0),new mxConnectionConstraint(new mxPoint(0.95,0),!0),new mxConnectionConstraint(new mxPoint(0.05,1),!0),new mxConnectionConstraint(new mxPoint(0.1,1),!0),new mxConnectionConstraint(new mxPoint(0.15,1),!0),new mxConnectionConstraint(new mxPoint(0.2,1),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.3,1),!0),new mxConnectionConstraint(new mxPoint(0.35,1),!0),new mxConnectionConstraint(new mxPoint(0.4,
1),!0),new mxConnectionConstraint(new mxPoint(0.45,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.55,1),!0),new mxConnectionConstraint(new mxPoint(0.6,1),!0),new mxConnectionConstraint(new mxPoint(0.65,1),!0),new mxConnectionConstraint(new mxPoint(0.7,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0),new mxConnectionConstraint(new mxPoint(0.8,1),!0),new mxConnectionConstraint(new mxPoint(0.85,1),!0),new mxConnectionConstraint(new mxPoint(0.9,
-1),!0),new mxConnectionConstraint(new mxPoint(0.95,1),!0)];function mxFloorplanWall(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWall,mxShape);mxFloorplanWall.prototype.cst={WALL:"mxgraph.floorplan.wall",WALL_THICKNESS:"wallThickness"};mxFloorplanWall.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
+1),!0),new mxConnectionConstraint(new mxPoint(0.95,1),!0)];function mxShapeElectricalTestPoint(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalTestPoint,mxShape);mxShapeElectricalTestPoint.prototype.cst={SHAPE_TEST_POINT:"mxgraph.electrical.transmission.testPoint"};
+mxShapeElectricalTestPoint.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e=Math.min(b,c);a.setFillColor(d);a.begin();a.ellipse(0.5*b-e/2,0,e,e);a.fillAndStroke();c>b&&(a.begin(),a.moveTo(0.5*b,e),a.lineTo(0.5*b,c),a.stroke())};mxCellRenderer.prototype.defaultShapes[mxShapeElectricalTestPoint.prototype.cst.SHAPE_TEST_POINT]=mxShapeElectricalTestPoint;
+mxShapeElectricalTestPoint.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0)];function mxShapeElectricalStraightBus(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalStraightBus,mxShape);mxShapeElectricalStraightBus.prototype.cst={SHAPE_STRAIGHT_BUS:"mxgraph.electrical.transmission.straightBus"};
+mxShapeElectricalStraightBus.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);Math.min(b,c);d=0.2*b;e=0;e=b>c?0.5*c:b/2;a.begin();a.moveTo(b-d,0);a.lineTo(b-d,c-e);a.lineTo(b,c-e);a.lineTo(0.5*b,c);a.lineTo(0,c-e);a.lineTo(d,c-e);a.lineTo(d,0);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes[mxShapeElectricalStraightBus.prototype.cst.SHAPE_STRAIGHT_BUS]=mxShapeElectricalStraightBus;
+mxShapeElectricalStraightBus.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0)];function mxShapeElectricalTwoLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalTwoLineBusElbow,mxShape);mxShapeElectricalTwoLineBusElbow.prototype.cst={SHAPE_TWO_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.twoLineBusElbow"};
+mxShapeElectricalTwoLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke()};mxCellRenderer.prototype.defaultShapes[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW]=mxShapeElectricalTwoLineBusElbow;
+mxShapeElectricalTwoLineBusElbow.prototype.constraints=null;Graph.handleFactory[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var e=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-e)},function(a,e){this.state.style.notch=Math.round(0.2*Math.max(0,a.width-e.y+a.y))/0.2})]};
+function mxShapeElectricalThreeLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalThreeLineBusElbow,mxShape);mxShapeElectricalThreeLineBusElbow.prototype.cst={SHAPE_THREE_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.threeLineBusElbow"};
+mxShapeElectricalThreeLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke();a.begin();a.moveTo(0,c-f/2);a.lineTo(b-d/2,c-f/2);a.lineTo(b-d/2,0);a.stroke()};
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW]=mxShapeElectricalThreeLineBusElbow;mxShapeElectricalThreeLineBusElbow.prototype.constraints=null;
+Graph.handleFactory[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var e=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-e)},function(a,e){this.state.style.notch=Math.round(0.2*Math.max(0,a.width-e.y+a.y))/0.2})]};
+function mxShapeElectricalFourLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalFourLineBusElbow,mxShape);mxShapeElectricalFourLineBusElbow.prototype.cst={SHAPE_FOUR_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.fourLineBusElbow"};
+mxShapeElectricalFourLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke();a.begin();a.moveTo(0,c-f/3);a.lineTo(b-d/3,c-f/3);a.lineTo(b-d/3,0);a.stroke();a.begin();a.moveTo(0,c-2*f/3);a.lineTo(b-2*d/3,c-2*f/3);a.lineTo(b-2*
+d/3,0);a.stroke()};mxCellRenderer.prototype.defaultShapes[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW]=mxShapeElectricalFourLineBusElbow;mxShapeElectricalFourLineBusElbow.prototype.constraints=null;
+Graph.handleFactory[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var e=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-e)},function(a,e){this.state.style.notch=Math.round(0.2*Math.max(0,a.width-e.y+a.y))/0.2})]};
+function mxShapeElectricalEightLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalEightLineBusElbow,mxShape);mxShapeElectricalEightLineBusElbow.prototype.cst={SHAPE_EIGHT_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.eightLineBusElbow"};
+mxShapeElectricalEightLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke();a.begin();a.moveTo(0,c-f/7);a.lineTo(b-d/7,c-f/7);a.lineTo(b-d/7,0);a.stroke();a.begin();a.moveTo(0,c-2*f/7);a.lineTo(b-2*d/7,c-2*f/7);a.lineTo(b-
+2*d/7,0);a.stroke();a.begin();a.moveTo(0,c-3*f/7);a.lineTo(b-3*d/7,c-3*f/7);a.lineTo(b-3*d/7,0);a.stroke();a.begin();a.moveTo(0,c-4*f/7);a.lineTo(b-4*d/7,c-4*f/7);a.lineTo(b-4*d/7,0);a.stroke();a.begin();a.moveTo(0,c-5*f/7);a.lineTo(b-5*d/7,c-5*f/7);a.lineTo(b-5*d/7,0);a.stroke();a.begin();a.moveTo(0,c-6*f/7);a.lineTo(b-6*d/7,c-6*f/7);a.lineTo(b-6*d/7,0);a.stroke()};mxCellRenderer.prototype.defaultShapes[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW]=mxShapeElectricalEightLineBusElbow;
+mxShapeElectricalEightLineBusElbow.prototype.constraints=null;Graph.handleFactory[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var e=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-e)},function(a,e){this.state.style.notch=Math.round(0.2*Math.max(0,a.width-e.y+a.y))/0.2})]};
+function mxFloorplanWall(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWall,mxShape);mxFloorplanWall.prototype.cst={WALL:"mxgraph.floorplan.wall",WALL_THICKNESS:"wallThickness"};mxFloorplanWall.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
mxFloorplanWall.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxFloorplanWall.prototype.cst.WALL_THICKNESS,"10"));a.rect(0,0.5*c-0.5*d,b,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanWall.prototype.cst.WALL,mxFloorplanWall);function mxFloorplanWallCorner(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWallCorner,mxShape);
mxFloorplanWallCorner.prototype.cst={WALL_CORNER:"mxgraph.floorplan.wallCorner",WALL_THICKNESS:"wallThickness"};mxFloorplanWallCorner.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxFloorplanWallCorner.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxFloorplanWallCorner.prototype.cst.WALL_THICKNESS,"10"));a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(b,0);a.lineTo(b,d);a.lineTo(d,d);a.lineTo(d,c);a.close();a.fillAndStroke()};
mxCellRenderer.registerShape(mxFloorplanWallCorner.prototype.cst.WALL_CORNER,mxFloorplanWallCorner);function mxFloorplanWallU(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWallU,mxShape);mxFloorplanWallU.prototype.cst={WALL_U:"mxgraph.floorplan.wallU",WALL_THICKNESS:"wallThickness"};mxFloorplanWallU.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
diff --git a/war/js/viewer.min.js b/war/js/viewer.min.js
index 604dd844..deb96599 100644
--- a/war/js/viewer.min.js
+++ b/war/js/viewer.min.js
@@ -1,13 +1,13 @@
var mxBasePath="https://www.draw.io/mxgraph/",mxLoadStylesheets=!1;
-!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-");c=0.01+100*(c/d);d=Math.max(1-(1-a)/b*(100-c),a);var f=l.substring(0,l.indexOf("Animation")).toLowerCase();return n[e]||(q.insertRule("@"+
-(f&&"-"+f+"-"||"")+"keyframes "+e+"{0%{opacity:"+d+"}"+c+"%{opacity:"+a+"}"+(c+0.01)+"%{opacity:1}"+(c+b)%100+"%{opacity:"+a+"}100%{opacity:"+d+"}}",q.cssRules.length),n[e]=1),e}function d(a,b){var c,d,e=a.style;b=b.charAt(0).toUpperCase()+b.slice(1);for(d=0;d<m.length;d++)if(c=m[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b],d;for(d in c)void 0===a[d]&&(a[d]=
-c[d])}return a}function g(a){this.opts=f(a||{},g.defaults,p)}function k(){function c(b,d){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',d)}q.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:m+" "+m,coordorigin:-l+" "+-l}),{width:m,height:m})}function g(a,k,m){b(p,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~k}),b(e(c("roundrect",{arcsize:d.corners}),{width:l,height:d.width,left:d.radius,
-top:-d.width>>1,filter:m}),c("fill",{color:"string"==typeof d.color?d.color:d.color[a%d.color.length],opacity:d.opacity}),c("stroke",{opacity:0}))))}var k,l=d.length+d.width,m=2*l;k=2*-(d.width+d.length)+"px";var p=e(f(),{position:"absolute",top:k,left:k});if(d.shadow)for(k=1;k<=d.lines;k++)g(k,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(k=1;k<=d.lines;k++)g(k);return b(a,p)};g.prototype.opacity=function(a,b,c,d){a=a.firstChild;d=d.shadow&&
-d.lines||0;a&&b+d<a.childNodes.length&&(a=a.childNodes[b+d],a=a&&a.firstChild,a=a&&a.firstChild,a&&(a.opacity=c))}}var l,m=["webkit","Moz","ms","O"],n={},q=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),p={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};f(g.prototype,
-{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,m=(d.lines-1)*(1-d.direction)/2,p=d.fps,r=p/d.speed,n=(1-d.opacity)/(r*d.trail/100),q=r/d.lines;!function H(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*q)%r*n,d.opacity),c.opacity(f,
-a*d.direction+m,g,d);c.timeout=c.el&&setTimeout(H,~~(1E3/p))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function g(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*m+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var k,
-m=0,p=(f.lines-1)*(1-f.direction)/2;m<f.lines;m++)k=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:l&&c(f.opacity,f.trail,p+m*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(k,e(g("#000","0 0 4px #000"),{top:"2px"})),b(d,b(k,g("string"==typeof f.color?f.color:f.color[m%f.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});
-var r=e(a("group"),{behavior:"url(#default#VML)"});return!d(r,"transform")&&r.adj?k():l=d(r,"animation"),g});
+!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-");c=0.01+100*(c/d);d=Math.max(1-(1-a)/b*(100-c),a);var f=l.substring(0,l.indexOf("Animation")).toLowerCase();return m[e]||(p.insertRule("@"+
+(f&&"-"+f+"-"||"")+"keyframes "+e+"{0%{opacity:"+d+"}"+c+"%{opacity:"+a+"}"+(c+0.01)+"%{opacity:1}"+(c+b)%100+"%{opacity:"+a+"}100%{opacity:"+d+"}}",p.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;b=b.charAt(0).toUpperCase()+b.slice(1);for(d=0;d<n.length;d++)if(c=n[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b],d;for(d in c)void 0===a[d]&&(a[d]=
+c[d])}return a}function g(a){this.opts=f(a||{},g.defaults,q)}function k(){function c(b,d){return a("\x3c"+b+' xmlns\x3d"urn:schemas-microsoft.com:vml" class\x3d"spin-vml"\x3e',d)}p.addRule(".spin-vml","behavior:url(#default#VML)");g.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:n+" "+n,coordorigin:-l+" "+-l}),{width:n,height:n})}function g(a,k,n){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~k}),b(e(c("roundrect",{arcsize:d.corners}),{width:l,height:d.width,left:d.radius,
+top:-d.width>>1,filter:n}),c("fill",{color:"string"==typeof d.color?d.color:d.color[a%d.color.length],opacity:d.opacity}),c("stroke",{opacity:0}))))}var k,l=d.length+d.width,n=2*l;k=2*-(d.width+d.length)+"px";var m=e(f(),{position:"absolute",top:k,left:k});if(d.shadow)for(k=1;k<=d.lines;k++)g(k,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius\x3d2,makeshadow\x3d1,shadowopacity\x3d.3)");for(k=1;k<=d.lines;k++)g(k);return b(a,m)};g.prototype.opacity=function(a,b,c,d){a=a.firstChild;d=d.shadow&&
+d.lines||0;a&&b+d<a.childNodes.length&&(a=a.childNodes[b+d],a=a&&a.firstChild,a=a&&a.firstChild,a&&(a.opacity=c))}}var l,n=["webkit","Moz","ms","O"],m={},p=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),q={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:0.25,fps:20,zIndex:2E9,className:"spinner",top:"50%",left:"50%",position:"absolute"};g.defaults={};f(g.prototype,
+{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width;if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!l){var g,k=0,n=(d.lines-1)*(1-d.direction)/2,m=d.fps,p=m/d.speed,q=(1-d.opacity)/(p*d.trail/100),s=p/d.lines;!function H(){k++;for(var a=0;a<d.lines;a++)g=Math.max(1-(k+(d.lines-a)*s)%p*q,d.opacity),c.opacity(f,
+a*d.direction+n,g,d);c.timeout=c.el&&setTimeout(H,~~(1E3/m))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function g(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*n+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var k,
+n=0,m=(f.lines-1)*(1-f.direction)/2;n<f.lines;n++)k=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:l&&c(f.opacity,f.trail,m+n*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(k,e(g("#000","0 0 4px #000"),{top:"2px"})),b(d,b(k,g("string"==typeof f.color?f.color:f.color[n%f.color.length],"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});
+var s=e(a("group"),{behavior:"url(#default#VML)"});return!d(s,"transform")&&s.adj?k():l=d(s,"animation"),g});
(function(){var a=void 0,b=!0,c=null,d=!1,e=["aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkturquoise darkviolet deeppink deepskyblue dimgray dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray snow springgreen steelblue tan teal thistle tomato transparent turquoise violet wheat white whitesmoke yellow yellowgreen".split(" "),"all-scroll col-resize crosshair default e-resize hand help move n-resize ne-resize no-drop not-allowed nw-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait".split(" "),
"armenian decimal decimal-leading-zero disc georgian lower-alpha lower-greek lower-latin lower-roman square upper-alpha upper-latin upper-roman".split(" "),"100 200 300 400 500 600 700 800 900 bold bolder lighter".split(" "),"block-level inline-level table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group".split(" "),"condensed expanded extra-condensed extra-expanded narrower semi-condensed semi-expanded ultra-condensed ultra-expanded wider".split(" "),
"inherit inline inline-block inline-box inline-flex inline-grid inline-list-item inline-stack inline-table run-in".split(" "),"behind center-left center-right far-left far-right left-side leftwards right-side rightwards".split(" "),"large larger small smaller x-large x-small xx-large xx-small".split(" "),"dashed dotted double groove outset ridge solid".split(" "),"ease ease-in ease-in-out ease-out linear step-end step-start".split(" "),"at closest-corner closest-side ellipse farthest-corner farthest-side".split(" "),
@@ -36,32 +36,32 @@ cssLitGroup:[e[36],e[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[e[0]
"rect()":{cssPropBits:5,cssLitGroup:[e[48],e[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[e[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius","rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius",
"scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay","translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},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 k,l;(function(){function a(b){var c=
parseInt(b.substring(1),16);return 65535<c?(c-=65536,String.fromCharCode(55296+(c>>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"),p=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(m,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,m=a.length;k<m;++k){var r=l(a[k]),n=r.length,q=r.charCodeAt(0),r=34==q||39==q?b(r.substring(1,n-1),c):47==q&&1<n||"\\"==r||"--\x3e"==r||"\x3c!--"==r||"\ufeff"==
-r||32>=q?" ":/url\(/i.test(r)?"url("+b(r.replace(p,""),d)+")":r;if(f!=r||" "!=r)a[e++]=f=r}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var m=function(){function a(b){b=(""+b).match(p);return!b?c:new g(k(b[1]),k(b[2]),k(b[3]),k(b[4]),k(b[5]),k(b[6]),k(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=l,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,k=e(g);if(d)c.ca(b.V()),k=k&&k.replace(m,"");else if(d=!!g){if(47!==k.charCodeAt(0))var k=e(c.g||"").replace(m,""),l=k.lastIndexOf("/")+1,k=e((l?k.substring(0,l):"")+e(g)).replace(m,"")}else k=k&&k.replace(m,""),k!==g&&c.G(k);d?c.G(k):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,k){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=k}function k(a){return"string"==typeof a&&0<a.length?a:c}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),m=/^(?:\.\.\/)*(?:\.\.$)?/;g.prototype.toString=function(){var a=[];c!==this.j&&a.push(this.j,":");c!==this.k&&(a.push("//"),c!==this.n&&a.push(this.n,"@"),a.push(this.k),c!==this.h&&a.push(":",this.h.toString()));c!==this.g&&a.push(this.g);c!==this.l&&a.push("?",
+"gi"),n=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),m=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");l=function(b){return b.replace(n,a)};k=function(a){a=(""+a).replace(/\r\n?/g,"\n").match(g)||[];for(var e=0,f=" ",k=0,n=a.length;k<n;++k){var p=l(a[k]),q=p.length,s=p.charCodeAt(0),p=34==s||39==s?b(p.substring(1,q-1),c):47==s&&1<q||"\\"==p||"--\x3e"==p||"\x3c!--"==p||"\ufeff"==
+p||32>=s?" ":/url\(/i.test(p)?"url("+b(p.replace(m,""),d)+")":p;if(f!=p||" "!=p)a[e++]=f=p}a.length=e;return a}})();"undefined"!==typeof window&&(window.lexCss=k,window.decodeCss=l);var n=function(){function a(b){b=(""+b).match(m);return!b?c:new g(k(b[1]),k(b[2]),k(b[3]),k(b[4]),k(b[5]),k(b[6]),k(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=l,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,k=e(g);if(d)c.ca(b.V()),k=k&&k.replace(n,"");else if(d=!!g){if(47!==k.charCodeAt(0))var k=e(c.g||"").replace(n,""),l=k.lastIndexOf("/")+1,k=e((l?k.substring(0,l):"")+e(g)).replace(n,"")}else k=k&&k.replace(n,""),k!==g&&c.G(k);d?c.G(k):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,k){this.j=a;this.n=b;this.k=c;this.h=d;this.g=e;this.l=f;this.o=k}function k(a){return"string"==typeof a&&0<a.length?a:c}var l=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),n=/^(?:\.\.\/)*(?:\.\.$)?/;g.prototype.toString=function(){var a=[];c!==this.j&&a.push(this.j,":");c!==this.k&&(a.push("//"),c!==this.n&&a.push(this.n,"@"),a.push(this.k),c!==this.h&&a.push(":",this.h.toString()));c!==this.g&&a.push(this.g);c!==this.l&&a.push("?",
this.l);c!==this.o&&a.push("#",this.o);return a.join("")};g.prototype.T=function(){return new g(this.j,this.n,this.k,this.h,this.g,this.l,this.o)};g.prototype.W=function(){return this.j&&decodeURIComponent(this.j).toLowerCase()};g.prototype.ga=function(a){this.j=a?a:c};g.prototype.K=function(){return c!==this.j};g.prototype.da=function(a){this.n=a?a:c};g.prototype.X=function(){return c!==this.n};g.prototype.ea=function(a){this.k=a?a:c;this.G(this.g)};g.prototype.Y=function(){return c!==this.k};g.prototype.V=
function(){return this.h&&decodeURIComponent(this.h)};g.prototype.ca=function(a){if(a){a=Number(a);if(a!==(a&65535))throw Error("Bad port number "+a);this.h=""+a}else this.h=c};g.prototype.$=function(){return c!==this.h};g.prototype.U=function(){return this.g&&decodeURIComponent(this.g)};g.prototype.G=function(a){a?(a=""+a,this.g=!this.k||/^\//.test(a)?a:"/"+a):this.g=c};g.prototype.O=function(a){this.l=a?a:c};g.prototype.aa=function(){return c!==this.l};g.prototype.ba=function(a){if("object"===typeof a&&
-!(a instanceof Array)&&(a instanceof Object||"[object Array]"!==Object.prototype.toString.call(a))){var b=[],c=-1,d;for(d in a){var e=a[d];"string"===typeof e&&(b[++c]=d,b[++c]=e)}a=b}for(var b=[],c="",f=0;f<a.length;)d=a[f++],e=a[f++],b.push(c,encodeURIComponent(d.toString())),c="\x26",e&&b.push("\x3d",encodeURIComponent(e.toString()));this.l=b.join("")};g.prototype.fa=function(a){this.o=a?a:c};g.prototype.Z=function(){return c!==this.o};var p=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
-r=/[#\/\?@]/g,n=/[\#\?]/g;g.parse=a;g.create=function(a,e,f,k,l,m,p){a=new g(b(a,r),b(e,r),"string"==typeof f?encodeURIComponent(f):c,0<k?k.toString():c,b(l,n),c,"string"==typeof p?encodeURIComponent(p):c);m&&("string"===typeof m?a.O(m.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):a.ba(m));return a};g.N=f;g.ma=e;g.ha={ua:function(b){return/\.html$/.test(a(b).U())?"text/html":"application/javascript"},N:function(b,c){return b?f(a(b),a(c)).toString():""+c}};return g}();"undefined"!==typeof window&&(window.URI=
-m);var n=a,q=a,p=a,r=a;(function(){function e(a){return"string"===typeof a?'url("'+a.replace(D,g)+'")':'url("about:blank")'}function g(a){return E[a]}function k(a,b){return a?m.ha.N(a,b):b}function t(a,b,d){if(!d)return c;var e=(""+a).match(A);return e&&(!e[1]||F.test(e[1]))?d(a,b):c}function G(a){return a.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var D=/[\n\f\r\"\'()*<>]/g,E={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
-"\x3c":"%3c","\x3e":"%3e"},A=/^(?:([^:/?# ]+):)?/,F=/^(?:https?|mailto|data)$/i;n=function(){var a={};return function R(b,c,d,g,m){b=G(b);var p=f[b];if(!p||"object"!==typeof p)c.length=0;else{for(var r=p.cssPropBits,n=r&80,q=r&1536,s=NaN,H=0,v=0;H<c.length;++H){var A=c[H].toLowerCase(),y=A.charCodeAt(0),F,E,D,I,Q,ha;if(32===y)A="";else if(34===y)A=16===n?d?e(t(k(g,l(c[H].substring(1,A.length-1))),b,d)):"":r&8&&!(n&n-1)?A:"";else if("inherit"!==A){if(Q=p.cssLitGroup){var ea;if(!(ea=p.cssLitMap)){ea=
-{};for(var V=Q.length;0<=--V;)for(var ga=Q[V],ka=ga.length;0<=--ka;)ea[ga[ka]]=a;ea=p.cssLitMap=ea}Q=ea}else Q=a;if(!(ha=Q,ha[G(A)]===a))if(35===y&&/^#(?:[0-9a-f]{3}){1,2}$/.test(A))A=r&2?A:"";else if(48<=y&&57>=y)A=r&1?A:"";else if(F=A.charCodeAt(1),E=A.charCodeAt(2),D=48<=F&&57>=F,I=48<=E&&57>=E,43===y&&(D||46===F&&I))A=r&1?(D?"":"0")+A.substring(1):"";else if(45===y&&(D||46===F&&I))A=r&4?(D?"-":"-0")+A.substring(1):r&1?"0":"";else if(46===y&&D)A=r&1?"0"+A:"";else if('url("'===A.substring(0,5))A=
-d&&r&16?e(t(k(g,c[H].substring(5,A.length-2)),b,d)):"";else if("("===A.charAt(A.length-1))a:{Q=c;ea=H;A=1;V=ea+1;for(y=Q.length;V<y&&A;)ga=Q[V++],A+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!A){A=Q[ea].toLowerCase();y=G(A);Q=Q.splice(ea,V-ea,"");ea=p.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,y.length)==y){Q[0]=Q[Q.length-1]="";R(ea[V],Q,d,g);A=A+Q.join(" ")+")";break a}}A=""}else A=q&&/^-?[a-z_][\w\-]*$/.test(A)&&!/__$/.test(A)?m&&512===q?c[H]+m:1024===q&&f[A]&&"number"===typeof f[A].oa?
-A:"":/^\w+$/.test(A)&&64===n&&r&8?s+1===v?(c[s]=c[s].substring(0,c[s].length-1)+" "+A+'"',""):(s=v,'"'+A+'"'):""}A&&(c[v++]=A)}1===v&&'url("about:blank")'===c[0]&&(v=0);c.length=v}}}();var H=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
-I={};I["\x3e"]=I["+"]=I["~"]=I;q=function(a,e,f){function g(r,n){function q(c,f,g){var k,p,r,n,u,t=b;k="";if(c<f)if(u=a[c],"*"===u)++c,k=u;else if(/^[a-zA-Z]/.test(u)&&(p=m(u.toLowerCase(),[])))"tagName"in p&&(u=p.tagName),++c,k=u;for(n=r=p="";t&&c<f;++c)if(u=a[c],"#"===u.charAt(0))/^#_|__$|[^\w#:\-]/.test(u)?t=d:p+=u+l;else if("."===u)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(u=a[c])&&!/^_|__$/.test(u)?p+="."+u:t=d;else if(c+1<f&&"["===a[c]){++c;var A=a[c++].toLowerCase();u=v.m[k+"::"+A];u!==+u&&(u=v.m["*::"+
-A]);var y;e.ia?(y=e.ia(k,A),"string"!==typeof y&&(t=d,y=A),t&&u!==+u&&(u=v.d.NONE)):(y=A,u!==+u&&(t=d));var z=A="",F=d;/^[~^$*|]?=$/.test(a[c])&&(A=a[c++],z=a[c++],/^[0-9A-Za-z:_\-]+$/.test(z)?z='"'+z+'"':"]"===z&&(z='""',--c),/^"([^\"\\]|\\.)*"$/.test(z)||(t=d),(F="i"===a[c])&&++c);"]"!==a[c]&&(++c,t=d);switch(u){case v.d.CLASSES:case v.d.LOCAL_NAME:case v.d.NONE:break;case v.d.GLOBAL_NAME:case v.d.ID:case v.d.IDREF:("\x3d"===A||"~\x3d"===A||"$\x3d"===A)&&'""'!=z&&!F?z='"'+z.substring(1,z.length-
-1)+l+'"':"|\x3d"===A||""===A||(t=d);break;case v.d.URI:case v.d.URI_FRAGMENT:""!==A&&(t=d);break;default:t=d}t&&(r+="["+y.replace(/[^\w-]/g,"\\$\x26")+A+z+(F?" i]":"]"))}else if(c<f&&":"===a[c])if(u=a[++c],H.test(u))n+=":"+u;else break;else break;c!==f&&(t=d);t&&(c=(k+p).replace(/[^ .*#\w-]/g,"\\$\x26")+r+n+g)&&s.push(c);return t}" "===a[r]&&++r;n-1!==r&&" "===a[n]&&--n;for(var s=[],u=r,t=b,A=r;t&&A<n;++A){var y=a[A];if(I[y]===I||" "===y)q(u,A,y)?u=A+1:t=d}q(u,n,"")||(t=d);return t?(s.length&&(u=
-s.join(""),k!==c&&(u="."+k+" "+u),p.push(u)),b):!f||f(a.slice(r,n))}var k=e.na,l=e.L,m=e.Aa,p=[],r=0,n,q=0,s;for(n=0;n<a.length;++n)if(s=a[n],"("==s||"["==s?(++q,b):")"==s||"]"==s?(q&&--q,b):!(" "==a[n]&&(q||I[a[n-1]]===I||I[a[n+1]]===I)))a[r++]=a[n];a.length=r;r=a.length;for(n=q=0;n<r;++n)if(","===a[n]){if(!g(q,n))return c;q=n+1}return!g(q,r)?c:p};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
-"i");r=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var g=c[f];" "!=g&&(c[e++]=g)}c.length=e;c=c.join(" ");return!c.length?"":!b.test(c)?"not all":a.test(c)?c:"not all , "+c}})();(function(){function e(a){var b=/^\s*[']([^']*)[']\s*$/,d=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,f=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=b.exec(a))||(k=d.exec(a))||(k=f.exec(a))||(k=g.exec(a))?k[1]:c}function f(g,l,m,p,u,H,A){function v(){D=
-E.length&&E[E.length-1]===c}var y=a,F=A||[0],E=[],D=d;s(l,{startStylesheet:function(){y=[]},endStylesheet:function(){},startAtrule:function(a,b){if(D)a=c;else if("@media"===a)y.push("@media"," ",r(b));else if("@keyframes"===a||"@-webkit-keyframes"===a){var d=b[0];1===b.length&&!/__$|[^\w\-]/.test(d)?(y.push(a," ",d+m.L),a="@keyframes"):a=c}else if("@import"===a&&0<b.length)if(a=c,"function"===typeof H){var l=r(b.slice(1));if("not all"!==l){++F[0];var n=[];y.push(n);var q=t(k(g,e(b[0])),function(a){var b=
-f(q,a.qa,m,p,u,H,F);--F[0];a=l?{toString:function(){return"@media "+l+" {"+b.result+"}"}}:b.result;n[0]=a;H(a,!!F[0])},u)}}else window.console&&window.console.log("@import "+b.join(" ")+" elided");D=!a;E.push(a)},endAtrule:function(){E.pop();D||y.push(";");v()},startBlock:function(){D||y.push("{")},endBlock:function(){D||(y.push("}"),D=b)},startRuleset:function(d){if(!D){var e=a;"@keyframes"===E[E.length-1]?(e=d.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
-D=!e,e&&(e=e[0].replace(/ +/g,""))):(d=q(d,m),!d||!d.length?D=b:e=d.join(", "));D||y.push(e,"{")}E.push(c)},endRuleset:function(){E.pop();D||y.push("}");v()},declaration:function(a,c){if(!D){var e=d,f=c.length;2<=f&&"!"===c[f-2]&&"important"===c[f-1].toLowerCase()&&(e=b,c.length-=2);n(a,c,p,g,m.L);c.length&&y.push(a,":",c.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return y.join("")}},va:!!F[0]}}p=function(b,c,d,e){return f(b,c,d,e,a,a).result.toString()}})()})();"undefined"!==
-typeof window&&(window.sanitizeCssProperty=n,window.sanitizeCssSelectorList=q,window.sanitizeStylesheet=p,window.sanitizeMediaQuery=r);var s,t;(function(){function a(b,d,e,f,g){for(var k=d++;d<e&&"{"!==b[d]&&";"!==b[d];)++d;if(d<e&&(g||";"===b[d])){g=k+1;var l=d;g<e&&" "===b[g]&&++g;l>g&&" "===b[l-1]&&--l;f.startAtrule&&f.startAtrule(b[k].toLowerCase(),b.slice(g,l));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,k){++f;for(k.startBlock&&k.startBlock();f<g;){var l=
-b[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?a(b,f,g,k,d):"{"===l?c(b,f,g,k):e(b,f,g,k)}k.endBlock&&k.endBlock();return f}function e(a,c,d,g){var k=c,m=f(a,c,d,b);if(0>m)return m=~m,m===k?m+1:m;var p=a[m];if("{"!==p)return m===k?m+1:m;c=m+1;m>k&&" "===a[m-1]&&--m;for(g.startRuleset&&g.startRuleset(a.slice(k,m));c<d;){p=a[c];if("}"===p){++c;break}c=" "===p?c+1:l(a,c,d,g)}g.endRuleset&&g.endRuleset();return c}function f(a,b,c,d){for(var e,g=[],k=-1;b<c;++b)if(e=a[b].charAt(0),
-"["===e||"("===e)g[++k]=e;else if("]"===e&&"["===g[k]||")"===e&&"("===g[k])--k;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=k&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!m.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var p=f(a,b,c,d);if(0>p)p=~p;else{for(var r=[],n=0,q=b;q<p;++q)b=a[q]," "!==b&&(r[n++]=b);if(p<c){do{b=a[p];
-if(";"===b||"}"===b)break;n=0}while(++p<c);";"===b&&++p}n&&e.declaration&&e.declaration(k.toLowerCase(),r)}return p}s=function(c,d){var f=k(c);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?a(f,g,l,d,b):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var m=/^-?[a-z]/i;t=function(a,b){for(var c=k(a),d=0,e=c.length;d<e;)d=" "!==c[d]?l(c,d,e,b):d+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=s,window.parseCssDeclarations=
-t);var v={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};v.atype=v.d;v.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,
+!(a instanceof Array)&&(a instanceof Object||"[object Array]"!==Object.prototype.toString.call(a))){var b=[],c=-1,d;for(d in a){var e=a[d];"string"===typeof e&&(b[++c]=d,b[++c]=e)}a=b}for(var b=[],c="",f=0;f<a.length;)d=a[f++],e=a[f++],b.push(c,encodeURIComponent(d.toString())),c="\x26",e&&b.push("\x3d",encodeURIComponent(e.toString()));this.l=b.join("")};g.prototype.fa=function(a){this.o=a?a:c};g.prototype.Z=function(){return c!==this.o};var m=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,
+p=/[#\/\?@]/g,q=/[\#\?]/g;g.parse=a;g.create=function(a,e,f,k,l,n,m){a=new g(b(a,p),b(e,p),"string"==typeof f?encodeURIComponent(f):c,0<k?k.toString():c,b(l,q),c,"string"==typeof m?encodeURIComponent(m):c);n&&("string"===typeof n?a.O(n.replace(/[^?&=0-9A-Za-z_\-~.%]/g,d)):a.ba(n));return a};g.N=f;g.ma=e;g.ha={ua:function(b){return/\.html$/.test(a(b).U())?"text/html":"application/javascript"},N:function(b,c){return b?f(a(b),a(c)).toString():""+c}};return g}();"undefined"!==typeof window&&(window.URI=
+n);var m=a,p=a,q=a,s=a;(function(){function e(a){return"string"===typeof a?'url("'+a.replace(C,g)+'")':'url("about:blank")'}function g(a){return F[a]}function k(a,b){return a?n.ha.N(a,b):b}function t(a,b,d){if(!d)return c;var e=(""+a).match(D);return e&&(!e[1]||G.test(e[1]))?d(a,b):c}function E(a){return a.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var C=/[\n\f\r\"\'()*<>]/g,F={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a",
+"\x3c":"%3c","\x3e":"%3e"},D=/^(?:([^:/?# ]+):)?/,G=/^(?:https?|mailto|data)$/i;m=function(){var a={};return function S(b,c,d,g,n){b=E(b);var m=f[b];if(!m||"object"!==typeof m)c.length=0;else{for(var p=m.cssPropBits,q=p&80,s=p&1536,r=NaN,H=0,D=0;H<c.length;++H){var u=c[H].toLowerCase(),G=u.charCodeAt(0),z,F,I,C,Q,ha;if(32===G)u="";else if(34===G)u=16===q?d?e(t(k(g,l(c[H].substring(1,u.length-1))),b,d)):"":p&8&&!(q&q-1)?u:"";else if("inherit"!==u){if(Q=m.cssLitGroup){var ea;if(!(ea=m.cssLitMap)){ea=
+{};for(var V=Q.length;0<=--V;)for(var ga=Q[V],ka=ga.length;0<=--ka;)ea[ga[ka]]=a;ea=m.cssLitMap=ea}Q=ea}else Q=a;if(!(ha=Q,ha[E(u)]===a))if(35===G&&/^#(?:[0-9a-f]{3}){1,2}$/.test(u))u=p&2?u:"";else if(48<=G&&57>=G)u=p&1?u:"";else if(z=u.charCodeAt(1),F=u.charCodeAt(2),I=48<=z&&57>=z,C=48<=F&&57>=F,43===G&&(I||46===z&&C))u=p&1?(I?"":"0")+u.substring(1):"";else if(45===G&&(I||46===z&&C))u=p&4?(I?"-":"-0")+u.substring(1):p&1?"0":"";else if(46===G&&I)u=p&1?"0"+u:"";else if('url("'===u.substring(0,5))u=
+d&&p&16?e(t(k(g,c[H].substring(5,u.length-2)),b,d)):"";else if("("===u.charAt(u.length-1))a:{Q=c;ea=H;u=1;V=ea+1;for(G=Q.length;V<G&&u;)ga=Q[V++],u+=")"===ga?-1:/^[^"']*\($/.test(ga);if(!u){u=Q[ea].toLowerCase();G=E(u);Q=Q.splice(ea,V-ea,"");ea=m.cssFns;V=0;for(ga=ea.length;V<ga;++V)if(ea[V].substring(0,G.length)==G){Q[0]=Q[Q.length-1]="";S(ea[V],Q,d,g);u=u+Q.join(" ")+")";break a}}u=""}else u=s&&/^-?[a-z_][\w\-]*$/.test(u)&&!/__$/.test(u)?n&&512===s?c[H]+n:1024===s&&f[u]&&"number"===typeof f[u].oa?
+u:"":/^\w+$/.test(u)&&64===q&&p&8?r+1===D?(c[r]=c[r].substring(0,c[r].length-1)+" "+u+'"',""):(r=D,'"'+u+'"'):""}u&&(c[D++]=u)}1===D&&'url("about:blank")'===c[0]&&(D=0);c.length=D}}}();var H=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),
+I={};I["\x3e"]=I["+"]=I["~"]=I;p=function(a,e,f){function g(p,q){function s(c,f,g){var k,m,p,q,t,v=b;k="";if(c<f)if(t=a[c],"*"===t)++c,k=t;else if(/^[a-zA-Z]/.test(t)&&(m=n(t.toLowerCase(),[])))"tagName"in m&&(t=m.tagName),++c,k=t;for(q=p=m="";v&&c<f;++c)if(t=a[c],"#"===t.charAt(0))/^#_|__$|[^\w#:\-]/.test(t)?v=d:m+=t+l;else if("."===t)++c<f&&/^[0-9A-Za-z:_\-]+$/.test(t=a[c])&&!/^_|__$/.test(t)?m+="."+t:v=d;else if(c+1<f&&"["===a[c]){++c;var D=a[c++].toLowerCase();t=u.m[k+"::"+D];t!==+t&&(t=u.m["*::"+
+D]);var G;e.ia?(G=e.ia(k,D),"string"!==typeof G&&(v=d,G=D),v&&t!==+t&&(t=u.d.NONE)):(G=D,t!==+t&&(v=d));var x=D="",z=d;/^[~^$*|]?=$/.test(a[c])&&(D=a[c++],x=a[c++],/^[0-9A-Za-z:_\-]+$/.test(x)?x='"'+x+'"':"]"===x&&(x='""',--c),/^"([^\"\\]|\\.)*"$/.test(x)||(v=d),(z="i"===a[c])&&++c);"]"!==a[c]&&(++c,v=d);switch(t){case u.d.CLASSES:case u.d.LOCAL_NAME:case u.d.NONE:break;case u.d.GLOBAL_NAME:case u.d.ID:case u.d.IDREF:("\x3d"===D||"~\x3d"===D||"$\x3d"===D)&&'""'!=x&&!z?x='"'+x.substring(1,x.length-
+1)+l+'"':"|\x3d"===D||""===D||(v=d);break;case u.d.URI:case u.d.URI_FRAGMENT:""!==D&&(v=d);break;default:v=d}v&&(p+="["+G.replace(/[^\w-]/g,"\\$\x26")+D+x+(z?" i]":"]"))}else if(c<f&&":"===a[c])if(t=a[++c],H.test(t))q+=":"+t;else break;else break;c!==f&&(v=d);v&&(c=(k+m).replace(/[^ .*#\w-]/g,"\\$\x26")+p+q+g)&&r.push(c);return v}" "===a[p]&&++p;q-1!==p&&" "===a[q]&&--q;for(var r=[],t=p,v=b,D=p;v&&D<q;++D){var G=a[D];if(I[G]===I||" "===G)s(t,D,G)?t=D+1:v=d}s(t,q,"")||(v=d);return v?(r.length&&(t=
+r.join(""),k!==c&&(t="."+k+" "+t),m.push(t)),b):!f||f(a.slice(p,q))}var k=e.na,l=e.L,n=e.Aa,m=[],p=0,q,s=0,r;for(q=0;q<a.length;++q)if(r=a[q],"("==r||"["==r?(++s,b):")"==r||"]"==r?(s&&--s,b):!(" "==a[q]&&(s||I[a[q-1]]===I||I[a[q+1]]===I)))a[p++]=a[q];a.length=p;p=a.length;for(q=s=0;q<p;++q)if(","===a[q]){if(!g(s,q))return c;s=q+1}return!g(s,p)?c:m};(function(){var a=/^\w/,b=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
+"i");s=function(c){c=c.slice();for(var d=c.length,e=0,f=0;f<d;++f){var g=c[f];" "!=g&&(c[e++]=g)}c.length=e;c=c.join(" ");return!c.length?"":!b.test(c)?"not all":a.test(c)?c:"not all , "+c}})();(function(){function e(a){var b=/^\s*[']([^']*)[']\s*$/,d=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,f=/^\s*url\s*[(][']([^']*)['][)]\s*$/,g=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(a))||(k=b.exec(a))||(k=d.exec(a))||(k=f.exec(a))||(k=g.exec(a))?k[1]:c}function f(g,l,n,q,H,v,D){function u(){I=
+F.length&&F[F.length-1]===c}var G=a,z=D||[0],F=[],I=d;r(l,{startStylesheet:function(){G=[]},endStylesheet:function(){},startAtrule:function(a,b){if(I)a=c;else if("@media"===a)G.push("@media"," ",s(b));else if("@keyframes"===a||"@-webkit-keyframes"===a){var d=b[0];1===b.length&&!/__$|[^\w\-]/.test(d)?(G.push(a," ",d+n.L),a="@keyframes"):a=c}else if("@import"===a&&0<b.length)if(a=c,"function"===typeof v){var l=s(b.slice(1));if("not all"!==l){++z[0];var m=[];G.push(m);var p=t(k(g,e(b[0])),function(a){var b=
+f(p,a.qa,n,q,H,v,z);--z[0];a=l?{toString:function(){return"@media "+l+" {"+b.result+"}"}}:b.result;m[0]=a;v(a,!!z[0])},H)}}else window.console&&window.console.log("@import "+b.join(" ")+" elided");I=!a;F.push(a)},endAtrule:function(){F.pop();I||G.push(";");u()},startBlock:function(){I||G.push("{")},endBlock:function(){I||(G.push("}"),I=b)},startRuleset:function(d){if(!I){var e=a;"@keyframes"===F[F.length-1]?(e=d.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
+I=!e,e&&(e=e[0].replace(/ +/g,""))):(d=p(d,n),!d||!d.length?I=b:e=d.join(", "));I||G.push(e,"{")}F.push(c)},endRuleset:function(){F.pop();I||G.push("}");u()},declaration:function(a,c){if(!I){var e=d,f=c.length;2<=f&&"!"===c[f-2]&&"important"===c[f-1].toLowerCase()&&(e=b,c.length-=2);m(a,c,q,g,n.L);c.length&&G.push(a,":",c.join(" "),e?" !important;":";")}}});return{result:{toString:function(){return G.join("")}},va:!!z[0]}}q=function(b,c,d,e){return f(b,c,d,e,a,a).result.toString()}})()})();"undefined"!==
+typeof window&&(window.sanitizeCssProperty=m,window.sanitizeCssSelectorList=p,window.sanitizeStylesheet=q,window.sanitizeMediaQuery=s);var r,t;(function(){function a(b,d,e,f,g){for(var k=d++;d<e&&"{"!==b[d]&&";"!==b[d];)++d;if(d<e&&(g||";"===b[d])){g=k+1;var l=d;g<e&&" "===b[g]&&++g;l>g&&" "===b[l-1]&&--l;f.startAtrule&&f.startAtrule(b[k].toLowerCase(),b.slice(g,l));d="{"===b[d]?c(b,d,e,f):d+1;f.endAtrule&&f.endAtrule()}return d}function c(b,f,g,k){++f;for(k.startBlock&&k.startBlock();f<g;){var l=
+b[f].charAt(0);if("}"==l){++f;break}f=" "===l||";"===l?f+1:"@"===l?a(b,f,g,k,d):"{"===l?c(b,f,g,k):e(b,f,g,k)}k.endBlock&&k.endBlock();return f}function e(a,c,d,g){var k=c,n=f(a,c,d,b);if(0>n)return n=~n,n===k?n+1:n;var m=a[n];if("{"!==m)return n===k?n+1:n;c=n+1;n>k&&" "===a[n-1]&&--n;for(g.startRuleset&&g.startRuleset(a.slice(k,n));c<d;){m=a[c];if("}"===m){++c;break}c=" "===m?c+1:l(a,c,d,g)}g.endRuleset&&g.endRuleset();return c}function f(a,b,c,d){for(var e,g=[],k=-1;b<c;++b)if(e=a[b].charAt(0),
+"["===e||"("===e)g[++k]=e;else if("]"===e&&"["===g[k]||")"===e&&"("===g[k])--k;else if("{"===e||"}"===e||";"===e||"@"===e||":"===e&&!d)break;0<=k&&(b=~(b+1));return b}function g(a,b,c){for(;b<c&&";"!==a[b]&&"}"!==a[b];)++b;return b<c&&";"===a[b]?b+1:b}function l(a,b,c,e){var k=a[b++];if(!n.test(k))return g(a,b,c);b<c&&" "===a[b]&&++b;if(b==c||":"!==a[b])return g(a,b,c);++b;b<c&&" "===a[b]&&++b;var m=f(a,b,c,d);if(0>m)m=~m;else{for(var p=[],q=0,s=b;s<m;++s)b=a[s]," "!==b&&(p[q++]=b);if(m<c){do{b=a[m];
+if(";"===b||"}"===b)break;q=0}while(++m<c);";"===b&&++m}q&&e.declaration&&e.declaration(k.toLowerCase(),p)}return m}r=function(c,d){var f=k(c);d.startStylesheet&&d.startStylesheet();for(var g=0,l=f.length;g<l;)g=" "===f[g]?g+1:g<l?"@"===f[g].charAt(0)?a(f,g,l,d,b):e(f,g,l,d):g;d.endStylesheet&&d.endStylesheet()};var n=/^-?[a-z]/i;t=function(a,b){for(var c=k(a),d=0,e=c.length;d<e;)d=" "!==c[d]?l(c,d,e,b):d+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=r,window.parseCssDeclarations=
+t);var u={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};u.atype=u.d;u.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,
"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::ontouchcancel":2,"*::ontouchend":2,"*::ontouchenter":2,"*::ontouchleave":2,"*::ontouchmove":2,"*::ontouchstart":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,"*::tabindex":0,"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,
"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::target":10,"audio::controls":0,"audio::loop":0,"audio::mediagroup":5,"audio::muted":0,"audio::preload":0,"audio::src":1,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,
"col::span":0,"col::valign":0,"col::width":0,"colgroup::align":0,"colgroup::char":0,"colgroup::charoff":0,"colgroup::span":0,"colgroup::valign":0,"colgroup::width":0,"command::checked":0,"command::command":5,"command::disabled":0,"command::icon":1,"command::label":0,"command::radiogroup":0,"command::type":0,"data::value":0,"del::cite":1,"del::datetime":0,"details::open":0,"dir::compact":0,"div::align":0,"dl::compact":0,"fieldset::disabled":0,"font::color":0,"font::face":0,"font::size":0,"form::accept":0,
@@ -71,132 +71,132 @@ t);var v={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,
"optgroup::label":0,"option::disabled":0,"option::label":0,"option::selected":0,"option::value":0,"output::for":6,"output::name":8,"p::align":0,"pre::width":0,"progress::max":0,"progress::min":0,"progress::value":0,"q::cite":1,"select::autocomplete":0,"select::disabled":0,"select::multiple":0,"select::name":8,"select::onblur":2,"select::onchange":2,"select::onfocus":2,"select::required":0,"select::size":0,"source::type":0,"table::align":0,"table::bgcolor":0,"table::border":0,"table::cellpadding":0,
"table::cellspacing":0,"table::frame":0,"table::rules":0,"table::summary":0,"table::width":0,"tbody::align":0,"tbody::char":0,"tbody::charoff":0,"tbody::valign":0,"td::abbr":0,"td::align":0,"td::axis":0,"td::bgcolor":0,"td::char":0,"td::charoff":0,"td::colspan":0,"td::headers":6,"td::height":0,"td::nowrap":0,"td::rowspan":0,"td::scope":0,"td::valign":0,"td::width":0,"textarea::accesskey":0,"textarea::autocomplete":0,"textarea::cols":0,"textarea::disabled":0,"textarea::inputmode":0,"textarea::name":8,
"textarea::onblur":2,"textarea::onchange":2,"textarea::onfocus":2,"textarea::onselect":2,"textarea::placeholder":0,"textarea::readonly":0,"textarea::required":0,"textarea::rows":0,"textarea::wrap":0,"tfoot::align":0,"tfoot::char":0,"tfoot::charoff":0,"tfoot::valign":0,"th::abbr":0,"th::align":0,"th::axis":0,"th::bgcolor":0,"th::char":0,"th::charoff":0,"th::colspan":0,"th::headers":6,"th::height":0,"th::nowrap":0,"th::rowspan":0,"th::scope":0,"th::valign":0,"th::width":0,"thead::align":0,"thead::char":0,
-"thead::charoff":0,"thead::valign":0,"tr::align":0,"tr::bgcolor":0,"tr::char":0,"tr::charoff":0,"tr::valign":0,"track::default":0,"track::kind":0,"track::label":0,"track::srclang":0,"ul::compact":0,"ul::type":0,"video::controls":0,"video::height":0,"video::loop":0,"video::mediagroup":5,"video::muted":0,"video::poster":1,"video::preload":0,"video::src":1,"video::width":0};v.ATTRIBS=v.m;v.c={OPTIONAL_ENDTAG:1,EMPTY:2,CDATA:4,RCDATA:8,UNSAFE:16,FOLDABLE:32,SCRIPT:64,STYLE:128,VIRTUALIZED:256};v.eflags=
-v.c;v.f={a:0,abbr:0,acronym:0,address:0,applet:272,area:2,article:0,aside:0,audio:0,b:0,base:274,basefont:274,bdi:0,bdo:0,big:0,blockquote:0,body:305,br:2,button:0,canvas:0,caption:0,center:0,cite:0,code:0,col:2,colgroup:1,command:2,data:0,datalist:0,dd:1,del:0,details:0,dfn:0,dialog:272,dir:0,div:0,dl:0,dt:1,em:0,fieldset:0,figcaption:0,figure:0,font:0,footer:0,form:0,frame:274,frameset:272,h1:0,h2:0,h3:0,h4:0,h5:0,h6:0,head:305,header:0,hgroup:0,hr:2,html:305,i:0,iframe:4,img:2,input:2,ins:0,isindex:274,
-kbd:0,keygen:274,label:0,legend:0,li:1,link:274,map:0,mark:0,menu:0,meta:274,meter:0,nav:0,nobr:0,noembed:276,noframes:276,noscript:276,object:272,ol:0,optgroup:0,option:1,output:0,p:1,param:274,pre:0,progress:0,q:0,s:0,samp:0,script:84,section:0,select:0,small:0,source:2,span:0,strike:0,strong:0,style:148,sub:0,summary:0,sup:0,table:0,tbody:1,td:1,textarea:8,tfoot:1,th:1,thead:1,time:0,title:280,tr:1,track:2,tt:0,u:0,ul:0,"var":0,video:0,wbr:2};v.ELEMENTS=v.f;v.Q={a:"HTMLAnchorElement",abbr:"HTMLElement",
+"thead::charoff":0,"thead::valign":0,"tr::align":0,"tr::bgcolor":0,"tr::char":0,"tr::charoff":0,"tr::valign":0,"track::default":0,"track::kind":0,"track::label":0,"track::srclang":0,"ul::compact":0,"ul::type":0,"video::controls":0,"video::height":0,"video::loop":0,"video::mediagroup":5,"video::muted":0,"video::poster":1,"video::preload":0,"video::src":1,"video::width":0};u.ATTRIBS=u.m;u.c={OPTIONAL_ENDTAG:1,EMPTY:2,CDATA:4,RCDATA:8,UNSAFE:16,FOLDABLE:32,SCRIPT:64,STYLE:128,VIRTUALIZED:256};u.eflags=
+u.c;u.f={a:0,abbr:0,acronym:0,address:0,applet:272,area:2,article:0,aside:0,audio:0,b:0,base:274,basefont:274,bdi:0,bdo:0,big:0,blockquote:0,body:305,br:2,button:0,canvas:0,caption:0,center:0,cite:0,code:0,col:2,colgroup:1,command:2,data:0,datalist:0,dd:1,del:0,details:0,dfn:0,dialog:272,dir:0,div:0,dl:0,dt:1,em:0,fieldset:0,figcaption:0,figure:0,font:0,footer:0,form:0,frame:274,frameset:272,h1:0,h2:0,h3:0,h4:0,h5:0,h6:0,head:305,header:0,hgroup:0,hr:2,html:305,i:0,iframe:4,img:2,input:2,ins:0,isindex:274,
+kbd:0,keygen:274,label:0,legend:0,li:1,link:274,map:0,mark:0,menu:0,meta:274,meter:0,nav:0,nobr:0,noembed:276,noframes:276,noscript:276,object:272,ol:0,optgroup:0,option:1,output:0,p:1,param:274,pre:0,progress:0,q:0,s:0,samp:0,script:84,section:0,select:0,small:0,source:2,span:0,strike:0,strong:0,style:148,sub:0,summary:0,sup:0,table:0,tbody:1,td:1,textarea:8,tfoot:1,th:1,thead:1,time:0,title:280,tr:1,track:2,tt:0,u:0,ul:0,"var":0,video:0,wbr:2};u.ELEMENTS=u.f;u.Q={a:"HTMLAnchorElement",abbr:"HTMLElement",
acronym:"HTMLElement",address:"HTMLElement",applet:"HTMLAppletElement",area:"HTMLAreaElement",article:"HTMLElement",aside:"HTMLElement",audio:"HTMLAudioElement",b:"HTMLElement",base:"HTMLBaseElement",basefont:"HTMLBaseFontElement",bdi:"HTMLElement",bdo:"HTMLElement",big:"HTMLElement",blockquote:"HTMLQuoteElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",center:"HTMLElement",cite:"HTMLElement",code:"HTMLElement",
col:"HTMLTableColElement",colgroup:"HTMLTableColElement",command:"HTMLCommandElement",data:"HTMLElement",datalist:"HTMLDataListElement",dd:"HTMLElement",del:"HTMLModElement",details:"HTMLDetailsElement",dfn:"HTMLElement",dialog:"HTMLDialogElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",dt:"HTMLElement",em:"HTMLElement",fieldset:"HTMLFieldSetElement",figcaption:"HTMLElement",figure:"HTMLElement",font:"HTMLFontElement",footer:"HTMLElement",form:"HTMLFormElement",frame:"HTMLFrameElement",
frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",h2:"HTMLHeadingElement",h3:"HTMLHeadingElement",h4:"HTMLHeadingElement",h5:"HTMLHeadingElement",h6:"HTMLHeadingElement",head:"HTMLHeadElement",header:"HTMLElement",hgroup:"HTMLElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",i:"HTMLElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",ins:"HTMLModElement",isindex:"HTMLUnknownElement",kbd:"HTMLElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",
li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement",menu:"HTMLMenuElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",nav:"HTMLElement",nobr:"HTMLElement",noembed:"HTMLElement",noframes:"HTMLElement",noscript:"HTMLElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",
s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",
-time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};v.ELEMENT_DOM_INTERFACES=v.Q;v.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};v.ueffects=v.P;v.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};
-v.URIEFFECTS=v.J;v.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};v.ltypes=v.M;v.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};v.LOADERTYPES=v.I;"undefined"!==typeof window&&(window.html4=v);e=function(e){function f(a,b){var c;if(Z.hasOwnProperty(b))c=Z[b];else{var d=b.match(J);c=d?String.fromCharCode(parseInt(d[1],10)):(d=b.match(aa))?String.fromCharCode(parseInt(d[1],
-16)):K&&N.test(b)?(K.innerHTML="\x26"+b+";",d=K.textContent,Z[b]=d):"\x26"+b+";"}return c}function g(a){return a.replace(S,f)}function k(a){return(""+a).replace($,"\x26amp;").replace(X,"\x26lt;").replace(Y,"\x26gt;").replace(T,"\x26#34;")}function l(a){return a.replace(P,"\x26amp;$1").replace(X,"\x26lt;").replace(Y,"\x26gt;")}function p(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,e){var f,
-g=/(<\/|<\!--|<[!?]|[&<>])/g;f=a+"";if(ha)f=f.split(g);else{for(var k=[],l=0,m;(m=g.exec(f))!==c;)k.push(f.substring(l,m.index)),k.push(m[0]),l=m.index+m[0].length;k.push(f.substring(l));f=k}n(b,f,0,{r:d,C:d},e)}}function r(a,b,c,d,e){return function(){n(a,b,c,d,e)}}function n(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var k,l,m,p=c.length;d<p;){var t=c[d++],B=c[d];switch(t){case "\x26":ca.test(B)?(a.e&&a.e("\x26"+B,g,V,r(a,c,d,f,g)),d++):a.e&&a.e("\x26amp;",g,V,r(a,c,d,f,g));break;case "\x3c/":if(k=/^([-\w:]+)[^\'\"]*/.exec(B))if(k[0].length===
-B.length&&"\x3e"===c[d+1])d+=2,m=k[1].toLowerCase(),a.t&&a.t(m,g,V,r(a,c,d,f,g));else{var v=c,A=d,y=a,C=g,z=V,Q=f,x=s(v,A);x?(y.t&&y.t(x.name,C,z,r(y,v,A,Q,C)),d=x.next):d=v.length}else a.e&&a.e("\x26lt;/",g,V,r(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(B))if(k[0].length===B.length&&"\x3e"===c[d+1]){d+=2;m=k[1].toLowerCase();a.w&&a.w(m,[],g,V,r(a,c,d,f,g));var D=e.f[m];D&ea&&(d=q(c,{name:m,next:d,c:D},a,g,V,f))}else{var v=c,A=a,y=g,C=V,z=f,U=s(v,d);U?(A.w&&A.w(U.name,U.R,y,C,r(A,
-v,U.next,z,y)),d=U.c&ea?q(v,U,A,y,C,z):U.next):d=v.length}else a.e&&a.e("\x26lt;",g,V,r(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<p&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<p){if(a.A){var G=c.slice(d,l).join("");a.A(G.substr(0,G.length-2),g,V,r(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,r(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(B)){if(!f.r){for(l=d+1;l<p&&"\x3e"!==c[l];l++);l<p?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,r(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
-g,V,r(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<p&&"\x3e"!==c[l];l++);l<p?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,r(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,r(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,r(a,c,d,f,g))}}a.B&&a.B(g)}catch(I){if(I!==V)throw I;}}function q(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var m=ga[b.name],p=b.next,n=b.next+1;n<k&&!("\x3c/"===a[n-1]&&m.test(a[n]));n++);n<k&&
-(n-=1);k=a.slice(p,n).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,r(c,a,n,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,r(c,a,n,g,d));else throw Error("bug");return n}function s(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),m=c+1,p=a.length;m<p&&"\x3e"!==a[m];m++)l+=a[m];if(!(p<=m)){for(var r=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],n=d,l=[l,a[m++]];m<p;m++){if(n){if("\x3e"===a[m])break}else 0<=
-a[m].indexOf(f)&&(n=b);l.push(a[m])}if(p<=m)break;l=l.join("")}else{var n=f[1].toLowerCase(),q;if(f[2]){q=f[3];var t=q.charCodeAt(0);if(34===t||39===t)q=q.substr(1,q.length-2);q=g(q.replace(O,""))}else q="";r.push(n,q);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=r;k.next=m+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return p({startDoc:function(){g=[];l=d},startTag:function(d,f,m){if(!l&&e.f.hasOwnProperty(d)){var p=e.f[d];if(!(p&e.c.FOLDABLE)){var r=b(d,
-f);if(r){if("object"!==typeof r)throw Error("tagPolicy did not return object (old API?)");if("attribs"in r)f=r.attribs;else throw Error("tagPolicy gave no attribs");var n;"tagName"in r?(n=r.tagName,r=e.f[n]):(n=d,r=p);if(p&e.c.OPTIONAL_ENDTAG){var q=g[g.length-1];q&&q.D===d&&(q.v!==n||d!==n)&&m.push("\x3c/",q.v,"\x3e")}p&e.c.EMPTY||g.push({D:d,v:n});m.push("\x3c",n);d=0;for(q=f.length;d<q;d+=2){var s=f[d],t=f[d+1];t!==c&&t!==a&&m.push(" ",s,'\x3d"',k(t),'"')}m.push("\x3e");p&e.c.EMPTY&&!(r&e.c.EMPTY)&&
-m.push("\x3c/",n,"\x3e")}else l=!(p&e.c.EMPTY)}}},endTag:function(a,b){if(l)l=d;else if(e.f.hasOwnProperty(a)){var c=e.f[a];if(!(c&(e.c.EMPTY|e.c.FOLDABLE))){if(c&e.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(e.f[f]&e.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;e.f[k]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;b.push("\x3c/",a,"\x3e")}}}},pcdata:f,rcdata:f,cdata:f,
-endDoc:function(a){for(;g.length;g.length--)a.push("\x3c/",g[g.length-1].v,"\x3e")}})}function v(a,b,d,e,f){if(!f)return c;try{var g=m.parse(""+a);if(g&&(!g.K()||ka.test(g.W()))){var k=f(g,b,d,e);return k?k.toString():c}}catch(l){}return c}function L(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function R(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+
-c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var m=d[l],p=d[l+1],r=p,n=c,q;if((q=b+"::"+m,e.m.hasOwnProperty(q))||(q="*::"+m,e.m.hasOwnProperty(q)))n=e.m[q];if(n!==c)switch(n){case e.d.NONE:break;case e.d.SCRIPT:p=c;k&&L(k,b,m,r,p);break;case e.d.STYLE:if("undefined"===typeof C){p=c;k&&L(k,b,m,r,p);break}var s=[];C(p,{declaration:function(a,b){var d=a.toLowerCase();U(d,b,f?function(a){return v(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&s.push(d+
-": "+b.join(" "))}});p=0<s.length?s.join(" ; "):c;k&&L(k,b,m,r,p);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:p=g?g(p):p;k&&L(k,b,m,r,p);break;case e.d.URI:p=v(p,R(e.J,b,m),R(e.I,b,m),{TYPE:"MARKUP",XML_ATTR:m,XML_TAG:b},f);k&&L(k,b,m,r,p);break;case e.d.URI_FRAGMENT:p&&"#"===p.charAt(0)?(p=p.substring(1),p=g?g(p):p,p!==c&&p!==a&&(p="#"+p)):p=c;k&&L(k,b,m,r,p);break;default:p=c,k&&L(k,b,m,r,p)}else p=c,k&&L(k,b,m,r,p);d[l+1]=p}return d}
-function da(b,c,d){return function(f,g){if(e.f[f]&e.c.UNSAFE)d&&L(d,f,a,a,a);else return{attribs:W(f,g,b,c,d)}}}function B(a,b){var c=[];t(b)(a,c);return c.join("")}var C,U;"undefined"!==typeof window&&(C=window.parseCssDeclarations,U=window.sanitizeCssProperty);var Z={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},J=/^#(\d+)$/,aa=/^#x([0-9A-Fa-f]+)$/,N=/^[A-Za-z][A-za-z0-9]+$/,K="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
-c,O=/\0/g,S=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ca=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,$=/&/g,P=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,Y=/>/g,T=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ha=3==="a,b".split(/(,)/).length,ea=e.c.CDATA|e.c.RCDATA,V={},ga={},ka=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=t;ba.sa=ba.makeSaxParser=p;ba.ta=ba.makeTagPolicy=da;ba.wa=ba.normalizeRCData=l;ba.xa=
-ba.sanitize=function(a,b,c,d){return B(a,da(b,c,d))};ba.ya=ba.sanitizeAttribs=W;ba.za=ba.sanitizeWithPolicy=B;ba.Ba=ba.unescapeEntities=g;return ba}(v);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,k,l,m=0;for(null!=b&&b||(a=Base64._utf8_encode(a));m<a.length;)d=a.charCodeAt(m++),e=a.charCodeAt(m++),f=a.charCodeAt(m++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=
+time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};u.ELEMENT_DOM_INTERFACES=u.Q;u.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};u.ueffects=u.P;u.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};
+u.URIEFFECTS=u.J;u.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};u.ltypes=u.M;u.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};u.LOADERTYPES=u.I;"undefined"!==typeof window&&(window.html4=u);e=function(e){function f(a,b){var c;if(Z.hasOwnProperty(b))c=Z[b];else{var d=b.match(J);c=d?String.fromCharCode(parseInt(d[1],10)):(d=b.match(aa))?String.fromCharCode(parseInt(d[1],
+16)):K&&M.test(b)?(K.innerHTML="\x26"+b+";",d=K.textContent,Z[b]=d):"\x26"+b+";"}return c}function g(a){return a.replace(R,f)}function k(a){return(""+a).replace($,"\x26amp;").replace(X,"\x26lt;").replace(Y,"\x26gt;").replace(T,"\x26#34;")}function l(a){return a.replace(P,"\x26amp;$1").replace(X,"\x26lt;").replace(Y,"\x26gt;")}function m(a){var b={z:a.z||a.cdata,A:a.A||a.comment,B:a.B||a.endDoc,t:a.t||a.endTag,e:a.e||a.pcdata,F:a.F||a.rcdata,H:a.H||a.startDoc,w:a.w||a.startTag};return function(a,e){var f,
+g=/(<\/|<\!--|<[!?]|[&<>])/g;f=a+"";if(ha)f=f.split(g);else{for(var k=[],l=0,n;(n=g.exec(f))!==c;)k.push(f.substring(l,n.index)),k.push(n[0]),l=n.index+n[0].length;k.push(f.substring(l));f=k}q(b,f,0,{r:d,C:d},e)}}function p(a,b,c,d,e){return function(){q(a,b,c,d,e)}}function q(a,c,d,f,g){try{a.H&&0==d&&a.H(g);for(var k,l,n,m=c.length;d<m;){var t=c[d++],B=c[d];switch(t){case "\x26":ca.test(B)?(a.e&&a.e("\x26"+B,g,V,p(a,c,d,f,g)),d++):a.e&&a.e("\x26amp;",g,V,p(a,c,d,f,g));break;case "\x3c/":if(k=/^([-\w:]+)[^\'\"]*/.exec(B))if(k[0].length===
+B.length&&"\x3e"===c[d+1])d+=2,n=k[1].toLowerCase(),a.t&&a.t(n,g,V,p(a,c,d,f,g));else{var u=c,D=d,A=a,Q=g,x=V,z=f,y=r(u,D);y?(A.t&&A.t(y.name,Q,x,p(A,u,D,z,Q)),d=y.next):d=u.length}else a.e&&a.e("\x26lt;/",g,V,p(a,c,d,f,g));break;case "\x3c":if(k=/^([-\w:]+)\s*\/?/.exec(B))if(k[0].length===B.length&&"\x3e"===c[d+1]){d+=2;n=k[1].toLowerCase();a.w&&a.w(n,[],g,V,p(a,c,d,f,g));var I=e.f[n];I&ea&&(d=s(c,{name:n,next:d,c:I},a,g,V,f))}else{var u=c,D=a,A=g,Q=V,x=f,U=r(u,d);U?(D.w&&D.w(U.name,U.R,A,Q,p(D,
+u,U.next,x,A)),d=U.c&ea?s(u,U,D,A,Q,x):U.next):d=u.length}else a.e&&a.e("\x26lt;",g,V,p(a,c,d,f,g));break;case "\x3c!--":if(!f.C){for(l=d+1;l<m&&!("\x3e"===c[l]&&/--$/.test(c[l-1]));l++);if(l<m){if(a.A){var E=c.slice(d,l).join("");a.A(E.substr(0,E.length-2),g,V,p(a,c,l+1,f,g))}d=l+1}else f.C=b}f.C&&a.e&&a.e("\x26lt;!--",g,V,p(a,c,d,f,g));break;case "\x3c!":if(/^\w/.test(B)){if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;!",g,V,p(a,c,d,f,g))}else a.e&&a.e("\x26lt;!",
+g,V,p(a,c,d,f,g));break;case "\x3c?":if(!f.r){for(l=d+1;l<m&&"\x3e"!==c[l];l++);l<m?d=l+1:f.r=b}f.r&&a.e&&a.e("\x26lt;?",g,V,p(a,c,d,f,g));break;case "\x3e":a.e&&a.e("\x26gt;",g,V,p(a,c,d,f,g));break;case "":break;default:a.e&&a.e(t,g,V,p(a,c,d,f,g))}}a.B&&a.B(g)}catch(J){if(J!==V)throw J;}}function s(a,b,c,d,f,g){var k=a.length;ga.hasOwnProperty(b.name)||(ga[b.name]=RegExp("^"+b.name+"(?:[\\s\\/]|$)","i"));for(var n=ga[b.name],m=b.next,q=b.next+1;q<k&&!("\x3c/"===a[q-1]&&n.test(a[q]));q++);q<k&&
+(q-=1);k=a.slice(m,q).join("");if(b.c&e.c.CDATA)c.z&&c.z(k,d,f,p(c,a,q,g,d));else if(b.c&e.c.RCDATA)c.F&&c.F(l(k),d,f,p(c,a,q,g,d));else throw Error("bug");return q}function r(a,c){var f=/^([-\w:]+)/.exec(a[c]),k={};k.name=f[1].toLowerCase();k.c=e.f[k.name];for(var l=a[c].substr(f[0].length),n=c+1,m=a.length;n<m&&"\x3e"!==a[n];n++)l+=a[n];if(!(m<=n)){for(var p=[];""!==l;)if(f=Q.exec(l))if(f[4]&&!f[5]||f[6]&&!f[7]){for(var f=f[4]||f[6],q=d,l=[l,a[n++]];n<m;n++){if(q){if("\x3e"===a[n])break}else 0<=
+a[n].indexOf(f)&&(q=b);l.push(a[n])}if(m<=n)break;l=l.join("")}else{var q=f[1].toLowerCase(),s;if(f[2]){s=f[3];var t=s.charCodeAt(0);if(34===t||39===t)s=s.substr(1,s.length-2);s=g(s.replace(O,""))}else s="";p.push(q,s);l=l.substr(f[0].length)}else l=l.replace(/^[\s\S][^a-z\s]*/,"");k.R=p;k.next=n+1;return k}}function t(b){function f(a,b){l||b.push(a)}var g,l;return m({startDoc:function(){g=[];l=d},startTag:function(d,f,n){if(!l&&e.f.hasOwnProperty(d)){var m=e.f[d];if(!(m&e.c.FOLDABLE)){var p=b(d,
+f);if(p){if("object"!==typeof p)throw Error("tagPolicy did not return object (old API?)");if("attribs"in p)f=p.attribs;else throw Error("tagPolicy gave no attribs");var q;"tagName"in p?(q=p.tagName,p=e.f[q]):(q=d,p=m);if(m&e.c.OPTIONAL_ENDTAG){var s=g[g.length-1];s&&s.D===d&&(s.v!==q||d!==q)&&n.push("\x3c/",s.v,"\x3e")}m&e.c.EMPTY||g.push({D:d,v:q});n.push("\x3c",q);d=0;for(s=f.length;d<s;d+=2){var r=f[d],t=f[d+1];t!==c&&t!==a&&n.push(" ",r,'\x3d"',k(t),'"')}n.push("\x3e");m&e.c.EMPTY&&!(p&e.c.EMPTY)&&
+n.push("\x3c/",q,"\x3e")}else l=!(m&e.c.EMPTY)}}},endTag:function(a,b){if(l)l=d;else if(e.f.hasOwnProperty(a)){var c=e.f[a];if(!(c&(e.c.EMPTY|e.c.FOLDABLE))){if(c&e.c.OPTIONAL_ENDTAG)for(c=g.length;0<=--c;){var f=g[c].D;if(f===a)break;if(!(e.f[f]&e.c.OPTIONAL_ENDTAG))return}else for(c=g.length;0<=--c&&g[c].D!==a;);if(!(0>c)){for(f=g.length;--f>c;){var k=g[f].v;e.f[k]&e.c.OPTIONAL_ENDTAG||b.push("\x3c/",k,"\x3e")}c<g.length&&(a=g[c].v);g.length=c;b.push("\x3c/",a,"\x3e")}}}},pcdata:f,rcdata:f,cdata:f,
+endDoc:function(a){for(;g.length;g.length--)a.push("\x3c/",g[g.length-1].v,"\x3e")}})}function u(a,b,d,e,f){if(!f)return c;try{var g=n.parse(""+a);if(g&&(!g.K()||ka.test(g.W()))){var k=f(g,b,d,e);return k?k.toString():c}}catch(l){}return c}function L(a,b,c,d,e){c||a(b+" removed",{S:"removed",tagName:b});if(d!==e){var f="changed";d&&!e?f="removed":!d&&e&&(f="added");a(b+"."+c+" "+f,{S:f,tagName:b,la:c,oldValue:d,newValue:e})}}function S(a,b,c){b=b+"::"+c;if(a.hasOwnProperty(b))return a[b];b="*::"+
+c;if(a.hasOwnProperty(b))return a[b]}function W(b,d,f,g,k){for(var l=0;l<d.length;l+=2){var n=d[l],m=d[l+1],p=m,q=c,s;if((s=b+"::"+n,e.m.hasOwnProperty(s))||(s="*::"+n,e.m.hasOwnProperty(s)))q=e.m[s];if(q!==c)switch(q){case e.d.NONE:break;case e.d.SCRIPT:m=c;k&&L(k,b,n,p,m);break;case e.d.STYLE:if("undefined"===typeof A){m=c;k&&L(k,b,n,p,m);break}var r=[];A(m,{declaration:function(a,b){var d=a.toLowerCase();U(d,b,f?function(a){return u(a,e.P.ja,e.M.ka,{TYPE:"CSS",CSS_PROP:d},f)}:c);b.length&&r.push(d+
+": "+b.join(" "))}});m=0<r.length?r.join(" ; "):c;k&&L(k,b,n,p,m);break;case e.d.ID:case e.d.IDREF:case e.d.IDREFS:case e.d.GLOBAL_NAME:case e.d.LOCAL_NAME:case e.d.CLASSES:m=g?g(m):m;k&&L(k,b,n,p,m);break;case e.d.URI:m=u(m,S(e.J,b,n),S(e.I,b,n),{TYPE:"MARKUP",XML_ATTR:n,XML_TAG:b},f);k&&L(k,b,n,p,m);break;case e.d.URI_FRAGMENT:m&&"#"===m.charAt(0)?(m=m.substring(1),m=g?g(m):m,m!==c&&m!==a&&(m="#"+m)):m=c;k&&L(k,b,n,p,m);break;default:m=c,k&&L(k,b,n,p,m)}else m=c,k&&L(k,b,n,p,m);d[l+1]=m}return d}
+function da(b,c,d){return function(f,g){if(e.f[f]&e.c.UNSAFE)d&&L(d,f,a,a,a);else return{attribs:W(f,g,b,c,d)}}}function B(a,b){var c=[];t(b)(a,c);return c.join("")}var A,U;"undefined"!==typeof window&&(A=window.parseCssDeclarations,U=window.sanitizeCssProperty);var Z={lt:"\x3c",LT:"\x3c",gt:"\x3e",GT:"\x3e",amp:"\x26",AMP:"\x26",quot:'"',apos:"'",nbsp:"\u00a0"},J=/^#(\d+)$/,aa=/^#x([0-9A-Fa-f]+)$/,M=/^[A-Za-z][A-za-z0-9]+$/,K="undefined"!==typeof window&&window.document?window.document.createElement("textarea"):
+c,O=/\0/g,R=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,ca=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,$=/&/g,P=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,X=/[<]/g,Y=/>/g,T=/\"/g,Q=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,ha=3==="a,b".split(/(,)/).length,ea=e.c.CDATA|e.c.RCDATA,V={},ga={},ka=/^(?:https?|mailto|data)$/i,ba={};ba.pa=ba.escapeAttrib=k;ba.ra=ba.makeHtmlSanitizer=t;ba.sa=ba.makeSaxParser=m;ba.ta=ba.makeTagPolicy=da;ba.wa=ba.normalizeRCData=l;ba.xa=
+ba.sanitize=function(a,b,c,d){return B(a,da(b,c,d))};ba.ya=ba.sanitizeAttribs=W;ba.za=ba.sanitizeWithPolicy=B;ba.Ba=ba.unescapeEntities=g;return ba}(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,k,l,n=0;for(null!=b&&b||(a=Base64._utf8_encode(a));n<a.length;)d=a.charCodeAt(n++),e=a.charCodeAt(n++),f=a.charCodeAt(n++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=
a.replace(/[^A-Za-z0-9\+\/\=]/g,"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):
(127<d&&2048>d?b+=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;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(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(k,m){if(!d[k]){if(!c[k]){var n="function"==typeof require&&require;if(!m&&n)return n(k,!0);if(g)return g(k,!0);n=Error("Cannot find module '"+k+"'");throw n.code="MODULE_NOT_FOUND",n;}n=d[k]={exports:{}};
-c[k][0].call(n.exports,function(b){var d=c[k][1][b];return f(d?d:b)},n,n.exports,b,c,d,e)}return d[k].exports}for(var g="function"==typeof require&&require,k=0;k<e.length;k++)f(e[k]);return f}({1:[function(b,c,d){function e(b){if(!(this instanceof e))return new e(b);b=this.options=k.assign({level:r,method:t,chunkSize:16384,windowBits:15,memLevel:8,strategy:s,to:""},b||{});b.raw&&0<b.windowBits?b.windowBits=-b.windowBits:b.gzip&&0<b.windowBits&&16>b.windowBits&&(b.windowBits+=16);this.err=0;this.msg=
-"";this.ended=!1;this.chunks=[];this.strm=new n;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?l.string2buf(b.dictionary):"[object ArrayBuffer]"===q.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"),k=b("./utils/common"),l=b("./utils/strings"),m=b("./zlib/messages"),n=b("./zlib/zstream"),q=Object.prototype.toString,p=0,r=-1,s=0,t=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=l.string2buf(b):"[object ArrayBuffer]"===q.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 k.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(l.buf2binstring(k.shrinkBuf(f.output,f.next_out))):this.onData(k.shrinkBuf(f.output,f.next_out)))}while((0<f.avail_in||0===f.avail_out)&&1!==d);return 4===e?(d=g.deflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===p):2!==e||(this.onEnd(p),f.avail_out=0,!0)};e.prototype.onData=
-function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Deflate=e;d.deflate=f;d.deflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.gzip=function(b,c){return c=c||{},c.gzip=!0,f(b,c)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(b,c,d){function e(b){if(!(this instanceof
-e))return new e(b);var c=this.options=k.assign({chunkSize:16384,windowBits:0,to:""},b||{});c.raw&&0<=c.windowBits&&16>c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15<c.windowBits&&48>c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new q;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==m.Z_OK)throw Error(n[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"),k=b("./utils/common"),l=b("./utils/strings"),m=b("./zlib/constants"),n=b("./zlib/messages"),q=b("./zlib/zstream"),p=b("./zlib/gzheader"),r=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,p,n,q,D=this.strm,E=this.options.chunkSize,A=this.options.dictionary,F=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?m.Z_FINISH:m.Z_NO_FLUSH;
-"string"==typeof b?D.input=l.binstring2buf(b):"[object ArrayBuffer]"===r.call(b)?D.input=new Uint8Array(b):D.input=b;D.next_in=0;D.avail_in=D.input.length;do{if(0===D.avail_out&&(D.output=new k.Buf8(E),D.next_out=0,D.avail_out=E),d=g.inflate(D,m.Z_NO_FLUSH),d===m.Z_NEED_DICT&&A&&(q="string"==typeof A?l.string2buf(A):"[object ArrayBuffer]"===r.call(A)?new Uint8Array(A):A,d=g.inflateSetDictionary(this.strm,q)),d===m.Z_BUF_ERROR&&!0===F&&(d=m.Z_OK,F=!1),d!==m.Z_STREAM_END&&d!==m.Z_OK)return this.onEnd(d),
-this.ended=!0,!1;D.next_out&&(0!==D.avail_out&&d!==m.Z_STREAM_END&&(0!==D.avail_in||e!==m.Z_FINISH&&e!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(D.output,D.next_out),p=D.next_out-f,n=l.buf2string(D.output,f),D.next_out=p,D.avail_out=E-p,p&&k.arraySet(D.output,D.output,f,p,0),this.onData(n)):this.onData(k.shrinkBuf(D.output,D.next_out))));0===D.avail_in&&0===D.avail_out&&(F=!0)}while((0<D.avail_in||0===D.avail_out)&&d!==m.Z_STREAM_END);return d===m.Z_STREAM_END&&(e=m.Z_FINISH),
-e===m.Z_FINISH?(d=g.inflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===m.Z_OK):e!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),D.avail_out=0,!0)};e.prototype.onData=function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===m.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=e;d.inflate=f;d.inflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.ungzip=f},{"./utils/common":3,
+!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(k,n){if(!d[k]){if(!c[k]){var m="function"==typeof require&&require;if(!n&&m)return m(k,!0);if(g)return g(k,!0);m=Error("Cannot find module '"+k+"'");throw m.code="MODULE_NOT_FOUND",m;}m=d[k]={exports:{}};
+c[k][0].call(m.exports,function(b){var d=c[k][1][b];return f(d?d:b)},m,m.exports,b,c,d,e)}return d[k].exports}for(var g="function"==typeof require&&require,k=0;k<e.length;k++)f(e[k]);return f}({1:[function(b,c,d){function e(b){if(!(this instanceof e))return new e(b);b=this.options=k.assign({level:s,method:t,chunkSize:16384,windowBits:15,memLevel:8,strategy:r,to:""},b||{});b.raw&&0<b.windowBits?b.windowBits=-b.windowBits:b.gzip&&0<b.windowBits&&16>b.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!==q)throw Error(n[c]);if(b.header&&g.deflateSetHeader(this.strm,b.header),b.dictionary){var d;if(d="string"==typeof b.dictionary?l.string2buf(b.dictionary):"[object ArrayBuffer]"===p.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=g.deflateSetDictionary(this.strm,d),c!==q)throw Error(n[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"),k=b("./utils/common"),l=b("./utils/strings"),n=b("./zlib/messages"),m=b("./zlib/zstream"),p=Object.prototype.toString,q=0,s=-1,r=0,t=8;e.prototype.push=function(b,c){var d,e,f=this.strm,n=this.options.chunkSize;if(this.ended)return!1;e=c===~~c?c:!0===c?4:0;"string"==typeof b?f.input=l.string2buf(b):"[object ArrayBuffer]"===p.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 k.Buf8(n),f.next_out=0,f.avail_out=n),d=g.deflate(f,e),1!==d&&d!==q)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(l.buf2binstring(k.shrinkBuf(f.output,f.next_out))):this.onData(k.shrinkBuf(f.output,f.next_out)))}while((0<f.avail_in||0===f.avail_out)&&1!==d);return 4===e?(d=g.deflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===q):2!==e||(this.onEnd(q),f.avail_out=0,!0)};e.prototype.onData=
+function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===q&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Deflate=e;d.deflate=f;d.deflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.gzip=function(b,c){return c=c||{},c.gzip=!0,f(b,c)}},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(b,c,d){function e(b){if(!(this instanceof
+e))return new e(b);var c=this.options=k.assign({chunkSize:16384,windowBits:0,to:""},b||{});c.raw&&0<=c.windowBits&&16>c.windowBits&&(c.windowBits=-c.windowBits,0===c.windowBits&&(c.windowBits=-15));!(0<=c.windowBits&&16>c.windowBits)||b&&b.windowBits||(c.windowBits+=32);15<c.windowBits&&48>c.windowBits&&0===(15&c.windowBits)&&(c.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new p;this.strm.avail_out=0;b=g.inflateInit2(this.strm,c.windowBits);if(b!==n.Z_OK)throw Error(m[b]);
+this.header=new q;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"),k=b("./utils/common"),l=b("./utils/strings"),n=b("./zlib/constants"),m=b("./zlib/messages"),p=b("./zlib/zstream"),q=b("./zlib/gzheader"),s=Object.prototype.toString;e.prototype.push=function(b,c){var d,e,f,m,p,q,C=this.strm,F=this.options.chunkSize,D=this.options.dictionary,G=!1;if(this.ended)return!1;e=c===~~c?c:!0===c?n.Z_FINISH:n.Z_NO_FLUSH;
+"string"==typeof b?C.input=l.binstring2buf(b):"[object ArrayBuffer]"===s.call(b)?C.input=new Uint8Array(b):C.input=b;C.next_in=0;C.avail_in=C.input.length;do{if(0===C.avail_out&&(C.output=new k.Buf8(F),C.next_out=0,C.avail_out=F),d=g.inflate(C,n.Z_NO_FLUSH),d===n.Z_NEED_DICT&&D&&(q="string"==typeof D?l.string2buf(D):"[object ArrayBuffer]"===s.call(D)?new Uint8Array(D):D,d=g.inflateSetDictionary(this.strm,q)),d===n.Z_BUF_ERROR&&!0===G&&(d=n.Z_OK,G=!1),d!==n.Z_STREAM_END&&d!==n.Z_OK)return this.onEnd(d),
+this.ended=!0,!1;C.next_out&&(0!==C.avail_out&&d!==n.Z_STREAM_END&&(0!==C.avail_in||e!==n.Z_FINISH&&e!==n.Z_SYNC_FLUSH)||("string"===this.options.to?(f=l.utf8border(C.output,C.next_out),m=C.next_out-f,p=l.buf2string(C.output,f),C.next_out=m,C.avail_out=F-m,m&&k.arraySet(C.output,C.output,f,m,0),this.onData(p)):this.onData(k.shrinkBuf(C.output,C.next_out))));0===C.avail_in&&0===C.avail_out&&(G=!0)}while((0<C.avail_in||0===C.avail_out)&&d!==n.Z_STREAM_END);return d===n.Z_STREAM_END&&(e=n.Z_FINISH),
+e===n.Z_FINISH?(d=g.inflateEnd(this.strm),this.onEnd(d),this.ended=!0,d===n.Z_OK):e!==n.Z_SYNC_FLUSH||(this.onEnd(n.Z_OK),C.avail_out=0,!0)};e.prototype.onData=function(b){this.chunks.push(b)};e.prototype.onEnd=function(b){b===n.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=k.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};d.Inflate=e;d.inflate=f;d.inflateRaw=function(b,c){return c=c||{},c.raw=!0,f(b,c)};d.ungzip=f},{"./utils/common":3,
"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(b,c,d){b="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;d.assign=function(b){for(var c=Array.prototype.slice.call(arguments,1);c.length;){var d=c.shift();if(d){if("object"!=typeof d)throw new TypeError(d+"must be non-object");for(var e in d)d.hasOwnProperty(e)&&(b[e]=d[e])}}return b};d.shrinkBuf=function(b,c){return b.length===
-c?b:b.subarray?b.subarray(0,c):(b.length=c,b)};var e={arraySet:function(b,c,d,e,f){if(c.subarray&&b.subarray)return void b.set(c.subarray(d,d+e),f);for(var q=0;q<e;q++)b[f+q]=c[d+q]},flattenChunks:function(b){var c,d,e,f,q;c=e=0;for(d=b.length;c<d;c++)e+=b[c].length;q=new Uint8Array(e);c=e=0;for(d=b.length;c<d;c++)f=b[c],q.set(f,e),e+=f.length;return q}},f={arraySet:function(b,c,d,e,f){for(var q=0;q<e;q++)b[f+q]=c[d+q]},flattenChunks:function(b){return[].concat.apply([],b)}};d.setTyped=function(b){b?
-(d.Buf8=Uint8Array,d.Buf16=Uint16Array,d.Buf32=Int32Array,d.assign(d,e)):(d.Buf8=Array,d.Buf16=Array,d.Buf32=Array,d.assign(d,f))};d.setTyped(b)},{}],4:[function(b,c,d){function e(b,c){if(65537>c&&(b.subarray&&k||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[e]);return d}var f=b("./common"),g=!0,k=!0;try{String.fromCharCode.apply(null,[0])}catch(l){g=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(m){k=!1}var n=
-new f.Buf8(256);for(b=0;256>b;b++)n[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;n[254]=n[254]=1;d.string2buf=function(b){var c,d,e,g,k,l=b.length,m=0;for(g=0;g<l;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),m+=128>d?1:2048>d?2:65536>d?3:4;c=new f.Buf8(m);for(g=k=0;k<m;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),128>d?c[k++]=d:2048>
-d?(c[k++]=192|d>>>6,c[k++]=128|63&d):65536>d?(c[k++]=224|d>>>12,c[k++]=128|d>>>6&63,c[k++]=128|63&d):(c[k++]=240|d>>>18,c[k++]=128|d>>>12&63,c[k++]=128|d>>>6&63,c[k++]=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;d<e;d++)c[d]=b.charCodeAt(d);return c};d.buf2string=function(b,c){var d,f,g,k,l=c||b.length,m=Array(2*l);for(d=f=0;d<l;)if(g=b[d++],128>g)m[f++]=g;else if(k=n[g],4<k)m[f++]=65533,d+=k-1;else{for(g&=
-2===k?31:3===k?15:7;1<k&&d<l;)g=g<<6|63&b[d++],k--;1<k?m[f++]=65533:65536>g?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+n[b[d]]>c?d:c}},{"./common":3}],5:[function(b,c,d){c.exports=function(b,c,d,k){var l=65535&b|0;b=b>>>16&65535|0;for(var m=0;0!==d;){m=2E3<d?2E3:d;d-=m;do l=l+c[k++]|0,b=b+l|0;while(--m);l%=65521;b%=65521}return l|
+c?b:b.subarray?b.subarray(0,c):(b.length=c,b)};var e={arraySet:function(b,c,d,e,f){if(c.subarray&&b.subarray)return void b.set(c.subarray(d,d+e),f);for(var p=0;p<e;p++)b[f+p]=c[d+p]},flattenChunks:function(b){var c,d,e,f,p;c=e=0;for(d=b.length;c<d;c++)e+=b[c].length;p=new Uint8Array(e);c=e=0;for(d=b.length;c<d;c++)f=b[c],p.set(f,e),e+=f.length;return p}},f={arraySet:function(b,c,d,e,f){for(var p=0;p<e;p++)b[f+p]=c[d+p]},flattenChunks:function(b){return[].concat.apply([],b)}};d.setTyped=function(b){b?
+(d.Buf8=Uint8Array,d.Buf16=Uint16Array,d.Buf32=Int32Array,d.assign(d,e)):(d.Buf8=Array,d.Buf16=Array,d.Buf32=Array,d.assign(d,f))};d.setTyped(b)},{}],4:[function(b,c,d){function e(b,c){if(65537>c&&(b.subarray&&k||!b.subarray&&g))return String.fromCharCode.apply(null,f.shrinkBuf(b,c));for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[e]);return d}var f=b("./common"),g=!0,k=!0;try{String.fromCharCode.apply(null,[0])}catch(l){g=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(n){k=!1}var m=
+new f.Buf8(256);for(b=0;256>b;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,k,l=b.length,n=0;for(g=0;g<l;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),n+=128>d?1:2048>d?2:65536>d?3:4;c=new f.Buf8(n);for(g=k=0;k<n;g++)d=b.charCodeAt(g),55296===(64512&d)&&g+1<l&&(e=b.charCodeAt(g+1),56320===(64512&e)&&(d=65536+(d-55296<<10)+(e-56320),g++)),128>d?c[k++]=d:2048>
+d?(c[k++]=192|d>>>6,c[k++]=128|63&d):65536>d?(c[k++]=224|d>>>12,c[k++]=128|d>>>6&63,c[k++]=128|63&d):(c[k++]=240|d>>>18,c[k++]=128|d>>>12&63,c[k++]=128|d>>>6&63,c[k++]=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;d<e;d++)c[d]=b.charCodeAt(d);return c};d.buf2string=function(b,c){var d,f,g,k,l=c||b.length,n=Array(2*l);for(d=f=0;d<l;)if(g=b[d++],128>g)n[f++]=g;else if(k=m[g],4<k)n[f++]=65533,d+=k-1;else{for(g&=
+2===k?31:3===k?15:7;1<k&&d<l;)g=g<<6|63&b[d++],k--;1<k?n[f++]=65533:65536>g?n[f++]=g:(g-=65536,n[f++]=55296|g>>10&1023,n[f++]=56320|1023&g)}return e(n,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,k){var l=65535&b|0;b=b>>>16&65535|0;for(var n=0;0!==d;){n=2E3<d?2E3:d;d-=n;do l=l+c[k++]|0,b=b+l|0;while(--n);l%=65521;b%=65521}return l|
b<<16|0}},{}],6:[function(b,c,d){c.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(b,c,d){var e=function(){for(var b,c=[],d=0;256>d;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,l){d=l+d;for(b^=-1;l<d;l++)b=b>>>8^e[255&(b^c[l])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=A[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&&(x.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 k(b,c){G._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 l(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 n(b,c){var d,e,f=b.max_chain_length,g=b.strstart,k=b.prev_length,l=b.nice_match,m=b.strstart>b.w_size-S?b.strstart-(b.w_size-S):0,p=b.window,n=b.w_mask,r=b.prev,q=b.strstart+O,s=p[g+k-1],H=p[g+k];b.prev_length>=b.good_match&&
-(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,p[d+k]===H&&p[d+k-1]===s&&p[d]===p[g]&&p[++d]===p[g+1]){g+=2;d++;do;while(p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&p[++g]===p[++d]&&g<q);if(e=O-(q-g),g=q-O,e>k){if(b.match_start=c,k=e,e>=l)break;s=p[g+k-1];H=p[g+k]}}while((c=r[c&n])>m&&0!==--f);return k<=b.lookahead?k:b.lookahead}function q(b){var c,d,e,f,g=b.w_size;do{if(f=b.window_size-b.lookahead-b.strstart,b.strstart>=
-g+(g-S)){x.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 k=b.strstart+b.lookahead,l=c.avail_in;if(d=(l>f&&(l=f),0===l?0:(c.avail_in-=l,x.arraySet(e,c.input,c.next_in,l,k),1===c.state.wrap?c.adler=D(c.adler,e,l,k):2===c.state.wrap&&(c.adler=E(c.adler,e,l,k)),c.next_in+=l,c.total_in+=l,l)),
-b.lookahead+=d,b.lookahead+b.insert>=K){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+K-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<K)););}}while(b.lookahead<S&&0!==b.strm.avail_in)}function p(b,c){for(var d,e;;){if(b.lookahead<S){if(q(b),b.lookahead<S&&c===F)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<
-b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-S&&(b.match_length=n(b,d)),b.match_length>=K)if(e=G._tr_tally(b,b.strstart-b.match_start,b.match_length-K),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=K){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
-b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else e=G._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(e&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function r(b,c){for(var d,e,f;;){if(b.lookahead<S){if(q(b),
-b.lookahead<S&&c===F)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=K-1,0!==d&&b.prev_length<b.max_lazy_match&&b.strstart-d<=b.w_size-S&&(b.match_length=n(b,d),5>=b.match_length&&(b.strategy===R||b.match_length===K&&4096<b.strstart-b.match_start)&&(b.match_length=K-1)),b.prev_length>=
-K&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-K;e=G._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-K);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=K-1,b.strstart++,e&&(k(b,!1),0===b.strm.avail_out))return P}else if(b.match_available){if(e=G._tr_tally(b,0,
-b.window[b.strstart-1]),e&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return P}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(G._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function s(b,c,d,e,f){this.good_length=b;this.max_lazy=c;this.nice_length=d;this.max_chain=e;this.func=f}function t(){this.strm=null;this.status=
+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,l){d=l+d;for(b^=-1;l<d;l++)b=b>>>8^e[255&(b^c[l])];return b^-1}},{}],8:[function(b,c,d){function e(b,c){return b.msg=D[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&&(x.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 k(b,c){E._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 l(b,c){b.pending_buf[b.pending++]=c}function n(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,k=b.prev_length,l=b.nice_match,n=b.strstart>b.w_size-R?b.strstart-(b.w_size-R):0,m=b.window,p=b.w_mask,q=b.prev,s=b.strstart+O,r=m[g+k-1],H=m[g+k];b.prev_length>=b.good_match&&
+(f>>=2);l>b.lookahead&&(l=b.lookahead);do if(d=c,m[d+k]===H&&m[d+k-1]===r&&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]&&g<s);if(e=O-(s-g),g=s-O,e>k){if(b.match_start=c,k=e,e>=l)break;r=m[g+k-1];H=m[g+k]}}while((c=q[c&p])>n&&0!==--f);return k<=b.lookahead?k:b.lookahead}function p(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)){x.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 k=b.strstart+b.lookahead,l=c.avail_in;if(d=(l>f&&(l=f),0===l?0:(c.avail_in-=l,x.arraySet(e,c.input,c.next_in,l,k),1===c.state.wrap?c.adler=C(c.adler,e,l,k):2===c.state.wrap&&(c.adler=F(c.adler,e,l,k)),c.next_in+=l,c.total_in+=l,l)),
+b.lookahead+=d,b.lookahead+b.insert>=K){f=b.strstart-b.insert;b.ins_h=b.window[f];for(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[f+K-1])&b.hash_mask,b.prev[f&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=f,f++,b.insert--,!(b.lookahead+b.insert<K)););}}while(b.lookahead<R&&0!==b.strm.avail_in)}function q(b,c){for(var d,e;;){if(b.lookahead<R){if(p(b),b.lookahead<R&&c===G)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<
+b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==d&&b.strstart-d<=b.w_size-R&&(b.match_length=m(b,d)),b.match_length>=K)if(e=E._tr_tally(b,b.strstart-b.match_start,b.match_length-K),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=K){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=
+b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else e=E._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(e&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function s(b,c){for(var d,e,f;;){if(b.lookahead<R){if(p(b),
+b.lookahead<R&&c===G)return P;if(0===b.lookahead)break}if(d=0,b.lookahead>=K&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=K-1,0!==d&&b.prev_length<b.max_lazy_match&&b.strstart-d<=b.w_size-R&&(b.match_length=m(b,d),5>=b.match_length&&(b.strategy===S||b.match_length===K&&4096<b.strstart-b.match_start)&&(b.match_length=K-1)),b.prev_length>=
+K&&b.match_length<=b.prev_length){f=b.strstart+b.lookahead-K;e=E._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-K);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=f&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+K-1])&b.hash_mask,d=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=K-1,b.strstart++,e&&(k(b,!1),0===b.strm.avail_out))return P}else if(b.match_available){if(e=E._tr_tally(b,0,
+b.window[b.strstart-1]),e&&k(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return P}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(E._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<K-1?b.strstart:K-1,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):b.last_lit&&(k(b,!1),0===b.strm.avail_out)?P:X}function r(b,c,d,e,f){this.good_length=b;this.max_lazy=c;this.nice_length=d;this.max_chain=e;this.func=f}function t(){this.strm=null;this.status=
0;this.pending_buf=null;this.wrap=this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=B;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=
-this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*aa);this.dyn_dtree=new x.Buf16(2*(2*Z+1));this.bl_tree=new x.Buf16(2*(2*J+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(N+1);this.heap=new x.Buf16(2*U+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*U+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
-this.lit_bufsize=this.l_buf=0}function v(b){var c;return b&&b.state?(b.total_in=b.total_out=0,b.data_type=da,c=b.state,c.pending=0,c.pending_out=0,0>c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?ca:$,b.adler=2===c.wrap?0:1,c.last_flush=F,G._tr_init(c),I):e(b,M)}function u(b){var c=v(b);c===I&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=z[b.level].max_lazy,b.good_match=z[b.level].good_length,b.nice_match=z[b.level].nice_length,b.max_chain_length=z[b.level].max_chain,b.strstart=0,b.block_start=
-0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=K-1,b.match_available=0,b.ins_h=0);return c}function y(b,c,d,f,g,k){if(!b)return M;var l=1;if(c===L&&(c=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>C||d!==B||8>f||15<f||0>c||9<c||0>k||k>W)return e(b,M);8===f&&(f=9);var m=new t;return b.state=m,m.strm=b,m.wrap=l,m.gzhead=null,m.w_bits=f,m.w_size=1<<m.w_bits,m.w_mask=m.w_size-1,m.hash_bits=g+7,m.hash_size=1<<m.hash_bits,m.hash_mask=m.hash_size-1,m.hash_shift=~~((m.hash_bits+K-1)/K),m.window=new x.Buf8(2*
-m.w_size),m.head=new x.Buf16(m.hash_size),m.prev=new x.Buf16(m.w_size),m.lit_bufsize=1<<g+6,m.pending_buf_size=4*m.lit_bufsize,m.pending_buf=new x.Buf8(m.pending_buf_size),m.d_buf=1*m.lit_bufsize,m.l_buf=3*m.lit_bufsize,m.level=c,m.strategy=k,m.method=d,u(b)}var z,x=b("../utils/common"),G=b("./trees"),D=b("./adler32"),E=b("./crc32"),A=b("./messages"),F=0,H=4,I=0,M=-2,L=-1,R=1,W=4,da=2,B=8,C=9,U=286,Z=30,J=19,aa=2*U+1,N=15,K=3,O=258,S=O+K+1,ca=42,$=113,P=1,X=2,Y=3,T=4;z=[new s(0,0,0,0,function(b,c){var d=
-65535;for(d>b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(q(b),0===b.lookahead&&c===F)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-S&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):(b.strstart>b.block_start&&k(b,!1),P)}),new s(4,4,8,
-4,p),new s(4,5,16,8,p),new s(4,6,32,32,p),new s(4,4,16,16,r),new s(8,16,32,32,r),new s(8,16,128,128,r),new s(8,32,128,256,r),new s(32,128,258,1024,r),new s(32,258,258,4096,r)];d.deflateInit=function(b,c){return y(b,c,B,15,8,0)};d.deflateInit2=y;d.deflateReset=u;d.deflateResetKeep=v;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?M:(b.state.gzhead=c,I):M};d.deflate=function(b,c){var d,p,n,r;if(!b||!b.state||5<c||0>c)return b?e(b,M):M;if(p=b.state,!b.output||!b.input&&0!==b.avail_in||
-666===p.status&&c!==H)return e(b,0===b.avail_out?-5:M);if(p.strm=b,d=p.last_flush,p.last_flush=c,p.status===ca)2===p.wrap?(b.adler=0,l(p,31),l(p,139),l(p,8),p.gzhead?(l(p,(p.gzhead.text?1:0)+(p.gzhead.hcrc?2:0)+(p.gzhead.extra?4:0)+(p.gzhead.name?8:0)+(p.gzhead.comment?16:0)),l(p,255&p.gzhead.time),l(p,p.gzhead.time>>8&255),l(p,p.gzhead.time>>16&255),l(p,p.gzhead.time>>24&255),l(p,9===p.level?2:2<=p.strategy||2>p.level?4:0),l(p,255&p.gzhead.os),p.gzhead.extra&&p.gzhead.extra.length&&(l(p,255&p.gzhead.extra.length),
-l(p,p.gzhead.extra.length>>8&255)),p.gzhead.hcrc&&(b.adler=E(b.adler,p.pending_buf,p.pending,0)),p.gzindex=0,p.status=69):(l(p,0),l(p,0),l(p,0),l(p,0),l(p,0),l(p,9===p.level?2:2<=p.strategy||2>p.level?4:0),l(p,3),p.status=$)):(n=B+(p.w_bits-8<<4)<<8,r=2<=p.strategy||2>p.level?0:6>p.level?1:6===p.level?2:3,n|=r<<6,0!==p.strstart&&(n|=32),p.status=$,m(p,n+(31-n%31)),0!==p.strstart&&(m(p,b.adler>>>16),m(p,65535&b.adler)),b.adler=1);if(69===p.status)if(p.gzhead.extra){for(n=p.pending;p.gzindex<(65535&
-p.gzhead.extra.length)&&(p.pending!==p.pending_buf_size||(p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n)),g(b),n=p.pending,p.pending!==p.pending_buf_size));)l(p,255&p.gzhead.extra[p.gzindex]),p.gzindex++;p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n));p.gzindex===p.gzhead.extra.length&&(p.gzindex=0,p.status=73)}else p.status=73;if(73===p.status)if(p.gzhead.name){n=p.pending;do{if(p.pending===p.pending_buf_size&&(p.gzhead.hcrc&&p.pending>n&&
-(b.adler=E(b.adler,p.pending_buf,p.pending-n,n)),g(b),n=p.pending,p.pending===p.pending_buf_size)){r=1;break}r=p.gzindex<p.gzhead.name.length?255&p.gzhead.name.charCodeAt(p.gzindex++):0;l(p,r)}while(0!==r);p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n));0===r&&(p.gzindex=0,p.status=91)}else p.status=91;if(91===p.status)if(p.gzhead.comment){n=p.pending;do{if(p.pending===p.pending_buf_size&&(p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n)),g(b),
-n=p.pending,p.pending===p.pending_buf_size)){r=1;break}r=p.gzindex<p.gzhead.comment.length?255&p.gzhead.comment.charCodeAt(p.gzindex++):0;l(p,r)}while(0!==r);p.gzhead.hcrc&&p.pending>n&&(b.adler=E(b.adler,p.pending_buf,p.pending-n,n));0===r&&(p.status=103)}else p.status=103;if(103===p.status&&(p.gzhead.hcrc?(p.pending+2>p.pending_buf_size&&g(b),p.pending+2<=p.pending_buf_size&&(l(p,255&b.adler),l(p,b.adler>>8&255),b.adler=0,p.status=$)):p.status=$),0!==p.pending){if(g(b),0===b.avail_out)return p.last_flush=
--1,I}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==H)return e(b,-5);if(666===p.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==p.lookahead||c!==F&&666!==p.status){var s;if(2===p.strategy)a:{for(var t;;){if(0===p.lookahead&&(q(p),0===p.lookahead)){if(c===F){s=P;break a}break}if(p.match_length=0,t=G._tr_tally(p,0,p.window[p.strstart]),p.lookahead--,p.strstart++,t&&(k(p,!1),0===p.strm.avail_out)){s=P;break a}}s=(p.insert=0,c===H?(k(p,!0),0===p.strm.avail_out?Y:T):p.last_lit&&
-(k(p,!1),0===p.strm.avail_out)?P:X)}else if(3===p.strategy)a:{var u,A;for(t=p.window;;){if(p.lookahead<=O){if(q(p),p.lookahead<=O&&c===F){s=P;break a}if(0===p.lookahead)break}if(p.match_length=0,p.lookahead>=K&&0<p.strstart&&(A=p.strstart-1,u=t[A],u===t[++A]&&u===t[++A]&&u===t[++A])){d=p.strstart+O;do;while(u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&u===t[++A]&&A<d);p.match_length=O-(d-A);p.match_length>p.lookahead&&(p.match_length=p.lookahead)}if(p.match_length>=
-K?(s=G._tr_tally(p,1,p.match_length-K),p.lookahead-=p.match_length,p.strstart+=p.match_length,p.match_length=0):(s=G._tr_tally(p,0,p.window[p.strstart]),p.lookahead--,p.strstart++),s&&(k(p,!1),0===p.strm.avail_out)){s=P;break a}}s=(p.insert=0,c===H?(k(p,!0),0===p.strm.avail_out?Y:T):p.last_lit&&(k(p,!1),0===p.strm.avail_out)?P:X)}else s=z[p.level].func(p,c);if(s!==Y&&s!==T||(p.status=666),s===P||s===Y)return 0===b.avail_out&&(p.last_flush=-1),I;if(s===X&&(1===c?G._tr_align(p):5!==c&&(G._tr_stored_block(p,
-0,0,!1),3===c&&(f(p.head),0===p.lookahead&&(p.strstart=0,p.block_start=0,p.insert=0))),g(b),0===b.avail_out))return p.last_flush=-1,I}return c!==H?I:0>=p.wrap?1:(2===p.wrap?(l(p,255&b.adler),l(p,b.adler>>8&255),l(p,b.adler>>16&255),l(p,b.adler>>24&255),l(p,255&b.total_in),l(p,b.total_in>>8&255),l(p,b.total_in>>16&255),l(p,b.total_in>>24&255)):(m(p,b.adler>>>16),m(p,65535&b.adler)),g(b),0<p.wrap&&(p.wrap=-p.wrap),0!==p.pending?I:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,
-c!==ca&&69!==c&&73!==c&&91!==c&&103!==c&&c!==$&&666!==c?e(b,M):(b.state=null,c===$?e(b,-3):I)):M};d.deflateSetDictionary=function(b,c){var d,e,g,k,l,p,m;e=c.length;if(!b||!b.state||(d=b.state,k=d.wrap,2===k||1===k&&d.status!==ca||d.lookahead))return M;1===k&&(b.adler=D(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===k&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),l=new x.Buf8(d.w_size),x.arraySet(l,c,e-d.w_size,d.w_size,0),c=l,e=d.w_size);l=b.avail_in;p=b.next_in;m=b.input;b.avail_in=e;b.next_in=
-0;b.input=c;for(q(d);d.lookahead>=K;){e=d.strstart;g=d.lookahead-(K-1);do d.ins_h=(d.ins_h<<d.hash_shift^d.window[e+K-1])&d.hash_mask,d.prev[e&d.w_mask]=d.head[d.ins_h],d.head[d.ins_h]=e,e++;while(--g);d.strstart=e;d.lookahead=K-1;q(d)}return d.strstart+=d.lookahead,d.block_start=d.strstart,d.insert=d.lookahead,d.lookahead=0,d.match_length=d.prev_length=K-1,d.match_available=0,b.next_in=p,b.input=m,b.avail_in=l,d.wrap=k,I};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
-"./crc32":7,"./messages":13,"./trees":14}],9:[function(b,c,d){c.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(b,c,d){c.exports=function(b,c){var d,k,l,m,n,q,p,r,s,t,v,u,y,z,x,G,D,E,A,F,H,I,M,L;d=b.state;k=b.next_in;M=b.input;l=k+(b.avail_in-5);m=b.next_out;L=b.output;n=m-(c-b.avail_out);q=m+(b.avail_out-257);p=d.dmax;r=d.wsize;s=d.whave;t=d.wnext;v=d.window;u=d.hold;y=d.bits;z=d.lencode;
-x=d.distcode;G=(1<<d.lenbits)-1;D=(1<<d.distbits)-1;a:do{15>y&&(u+=M[k++]<<y,y+=8,u+=M[k++]<<y,y+=8);E=z[u&G];b:for(;;){if(A=E>>>24,u>>>=A,y-=A,A=E>>>16&255,0===A)L[m++]=65535&E;else{if(!(16&A)){if(0===(64&A)){E=z[(65535&E)+(u&(1<<A)-1)];continue b}if(32&A){d.mode=12;break a}b.msg="invalid literal/length code";d.mode=30;break a}F=65535&E;(A&=15)&&(y<A&&(u+=M[k++]<<y,y+=8),F+=u&(1<<A)-1,u>>>=A,y-=A);15>y&&(u+=M[k++]<<y,y+=8,u+=M[k++]<<y,y+=8);E=x[u&D];c:for(;;){if(A=E>>>24,u>>>=A,y-=A,A=E>>>16&255,
-!(16&A)){if(0===(64&A)){E=x[(65535&E)+(u&(1<<A)-1)];continue c}b.msg="invalid distance code";d.mode=30;break a}if(H=65535&E,A&=15,y<A&&(u+=M[k++]<<y,y+=8,y<A&&(u+=M[k++]<<y,y+=8)),H+=u&(1<<A)-1,H>p){b.msg="invalid distance too far back";d.mode=30;break a}if(u>>>=A,y-=A,A=m-n,H>A){if(A=H-A,A>s&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(E=0,I=v,0===t){if(E+=r-A,A<F){F-=A;do L[m++]=v[E++];while(--A);E=m-H;I=L}}else if(t<A){if(E+=r+t-A,A-=t,A<F){F-=A;do L[m++]=v[E++];while(--A);
-if(E=0,t<F){A=t;F-=A;do L[m++]=v[E++];while(--A);E=m-H;I=L}}}else if(E+=t-A,A<F){F-=A;do L[m++]=v[E++];while(--A);E=m-H;I=L}for(;2<F;)L[m++]=I[E++],L[m++]=I[E++],L[m++]=I[E++],F-=3;F&&(L[m++]=I[E++],1<F&&(L[m++]=I[E++]))}else{E=m-H;do L[m++]=L[E++],L[m++]=L[E++],L[m++]=L[E++],F-=3;while(2<F);F&&(L[m++]=L[E++],1<F&&(L[m++]=L[E++]))}break}}break}}while(k<l&&m<q);F=y>>3;k-=F;y-=F<<3;b.next_in=k;b.next_out=m;b.avail_in=k<l?5+(l-k):5-(k-l);b.avail_out=m<q?257+(q-m):257-(m-q);d.hold=u&(1<<y)-1;d.bits=y}},
-{}],11:[function(b,c,d){function e(b){return(b>>>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=x,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(G),c.distcode=c.distdyn=new r.Buf32(D),c.sane=1,c.back=-1,y):z}function k(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):z}function l(b,c){var d,e;return b&&b.state?(e=b.state,
-0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15<c)?z:(null!==e.window&&e.wbits!==c&&(e.window=null),e.wrap=d,e.wbits=c,k(b))):z}function m(b,c){var d,e;return b?(e=new f,b.state=e,e.window=null,d=l(b,c),d!==y&&(b.state=null),d):z}function n(b,c,d,e){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new r.Buf8(b.wsize)),e>=b.wsize?(r.arraySet(b.window,c,d-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(f=b.wsize-b.wnext,f>e&&(f=e),r.arraySet(b.window,c,d-
-e,f,b.wnext),e-=f,e?(r.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var q,p,r=b("../utils/common"),s=b("./adler32"),t=b("./crc32"),v=b("./inffast"),u=b("./inftrees"),y=0,z=-2,x=1,G=852,D=592,E=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return m(b,15)};d.inflateInit2=m;d.inflate=function(b,c){var d,f,g,k,l,m,D,B,C,U,G,J,aa,N,K,O,S,ca,$,P,X,Y,T=0,Q=new r.Buf8(4),ha=[16,17,
-18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||!b.output||!b.input&&0!==b.avail_in)return z;d=b.state;12===d.mode&&(d.mode=13);l=b.next_out;g=b.output;D=b.avail_out;k=b.next_in;f=b.input;m=b.avail_in;B=d.hold;C=d.bits;U=m;G=D;X=y;a:for(;;)switch(d.mode){case x:if(0===d.wrap){d.mode=13;break}for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(2&d.wrap&&35615===B){d.check=0;Q[0]=255&B;Q[1]=B>>>8&255;d.check=t(d.check,Q,2,0);C=B=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&
-d.wrap)||(((255&B)<<8)+(B>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&B)){b.msg="unknown compression method";d.mode=30;break}if(B>>>=4,C-=4,P=(15&B)+8,0===d.wbits)d.wbits=P;else if(P>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<<P;b.adler=d.check=1;d.mode=512&B?10:12;C=B=0;break;case 2:for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(d.flags=B,8!==(255&d.flags)){b.msg="unknown compression method";d.mode=30;break}if(57344&d.flags){b.msg="unknown header flags set";
-d.mode=30;break}d.head&&(d.head.text=B>>8&1);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));C=B=0;d.mode=3;case 3:for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.head&&(d.head.time=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,Q[2]=B>>>16&255,Q[3]=B>>>24&255,d.check=t(d.check,Q,4,0));C=B=0;d.mode=4;case 4:for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.head&&(d.head.xflags=255&B,d.head.os=B>>8);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));C=B=0;d.mode=
-5;case 5:if(1024&d.flags){for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.length=B;d.head&&(d.head.extra_len=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));C=B=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(J=d.length,J>m&&(J=m),J&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),r.arraySet(d.head.extra,f,k,J,P)),512&d.flags&&(d.check=t(d.check,f,J,k)),m-=J,k+=J,d.length-=J),d.length))break a;d.length=0;d.mode=
-7;case 7:if(2048&d.flags){if(0===m)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&J<m);if(512&d.flags&&(d.check=t(d.check,f,J,k)),m-=J,k+=J,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===m)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&J<m);if(512&d.flags&&(d.check=t(d.check,f,J,k)),m-=J,k+=J,P)break a}else d.head&&(d.head.comment=null);d.mode=
-9;case 9:if(512&d.flags){for(;16>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B!==(65535&d.check)){b.msg="header crc mismatch";d.mode=30;break}C=B=0}d.head&&(d.head.hcrc=d.flags>>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}b.adler=d.check=e(B);C=B=0;d.mode=11;case 11:if(0===d.havedict)return b.next_out=l,b.avail_out=D,b.next_in=k,b.avail_in=m,d.hold=B,d.bits=C,2;b.adler=d.check=1;d.mode=12;case 12:if(5===c||6===c)break a;case 13:if(d.last){B>>>=
-7&C;C-=7&C;d.mode=27;break}for(;3>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}switch(d.last=1&B,B>>>=1,C-=1,3&B){case 0:d.mode=14;break;case 1:N=d;if(E){q=new r.Buf32(512);p=new r.Buf32(32);for(O=0;144>O;)N.lens[O++]=8;for(;256>O;)N.lens[O++]=9;for(;280>O;)N.lens[O++]=7;for(;288>O;)N.lens[O++]=8;u(1,N.lens,0,288,q,0,N.work,{bits:9});for(O=0;32>O;)N.lens[O++]=5;u(2,N.lens,0,32,p,0,N.work,{bits:5});E=!1}N.lencode=q;N.lenbits=9;N.distcode=p;N.distbits=5;if(d.mode=20,6===c){B>>>=2;C-=2;break a}break;case 2:d.mode=
-17;break;case 3:b.msg="invalid block type",d.mode=30}B>>>=2;C-=2;break;case 14:B>>>=7&C;for(C-=7&C;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if((65535&B)!==(B>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&B,B=0,C=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(J=d.length){if(J>m&&(J=m),J>D&&(J=D),0===J)break a;r.arraySet(g,f,k,J,l);m-=J;k+=J;D-=J;l+=J;d.length-=J;break}d.mode=12;break;case 17:for(;14>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(d.nlen=
-(31&B)+257,B>>>=5,C-=5,d.ndist=(31&B)+1,B>>>=5,C-=5,d.ncode=(15&B)+4,B>>>=4,C-=4,286<d.nlen||30<d.ndist){b.msg="too many length or distance symbols";d.mode=30;break}d.have=0;d.mode=18;case 18:for(;d.have<d.ncode;){for(;3>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.lens[ha[d.have++]]=7&B;B>>>=3;C-=3}for(;19>d.have;)d.lens[ha[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,Y={bits:d.lenbits},X=u(0,d.lens,0,19,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid code lengths set";d.mode=30;break}d.have=
-0;d.mode=19;case 19:for(;d.have<d.nlen+d.ndist;){for(;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,O=65535&T,!(K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(16>O)B>>>=K,C-=K,d.lens[d.have++]=O;else{if(16===O){for(N=K+2;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B>>>=K,C-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];J=3+(3&B);B>>>=2;C-=2}else if(17===O){for(N=K+3;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=K;C-=K;P=0;J=3+(7&B);B>>>=3;C-=3}else{for(N=
-K+7;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=K;C-=K;P=0;J=11+(127&B);B>>>=7;C-=7}if(d.have+J>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;J--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,Y={bits:d.lenbits},X=u(1,d.lens,0,d.nlen,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,Y={bits:d.distbits},
-X=u(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,Y),d.distbits=Y.bits,X){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<=D){b.next_out=l;b.avail_out=D;b.next_in=k;b.avail_in=m;d.hold=B;d.bits=C;v(b,G);l=b.next_out;g=b.output;D=b.avail_out;k=b.next_in;f=b.input;m=b.avail_in;B=d.hold;C=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,N=T>>>16&255,O=65535&T,!(K<=C);){if(0===m)break a;m--;B+=f[k++]<<
-C;C+=8}if(N&&0===(240&N)){S=K;ca=N;for($=O;T=d.lencode[$+((B&(1<<S+ca)-1)>>S)],K=T>>>24,N=T>>>16&255,O=65535&T,!(S+K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=S;C-=S;d.back+=S}if(B>>>=K,C-=K,d.back+=K,d.length=O,0===N){d.mode=26;break}if(32&N){d.back=-1;d.mode=12;break}if(64&N){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&N;d.mode=22;case 22:if(d.extra){for(N=d.extra;C<N;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}d.length+=B&(1<<d.extra)-1;B>>>=d.extra;C-=d.extra;d.back+=d.extra}d.was=
-d.length;d.mode=23;case 23:for(;T=d.distcode[B&(1<<d.distbits)-1],K=T>>>24,N=T>>>16&255,O=65535&T,!(K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(0===(240&N)){S=K;ca=N;for($=O;T=d.distcode[$+((B&(1<<S+ca)-1)>>S)],K=T>>>24,N=T>>>16&255,O=65535&T,!(S+K<=C);){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}B>>>=S;C-=S;d.back+=S}if(B>>>=K,C-=K,d.back+=K,64&N){b.msg="invalid distance code";d.mode=30;break}d.offset=O;d.extra=15&N;d.mode=24;case 24:if(d.extra){for(N=d.extra;C<N;){if(0===m)break a;m--;B+=f[k++]<<
-C;C+=8}d.offset+=B&(1<<d.extra)-1;B>>>=d.extra;C-=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===D)break a;if(J=G-D,d.offset>J){if(J=d.offset-J,J>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}J>d.wnext?(J-=d.wnext,aa=d.wsize-J):aa=d.wnext-J;J>d.length&&(J=d.length);N=d.window}else N=g,aa=l-d.offset,J=d.length;J>D&&(J=D);D-=J;d.length-=J;do g[l++]=N[aa++];while(--J);0===d.length&&(d.mode=21);break;
-case 26:if(0===D)break a;g[l++]=d.length;D--;d.mode=21;break;case 27:if(d.wrap){for(;32>C;){if(0===m)break a;m--;B|=f[k++]<<C;C+=8}if(G-=D,b.total_out+=G,d.total+=G,G&&(b.adler=d.check=d.flags?t(d.check,g,G,l-G):s(d.check,g,G,l-G)),G=D,(d.flags?B:e(B))!==d.check){b.msg="incorrect data check";d.mode=30;break}C=B=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>C;){if(0===m)break a;m--;B+=f[k++]<<C;C+=8}if(B!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=30;break}C=B=0}d.mode=29;case 29:X=
-1;break a;case 30:X=-3;break a;case 31:return-4;default:return z}return b.next_out=l,b.avail_out=D,b.next_in=k,b.avail_in=m,d.hold=B,d.bits=C,(d.wsize||G!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&n(b,b.output,b.next_out,G-b.avail_out)?(d.mode=31,-4):(U-=b.avail_in,G-=b.avail_out,b.total_in+=U,b.total_out+=G,d.total+=G,d.wrap&&G&&(b.adler=d.check=d.flags?t(d.check,g,G,b.next_out-G):s(d.check,g,G,b.next_out-G)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode||15===d.mode?256:
-0),(0===U&&0===G||4===c)&&X===y&&(X=-5),X)};d.inflateEnd=function(b){if(!b||!b.state)return z;var c=b.state;return c.window&&(c.window=null),b.state=null,y};d.inflateGetHeader=function(b,c){var d;return b&&b.state?(d=b.state,0===(2&d.wrap)?z:(d.head=c,c.done=!1,y)):z};d.inflateSetDictionary=function(b,c){var d,e,f=c.length;return b&&b.state?(d=b.state,0!==d.wrap&&11!==d.mode?z:11===d.mode&&(e=1,e=s(e,c,f,0),e!==d.check)?-3:n(b,c,f,f)?(d.mode=31,-4):(d.havedict=1,y)):z};d.inflateInfo="pako inflate (from Nodeca project)"},
+this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new x.Buf16(2*aa);this.dyn_dtree=new x.Buf16(2*(2*Z+1));this.bl_tree=new x.Buf16(2*(2*J+1));f(this.dyn_ltree);f(this.dyn_dtree);f(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new x.Buf16(M+1);this.heap=new x.Buf16(2*U+1);f(this.heap);this.heap_max=this.heap_len=0;this.depth=new x.Buf16(2*U+1);f(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=
+this.lit_bufsize=this.l_buf=0}function u(b){var c;return b&&b.state?(b.total_in=b.total_out=0,b.data_type=da,c=b.state,c.pending=0,c.pending_out=0,0>c.wrap&&(c.wrap=-c.wrap),c.status=c.wrap?ca:$,b.adler=2===c.wrap?0:1,c.last_flush=G,E._tr_init(c),I):e(b,N)}function v(b){var c=u(b);c===I&&(b=b.state,b.window_size=2*b.w_size,f(b.head),b.max_lazy_match=y[b.level].max_lazy,b.good_match=y[b.level].good_length,b.nice_match=y[b.level].nice_length,b.max_chain_length=y[b.level].max_chain,b.strstart=0,b.block_start=
+0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=K-1,b.match_available=0,b.ins_h=0);return c}function z(b,c,d,f,g,k){if(!b)return N;var l=1;if(c===L&&(c=6),0>f?(l=0,f=-f):15<f&&(l=2,f-=16),1>g||g>A||d!==B||8>f||15<f||0>c||9<c||0>k||k>W)return e(b,N);8===f&&(f=9);var n=new t;return b.state=n,n.strm=b,n.wrap=l,n.gzhead=null,n.w_bits=f,n.w_size=1<<n.w_bits,n.w_mask=n.w_size-1,n.hash_bits=g+7,n.hash_size=1<<n.hash_bits,n.hash_mask=n.hash_size-1,n.hash_shift=~~((n.hash_bits+K-1)/K),n.window=new x.Buf8(2*
+n.w_size),n.head=new x.Buf16(n.hash_size),n.prev=new x.Buf16(n.w_size),n.lit_bufsize=1<<g+6,n.pending_buf_size=4*n.lit_bufsize,n.pending_buf=new x.Buf8(n.pending_buf_size),n.d_buf=1*n.lit_bufsize,n.l_buf=3*n.lit_bufsize,n.level=c,n.strategy=k,n.method=d,v(b)}var y,x=b("../utils/common"),E=b("./trees"),C=b("./adler32"),F=b("./crc32"),D=b("./messages"),G=0,H=4,I=0,N=-2,L=-1,S=1,W=4,da=2,B=8,A=9,U=286,Z=30,J=19,aa=2*U+1,M=15,K=3,O=258,R=O+K+1,ca=42,$=113,P=1,X=2,Y=3,T=4;y=[new r(0,0,0,0,function(b,c){var d=
+65535;for(d>b.pending_buf_size-5&&(d=b.pending_buf_size-5);;){if(1>=b.lookahead){if(p(b),0===b.lookahead&&c===G)return P;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var e=b.block_start+d;if((0===b.strstart||b.strstart>=e)&&(b.lookahead=b.strstart-e,b.strstart=e,k(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-R&&(k(b,!1),0===b.strm.avail_out))return P}return b.insert=0,c===H?(k(b,!0),0===b.strm.avail_out?Y:T):(b.strstart>b.block_start&&k(b,!1),P)}),new r(4,4,8,
+4,q),new r(4,5,16,8,q),new r(4,6,32,32,q),new r(4,4,16,16,s),new r(8,16,32,32,s),new r(8,16,128,128,s),new r(8,32,128,256,s),new r(32,128,258,1024,s),new r(32,258,258,4096,s)];d.deflateInit=function(b,c){return z(b,c,B,15,8,0)};d.deflateInit2=z;d.deflateReset=v;d.deflateResetKeep=u;d.deflateSetHeader=function(b,c){return b&&b.state?2!==b.state.wrap?N:(b.state.gzhead=c,I):N};d.deflate=function(b,c){var d,m,q,s;if(!b||!b.state||5<c||0>c)return b?e(b,N):N;if(m=b.state,!b.output||!b.input&&0!==b.avail_in||
+666===m.status&&c!==H)return e(b,0===b.avail_out?-5:N);if(m.strm=b,d=m.last_flush,m.last_flush=c,m.status===ca)2===m.wrap?(b.adler=0,l(m,31),l(m,139),l(m,8),m.gzhead?(l(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)),l(m,255&m.gzhead.time),l(m,m.gzhead.time>>8&255),l(m,m.gzhead.time>>16&255),l(m,m.gzhead.time>>24&255),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,255&m.gzhead.os),m.gzhead.extra&&m.gzhead.extra.length&&(l(m,255&m.gzhead.extra.length),
+l(m,m.gzhead.extra.length>>8&255)),m.gzhead.hcrc&&(b.adler=F(b.adler,m.pending_buf,m.pending,0)),m.gzindex=0,m.status=69):(l(m,0),l(m,0),l(m,0),l(m,0),l(m,0),l(m,9===m.level?2:2<=m.strategy||2>m.level?4:0),l(m,3),m.status=$)):(q=B+(m.w_bits-8<<4)<<8,s=2<=m.strategy||2>m.level?0:6>m.level?1:6===m.level?2:3,q|=s<<6,0!==m.strstart&&(q|=32),m.status=$,n(m,q+(31-q%31)),0!==m.strstart&&(n(m,b.adler>>>16),n(m,65535&b.adler)),b.adler=1);if(69===m.status)if(m.gzhead.extra){for(q=m.pending;m.gzindex<(65535&
+m.gzhead.extra.length)&&(m.pending!==m.pending_buf_size||(m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q)),g(b),q=m.pending,m.pending!==m.pending_buf_size));)l(m,255&m.gzhead.extra[m.gzindex]),m.gzindex++;m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q));m.gzindex===m.gzhead.extra.length&&(m.gzindex=0,m.status=73)}else m.status=73;if(73===m.status)if(m.gzhead.name){q=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>q&&
+(b.adler=F(b.adler,m.pending_buf,m.pending-q,q)),g(b),q=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.name.length?255&m.gzhead.name.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q));0===s&&(m.gzindex=0,m.status=91)}else m.status=91;if(91===m.status)if(m.gzhead.comment){q=m.pending;do{if(m.pending===m.pending_buf_size&&(m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q)),g(b),
+q=m.pending,m.pending===m.pending_buf_size)){s=1;break}s=m.gzindex<m.gzhead.comment.length?255&m.gzhead.comment.charCodeAt(m.gzindex++):0;l(m,s)}while(0!==s);m.gzhead.hcrc&&m.pending>q&&(b.adler=F(b.adler,m.pending_buf,m.pending-q,q));0===s&&(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&&(l(m,255&b.adler),l(m,b.adler>>8&255),b.adler=0,m.status=$)):m.status=$),0!==m.pending){if(g(b),0===b.avail_out)return m.last_flush=
+-1,I}else if(0===b.avail_in&&(c<<1)-(4<c?9:0)<=(d<<1)-(4<d?9:0)&&c!==H)return e(b,-5);if(666===m.status&&0!==b.avail_in)return e(b,-5);if(0!==b.avail_in||0!==m.lookahead||c!==G&&666!==m.status){var r;if(2===m.strategy)a:{for(var t;;){if(0===m.lookahead&&(p(m),0===m.lookahead)){if(c===G){r=P;break a}break}if(m.match_length=0,t=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,t&&(k(m,!1),0===m.strm.avail_out)){r=P;break a}}r=(m.insert=0,c===H?(k(m,!0),0===m.strm.avail_out?Y:T):m.last_lit&&
+(k(m,!1),0===m.strm.avail_out)?P:X)}else if(3===m.strategy)a:{var v,D;for(t=m.window;;){if(m.lookahead<=O){if(p(m),m.lookahead<=O&&c===G){r=P;break a}if(0===m.lookahead)break}if(m.match_length=0,m.lookahead>=K&&0<m.strstart&&(D=m.strstart-1,v=t[D],v===t[++D]&&v===t[++D]&&v===t[++D])){d=m.strstart+O;do;while(v===t[++D]&&v===t[++D]&&v===t[++D]&&v===t[++D]&&v===t[++D]&&v===t[++D]&&v===t[++D]&&v===t[++D]&&D<d);m.match_length=O-(d-D);m.match_length>m.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=
+K?(r=E._tr_tally(m,1,m.match_length-K),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(r=E._tr_tally(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),r&&(k(m,!1),0===m.strm.avail_out)){r=P;break a}}r=(m.insert=0,c===H?(k(m,!0),0===m.strm.avail_out?Y:T):m.last_lit&&(k(m,!1),0===m.strm.avail_out)?P:X)}else r=y[m.level].func(m,c);if(r!==Y&&r!==T||(m.status=666),r===P||r===Y)return 0===b.avail_out&&(m.last_flush=-1),I;if(r===X&&(1===c?E._tr_align(m):5!==c&&(E._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,I}return c!==H?I:0>=m.wrap?1:(2===m.wrap?(l(m,255&b.adler),l(m,b.adler>>8&255),l(m,b.adler>>16&255),l(m,b.adler>>24&255),l(m,255&b.total_in),l(m,b.total_in>>8&255),l(m,b.total_in>>16&255),l(m,b.total_in>>24&255)):(n(m,b.adler>>>16),n(m,65535&b.adler)),g(b),0<m.wrap&&(m.wrap=-m.wrap),0!==m.pending?I:1)};d.deflateEnd=function(b){var c;return b&&b.state?(c=b.state.status,
+c!==ca&&69!==c&&73!==c&&91!==c&&103!==c&&c!==$&&666!==c?e(b,N):(b.state=null,c===$?e(b,-3):I)):N};d.deflateSetDictionary=function(b,c){var d,e,g,k,l,n,m;e=c.length;if(!b||!b.state||(d=b.state,k=d.wrap,2===k||1===k&&d.status!==ca||d.lookahead))return N;1===k&&(b.adler=C(b.adler,c,e,0));d.wrap=0;e>=d.w_size&&(0===k&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),l=new x.Buf8(d.w_size),x.arraySet(l,c,e-d.w_size,d.w_size,0),c=l,e=d.w_size);l=b.avail_in;n=b.next_in;m=b.input;b.avail_in=e;b.next_in=
+0;b.input=c;for(p(d);d.lookahead>=K;){e=d.strstart;g=d.lookahead-(K-1);do d.ins_h=(d.ins_h<<d.hash_shift^d.window[e+K-1])&d.hash_mask,d.prev[e&d.w_mask]=d.head[d.ins_h],d.head[d.ins_h]=e,e++;while(--g);d.strstart=e;d.lookahead=K-1;p(d)}return d.strstart+=d.lookahead,d.block_start=d.strstart,d.insert=d.lookahead,d.lookahead=0,d.match_length=d.prev_length=K-1,d.match_available=0,b.next_in=n,b.input=m,b.avail_in=l,d.wrap=k,I};d.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":3,"./adler32":5,
+"./crc32":7,"./messages":13,"./trees":14}],9:[function(b,c,d){c.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],10:[function(b,c,d){c.exports=function(b,c){var d,k,l,n,m,p,q,s,r,t,u,v,z,y,x,E,C,F,D,G,H,I,N,L;d=b.state;k=b.next_in;N=b.input;l=k+(b.avail_in-5);n=b.next_out;L=b.output;m=n-(c-b.avail_out);p=n+(b.avail_out-257);q=d.dmax;s=d.wsize;r=d.whave;t=d.wnext;u=d.window;v=d.hold;z=d.bits;y=d.lencode;
+x=d.distcode;E=(1<<d.lenbits)-1;C=(1<<d.distbits)-1;a:do{15>z&&(v+=N[k++]<<z,z+=8,v+=N[k++]<<z,z+=8);F=y[v&E];b:for(;;){if(D=F>>>24,v>>>=D,z-=D,D=F>>>16&255,0===D)L[n++]=65535&F;else{if(!(16&D)){if(0===(64&D)){F=y[(65535&F)+(v&(1<<D)-1)];continue b}if(32&D){d.mode=12;break a}b.msg="invalid literal/length code";d.mode=30;break a}G=65535&F;(D&=15)&&(z<D&&(v+=N[k++]<<z,z+=8),G+=v&(1<<D)-1,v>>>=D,z-=D);15>z&&(v+=N[k++]<<z,z+=8,v+=N[k++]<<z,z+=8);F=x[v&C];c:for(;;){if(D=F>>>24,v>>>=D,z-=D,D=F>>>16&255,
+!(16&D)){if(0===(64&D)){F=x[(65535&F)+(v&(1<<D)-1)];continue c}b.msg="invalid distance code";d.mode=30;break a}if(H=65535&F,D&=15,z<D&&(v+=N[k++]<<z,z+=8,z<D&&(v+=N[k++]<<z,z+=8)),H+=v&(1<<D)-1,H>q){b.msg="invalid distance too far back";d.mode=30;break a}if(v>>>=D,z-=D,D=n-m,H>D){if(D=H-D,D>r&&d.sane){b.msg="invalid distance too far back";d.mode=30;break a}if(F=0,I=u,0===t){if(F+=s-D,D<G){G-=D;do L[n++]=u[F++];while(--D);F=n-H;I=L}}else if(t<D){if(F+=s+t-D,D-=t,D<G){G-=D;do L[n++]=u[F++];while(--D);
+if(F=0,t<G){D=t;G-=D;do L[n++]=u[F++];while(--D);F=n-H;I=L}}}else if(F+=t-D,D<G){G-=D;do L[n++]=u[F++];while(--D);F=n-H;I=L}for(;2<G;)L[n++]=I[F++],L[n++]=I[F++],L[n++]=I[F++],G-=3;G&&(L[n++]=I[F++],1<G&&(L[n++]=I[F++]))}else{F=n-H;do L[n++]=L[F++],L[n++]=L[F++],L[n++]=L[F++],G-=3;while(2<G);G&&(L[n++]=L[F++],1<G&&(L[n++]=L[F++]))}break}}break}}while(k<l&&n<p);G=z>>3;k-=G;z-=G<<3;b.next_in=k;b.next_out=n;b.avail_in=k<l?5+(l-k):5-(k-l);b.avail_out=n<p?257+(p-n):257-(n-p);d.hold=v&(1<<z)-1;d.bits=z}},
+{}],11:[function(b,c,d){function e(b){return(b>>>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 s.Buf16(320);this.work=
+new s.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=x,c.last=0,c.havedict=0,c.dmax=32768,c.head=null,c.hold=0,c.bits=0,c.lencode=c.lendyn=new s.Buf32(E),c.distcode=c.distdyn=new s.Buf32(C),c.sane=1,c.back=-1,z):y}function k(b){var c;return b&&b.state?(c=b.state,c.wsize=0,c.whave=0,c.wnext=0,g(b)):y}function l(b,c){var d,e;return b&&b.state?(e=b.state,
+0>c?(d=0,c=-c):(d=(c>>4)+1,48>c&&(c&=15)),c&&(8>c||15<c)?y:(null!==e.window&&e.wbits!==c&&(e.window=null),e.wrap=d,e.wbits=c,k(b))):y}function n(b,c){var d,e;return b?(e=new f,b.state=e,e.window=null,d=l(b,c),d!==z&&(b.state=null),d):y}function m(b,c,d,e){var f;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new s.Buf8(b.wsize)),e>=b.wsize?(s.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),s.arraySet(b.window,c,d-
+e,f,b.wnext),e-=f,e?(s.arraySet(b.window,c,d-e,e,0),b.wnext=e,b.whave=b.wsize):(b.wnext+=f,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=f))),0}var p,q,s=b("../utils/common"),r=b("./adler32"),t=b("./crc32"),u=b("./inffast"),v=b("./inftrees"),z=0,y=-2,x=1,E=852,C=592,F=!0;d.inflateReset=k;d.inflateReset2=l;d.inflateResetKeep=g;d.inflateInit=function(b){return n(b,15)};d.inflateInit2=n;d.inflate=function(b,c){var d,f,g,k,l,n,E,B,A,U,C,J,aa,M,K,O,R,ca,$,P,X,Y,T=0,Q=new s.Buf8(4),ha=[16,17,
+18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||!b.output||!b.input&&0!==b.avail_in)return y;d=b.state;12===d.mode&&(d.mode=13);l=b.next_out;g=b.output;E=b.avail_out;k=b.next_in;f=b.input;n=b.avail_in;B=d.hold;A=d.bits;U=n;C=E;X=z;a:for(;;)switch(d.mode){case x:if(0===d.wrap){d.mode=13;break}for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(2&d.wrap&&35615===B){d.check=0;Q[0]=255&B;Q[1]=B>>>8&255;d.check=t(d.check,Q,2,0);A=B=0;d.mode=2;break}if(d.flags=0,d.head&&(d.head.done=!1),!(1&
+d.wrap)||(((255&B)<<8)+(B>>8))%31){b.msg="incorrect header check";d.mode=30;break}if(8!==(15&B)){b.msg="unknown compression method";d.mode=30;break}if(B>>>=4,A-=4,P=(15&B)+8,0===d.wbits)d.wbits=P;else if(P>d.wbits){b.msg="invalid window size";d.mode=30;break}d.dmax=1<<P;b.adler=d.check=1;d.mode=512&B?10:12;A=B=0;break;case 2:for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(d.flags=B,8!==(255&d.flags)){b.msg="unknown compression method";d.mode=30;break}if(57344&d.flags){b.msg="unknown header flags set";
+d.mode=30;break}d.head&&(d.head.text=B>>8&1);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));A=B=0;d.mode=3;case 3:for(;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.head&&(d.head.time=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,Q[2]=B>>>16&255,Q[3]=B>>>24&255,d.check=t(d.check,Q,4,0));A=B=0;d.mode=4;case 4:for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.head&&(d.head.xflags=255&B,d.head.os=B>>8);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));A=B=0;d.mode=
+5;case 5:if(1024&d.flags){for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.length=B;d.head&&(d.head.extra_len=B);512&d.flags&&(Q[0]=255&B,Q[1]=B>>>8&255,d.check=t(d.check,Q,2,0));A=B=0}else d.head&&(d.head.extra=null);d.mode=6;case 6:if(1024&d.flags&&(J=d.length,J>n&&(J=n),J&&(d.head&&(P=d.head.extra_len-d.length,d.head.extra||(d.head.extra=Array(d.head.extra_len)),s.arraySet(d.head.extra,f,k,J,P)),512&d.flags&&(d.check=t(d.check,f,J,k)),n-=J,k+=J,d.length-=J),d.length))break a;d.length=0;d.mode=
+7;case 7:if(2048&d.flags){if(0===n)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.name+=String.fromCharCode(P));while(P&&J<n);if(512&d.flags&&(d.check=t(d.check,f,J,k)),n-=J,k+=J,P)break a}else d.head&&(d.head.name=null);d.length=0;d.mode=8;case 8:if(4096&d.flags){if(0===n)break a;J=0;do P=f[k+J++],d.head&&P&&65536>d.length&&(d.head.comment+=String.fromCharCode(P));while(P&&J<n);if(512&d.flags&&(d.check=t(d.check,f,J,k)),n-=J,k+=J,P)break a}else d.head&&(d.head.comment=null);d.mode=
+9;case 9:if(512&d.flags){for(;16>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(B!==(65535&d.check)){b.msg="header crc mismatch";d.mode=30;break}A=B=0}d.head&&(d.head.hcrc=d.flags>>9&1,d.head.done=!0);b.adler=d.check=0;d.mode=12;break;case 10:for(;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}b.adler=d.check=e(B);A=B=0;d.mode=11;case 11:if(0===d.havedict)return b.next_out=l,b.avail_out=E,b.next_in=k,b.avail_in=n,d.hold=B,d.bits=A,2;b.adler=d.check=1;d.mode=12;case 12:if(5===c||6===c)break a;case 13:if(d.last){B>>>=
+7&A;A-=7&A;d.mode=27;break}for(;3>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}switch(d.last=1&B,B>>>=1,A-=1,3&B){case 0:d.mode=14;break;case 1:M=d;if(F){p=new s.Buf32(512);q=new s.Buf32(32);for(O=0;144>O;)M.lens[O++]=8;for(;256>O;)M.lens[O++]=9;for(;280>O;)M.lens[O++]=7;for(;288>O;)M.lens[O++]=8;v(1,M.lens,0,288,p,0,M.work,{bits:9});for(O=0;32>O;)M.lens[O++]=5;v(2,M.lens,0,32,q,0,M.work,{bits:5});F=!1}M.lencode=p;M.lenbits=9;M.distcode=q;M.distbits=5;if(d.mode=20,6===c){B>>>=2;A-=2;break a}break;case 2:d.mode=
+17;break;case 3:b.msg="invalid block type",d.mode=30}B>>>=2;A-=2;break;case 14:B>>>=7&A;for(A-=7&A;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if((65535&B)!==(B>>>16^65535)){b.msg="invalid stored block lengths";d.mode=30;break}if(d.length=65535&B,B=0,A=0,d.mode=15,6===c)break a;case 15:d.mode=16;case 16:if(J=d.length){if(J>n&&(J=n),J>E&&(J=E),0===J)break a;s.arraySet(g,f,k,J,l);n-=J;k+=J;E-=J;l+=J;d.length-=J;break}d.mode=12;break;case 17:for(;14>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(d.nlen=
+(31&B)+257,B>>>=5,A-=5,d.ndist=(31&B)+1,B>>>=5,A-=5,d.ncode=(15&B)+4,B>>>=4,A-=4,286<d.nlen||30<d.ndist){b.msg="too many length or distance symbols";d.mode=30;break}d.have=0;d.mode=18;case 18:for(;d.have<d.ncode;){for(;3>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.lens[ha[d.have++]]=7&B;B>>>=3;A-=3}for(;19>d.have;)d.lens[ha[d.have++]]=0;if(d.lencode=d.lendyn,d.lenbits=7,Y={bits:d.lenbits},X=v(0,d.lens,0,19,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid code lengths set";d.mode=30;break}d.have=
+0;d.mode=19;case 19:for(;d.have<d.nlen+d.ndist;){for(;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,O=65535&T,!(K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(16>O)B>>>=K,A-=K,d.lens[d.have++]=O;else{if(16===O){for(M=K+2;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(B>>>=K,A-=K,0===d.have){b.msg="invalid bit length repeat";d.mode=30;break}P=d.lens[d.have-1];J=3+(3&B);B>>>=2;A-=2}else if(17===O){for(M=K+3;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=K;A-=K;P=0;J=3+(7&B);B>>>=3;A-=3}else{for(M=
+K+7;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=K;A-=K;P=0;J=11+(127&B);B>>>=7;A-=7}if(d.have+J>d.nlen+d.ndist){b.msg="invalid bit length repeat";d.mode=30;break}for(;J--;)d.lens[d.have++]=P}}if(30===d.mode)break;if(0===d.lens[256]){b.msg="invalid code -- missing end-of-block";d.mode=30;break}if(d.lenbits=9,Y={bits:d.lenbits},X=v(1,d.lens,0,d.nlen,d.lencode,0,d.work,Y),d.lenbits=Y.bits,X){b.msg="invalid literal/lengths set";d.mode=30;break}if(d.distbits=6,d.distcode=d.distdyn,Y={bits:d.distbits},
+X=v(2,d.lens,d.nlen,d.ndist,d.distcode,0,d.work,Y),d.distbits=Y.bits,X){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<=n&&258<=E){b.next_out=l;b.avail_out=E;b.next_in=k;b.avail_in=n;d.hold=B;d.bits=A;u(b,C);l=b.next_out;g=b.output;E=b.avail_out;k=b.next_in;f=b.input;n=b.avail_in;B=d.hold;A=d.bits;12===d.mode&&(d.back=-1);break}for(d.back=0;T=d.lencode[B&(1<<d.lenbits)-1],K=T>>>24,M=T>>>16&255,O=65535&T,!(K<=A);){if(0===n)break a;n--;B+=f[k++]<<
+A;A+=8}if(M&&0===(240&M)){R=K;ca=M;for($=O;T=d.lencode[$+((B&(1<<R+ca)-1)>>R)],K=T>>>24,M=T>>>16&255,O=65535&T,!(R+K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=R;A-=R;d.back+=R}if(B>>>=K,A-=K,d.back+=K,d.length=O,0===M){d.mode=26;break}if(32&M){d.back=-1;d.mode=12;break}if(64&M){b.msg="invalid literal/length code";d.mode=30;break}d.extra=15&M;d.mode=22;case 22:if(d.extra){for(M=d.extra;A<M;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}d.length+=B&(1<<d.extra)-1;B>>>=d.extra;A-=d.extra;d.back+=d.extra}d.was=
+d.length;d.mode=23;case 23:for(;T=d.distcode[B&(1<<d.distbits)-1],K=T>>>24,M=T>>>16&255,O=65535&T,!(K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(0===(240&M)){R=K;ca=M;for($=O;T=d.distcode[$+((B&(1<<R+ca)-1)>>R)],K=T>>>24,M=T>>>16&255,O=65535&T,!(R+K<=A);){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}B>>>=R;A-=R;d.back+=R}if(B>>>=K,A-=K,d.back+=K,64&M){b.msg="invalid distance code";d.mode=30;break}d.offset=O;d.extra=15&M;d.mode=24;case 24:if(d.extra){for(M=d.extra;A<M;){if(0===n)break a;n--;B+=f[k++]<<
+A;A+=8}d.offset+=B&(1<<d.extra)-1;B>>>=d.extra;A-=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===E)break a;if(J=C-E,d.offset>J){if(J=d.offset-J,J>d.whave&&d.sane){b.msg="invalid distance too far back";d.mode=30;break}J>d.wnext?(J-=d.wnext,aa=d.wsize-J):aa=d.wnext-J;J>d.length&&(J=d.length);M=d.window}else M=g,aa=l-d.offset,J=d.length;J>E&&(J=E);E-=J;d.length-=J;do g[l++]=M[aa++];while(--J);0===d.length&&(d.mode=21);break;
+case 26:if(0===E)break a;g[l++]=d.length;E--;d.mode=21;break;case 27:if(d.wrap){for(;32>A;){if(0===n)break a;n--;B|=f[k++]<<A;A+=8}if(C-=E,b.total_out+=C,d.total+=C,C&&(b.adler=d.check=d.flags?t(d.check,g,C,l-C):r(d.check,g,C,l-C)),C=E,(d.flags?B:e(B))!==d.check){b.msg="incorrect data check";d.mode=30;break}A=B=0}d.mode=28;case 28:if(d.wrap&&d.flags){for(;32>A;){if(0===n)break a;n--;B+=f[k++]<<A;A+=8}if(B!==(4294967295&d.total)){b.msg="incorrect length check";d.mode=30;break}A=B=0}d.mode=29;case 29:X=
+1;break a;case 30:X=-3;break a;case 31:return-4;default:return y}return b.next_out=l,b.avail_out=E,b.next_in=k,b.avail_in=n,d.hold=B,d.bits=A,(d.wsize||C!==b.avail_out&&30>d.mode&&(27>d.mode||4!==c))&&m(b,b.output,b.next_out,C-b.avail_out)?(d.mode=31,-4):(U-=b.avail_in,C-=b.avail_out,b.total_in+=U,b.total_out+=C,d.total+=C,d.wrap&&C&&(b.adler=d.check=d.flags?t(d.check,g,C,b.next_out-C):r(d.check,g,C,b.next_out-C)),b.data_type=d.bits+(d.last?64:0)+(12===d.mode?128:0)+(20===d.mode||15===d.mode?256:
+0),(0===U&&0===C||4===c)&&X===z&&(X=-5),X)};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=r(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],k=[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],l=[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,s,t,v){var u,y,z,x,G,D,E,A;x=v.bits;for(var F=0,H=0,I=0,M=0,L=0,R=0,W=0,da=0,B=0,C=null,U=0,Z=new e.Buf16(16),R=new e.Buf16(16),J=null,aa=0,F=0;15>=F;F++)Z[F]=0;for(H=0;H<p;H++)Z[c[d+H]]++;L=x;for(M=15;1<=M&&0===Z[M];M--);if(L>M&&(L=M),0===M)return r[s++]=20971520,r[s++]=20971520,v.bits=1,0;for(I=1;I<M&&0===Z[I];I++);L<I&&(L=I);for(F=u=1;15>=F;F++)if(u<<=1,u-=Z[F],0>u)return-1;if(0<u&&(0===b||1!==M))return-1;R[1]=0;for(F=1;15>F;F++)R[F+
-1]=R[F]+Z[F];for(H=0;H<p;H++)0!==c[d+H]&&(t[R[c[d+H]]++]=H);if(0===b?(C=J=t,G=19):1===b?(C=f,U-=257,J=g,aa-=257,G=256):(C=k,J=l,G=-1),B=0,H=0,F=I,x=s,R=L,W=0,z=-1,da=1<<L,p=da-1,1===b&&852<da||2===b&&592<da)return 1;for(var N=0;;){N++;D=F-W;t[H]<G?(E=0,A=t[H]):t[H]>G?(E=J[aa+t[H]],A=C[U+t[H]]):(E=96,A=0);u=1<<F-W;I=y=1<<R;do y-=u,r[x+(B>>W)+y]=D<<24|E<<16|A|0;while(0!==y);for(u=1<<F-1;B&u;)u>>=1;if(0!==u?(B&=u-1,B+=u):B=0,H++,0===--Z[F]){if(F===M)break;F=c[d+t[H]]}if(F>L&&(B&p)!==z){0===W&&(W=L);
-x+=I;R=F-W;for(u=1<<R;R+W<M&&(u-=Z[R+W],!(0>=u));)R++,u<<=1;if(da+=1<<R,1===b&&852<da||2===b&&592<da)return 1;z=B&p;r[z]=L<<24|R<<16|x-s|0}}return 0!==B&&(r[x+B]=F-W<<24|4194304),v.bits=L,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=b.length;0<=--c;)b[c]=0}function f(b,
-c,d,e,f){this.static_tree=b;this.extra_bits=c;this.extra_base=d;this.elems=e;this.max_length=f;this.has_stree=b&&b.length}function g(b,c){this.dyn_tree=b;this.max_code=0;this.stat_desc=c}function k(b,c){b.pending_buf[b.pending++]=255&c;b.pending_buf[b.pending++]=c>>>8&255}function l(b,c,d){b.bi_valid>da-d?(b.bi_buf|=c<<b.bi_valid&65535,k(b,b.bi_buf),b.bi_buf=c>>da-b.bi_valid,b.bi_valid+=d-da):(b.bi_buf|=c<<b.bi_valid&65535,b.bi_valid+=d)}function m(b,c,d){l(b,d[2*c],d[2*c+1])}function n(b,c){var d=
-0;do d|=1&b,b>>>=1,d<<=1;while(0<--c);return d>>>1}function q(b,c,d){var e,f=Array(W+1),g=0;for(e=1;e<=W;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]=n(f[e]++,e))}function p(b){var c;for(c=0;c<I;c++)b.dyn_ltree[2*c]=0;for(c=0;c<M;c++)b.dyn_dtree[2*c]=0;for(c=0;c<L;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*B]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function r(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function s(b,
-c,d,e){var f=2*c,g=2*d;return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&s(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!s(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function v(b,c,d){var e,f,g,k,p=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*p]<<8|b.pending_buf[b.d_buf+2*p+1],f=b.pending_buf[b.l_buf+p],p++,0===e?m(b,f,c):(g=$[f],m(b,g+H+1,c),k=J[g],0!==k&&(f-=P[g],l(b,f,k)),e--,g=256>e?ca[e]:ca[256+(e>>>7)],
-m(b,g,d),k=aa[g],0!==k&&(e-=X[g],l(b,e,k)));while(p<b.last_lit)}m(b,B,c)}function u(b,c){var d,e,f,g=c.dyn_tree;e=c.stat_desc.static_tree;var k=c.stat_desc.has_stree,l=c.stat_desc.elems,m=-1;b.heap_len=0;b.heap_max=R;for(d=0;d<l;d++)0!==g[2*d]?(b.heap[++b.heap_len]=m=d,b.depth[d]=0):g[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>m?++m:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=e[2*f+1]);c.max_code=m;for(d=b.heap_len>>1;1<=d;d--)t(b,g,d);f=l;do d=b.heap[1],b.heap[1]=b.heap[b.heap_len--],
-t(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var p,n,k=c.dyn_tree,l=c.max_code,r=c.stat_desc.static_tree,s=c.stat_desc.has_stree,u=c.stat_desc.extra_bits,B=c.stat_desc.extra_base,C=c.stat_desc.max_length,v=0;for(e=0;e<=W;e++)b.bl_count[e]=0;k[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<R;d++)f=b.heap[d],
-e=k[2*k[2*f+1]+1]+1,e>C&&(e=C,v++),k[2*f+1]=e,f>l||(b.bl_count[e]++,p=0,f>=B&&(p=u[f-B]),n=k[2*f],b.opt_len+=n*(e+p),s&&(b.static_len+=n*(r[2*f+1]+p)));if(0!==v){do{for(e=C-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[C]--;v-=2}while(0<v);for(e=C;0!==e;e--)for(f=b.bl_count[e];0!==f;)p=b.heap[--d],p>l||(k[2*p+1]!==e&&(b.opt_len+=(e-k[2*p+1])*k[2*p],k[2*p+1]=e),f--)}q(g,m,b.bl_count)}function y(b,c,d){var e,f,g=-1,k=c[1],l=0,m=7,p=4;0===k&&(m=138,p=3);c[2*(d+1)+1]=65535;for(e=
-0;e<=d;e++)f=k,k=c[2*(e+1)+1],++l<m&&f===k||(l<p?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*C]++):10>=l?b.bl_tree[2*U]++:b.bl_tree[2*Z]++,l=0,g=f,0===k?(m=138,p=3):f===k?(m=6,p=3):(m=7,p=4))}function z(b,c,d){var e,f,g=-1,k=c[1],p=0,n=7,r=4;0===k&&(n=138,r=3);for(e=0;e<=d;e++)if(f=k,k=c[2*(e+1)+1],!(++p<n&&f===k)){if(p<r){do m(b,f,b.bl_tree);while(0!==--p)}else 0!==f?(f!==g&&(m(b,f,b.bl_tree),p--),m(b,C,b.bl_tree),l(b,p-3,2)):10>=p?(m(b,U,b.bl_tree),l(b,p-3,3)):(m(b,Z,b.bl_tree),
-l(b,p-11,7));p=0;g=f;0===k?(n=138,r=3):f===k?(n=6,r=3):(n=7,r=4)}}function x(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return E;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return A;for(c=32;c<H;c++)if(0!==b.dyn_ltree[2*c])return A;return E}function G(b,c,d,e){l(b,(F<<1)+(e?1:0),3);r(b);k(b,d);k(b,~d);D.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var D=b("../utils/common"),E=0,A=1,F=0,H=256,I=H+1+29,M=30,L=19,R=2*I+1,W=15,da=16,
-B=256,C=16,U=17,Z=18,J=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],O=Array(2*(I+2));e(O);var S=Array(2*M);e(S);var ca=Array(512);e(ca);var $=Array(256);e($);var P=Array(29);e(P);var X=Array(M);e(X);var Y,T,Q,ha=!1;d._tr_init=function(b){if(!ha){var c,d,e,k=Array(W+1);for(e=d=0;28>e;e++){P[e]=d;for(c=0;c<1<<J[e];c++)$[d++]=
-e}$[d-1]=e;for(e=d=0;16>e;e++){X[e]=d;for(c=0;c<1<<aa[e];c++)ca[d++]=e}for(d>>=7;e<M;e++){X[e]=d<<7;for(c=0;c<1<<aa[e]-7;c++)ca[256+d++]=e}for(c=0;c<=W;c++)k[c]=0;for(c=0;143>=c;)O[2*c+1]=8,c++,k[8]++;for(;255>=c;)O[2*c+1]=9,c++,k[9]++;for(;279>=c;)O[2*c+1]=7,c++,k[7]++;for(;287>=c;)O[2*c+1]=8,c++,k[8]++;q(O,I+1,k);for(c=0;c<M;c++)S[2*c+1]=5,S[2*c]=n(c,5);Y=new f(O,J,H+1,I,W);T=new f(S,aa,0,M,W);Q=new f([],N,0,L,7);ha=!0}b.l_desc=new g(b.dyn_ltree,Y);b.d_desc=new g(b.dyn_dtree,T);b.bl_desc=new g(b.bl_tree,
-Q);b.bi_buf=0;b.bi_valid=0;p(b)};d._tr_stored_block=G;d._tr_flush_block=function(b,c,d,e){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));u(b,b.l_desc);u(b,b.d_desc);y(b,b.dyn_ltree,b.l_desc.max_code);y(b,b.dyn_dtree,b.d_desc.max_code);u(b,b.bl_desc);for(k=L-1;3<=k&&0===b.bl_tree[2*K[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)G(b,c,d,e);else if(4===b.strategy||g===f)l(b,2+(e?1:0),3),v(b,O,S);
-else{l(b,4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;k+=1;l(b,c-257,5);l(b,d-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*K[f]+1],3);z(b,b.dyn_ltree,c-1);z(b,b.dyn_dtree,d-1);v(b,b.dyn_ltree,b.dyn_dtree)}p(b);e&&r(b)};d._tr_tally=function(b,c,d){return b.pending_buf[b.d_buf+2*b.last_lit]=c>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,c--,b.dyn_ltree[2*($[d]+H+1)]++,b.dyn_dtree[2*(256>
-c?ca[c]:ca[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){l(b,2,3);m(b,B,O);16===b.bi_valid?(k(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,
+25,25,26,26,27,27,28,28,29,29,64,64];c.exports=function(b,c,d,q,s,r,t,u){var v,z,y,x,E,C,F,D;x=u.bits;for(var G=0,H=0,I=0,N=0,L=0,S=0,W=0,da=0,B=0,A=null,U=0,Z=new e.Buf16(16),S=new e.Buf16(16),J=null,aa=0,G=0;15>=G;G++)Z[G]=0;for(H=0;H<q;H++)Z[c[d+H]]++;L=x;for(N=15;1<=N&&0===Z[N];N--);if(L>N&&(L=N),0===N)return s[r++]=20971520,s[r++]=20971520,u.bits=1,0;for(I=1;I<N&&0===Z[I];I++);L<I&&(L=I);for(G=v=1;15>=G;G++)if(v<<=1,v-=Z[G],0>v)return-1;if(0<v&&(0===b||1!==N))return-1;S[1]=0;for(G=1;15>G;G++)S[G+
+1]=S[G]+Z[G];for(H=0;H<q;H++)0!==c[d+H]&&(t[S[c[d+H]]++]=H);if(0===b?(A=J=t,E=19):1===b?(A=f,U-=257,J=g,aa-=257,E=256):(A=k,J=l,E=-1),B=0,H=0,G=I,x=r,S=L,W=0,y=-1,da=1<<L,q=da-1,1===b&&852<da||2===b&&592<da)return 1;for(var M=0;;){M++;C=G-W;t[H]<E?(F=0,D=t[H]):t[H]>E?(F=J[aa+t[H]],D=A[U+t[H]]):(F=96,D=0);v=1<<G-W;I=z=1<<S;do z-=v,s[x+(B>>W)+z]=C<<24|F<<16|D|0;while(0!==z);for(v=1<<G-1;B&v;)v>>=1;if(0!==v?(B&=v-1,B+=v):B=0,H++,0===--Z[G]){if(G===N)break;G=c[d+t[H]]}if(G>L&&(B&q)!==y){0===W&&(W=L);
+x+=I;S=G-W;for(v=1<<S;S+W<N&&(v-=Z[S+W],!(0>=v));)S++,v<<=1;if(da+=1<<S,1===b&&852<da||2===b&&592<da)return 1;y=B&q;s[y]=L<<24|S<<16|x-r|0}}return 0!==B&&(s[x+B]=G-W<<24|4194304),u.bits=L,0}},{"../utils/common":3}],13:[function(b,c,d){c.exports={2:"need dictionary",1:"stream end","0":"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(b,c,d){function e(b){for(var c=b.length;0<=--c;)b[c]=0}function f(b,
+c,d,e,f){this.static_tree=b;this.extra_bits=c;this.extra_base=d;this.elems=e;this.max_length=f;this.has_stree=b&&b.length}function g(b,c){this.dyn_tree=b;this.max_code=0;this.stat_desc=c}function k(b,c){b.pending_buf[b.pending++]=255&c;b.pending_buf[b.pending++]=c>>>8&255}function l(b,c,d){b.bi_valid>da-d?(b.bi_buf|=c<<b.bi_valid&65535,k(b,b.bi_buf),b.bi_buf=c>>da-b.bi_valid,b.bi_valid+=d-da):(b.bi_buf|=c<<b.bi_valid&65535,b.bi_valid+=d)}function n(b,c,d){l(b,d[2*c],d[2*c+1])}function m(b,c){var d=
+0;do d|=1&b,b>>>=1,d<<=1;while(0<--c);return d>>>1}function p(b,c,d){var e,f=Array(W+1),g=0;for(e=1;e<=W;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 q(b){var c;for(c=0;c<I;c++)b.dyn_ltree[2*c]=0;for(c=0;c<N;c++)b.dyn_dtree[2*c]=0;for(c=0;c<L;c++)b.bl_tree[2*c]=0;b.dyn_ltree[2*B]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function s(b){8<b.bi_valid?k(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function r(b,
+c,d,e){var f=2*c,g=2*d;return b[f]<b[g]||b[f]===b[g]&&e[c]<=e[d]}function t(b,c,d){for(var e=b.heap[d],f=d<<1;f<=b.heap_len&&(f<b.heap_len&&r(c,b.heap[f+1],b.heap[f],b.depth)&&f++,!r(c,e,b.heap[f],b.depth));)b.heap[d]=b.heap[f],d=f,f<<=1;b.heap[d]=e}function u(b,c,d){var e,f,g,k,m=0;if(0!==b.last_lit){do e=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],f=b.pending_buf[b.l_buf+m],m++,0===e?n(b,f,c):(g=$[f],n(b,g+H+1,c),k=J[g],0!==k&&(f-=P[g],l(b,f,k)),e--,g=256>e?ca[e]:ca[256+(e>>>7)],
+n(b,g,d),k=aa[g],0!==k&&(e-=X[g],l(b,e,k)));while(m<b.last_lit)}n(b,B,c)}function v(b,c){var d,e,f,g=c.dyn_tree;e=c.stat_desc.static_tree;var k=c.stat_desc.has_stree,l=c.stat_desc.elems,n=-1;b.heap_len=0;b.heap_max=S;for(d=0;d<l;d++)0!==g[2*d]?(b.heap[++b.heap_len]=n=d,b.depth[d]=0):g[2*d+1]=0;for(;2>b.heap_len;)f=b.heap[++b.heap_len]=2>n?++n:0,g[2*f]=1,b.depth[f]=0,b.opt_len--,k&&(b.static_len-=e[2*f+1]);c.max_code=n;for(d=b.heap_len>>1;1<=d;d--)t(b,g,d);f=l;do d=b.heap[1],b.heap[1]=b.heap[b.heap_len--],
+t(b,g,1),e=b.heap[1],b.heap[--b.heap_max]=d,b.heap[--b.heap_max]=e,g[2*f]=g[2*d]+g[2*e],b.depth[f]=(b.depth[d]>=b.depth[e]?b.depth[d]:b.depth[e])+1,g[2*d+1]=g[2*e+1]=f,b.heap[1]=f++,t(b,g,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var m,q,k=c.dyn_tree,l=c.max_code,s=c.stat_desc.static_tree,r=c.stat_desc.has_stree,B=c.stat_desc.extra_bits,v=c.stat_desc.extra_base,A=c.stat_desc.max_length,u=0;for(e=0;e<=W;e++)b.bl_count[e]=0;k[2*b.heap[b.heap_max]+1]=0;for(d=b.heap_max+1;d<S;d++)f=b.heap[d],
+e=k[2*k[2*f+1]+1]+1,e>A&&(e=A,u++),k[2*f+1]=e,f>l||(b.bl_count[e]++,m=0,f>=v&&(m=B[f-v]),q=k[2*f],b.opt_len+=q*(e+m),r&&(b.static_len+=q*(s[2*f+1]+m)));if(0!==u){do{for(e=A-1;0===b.bl_count[e];)e--;b.bl_count[e]--;b.bl_count[e+1]+=2;b.bl_count[A]--;u-=2}while(0<u);for(e=A;0!==e;e--)for(f=b.bl_count[e];0!==f;)m=b.heap[--d],m>l||(k[2*m+1]!==e&&(b.opt_len+=(e-k[2*m+1])*k[2*m],k[2*m+1]=e),f--)}p(g,n,b.bl_count)}function z(b,c,d){var e,f,g=-1,k=c[1],l=0,n=7,m=4;0===k&&(n=138,m=3);c[2*(d+1)+1]=65535;for(e=
+0;e<=d;e++)f=k,k=c[2*(e+1)+1],++l<n&&f===k||(l<m?b.bl_tree[2*f]+=l:0!==f?(f!==g&&b.bl_tree[2*f]++,b.bl_tree[2*A]++):10>=l?b.bl_tree[2*U]++:b.bl_tree[2*Z]++,l=0,g=f,0===k?(n=138,m=3):f===k?(n=6,m=3):(n=7,m=4))}function y(b,c,d){var e,f,g=-1,k=c[1],m=0,p=7,q=4;0===k&&(p=138,q=3);for(e=0;e<=d;e++)if(f=k,k=c[2*(e+1)+1],!(++m<p&&f===k)){if(m<q){do n(b,f,b.bl_tree);while(0!==--m)}else 0!==f?(f!==g&&(n(b,f,b.bl_tree),m--),n(b,A,b.bl_tree),l(b,m-3,2)):10>=m?(n(b,U,b.bl_tree),l(b,m-3,3)):(n(b,Z,b.bl_tree),
+l(b,m-11,7));m=0;g=f;0===k?(p=138,q=3):f===k?(p=6,q=3):(p=7,q=4)}}function x(b){var c,d=4093624447;for(c=0;31>=c;c++,d>>>=1)if(1&d&&0!==b.dyn_ltree[2*c])return F;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return D;for(c=32;c<H;c++)if(0!==b.dyn_ltree[2*c])return D;return F}function E(b,c,d,e){l(b,(G<<1)+(e?1:0),3);s(b);k(b,d);k(b,~d);C.arraySet(b.pending_buf,b.window,c,d,b.pending);b.pending+=d}var C=b("../utils/common"),F=0,D=1,G=0,H=256,I=H+1+29,N=30,L=19,S=2*I+1,W=15,da=16,
+B=256,A=16,U=17,Z=18,J=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],O=Array(2*(I+2));e(O);var R=Array(2*N);e(R);var ca=Array(512);e(ca);var $=Array(256);e($);var P=Array(29);e(P);var X=Array(N);e(X);var Y,T,Q,ha=!1;d._tr_init=function(b){if(!ha){var c,d,e,k=Array(W+1);for(e=d=0;28>e;e++){P[e]=d;for(c=0;c<1<<J[e];c++)$[d++]=
+e}$[d-1]=e;for(e=d=0;16>e;e++){X[e]=d;for(c=0;c<1<<aa[e];c++)ca[d++]=e}for(d>>=7;e<N;e++){X[e]=d<<7;for(c=0;c<1<<aa[e]-7;c++)ca[256+d++]=e}for(c=0;c<=W;c++)k[c]=0;for(c=0;143>=c;)O[2*c+1]=8,c++,k[8]++;for(;255>=c;)O[2*c+1]=9,c++,k[9]++;for(;279>=c;)O[2*c+1]=7,c++,k[7]++;for(;287>=c;)O[2*c+1]=8,c++,k[8]++;p(O,I+1,k);for(c=0;c<N;c++)R[2*c+1]=5,R[2*c]=m(c,5);Y=new f(O,J,H+1,I,W);T=new f(R,aa,0,N,W);Q=new f([],M,0,L,7);ha=!0}b.l_desc=new g(b.dyn_ltree,Y);b.d_desc=new g(b.dyn_dtree,T);b.bl_desc=new g(b.bl_tree,
+Q);b.bi_buf=0;b.bi_valid=0;q(b)};d._tr_stored_block=E;d._tr_flush_block=function(b,c,d,e){var f,g,k=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=x(b));v(b,b.l_desc);v(b,b.d_desc);z(b,b.dyn_ltree,b.l_desc.max_code);z(b,b.dyn_dtree,b.d_desc.max_code);v(b,b.bl_desc);for(k=L-1;3<=k&&0===b.bl_tree[2*K[k]+1];k--);k=(b.opt_len+=3*(k+1)+14,k);f=b.opt_len+3+7>>>3;g=b.static_len+3+7>>>3;g<=f&&(f=g)}else f=g=d+5;if(d+4<=f&&-1!==c)E(b,c,d,e);else if(4===b.strategy||g===f)l(b,2+(e?1:0),3),u(b,O,R);
+else{l(b,4+(e?1:0),3);c=b.l_desc.max_code+1;d=b.d_desc.max_code+1;k+=1;l(b,c-257,5);l(b,d-1,5);l(b,k-4,4);for(f=0;f<k;f++)l(b,b.bl_tree[2*K[f]+1],3);y(b,b.dyn_ltree,c-1);y(b,b.dyn_dtree,d-1);u(b,b.dyn_ltree,b.dyn_dtree)}q(b);e&&s(b)};d._tr_tally=function(b,c,d){return b.pending_buf[b.d_buf+2*b.last_lit]=c>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&c,b.pending_buf[b.l_buf+b.last_lit]=255&d,b.last_lit++,0===c?b.dyn_ltree[2*d]++:(b.matches++,c--,b.dyn_ltree[2*($[d]+H+1)]++,b.dyn_dtree[2*(256>
+c?ca[c]:ca[256+(c>>>7)])]++),b.last_lit===b.lit_bufsize-1};d._tr_align=function(b){l(b,2,3);n(b,B,O);16===b.bi_valid?(k(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=k[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,k,r,s,t=f,v,u=d[a];u&&"object"===typeof u&&"function"===typeof u.toJSON&&(u=u.toJSON(a));"function"===typeof l&&(u=l.call(d,a,u));switch(typeof u){case "string":return b(u);case "number":return isFinite(u)?""+u:"null";case "boolean":case "null":return""+
-u;case "object":if(!u)return"null";f+=g;v=[];if("[object Array]"===Object.prototype.toString.apply(u)){s=u.length;for(e=0;e<s;e+=1)v[e]=c(e,u)||"null";r=0===v.length?"[]":f?"[\n"+f+v.join(",\n"+f)+"\n"+t+"]":"["+v.join(",")+"]";f=t;return r}if(l&&"object"===typeof l){s=l.length;for(e=0;e<s;e+=1)"string"===typeof l[e]&&(k=l[e],(r=c(k,u))&&v.push(b(k)+(f?": ":":")+r))}else for(k in u)Object.prototype.hasOwnProperty.call(u,k)&&(r=c(k,u))&&v.push(b(k)+(f?": ":":")+r);r=0===v.length?"{}":f?"{\n"+f+v.join(",\n"+
-f)+"\n"+t+"}":"{"+v.join(",")+"}";f=t;return r}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+(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=k[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,k,s,r,t=f,u,v=d[a];v&&"object"===typeof v&&"function"===typeof v.toJSON&&(v=v.toJSON(a));"function"===typeof l&&(v=l.call(d,a,v));switch(typeof v){case "string":return b(v);case "number":return isFinite(v)?""+v:"null";case "boolean":case "null":return""+
+v;case "object":if(!v)return"null";f+=g;u=[];if("[object Array]"===Object.prototype.toString.apply(v)){r=v.length;for(e=0;e<r;e+=1)u[e]=c(e,v)||"null";s=0===u.length?"[]":f?"[\n"+f+u.join(",\n"+f)+"\n"+t+"]":"["+u.join(",")+"]";f=t;return s}if(l&&"object"===typeof l){r=l.length;for(e=0;e<r;e+=1)"string"===typeof l[e]&&(k=l[e],(s=c(k,v))&&u.push(b(k)+(f?": ":":")+s))}else for(k in v)Object.prototype.hasOwnProperty.call(v,k)&&(s=c(k,v))&&u.push(b(k)+(f?": ":":")+s);s=0===u.length?"{}":f?"{\n"+f+u.join(",\n"+
+f)+"\n"+t+"}":"{"+u.join(",")+"}";f=t;return s}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,k={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},l;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((l=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
-"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";
-window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev?"iconSearch":"https://www.draw.io/iconSearch";window.TEMPLATE_PATH=window.TEMPLATE_PATH||"/templates";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";window.mxLoadResources=window.mxLoadResources||!1;
-window.mxLanguage=window.mxLanguage||function(){var a="1"==urlParams.offline?"en":urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).language||null)}catch(c){isLocalStorage=!1}return a}();
+"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,k=a[d];if(k&&"object"===typeof k)for(e in k)Object.prototype.hasOwnProperty.call(k,e)&&(f=c(k,e),void 0!==f?k[e]=f:delete k[e]);return b.call(a,d,k)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.isSvgBrowser=window.isSvgBrowser||0>navigator.userAgent.indexOf("MSIE")||9<=document.documentMode;window.EXPORT_URL=window.EXPORT_URL||"https://exp.draw.io/ImageExport4/export";window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"open";
+window.PROXY_URL=window.PROXY_URL||"proxy";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev?"iconSearch":"https://www.draw.io/iconSearch";window.TEMPLATE_PATH=window.TEMPLATE_PATH||"/templates";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";
+window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||function(){var a="1"==urlParams.offline?"en":urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).language||null)}catch(c){isLocalStorage=!1}return a}();
window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",ca:"Catal\u00e0",cs:"\u010ce\u0161tina",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Espa\u00f1ol",fil:"Filipino",fr:"Fran\u00e7ais",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Portugu\u00eas (Brasil)",pt:"Portugu\u00eas (Portugal)",ro:"Rom\u00e2n\u0103",fi:"Suomi",sv:"Svenska",vi:"Ti\u1ebfng Vi\u1ec7t",tr:"T\u00fcrk\u00e7e",el:"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
ru:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",sr:"\u0421\u0440\u043f\u0441\u043a\u0438",uk:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",he:"\u05e2\u05d1\u05e8\u05d9\u05ea",ar:"\u0627\u0644\u0639\u0631\u0628\u064a\u0629",th:"\u0e44\u0e17\u0e22",ko:"\ud55c\uad6d\uc5b4",ja:"\u65e5\u672c\u8a9e",zh:"\u4e2d\u6587\uff08\u4e2d\u56fd\uff09","zh-tw":"\u4e2d\u6587\uff08\u53f0\u7063\uff09"};"undefined"===typeof window.mxBasePath&&(window.mxBasePath="mxgraph");
if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}window.uiTheme=window.uiTheme||function(){var a=urlParams.ui;if(null==a&&"undefined"!==typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).ui||null)}catch(c){isLocalStorage=!1}return a}();function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&window.parent.openFile.setData(a,b)}
@@ -236,8 +236,8 @@ mxRectangle.prototype.height=null;mxRectangle.prototype.setRect=function(a,b,c,d
mxRectangle.prototype.add=function(a){if(null!=a){var b=Math.min(this.x,a.x),c=Math.min(this.y,a.y),d=Math.max(this.x+this.width,a.x+a.width);a=Math.max(this.y+this.height,a.y+a.height);this.x=b;this.y=c;this.width=d-b;this.height=a-c}};mxRectangle.prototype.intersect=function(a){if(null!=a){var b=this.x+this.width,c=a.x+a.width,d=this.y+this.height,e=a.y+a.height;this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.width=Math.min(b,c)-this.x;this.height=Math.min(d,e)-this.y}};
mxRectangle.prototype.grow=function(a){this.x-=a;this.y-=a;this.width+=2*a;this.height+=2*a};mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)};mxRectangle.prototype.rotate90=function(){var a=(this.width-this.height)/2;this.x+=a;this.y-=a;a=this.width;this.width=this.height;this.height=a};mxRectangle.prototype.equals=function(a){return null!=a&&a.x==this.x&&a.y==this.y&&a.width==this.width&&a.height==this.height};
mxRectangle.fromRectangle=function(a){return new mxRectangle(a.x,a.y,a.width,a.height)};
-var mxEffects={animateChanges:function(a,b,c){var d=0,e=function(){for(var g=!1,k=0;k<b.length;k++){var l=b[k];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var m=a.getView().getState(l.cell||l.child,!1);if(null!=m)if(g=!0,l.constructor!=mxGeometryChange||a.model.isEdge(l.cell))mxUtils.setOpacity(m.shape.node,100*d/10);else{var n=a.getView().scale,q=(l.geometry.x-l.previous.x)*n,p=(l.geometry.y-
-l.previous.y)*n,r=(l.geometry.width-l.previous.width)*n,n=(l.geometry.height-l.previous.height)*n;0==d?(m.x-=q,m.y-=p,m.width-=r,m.height-=n):(m.x+=q/10,m.y+=p/10,m.width+=r/10,m.height+=n/10);a.cellRenderer.redraw(m);mxEffects.cascadeOpacity(a,l.cell,100*d/10)}}}10>d&&g?(d++,window.setTimeout(e,f)):null!=c&&c()},f=30;e()},cascadeOpacity:function(a,b,c){for(var d=a.model.getChildCount(b),e=0;e<d;e++){var f=a.model.getChildAt(b,e),g=a.getView().getState(f);null!=g&&(mxUtils.setOpacity(g.shape.node,
+var mxEffects={animateChanges:function(a,b,c){var d=0,e=function(){for(var g=!1,k=0;k<b.length;k++){var l=b[k];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var n=a.getView().getState(l.cell||l.child,!1);if(null!=n)if(g=!0,l.constructor!=mxGeometryChange||a.model.isEdge(l.cell))mxUtils.setOpacity(n.shape.node,100*d/10);else{var m=a.getView().scale,p=(l.geometry.x-l.previous.x)*m,q=(l.geometry.y-
+l.previous.y)*m,s=(l.geometry.width-l.previous.width)*m,m=(l.geometry.height-l.previous.height)*m;0==d?(n.x-=p,n.y-=q,n.width-=s,n.height-=m):(n.x+=p/10,n.y+=q/10,n.width+=s/10,n.height+=m/10);a.cellRenderer.redraw(n);mxEffects.cascadeOpacity(a,l.cell,100*d/10)}}}10>d&&g?(d++,window.setTimeout(e,f)):null!=c&&c()},f=30;e()},cascadeOpacity:function(a,b,c){for(var d=a.model.getChildCount(b),e=0;e<d;e++){var f=a.model.getChildAt(b,e),g=a.getView().getState(f);null!=g&&(mxUtils.setOpacity(g.shape.node,
c),mxEffects.cascadeOpacity(a,f,c))}b=a.model.getEdges(b);if(null!=b)for(e=0;e<b.length;e++)d=a.getView().getState(b[e]),null!=d&&mxUtils.setOpacity(d.shape.node,c)},fadeOut:function(a,b,c,d,e,f){d=d||40;e=e||30;var g=b||100;mxUtils.setOpacity(a,g);if(f||null==f){var k=function(){g=Math.max(g-d,0);mxUtils.setOpacity(a,g);0<g?window.setTimeout(k,e):(a.style.visibility="hidden",c&&a.parentNode&&a.parentNode.removeChild(a))};window.setTimeout(k,e)}else a.style.visibility="hidden",c&&a.parentNode&&a.parentNode.removeChild(a)}},
mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(a){null!=a.style&&(a.style.cursor="");a=a.childNodes;if(null!=a)for(var b=a.length,c=0;c<b;c+=1)mxUtils.removeCursors(a[c])},getCurrentStyle:function(){return mxClient.IS_IE?function(a){return null!=a?a.currentStyle:null}:function(a){return null!=a?window.getComputedStyle(a,""):null}}(),parseCssNumber:function(a){"thin"==
a?a="2":"medium"==a?a="4":"thick"==a&&(a="6");a=parseFloat(a);isNaN(a)&&(a=0);return a},setPrefixedStyle:function(){var a=null;mxClient.IS_OT?a="O":mxClient.IS_SF||mxClient.IS_GC?a="Webkit":mxClient.IS_MT?a="Moz":mxClient.IS_IE&&9<=document.documentMode&&10>document.documentMode&&(a="ms");return function(b,c,d){b[c]=d;null!=a&&0<c.length&&(c=a+c.substring(0,1).toUpperCase()+c.substring(1),b[c]=d)}}(),hasScrollbars:function(a){a=mxUtils.getCurrentStyle(a);return null!=a&&("scroll"==a.overflow||"auto"==
@@ -260,15 +260,15 @@ b(e))},g)})(a[k],k);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;c<a.length;c++)if(a[c]==b[c]||null!=a[c]&&!a[c].equals(b[c]))return!1;
return!0},equalEntries: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){var c=0,d;for(d in b)c++;for(d in a)if(c--,(!mxUtils.isNaN(a[d])||!mxUtils.isNaN(b[d]))&&a[d]!=b[d])return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=
b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b="",c;for(c in a)try{if(null==a[c])b+=c+" \x3d [null]\n";else if("function"==typeof a[c])b+=c+" \x3d\x3e [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" \x3d\x3e ["+d+"]\n");else b+=c+" \x3d "+a[c]+"\n"}catch(e){b+=c+"\x3d"+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,
-k,l){k-=a;l-=b;if(0===c||0===d)return p;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,q=Math.cos(e*Math.PI/180),p=Math.sin(e*Math.PI/180);e=q*m+p*n;var m=-1*p*m+q*n,n=e*e,r=m*m,s=c*c,t=d*d,v=n/s+r/t;1<v?(c*=Math.sqrt(v),d*=Math.sqrt(v),f=0):(v=1,f===g&&(v=-1),f=v*Math.sqrt((s*t-s*r-t*n)/(s*r+t*n)));n=f*c*m/d;r=-1*f*d*e/c;k=q*n-p*r+k/2;l=p*n+q*r+l/2;s=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=s?s:2*Math.PI+s;s=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=s?s:2*Math.PI+s;0==
-g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(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);n=q*c;q*=d;c*=p;d*=p;for(var u=Math.cos(f),y=Math.sin(f),r=-m*(n*y+d*u),s=-m*(c*y-q*u),p=[],z=0;z<g;++z){f+=e;var u=Math.cos(f),y=Math.sin(f),t=n*u-d*y+k,v=c*u+q*y+l,x=-m*(n*y+d*u),u=-m*(c*y-q*u),y=6*z;p[y]=Number(r+a);p[y+1]=Number(s+b);p[y+2]=Number(t-x+a);p[y+3]=Number(v-u+b);p[y+4]=Number(t+a);p[y+5]=Number(v+b);r=t+x;s=v+u}return p},getBoundingBox:function(a,
+k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var n=-k/2,m=-l/2,p=Math.cos(e*Math.PI/180),q=Math.sin(e*Math.PI/180);e=p*n+q*m;var n=-1*q*n+p*m,m=e*e,s=n*n,r=c*c,t=d*d,u=m/r+s/t;1<u?(c*=Math.sqrt(u),d*=Math.sqrt(u),f=0):(u=1,f===g&&(u=-1),f=u*Math.sqrt((r*t-r*s-t*m)/(r*s+t*m)));m=f*c*n/d;s=-1*f*d*e/c;k=p*m-q*s+k/2;l=q*m+p*s+l/2;r=Math.atan2((n-s)/d,(e-m)/c)-Math.atan2(0,1);f=0<=r?r:2*Math.PI+r;r=Math.atan2((-n-s)/d,(-e-m)/c)-Math.atan2((n-s)/d,(e-m)/c);e=0<=r?r:2*Math.PI+r;0==
+g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;n=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2);m=p*c;p*=d;c*=q;d*=q;for(var v=Math.cos(f),z=Math.sin(f),s=-n*(m*z+d*v),r=-n*(c*z-p*v),q=[],y=0;y<g;++y){f+=e;var v=Math.cos(f),z=Math.sin(f),t=m*v-d*z+k,u=c*v+p*z+l,x=-n*(m*z+d*v),v=-n*(c*z-p*v),z=6*y;q[z]=Number(s+a);q[z+1]=Number(r+b);q[z+2]=Number(t-x+a);q[z+3]=Number(u-v+b);q[z+4]=Number(t+a);q[z+5]=Number(u+b);s=t+x;r=u+v}return q},getBoundingBox:function(a,
b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,
g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<
c?(a=1,135<=c&&(a=2)):-45>c&&(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(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},rectangleIntersectsSegment:function(a,
-b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!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,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+
-g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,
+b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!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,k=a.y,l=b.x,n=b.y,e=e+l,f=f+n,c=c+
+g,d=d+k;return(e<l||e>g)&&(f<n||f>k)&&(c<g||c>l)&&(d<k||d>n)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,n=a.height,m=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<m&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+m/2,n=m):(g=a.x+m/2,l=m));l=Math.max(e,l*d);n=Math.max(e,n*d);0<f&&(l=Math.min(l,f),n=Math.min(n,f));d=new mxRectangle(g-l/2,k-n/2,l,n);g=mxUtils.toRadians(mxUtils.getValue(a.style,
mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},getOffset:function(a,b){var c=0,d=0;if(null!=b&&b)var e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c=c+e.x,d=d+e.y;e=a.getBoundingClientRect();null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){if(mxClient.IS_QUIRKS)return new mxPoint(a.body.scrollLeft,
a.body.scrollTop);a=a.defaultView||a.parentWindow;return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a){for(var b=document.body,c=document.documentElement,d=mxUtils.getDocumentScrollOrigin(null!=a?a.ownerDocument:document);null!=a&&a!=b&&
a!=c;)!isNaN(a.scrollLeft)&&!isNaN(a.scrollTop)&&(d.x+=a.scrollLeft,d.y+=a.scrollTop),a=a.parentNode;return d},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return a.replace(RegExp("^["+(b||"\\s")+"]+","g"),"")},rtrim:function(a,b){return a.replace(RegExp("["+(b||"\\s")+"]+$","g"),"")},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&
@@ -281,18 +281,18 @@ b){mxUtils.isVml(a)?a.style.filter=100<=b?"":"alpha(opacity\x3d"+b/5+")":mxClien
a.indexOf(";");a=d?b+"\x3d"+c+(0>e?";":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&&0<b.length){a.beginUpdate();try{for(var f=0;f<b.length;f++)if(null!=b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);
a.setStyle(b[f],g)}}finally{a.endUpdate()}}},setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"\x3d"+c:b+"\x3d0";else{var e=a.indexOf(b+"\x3d");if(0>e)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,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=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 n=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=
-n,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}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,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,n=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=l,f.overlayPane=n,f.setEventsEnabled(k)}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,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return 0.99999*(e*c/b)},show:function(a,b,c,d,e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d9"\x3e\x3c![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-
-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="\x3chtml\x3e\x3chead\x3e";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="\x3cstyle\x3e";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'\x3c/style\x3e\x3c/head\x3e\x3cbody style\x3d"margin:0px;"\x3e'+('\x3cdiv style\x3d"position:absolute;overflow:hidden;width:'+
+g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="\x3chtml\x3e\x3chead\x3e";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=g[c].outerHTML;d+="\x3cstyle\x3e";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(n){}d=d+'\x3c/style\x3e\x3c/head\x3e\x3cbody style\x3d"margin:0px;"\x3e'+('\x3cdiv style\x3d"position:absolute;overflow:hidden;width:'+
e+"px;height:"+f+'px;"\x3e\x3cdiv style\x3d"position:relative;left:'+k+"px;top:"+l+'px;"\x3e')+a.container.innerHTML;b.writeln(d+"\x3c/div\x3e\x3c/div\x3e\x3c/body\x3e\x3chtml\x3e");b.close()}else{b.writeln("\x3chtml\x3e\x3chead\x3e");g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));
b.writeln('\x3c/head\x3e\x3cbody style\x3d"margin:0px;"\x3e\x3c/body\x3e\x3c/html\x3e');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);
null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=
mxUtils.htmlEntities(a,!1).replace(/\n/g,"\x3cbr\x3e").replace(/ /g,"\x26nbsp;");c.appendChild(d);var d=document.body.clientWidth,e=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),c=new mxWindow("Popup Window",c,d/2-320,e/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("\x3cpre\x3e"+mxUtils.htmlEntities(a)+"\x3c/pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,
!1).replace(/\n/g,"\x3cbr\x3e").replace(/ /g,"\x26nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode("\u00a0"));
e.appendChild(document.createTextNode("\u00a0"));e.appendChild(document.createTextNode("\u00a0"));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,
-"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==
+"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,n){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=n&&(a.getDropTarget=n);a.getGraphForEvent=function(a){return"function"==
typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:0.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",
DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,
NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",
@@ -339,7 +339,7 @@ mxXmlRequest.prototype.simulate=function(a,b){a=a||document;var c=null;a==docume
1);this.decodeSimulateValues&&(g=decodeURIComponent(g));var l=a.createElement("textarea");l.setAttribute("name",k);mxUtils.write(l,g);d.appendChild(l)}}a.body.appendChild(d);d.submit();a.body.removeChild(d);null!=c&&(window.onbeforeunload=c)};
var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,setCells:function(a){mxClipboard.cells=a},getCells:function(){return mxClipboard.cells},isEmpty:function(){return null==mxClipboard.getCells()},cut:function(a,b){b=mxClipboard.copy(a,b);mxClipboard.insertCount=0;mxClipboard.removeCells(a,b);return b},removeCells:function(a,b){a.removeCells(b)},copy:function(a,b){b=b||a.getSelectionCells();var c=a.getExportableCells(a.model.getTopmostCells(b));mxClipboard.insertCount=1;mxClipboard.setCells(a.cloneCells(c));
return c},paste:function(a){var b=null;if(!mxClipboard.isEmpty()){var b=a.getImportableCells(mxClipboard.getCells()),c=mxClipboard.insertCount*mxClipboard.STEPSIZE,d=a.getDefaultParent(),b=a.importCells(b,c,c,d);mxClipboard.insertCount++;a.setSelectionCells(b)}return b}};
-function mxWindow(a,b,c,d,e,f,g,k,l,m){null!=b&&(g=null!=g?g:!0,this.content=b,this.init(c,d,e,f,m),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(g),this.setTitle(a),(null==k||k)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}mxWindow.prototype=new mxEventSource;mxWindow.prototype.constructor=mxWindow;mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif";
+function mxWindow(a,b,c,d,e,f,g,k,l,n){null!=b&&(g=null!=g?g:!0,this.content=b,this.init(c,d,e,f,n),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(g),this.setTitle(a),(null==k||k)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}mxWindow.prototype=new mxEventSource;mxWindow.prototype.constructor=mxWindow;mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif";
mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif";mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif";mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif";mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif";mxWindow.prototype.visible=!1;mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40);mxWindow.prototype.destroyOnClose=!0;
mxWindow.prototype.contentHeightCorrection=8==document.documentMode||7==document.documentMode?6:2;mxWindow.prototype.title=null;mxWindow.prototype.content=null;
mxWindow.prototype.init=function(a,b,c,d,e){e=null!=e?e:"mxWindow";this.div=document.createElement("div");this.div.className=e;this.div.style.left=a+"px";this.div.style.top=b+"px";this.table=document.createElement("table");this.table.className=e;mxClient.IS_POINTER&&(this.div.style.touchAction="none");null!=c&&(mxClient.IS_QUIRKS||(this.div.style.width=c+"px"),this.table.style.width=c+"px");null!=d&&(mxClient.IS_QUIRKS||(this.div.style.height=d+"px"),this.table.style.height=d+"px");a=document.createElement("tbody");
@@ -424,9 +424,9 @@ mxPopupMenu.prototype.factoryMethod=null;mxPopupMenu.prototype.useLeftButtonForP
mxPopupMenu.prototype.init=function(){this.table=document.createElement("table");this.table.className="mxPopupMenu";this.tbody=document.createElement("tbody");this.table.appendChild(this.tbody);this.div=document.createElement("div");this.div.className="mxPopupMenu";this.div.style.display="inline";this.div.style.zIndex=this.zIndex;this.div.appendChild(this.table);mxEvent.disableContextMenu(this.div)};mxPopupMenu.prototype.isEnabled=function(){return this.enabled};
mxPopupMenu.prototype.setEnabled=function(a){this.enabled=a};mxPopupMenu.prototype.isPopupTrigger=function(a){return a.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(a.getEvent())};
mxPopupMenu.prototype.addItem=function(a,b,c,d,e,f,g){d=d||this;this.itemCount++;d.willAddSeparator&&(d.containsItems&&this.addSeparator(d,!0),d.willAddSeparator=!1);d.containsItems=!0;var k=document.createElement("tr");k.className="mxPopupMenuItem";var l=document.createElement("td");l.className="mxPopupMenuIcon";null!=b?(e=document.createElement("img"),e.src=b,l.appendChild(e)):null!=e&&(b=document.createElement("div"),b.className=e,l.appendChild(b));k.appendChild(l);this.labels&&(l=document.createElement("td"),
-l.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),mxUtils.write(l,a),l.align="left",k.appendChild(l),a=document.createElement("td"),a.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),a.style.paddingRight="6px",a.style.textAlign="right",k.appendChild(a),null==d.div&&this.createSubmenu(d));d.tbody.appendChild(k);if(!1!=g&&!1!=f){var m=null;mxEvent.addGestureListeners(k,mxUtils.bind(this,function(a){this.eventReceiver=k;d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&
-this.hideSubmenu(d),null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));if(mxClient.IS_QUIRKS||8==document.documentMode)m=document.selection.createRange();mxEvent.consume(a)}),mxUtils.bind(this,function(a){d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&this.hideSubmenu(d),this.autoExpand&&null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));k.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(a){if(this.eventReceiver==k){d.activeRow!=k&&this.hideMenu();
-if(null!=m){try{m.select()}catch(b){}m=null}null!=c&&c(a)}this.eventReceiver=null;mxEvent.consume(a)}));mxEvent.addListener(k,"mouseout",mxUtils.bind(this,function(a){k.className="mxPopupMenuItem"}))}return k};mxPopupMenu.prototype.addCheckmark=function(a,b){var c=a.firstChild.nextSibling;c.style.backgroundImage="url('"+b+"')";c.style.backgroundRepeat="no-repeat";c.style.backgroundPosition="2px 50%"};
+l.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),mxUtils.write(l,a),l.align="left",k.appendChild(l),a=document.createElement("td"),a.className="mxPopupMenuItem"+(null!=f&&!f?" mxDisabled":""),a.style.paddingRight="6px",a.style.textAlign="right",k.appendChild(a),null==d.div&&this.createSubmenu(d));d.tbody.appendChild(k);if(!1!=g&&!1!=f){var n=null;mxEvent.addGestureListeners(k,mxUtils.bind(this,function(a){this.eventReceiver=k;d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&
+this.hideSubmenu(d),null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));if(mxClient.IS_QUIRKS||8==document.documentMode)n=document.selection.createRange();mxEvent.consume(a)}),mxUtils.bind(this,function(a){d.activeRow!=k&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&this.hideSubmenu(d),this.autoExpand&&null!=k.div&&(this.showSubmenu(d,k),d.activeRow=k));k.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(a){if(this.eventReceiver==k){d.activeRow!=k&&this.hideMenu();
+if(null!=n){try{n.select()}catch(b){}n=null}null!=c&&c(a)}this.eventReceiver=null;mxEvent.consume(a)}));mxEvent.addListener(k,"mouseout",mxUtils.bind(this,function(a){k.className="mxPopupMenuItem"}))}return k};mxPopupMenu.prototype.addCheckmark=function(a,b){var c=a.firstChild.nextSibling;c.style.backgroundImage="url('"+b+"')";c.style.backgroundRepeat="no-repeat";c.style.backgroundPosition="2px 50%"};
mxPopupMenu.prototype.createSubmenu=function(a){a.table=document.createElement("table");a.table.className="mxPopupMenu";a.tbody=document.createElement("tbody");a.table.appendChild(a.tbody);a.div=document.createElement("div");a.div.className="mxPopupMenu";a.div.style.position="absolute";a.div.style.display="inline";a.div.style.zIndex=this.zIndex;a.div.appendChild(a.table);var b=document.createElement("img");b.setAttribute("src",this.submenuImage);td=a.firstChild.nextSibling.nextSibling;td.appendChild(b)};
mxPopupMenu.prototype.showSubmenu=function(a,b){if(null!=b.div){b.div.style.left=a.div.offsetLeft+b.offsetLeft+b.offsetWidth-1+"px";b.div.style.top=a.div.offsetTop+b.offsetTop+"px";document.body.appendChild(b.div);var c=parseInt(b.div.offsetLeft),d=parseInt(b.div.offsetWidth),e=mxUtils.getDocumentScrollOrigin(document),f=document.documentElement;if(c+d>e.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)}};
@@ -467,7 +467,7 @@ mxXmlCanvas2D.prototype.rotate=function(a,b,c,d,e){var f=this.createElement("rot
mxXmlCanvas2D.prototype.setAlpha=function(a){if(this.compressed){if(this.state.alpha==a)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var b=this.createElement("alpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};mxXmlCanvas2D.prototype.setFillAlpha=function(a){if(this.compressed){if(this.state.fillAlpha==a)return;mxAbstractCanvas2D.prototype.setFillAlpha.apply(this,arguments)}var b=this.createElement("fillalpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setStrokeAlpha=function(a){if(this.compressed){if(this.state.strokeAlpha==a)return;mxAbstractCanvas2D.prototype.setStrokeAlpha.apply(this,arguments)}var b=this.createElement("strokealpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.fillColor==a)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var b=this.createElement("fillcolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)};
-mxXmlCanvas2D.prototype.setGradient=function(a,b,c,d,e,f,g,k,l){if(null!=a&&null!=b){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var m=this.createElement("gradient");m.setAttribute("c1",a);m.setAttribute("c2",b);m.setAttribute("x",this.format(c));m.setAttribute("y",this.format(d));m.setAttribute("w",this.format(e));m.setAttribute("h",this.format(f));null!=g&&m.setAttribute("direction",g);null!=k&&m.setAttribute("alpha1",k);null!=l&&m.setAttribute("alpha2",l);this.root.appendChild(m)}};
+mxXmlCanvas2D.prototype.setGradient=function(a,b,c,d,e,f,g,k,l){if(null!=a&&null!=b){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var n=this.createElement("gradient");n.setAttribute("c1",a);n.setAttribute("c2",b);n.setAttribute("x",this.format(c));n.setAttribute("y",this.format(d));n.setAttribute("w",this.format(e));n.setAttribute("h",this.format(f));null!=g&&n.setAttribute("direction",g);null!=k&&n.setAttribute("alpha1",k);null!=l&&n.setAttribute("alpha2",l);this.root.appendChild(n)}};
mxXmlCanvas2D.prototype.setStrokeColor=function(a){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.strokeColor==a)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var b=this.createElement("strokecolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setStrokeWidth=function(a){if(this.compressed){if(this.state.strokeWidth==a)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var b=this.createElement("strokewidth");b.setAttribute("width",this.format(a));this.root.appendChild(b)};
mxXmlCanvas2D.prototype.setDashed=function(a){if(this.compressed){if(this.state.dashed==a)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var b=this.createElement("dashed");b.setAttribute("dashed",a?"1":"0");this.root.appendChild(b)};mxXmlCanvas2D.prototype.setDashPattern=function(a){if(this.compressed){if(this.state.dashPattern==a)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var b=this.createElement("dashpattern");b.setAttribute("pattern",a);this.root.appendChild(b)};
@@ -490,18 +490,18 @@ mxXmlCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert
mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin"));this.lastY=this.lastX=0};mxXmlCanvas2D.prototype.moveTo=function(a,b){var c=this.createElement("move");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};
mxXmlCanvas2D.prototype.lineTo=function(a,b){var c=this.createElement("line");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};mxXmlCanvas2D.prototype.quadTo=function(a,b,c,d){var e=this.createElement("quad");e.setAttribute("x1",this.format(a));e.setAttribute("y1",this.format(b));e.setAttribute("x2",this.format(c));e.setAttribute("y2",this.format(d));this.root.appendChild(e);this.lastX=c;this.lastY=d};
mxXmlCanvas2D.prototype.curveTo=function(a,b,c,d,e,f){var g=this.createElement("curve");g.setAttribute("x1",this.format(a));g.setAttribute("y1",this.format(b));g.setAttribute("x2",this.format(c));g.setAttribute("y2",this.format(d));g.setAttribute("x3",this.format(e));g.setAttribute("y3",this.format(f));this.root.appendChild(g);this.lastX=e;this.lastY=f};mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))};
-mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,q,p){if(this.textEnabled&&null!=e){mxUtils.isNode(e)&&(e=mxUtils.getOuterHtml(e));var r=this.createElement("text");r.setAttribute("x",this.format(a));r.setAttribute("y",this.format(b));r.setAttribute("w",this.format(c));r.setAttribute("h",this.format(d));r.setAttribute("str",e);null!=f&&r.setAttribute("align",f);null!=g&&r.setAttribute("valign",g);r.setAttribute("wrap",k?"1":"0");null==l&&(l="");r.setAttribute("format",l);null!=m&&r.setAttribute("overflow",
-m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=q&&r.setAttribute("rotation",q);null!=p&&r.setAttribute("dir",p);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
+mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,n,m,p,q){if(this.textEnabled&&null!=e){mxUtils.isNode(e)&&(e=mxUtils.getOuterHtml(e));var s=this.createElement("text");s.setAttribute("x",this.format(a));s.setAttribute("y",this.format(b));s.setAttribute("w",this.format(c));s.setAttribute("h",this.format(d));s.setAttribute("str",e);null!=f&&s.setAttribute("align",f);null!=g&&s.setAttribute("valign",g);s.setAttribute("wrap",k?"1":"0");null==l&&(l="");s.setAttribute("format",l);null!=n&&s.setAttribute("overflow",
+n);null!=m&&s.setAttribute("clip",m?"1":"0");null!=p&&s.setAttribute("rotation",p);null!=q&&s.setAttribute("dir",q);this.root.appendChild(s)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
-mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,q,p){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
+mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,n,m,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&b.setAttribute("font-style","italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.setAttribute("text-decoration","underline"),mxUtils.write(b,this.foAltText),b):null};
mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
-mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,m=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(m);null!=g&&g.ownerSVGElement!=k;)m=f+"-"+l++,g=k.ownerDocument.getElementById(m);else m="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",m),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
+mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,n=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(n);null!=g&&g.ownerSVGElement!=k;)n=f+"-"+l++,g=k.ownerDocument.getElementById(n);else n="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",n),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement("linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");c=1>c?";stop-opacity:"+c:"";e=this.createElement("stop");
e.setAttribute("offset","0%");e.setAttribute("style","stop-color:"+a+c);f.appendChild(e);c=1>d?";stop-opacity:"+d:"";e=this.createElement("stop");e.setAttribute("offset","100%");e.setAttribute("style","stop-color:"+b+c);f.appendChild(e);return f};
mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
@@ -515,12 +515,12 @@ mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typ
mxSvgCanvas2D.prototype.createTolerance=function(a){a=a.cloneNode(!0);var b=parseFloat(a.getAttribute("stroke-width")||1)+this.strokeTolerance;a.setAttribute("pointer-events","stroke");a.setAttribute("visibility","hidden");a.removeAttribute("stroke-dasharray");a.setAttribute("stroke-width",b);a.setAttribute("fill","none");a.setAttribute("stroke",mxClient.IS_OT?"none":"white");return a};
mxSvgCanvas2D.prototype.createShadow=function(a){a=a.cloneNode(!0);var b=this.state;"none"!=a.getAttribute("fill")&&(!mxClient.IS_FF||"transparent"!=a.getAttribute("fill"))&&a.setAttribute("fill",b.shadowColor);"none"!=a.getAttribute("stroke")&&a.setAttribute("stroke",b.shadowColor);a.setAttribute("transform","translate("+this.format(b.shadowDx*b.scale)+","+this.format(b.shadowDy*b.scale)+")"+(b.transform||""));a.setAttribute("opacity",b.shadowAlpha);return a};
mxSvgCanvas2D.prototype.setLink=function(a){if(null==a)this.root=this.originalRoot;else{this.originalRoot=this.root;var b=this.createElement("a");null==b.setAttributeNS||this.root.ownerDocument!=document&&null==document.documentMode?b.setAttribute("xlink:href",a):b.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",a);this.root.appendChild(b);this.root=b}};
-mxSvgCanvas2D.prototype.rotate=function(a,b,c,d,e){if(0!=a||b||c){var f=this.state;d+=f.dx;e+=f.dy;d*=f.scale;e*=f.scale;f.transform=f.transform||"";if(b&&c)a+=180;else if(b!=c){var g=b?d:0,k=b?-1:1,l=c?e:0,m=c?-1:1;f.transform+="translate("+this.format(g)+","+this.format(l)+")scale("+this.format(k)+","+this.format(m)+")translate("+this.format(-g)+","+this.format(-l)+")"}if(b?!c:c)a*=-1;0!=a&&(f.transform+="rotate("+this.format(a)+","+this.format(d)+","+this.format(e)+")");f.rotation+=a;f.rotationCx=
+mxSvgCanvas2D.prototype.rotate=function(a,b,c,d,e){if(0!=a||b||c){var f=this.state;d+=f.dx;e+=f.dy;d*=f.scale;e*=f.scale;f.transform=f.transform||"";if(b&&c)a+=180;else if(b!=c){var g=b?d:0,k=b?-1:1,l=c?e:0,n=c?-1:1;f.transform+="translate("+this.format(g)+","+this.format(l)+")scale("+this.format(k)+","+this.format(n)+")translate("+this.format(-g)+","+this.format(-l)+")"}if(b?!c:c)a*=-1;0!=a&&(f.transform+="rotate("+this.format(a)+","+this.format(d)+","+this.format(e)+")");f.rotation+=a;f.rotationCx=
d;f.rotationCy=e}};mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments);this.node=this.createElement("path")};mxSvgCanvas2D.prototype.rect=function(a,b,c,d){var e=this.state,f=this.createElement("rect");f.setAttribute("x",this.format((a+e.dx)*e.scale));f.setAttribute("y",this.format((b+e.dy)*e.scale));f.setAttribute("width",this.format(c*e.scale));f.setAttribute("height",this.format(d*e.scale));this.node=f};
mxSvgCanvas2D.prototype.roundrect=function(a,b,c,d,e,f){this.rect(a,b,c,d);0<e&&this.node.setAttribute("rx",this.format(e*this.state.scale));0<f&&this.node.setAttribute("ry",this.format(f*this.state.scale))};mxSvgCanvas2D.prototype.ellipse=function(a,b,c,d){var e=this.state,f=this.createElement("ellipse");f.setAttribute("cx",Math.round((a+c/2+e.dx)*e.scale));f.setAttribute("cy",Math.round((b+d/2+e.dy)*e.scale));f.setAttribute("rx",c/2*e.scale);f.setAttribute("ry",d/2*e.scale);this.node=f};
-mxSvgCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert(e);f=null!=f?f:!0;g=null!=g?g:!1;k=null!=k?k:!1;var l=this.state;a+=l.dx;b+=l.dy;var m=this.createElement("image");m.setAttribute("x",this.format(a*l.scale));m.setAttribute("y",this.format(b*l.scale));m.setAttribute("width",this.format(c*l.scale));m.setAttribute("height",this.format(d*l.scale));null==m.setAttributeNS?m.setAttribute("xlink:href",e):m.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",e);f||m.setAttribute("preserveAspectRatio",
-"none");(1>l.alpha||1>l.fillAlpha)&&m.setAttribute("opacity",l.alpha*l.fillAlpha);e=this.state.transform||"";if(g||k){var n=f=1,q=0,p=0;g&&(f=-1,q=-c-2*a);k&&(n=-1,p=-d-2*b);e+="scale("+f+","+n+")translate("+q*l.scale+","+p*l.scale+")"}0<e.length&&m.setAttribute("transform",e);this.pointerEvents||m.setAttribute("pointer-events","none");this.root.appendChild(m);this.blockImagePointerEvents&&(m.setAttribute("style","pointer-events:none"),m=this.createElement("rect"),m.setAttribute("visibility","hidden"),
-m.setAttribute("pointer-events","fill"),m.setAttribute("x",this.format(a*l.scale)),m.setAttribute("y",this.format(b*l.scale)),m.setAttribute("width",this.format(c*l.scale)),m.setAttribute("height",this.format(d*l.scale)),this.root.appendChild(m))};
+mxSvgCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert(e);f=null!=f?f:!0;g=null!=g?g:!1;k=null!=k?k:!1;var l=this.state;a+=l.dx;b+=l.dy;var n=this.createElement("image");n.setAttribute("x",this.format(a*l.scale));n.setAttribute("y",this.format(b*l.scale));n.setAttribute("width",this.format(c*l.scale));n.setAttribute("height",this.format(d*l.scale));null==n.setAttributeNS?n.setAttribute("xlink:href",e):n.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",e);f||n.setAttribute("preserveAspectRatio",
+"none");(1>l.alpha||1>l.fillAlpha)&&n.setAttribute("opacity",l.alpha*l.fillAlpha);e=this.state.transform||"";if(g||k){var m=f=1,p=0,q=0;g&&(f=-1,p=-c-2*a);k&&(m=-1,q=-d-2*b);e+="scale("+f+","+m+")translate("+p*l.scale+","+q*l.scale+")"}0<e.length&&n.setAttribute("transform",e);this.pointerEvents||n.setAttribute("pointer-events","none");this.root.appendChild(n);this.blockImagePointerEvents&&(n.setAttribute("style","pointer-events:none"),n=this.createElement("rect"),n.setAttribute("visibility","hidden"),
+n.setAttribute("pointer-events","fill"),n.setAttribute("x",this.format(a*l.scale)),n.setAttribute("y",this.format(b*l.scale)),n.setAttribute("width",this.format(c*l.scale)),n.setAttribute("height",this.format(d*l.scale)),this.root.appendChild(n))};
mxSvgCanvas2D.prototype.convertHtml=function(a){if(this.useDomParser){var b=(new DOMParser).parseFromString(a,"text/html");null!=b&&(a=(new XMLSerializer).serializeToString(b.body),"\x3cbody"==a.substring(0,5)&&(a=a.substring(a.indexOf("\x3e",5)+1)),"\x3c/body\x3e"==a.substring(a.length-7,a.length)&&(a=a.substring(0,a.length-7)))}else{if(null!=document.implementation&&null!=document.implementation.createDocument){var b=document.implementation.createDocument("http://www.w3.org/1999/xhtml","html",null),
c=b.createElement("body");b.documentElement.appendChild(c);var d=document.createElement("div");d.innerHTML=a;for(a=d.firstChild;null!=a;)d=a.nextSibling,c.appendChild(b.adoptNode(a)),a=d;return c.innerHTML}b=document.createElement("textarea");b.innerHTML=a.replace(/&amp;/g,"\x26amp;amp;").replace(/&#60;/g,"\x26amp;lt;").replace(/&#62;/g,"\x26amp;gt;").replace(/&lt;/g,"\x26amp;lt;").replace(/&gt;/g,"\x26amp;gt;").replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;");a=b.value.replace(/&/g,"\x26amp;").replace(/&amp;lt;/g,
"\x26lt;").replace(/&amp;gt;/g,"\x26gt;").replace(/&amp;amp;/g,"\x26amp;").replace(/<br>/g,"\x3cbr /\x3e").replace(/<hr>/g,"\x3chr /\x3e").replace(/(<img[^>]+)>/gm,"$1 /\x3e")}return a};
@@ -528,29 +528,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,k,l,m,n){if(null!=n&&null!=n.firstChild&&null!=n.firstChild.firstChild&&null!=n.firstChild.firstChild.firstChild){n=n.firstChild;var q=n.firstChild,p=q.firstChild;m=null!=m?m:0;var r=this.state;a+=r.dx;b+=r.dy;l?(p.style.maxHeight=Math.round(d)+"px",p.style.maxWidth=Math.round(c)+"px"):"fill"==k?(p.style.width=Math.round(c+1)+"px",p.style.height=Math.round(d+1)+"px"):"width"==k&&(p.style.width=Math.round(c+1)+"px",0<d&&(p.style.maxHeight=Math.round(d)+
-"px"));g&&0<c&&(p.style.width=Math.round(c+1)+"px");var s=0,t=0,t=p;null!=t.firstChild&&"DIV"==t.firstChild.nodeName&&(t=t.firstChild);s=(null!=n.mxCachedOffsetWidth?n.mxCachedOffsetWidth:t.offsetWidth)+2;g&&"fill"!=k&&(l&&(s=Math.min(s,c)),p.style.width=s+"px");s=(null!=n.mxCachedFinalOffsetWidth?n.mxCachedFinalOffsetWidth:t.offsetWidth)+2;t=(null!=n.mxCachedFinalOffsetHeight?n.mxCachedFinalOffsetHeight:t.offsetHeight)-2;l&&(t=Math.min(t,d),s=Math.min(s,c));"width"==k?d=t:"fill"!=k&&(c=s,d=t);l=
-g=0;e==mxConstants.ALIGN_CENTER?g-=c/2:e==mxConstants.ALIGN_RIGHT&&(g-=c);a+=g;f==mxConstants.ALIGN_MIDDLE?l-=d/2:f==mxConstants.ALIGN_BOTTOM&&(l-=d);"fill"!=k&&mxClient.IS_FF&&mxClient.IS_WIN&&(l-=2);b+=l;e=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(e+="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!=m&&(e+="rotate("+m+","+-g+","+
--l+")");n.setAttribute("transform","translate("+Math.round(a)+","+Math.round(b)+")"+e);q.setAttribute("width",Math.round(Math.max(1,c)));q.setAttribute("height",Math.round(Math.max(1,d)))}};
-mxSvgCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,q,p){if(this.textEnabled&&null!=e){q=null!=q?q:0;var r=this.state;a+=r.dx;b+=r.dy;if(this.foEnabled&&"html"==l){var s="vertical-align:top;";n?s+="overflow:hidden;max-height:"+Math.round(d)+"px;max-width:"+Math.round(c)+"px;":"fill"==m?s+="width:"+Math.round(c+1)+"px;height:"+Math.round(d+1)+"px;overflow:hidden;":"width"==m&&(s+="width:"+Math.round(c+1)+"px;",0<d&&(s+="max-height:"+Math.round(d)+"px;overflow:hidden;"));var s=k&&0<c?s+("width:"+
-Math.round(c+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):s+"white-space:nowrap;",t=this.createElement("g");1>r.alpha&&t.setAttribute("opacity",r.alpha);var v=this.createElement("foreignObject");v.setAttribute("style","overflow:visible;");v.setAttribute("pointer-events","all");s=this.createDiv(e,f,g,s,m);if(null!=s){null!=p&&s.setAttribute("dir",p);t.appendChild(v);this.root.appendChild(t);var u=0,y=0;p=u=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var z=
-document.createElement("div");z.style.cssText=s.getAttribute("style");z.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";z.style.position="absolute";z.style.visibility="hidden";y=document.createElement("div");y.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";y.style.wordWrap=mxConstants.WORD_WRAP;y.innerHTML=mxUtils.isNode(e)?e.outerHTML:e;z.appendChild(y);document.body.appendChild(z);8!=document.documentMode&&9!=document.documentMode&&null!=r.fontBorderColor&&(u+=2,p+=2);if(k&&0<
-c){var x=y.offsetWidth;if(!n&&k&&0<c&&this.root.ownerDocument!=document&&"fill"!=m){var G=z.style.whiteSpace;y.style.whiteSpace="nowrap";x<y.offsetWidth&&(z.style.whiteSpace=G)}n&&(x=Math.min(x,c));z.style.width=x+"px";u=y.offsetWidth+u+0;y=y.offsetHeight+p;z.style.display="inline-block";z.style.position="";z.style.visibility="";z.style.width=u+"px";s.setAttribute("style",z.style.cssText)}else u=y.offsetWidth+u,y=y.offsetHeight+p;z.parentNode.removeChild(z);v.appendChild(s)}else this.root.ownerDocument!=
-document?(s.style.visibility="hidden",document.body.appendChild(s)):v.appendChild(s),z=s,null!=z.firstChild&&"DIV"==z.firstChild.nodeName&&(z=z.firstChild,k&&"break-word"==s.style.wordWrap&&(z.style.width="100%")),x=z.offsetWidth,0==x&&s.parentNode==v&&(s.style.visibility="hidden",document.body.appendChild(s),x=z.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!n&&k&&0<c&&(this.root.ownerDocument!=document&&"fill"!=m&&"width"!=m)&&(G=s.style.whiteSpace,s.style.whiteSpace="nowrap",x<z.offsetWidth&&
-(s.style.whiteSpace=G)),u=x+u-1,k&&"fill"!=m&&"width"!=m&&(n&&(u=Math.min(u,c)),s.style.width=u+"px"),u=z.offsetWidth,y=z.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=u,t.mxCachedFinalOffsetHeight=y),y-=p,s.parentNode!=v&&(v.appendChild(s),s.style.visibility="");n&&(y=Math.min(y,d),u=Math.min(u,c));"width"==m?d=y:"fill"!=m&&(c=u,d=y);1>r.alpha&&t.setAttribute("opacity",r.alpha);p=s=0;f==mxConstants.ALIGN_CENTER?s-=c/2:f==mxConstants.ALIGN_RIGHT&&(s-=c);a+=s;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;z=1!=r.scale?"scale("+r.scale+")":"";0!=r.rotation&&this.rotateHtml?(z+="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!=q&&(z+="rotate("+q+","+-s+","+-p+")");t.setAttribute("transform","translate("+(Math.round(a)+this.foOffset)+","+(Math.round(b)+this.foOffset)+
-")"+z);v.setAttribute("width",Math.round(Math.max(1,c)));v.setAttribute("height",Math.round(Math.max(1,d)));this.root.ownerDocument!=document&&(a=this.createAlternateContent(v,a,b,c,d,e,f,g,k,l,m,n,q),null!=a&&(v.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(v),c.appendChild(a),t.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,k,m,n,q,p)}};
+mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,k,l,n,m){if(null!=m&&null!=m.firstChild&&null!=m.firstChild.firstChild&&null!=m.firstChild.firstChild.firstChild){m=m.firstChild;var p=m.firstChild,q=p.firstChild;n=null!=n?n:0;var s=this.state;a+=s.dx;b+=s.dy;l?(q.style.maxHeight=Math.round(d)+"px",q.style.maxWidth=Math.round(c)+"px"):"fill"==k?(q.style.width=Math.round(c+1)+"px",q.style.height=Math.round(d+1)+"px"):"width"==k&&(q.style.width=Math.round(c+1)+"px",0<d&&(q.style.maxHeight=Math.round(d)+
+"px"));g&&0<c&&(q.style.width=Math.round(c+1)+"px");var r=0,t=0,t=q;null!=t.firstChild&&"DIV"==t.firstChild.nodeName&&(t=t.firstChild);r=(null!=m.mxCachedOffsetWidth?m.mxCachedOffsetWidth:t.offsetWidth)+2;g&&"fill"!=k&&(l&&(r=Math.min(r,c)),q.style.width=r+"px");r=(null!=m.mxCachedFinalOffsetWidth?m.mxCachedFinalOffsetWidth:t.offsetWidth)+2;t=(null!=m.mxCachedFinalOffsetHeight?m.mxCachedFinalOffsetHeight:t.offsetHeight)-2;l&&(t=Math.min(t,d),r=Math.min(r,c));"width"==k?d=t:"fill"!=k&&(c=r,d=t);l=
+g=0;e==mxConstants.ALIGN_CENTER?g-=c/2:e==mxConstants.ALIGN_RIGHT&&(g-=c);a+=g;f==mxConstants.ALIGN_MIDDLE?l-=d/2:f==mxConstants.ALIGN_BOTTOM&&(l-=d);"fill"!=k&&mxClient.IS_FF&&mxClient.IS_WIN&&(l-=2);b+=l;e=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(e+="rotate("+s.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*s.scale,(b+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=b.x-c*s.scale/2,b=b.y-d*s.scale/2):(a*=s.scale,b*=s.scale);0!=n&&(e+="rotate("+n+","+-g+","+
+-l+")");m.setAttribute("transform","translate("+Math.round(a)+","+Math.round(b)+")"+e);p.setAttribute("width",Math.round(Math.max(1,c)));p.setAttribute("height",Math.round(Math.max(1,d)))}};
+mxSvgCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,n,m,p,q){if(this.textEnabled&&null!=e){p=null!=p?p:0;var s=this.state;a+=s.dx;b+=s.dy;if(this.foEnabled&&"html"==l){var r="vertical-align:top;";m?r+="overflow:hidden;max-height:"+Math.round(d)+"px;max-width:"+Math.round(c)+"px;":"fill"==n?r+="width:"+Math.round(c+1)+"px;height:"+Math.round(d+1)+"px;overflow:hidden;":"width"==n&&(r+="width:"+Math.round(c+1)+"px;",0<d&&(r+="max-height:"+Math.round(d)+"px;overflow:hidden;"));var r=k&&0<c?r+("width:"+
+Math.round(c+1)+"px;white-space:normal;word-wrap:"+mxConstants.WORD_WRAP+";"):r+"white-space:nowrap;",t=this.createElement("g");1>s.alpha&&t.setAttribute("opacity",s.alpha);var u=this.createElement("foreignObject");u.setAttribute("style","overflow:visible;");u.setAttribute("pointer-events","all");r=this.createDiv(e,f,g,r,n);if(null!=r){null!=q&&r.setAttribute("dir",q);t.appendChild(u);this.root.appendChild(t);var v=0,z=0;q=v=2;if(mxClient.IS_IE&&(9==document.documentMode||!mxClient.IS_SVG)){var y=
+document.createElement("div");y.style.cssText=r.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!=s.fontBorderColor&&(v+=2,q+=2);if(k&&0<
+c){var x=z.offsetWidth;if(!m&&k&&0<c&&this.root.ownerDocument!=document&&"fill"!=n){var E=y.style.whiteSpace;z.style.whiteSpace="nowrap";x<z.offsetWidth&&(y.style.whiteSpace=E)}m&&(x=Math.min(x,c));y.style.width=x+"px";v=z.offsetWidth+v+0;z=z.offsetHeight+q;y.style.display="inline-block";y.style.position="";y.style.visibility="";y.style.width=v+"px";r.setAttribute("style",y.style.cssText)}else v=z.offsetWidth+v,z=z.offsetHeight+q;y.parentNode.removeChild(y);u.appendChild(r)}else this.root.ownerDocument!=
+document?(r.style.visibility="hidden",document.body.appendChild(r)):u.appendChild(r),y=r,null!=y.firstChild&&"DIV"==y.firstChild.nodeName&&(y=y.firstChild,k&&"break-word"==r.style.wordWrap&&(y.style.width="100%")),x=y.offsetWidth,0==x&&r.parentNode==u&&(r.style.visibility="hidden",document.body.appendChild(r),x=y.offsetWidth),this.cacheOffsetSize&&(t.mxCachedOffsetWidth=x),!m&&k&&0<c&&(this.root.ownerDocument!=document&&"fill"!=n&&"width"!=n)&&(E=r.style.whiteSpace,r.style.whiteSpace="nowrap",x<y.offsetWidth&&
+(r.style.whiteSpace=E)),v=x+v-1,k&&"fill"!=n&&"width"!=n&&(m&&(v=Math.min(v,c)),r.style.width=v+"px"),v=y.offsetWidth,z=y.offsetHeight,this.cacheOffsetSize&&(t.mxCachedFinalOffsetWidth=v,t.mxCachedFinalOffsetHeight=z),z-=q,r.parentNode!=u&&(u.appendChild(r),r.style.visibility="");m&&(z=Math.min(z,d),v=Math.min(v,c));"width"==n?d=z:"fill"!=n&&(c=v,d=z);1>s.alpha&&t.setAttribute("opacity",s.alpha);q=r=0;f==mxConstants.ALIGN_CENTER?r-=c/2:f==mxConstants.ALIGN_RIGHT&&(r-=c);a+=r;g==mxConstants.ALIGN_MIDDLE?
+q-=d/2:g==mxConstants.ALIGN_BOTTOM&&(q-=d);"fill"!=n&&mxClient.IS_FF&&mxClient.IS_WIN&&(q-=2);b+=q;y=1!=s.scale?"scale("+s.scale+")":"";0!=s.rotation&&this.rotateHtml?(y+="rotate("+s.rotation+","+c/2+","+d/2+")",b=this.rotatePoint((a+c/2)*s.scale,(b+d/2)*s.scale,s.rotation,s.rotationCx,s.rotationCy),a=b.x-c*s.scale/2,b=b.y-d*s.scale/2):(a*=s.scale,b*=s.scale);0!=p&&(y+="rotate("+p+","+-r+","+-q+")");t.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,k,l,n,m,p),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),c=this.createElement("switch"),c.appendChild(u),c.appendChild(a),t.appendChild(c)))}}else this.plainText(a,b,c,d,e,f,g,k,n,m,p,q)}};
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,k,l,m,n,q){n=null!=n?n:0;k=this.state;var p=k.fontSize,r=this.createElement("g"),s=k.transform||"";this.updateFont(r);0!=n&&(s+="rotate("+n+","+this.format(a*k.scale)+","+this.format(b*k.scale)+")");null!=q&&r.setAttribute("direction",q);m&&0<c&&0<d&&(q=a,n=b,f==mxConstants.ALIGN_CENTER?q-=c/2:f==mxConstants.ALIGN_RIGHT&&(q-=c),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?n-=d/2:g==mxConstants.ALIGN_BOTTOM&&(n-=d)),n=this.createClip(q*k.scale-2,
-n*k.scale-2,c*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(n):this.root.appendChild(n),!mxClient.IS_CHROME_APP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&this.root.ownerDocument==document?(q=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),r.setAttribute("clip-path","url("+q+"#"+n.getAttribute("id")+")")):r.setAttribute("clip-path","url(#"+n.getAttribute("id")+")"));n=f==mxConstants.ALIGN_RIGHT?"end":f==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=n&&r.setAttribute("text-anchor",
-n);(!this.styleEnabled||p!=mxConstants.DEFAULT_FONTSIZE)&&r.setAttribute("font-size",p*k.scale+"px");0<s.length&&r.setAttribute("transform",s);1>k.alpha&&r.setAttribute("opacity",k.alpha);s=e.split("\n");q=Math.round(p*mxConstants.LINE_HEIGHT);var t=p+(s.length-1)*q;n=b+p-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?n-=d/2:(m=(this.matchHtmlAlignment&&m&&0<d?Math.min(t,d):t)/2,n-=m+1):g==mxConstants.ALIGN_BOTTOM&&("fill"==l?n-=d:(m=this.matchHtmlAlignment&&m&&0<d?Math.min(t,d):t,n-=m+2));for(m=0;m<s.length;m++)0<
-s[m].length&&0<mxUtils.trim(s[m]).length&&(p=this.createElement("text"),p.setAttribute("x",this.format(a*k.scale)+this.textOffset),p.setAttribute("y",this.format(n*k.scale)+this.textOffset),mxUtils.write(p,s[m]),r.appendChild(p)),n+=q;this.root.appendChild(r);this.addTextBackground(r,e,a,b,c,"fill"==l?d:t,f,g,l)};
+mxSvgCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,k,l,n,m,p){m=null!=m?m:0;k=this.state;var q=k.fontSize,s=this.createElement("g"),r=k.transform||"";this.updateFont(s);0!=m&&(r+="rotate("+m+","+this.format(a*k.scale)+","+this.format(b*k.scale)+")");null!=p&&s.setAttribute("direction",p);n&&0<c&&0<d&&(p=a,m=b,f==mxConstants.ALIGN_CENTER?p-=c/2:f==mxConstants.ALIGN_RIGHT&&(p-=c),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?m-=d/2:g==mxConstants.ALIGN_BOTTOM&&(m-=d)),m=this.createClip(p*k.scale-2,
+m*k.scale-2,c*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(m):this.root.appendChild(m),!mxClient.IS_CHROME_APP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&this.root.ownerDocument==document?(p=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),s.setAttribute("clip-path","url("+p+"#"+m.getAttribute("id")+")")):s.setAttribute("clip-path","url(#"+m.getAttribute("id")+")"));m=f==mxConstants.ALIGN_RIGHT?"end":f==mxConstants.ALIGN_CENTER?"middle":"start";"start"!=m&&s.setAttribute("text-anchor",
+m);(!this.styleEnabled||q!=mxConstants.DEFAULT_FONTSIZE)&&s.setAttribute("font-size",q*k.scale+"px");0<r.length&&s.setAttribute("transform",r);1>k.alpha&&s.setAttribute("opacity",k.alpha);r=e.split("\n");p=Math.round(q*mxConstants.LINE_HEIGHT);var t=q+(r.length-1)*p;m=b+q-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?m-=d/2:(n=(this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t)/2,m-=n+1):g==mxConstants.ALIGN_BOTTOM&&("fill"==l?m-=d:(n=this.matchHtmlAlignment&&n&&0<d?Math.min(t,d):t,m-=n+2));for(n=0;n<r.length;n++)0<
+r[n].length&&0<mxUtils.trim(r[n]).length&&(q=this.createElement("text"),q.setAttribute("x",this.format(a*k.scale)+this.textOffset),q.setAttribute("y",this.format(m*k.scale)+this.textOffset),mxUtils.write(q,r[n]),s.appendChild(q)),m+=p;this.root.appendChild(s);this.addTextBackground(s,e,a,b,c,"fill"==l?d:t,f,g,l)};
mxSvgCanvas2D.prototype.updateFont=function(a){var b=this.state;a.setAttribute("fill",b.fontColor);(!this.styleEnabled||b.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&a.setAttribute("font-family",b.fontFamily);(b.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&a.setAttribute("font-weight","bold");(b.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&a.setAttribute("font-style","italic");(b.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&a.setAttribute("text-decoration",
"underline")};
-mxSvgCanvas2D.prototype.addTextBackground=function(a,b,c,d,e,f,g,k,l){var m=this.state;if(null!=m.fontBackgroundColor||null!=m.fontBorderColor){var n=null;if("fill"==l||"width"==l)g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),n=new mxRectangle((c+1)*m.scale,d*m.scale,(e-2)*m.scale,(f+2)*m.scale);else if(null!=a.getBBox&&this.root.ownerDocument==document)try{var n=a.getBBox(),q=mxClient.IS_IE&&mxClient.IS_SVG,
-n=new mxRectangle(n.x,n.y+(q?0:1),n.width,n.height+(q?1:0))}catch(p){}else n=document.createElement("div"),n.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?m.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,n.style.fontSize=m.fontSize+"px",n.style.fontFamily=m.fontFamily,n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.style.zoom="1",(m.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
-(n.style.fontWeight="bold"),(m.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(n.style.fontStyle="italic"),b=mxUtils.htmlEntities(b,!1),n.innerHTML=b.replace(/\n/g,"\x3cbr/\x3e"),document.body.appendChild(n),e=n.offsetWidth,f=n.offsetHeight,n.parentNode.removeChild(n),g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),n=new mxRectangle((c+1)*m.scale,(d+2)*m.scale,e*m.scale,(f+1)*m.scale);null!=
-n&&(b=this.createElement("rect"),b.setAttribute("fill",m.fontBackgroundColor||"none"),b.setAttribute("stroke",m.fontBorderColor||"none"),b.setAttribute("x",Math.floor(n.x-1)),b.setAttribute("y",Math.floor(n.y-1)),b.setAttribute("width",Math.ceil(n.width+2)),b.setAttribute("height",Math.ceil(n.height)),m=null!=m.fontBorderColor?Math.max(1,this.format(m.scale)):0,b.setAttribute("stroke-width",m),this.root.ownerDocument==document&&1==mxUtils.mod(m,2)&&b.setAttribute("transform","translate(0.5, 0.5)"),
+mxSvgCanvas2D.prototype.addTextBackground=function(a,b,c,d,e,f,g,k,l){var n=this.state;if(null!=n.fontBackgroundColor||null!=n.fontBorderColor){var m=null;if("fill"==l||"width"==l)g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),m=new mxRectangle((c+1)*n.scale,d*n.scale,(e-2)*n.scale,(f+2)*n.scale);else if(null!=a.getBBox&&this.root.ownerDocument==document)try{var m=a.getBBox(),p=mxClient.IS_IE&&mxClient.IS_SVG,
+m=new mxRectangle(m.x,m.y+(p?0:1),m.width,m.height+(p?1:0))}catch(q){}else m=document.createElement("div"),m.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?n.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,m.style.fontSize=n.fontSize+"px",m.style.fontFamily=n.fontFamily,m.style.whiteSpace="nowrap",m.style.position="absolute",m.style.visibility="hidden",m.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",m.style.zoom="1",(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
+(m.style.fontWeight="bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(m.style.fontStyle="italic"),b=mxUtils.htmlEntities(b,!1),m.innerHTML=b.replace(/\n/g,"\x3cbr/\x3e"),document.body.appendChild(m),e=m.offsetWidth,f=m.offsetHeight,m.parentNode.removeChild(m),g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),m=new mxRectangle((c+1)*n.scale,(d+2)*n.scale,e*n.scale,(f+1)*n.scale);null!=
+m&&(b=this.createElement("rect"),b.setAttribute("fill",n.fontBackgroundColor||"none"),b.setAttribute("stroke",n.fontBorderColor||"none"),b.setAttribute("x",Math.floor(m.x-1)),b.setAttribute("y",Math.floor(m.y-1)),b.setAttribute("width",Math.ceil(m.width+2)),b.setAttribute("height",Math.ceil(m.height)),n=null!=n.fontBorderColor?Math.max(1,this.format(n.scale)):0,b.setAttribute("stroke-width",n),this.root.ownerDocument==document&&1==mxUtils.mod(n,2)&&b.setAttribute("transform","translate(0.5, 0.5)"),
a.insertBefore(b,a.firstChild))}};mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)};mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)};mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(a){mxAbstractCanvas2D.call(this);this.root=a};mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D);mxVmlCanvas2D.prototype.node=null;mxVmlCanvas2D.prototype.textEnabled=!0;mxVmlCanvas2D.prototype.moveOp="m";mxVmlCanvas2D.prototype.lineOp="l";
mxVmlCanvas2D.prototype.curveOp="c";mxVmlCanvas2D.prototype.closeOp="x";mxVmlCanvas2D.prototype.rotatedHtmlBackground="";mxVmlCanvas2D.prototype.vmlScale=1;mxVmlCanvas2D.prototype.createElement=function(a){return document.createElement(a)};mxVmlCanvas2D.prototype.createVmlElement=function(a){return this.createElement(mxClient.VML_PREFIX+":"+a)};
mxVmlCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("shape"==c.nodeName)if(null!=this.path&&0<this.path.length)c.path=this.path.join(" ")+" e",c.style.width=this.root.style.width,c.style.height=this.root.style.height,c.coordsize=parseInt(c.style.width)+" "+parseInt(c.style.height);else return;c.strokeweight=this.format(Math.max(1,d.strokeWidth*d.scale/this.vmlScale))+"px";d.shadow&&this.root.appendChild(this.createShadow(c,a&&null!=d.fillColor,b&&null!=d.strokeColor));
@@ -570,26 +570,26 @@ mxVmlCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){var l=null;f?(l=this.cre
mxVmlCanvas2D.prototype.createDiv=function(a,b,c,d){c=this.createElement("div");var e=this.state,f="";null!=e.fontBackgroundColor&&(f+="background-color:"+e.fontBackgroundColor+";");null!=e.fontBorderColor&&(f+="border:1px solid "+e.fontBorderColor+";");mxUtils.isNode(a)?c.appendChild(a):"fill"!=d&&"width"!=d?(d=this.createElement("div"),d.style.cssText=f,d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",d.style.zoom="1",d.style.textDecoration="inherit",d.innerHTML=a,c.appendChild(d)):(c.style.cssText=
f,c.innerHTML=a);a=c.style;a.fontSize=e.fontSize/this.vmlScale+"px";a.fontFamily=e.fontFamily;a.color=e.fontColor;a.verticalAlign="top";a.textAlign=b||"left";a.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?e.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale+"px":mxConstants.LINE_HEIGHT;(e.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a.fontWeight="bold");(e.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a.fontStyle="italic");(e.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
(a.textDecoration="underline");return c};
-mxVmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,q,p){if(this.textEnabled&&null!=e){var r=this.state;if("html"==l){null!=r.rotation&&(b=this.rotatePoint(a,b,r.rotation,r.rotationCx,r.rotationCy),a=b.x,b=b.y);8==document.documentMode&&!mxClient.IS_EM?(a+=r.dx,b+=r.dy,"fill"!=m&&g==mxConstants.ALIGN_TOP&&(b-=1)):(a*=r.scale,b*=r.scale);l=8==document.documentMode&&!mxClient.IS_EM?this.createVmlElement("group"):this.createElement("div");l.style.position="absolute";l.style.display="inline";
-l.style.left=this.format(a)+"px";l.style.top=this.format(b)+"px";l.style.zoom=r.scale;var s=this.createElement("div");s.style.position="relative";s.style.display="inline";var t=mxUtils.getAlignmentAsPoint(f,g),v=t.x,t=t.y;e=this.createDiv(e,f,g,m);f=this.createElement("div");null!=p&&e.setAttribute("dir",p);if(k&&0<c){if(n||(e.style.width=Math.round(c)+"px"),e.style.wordWrap=mxConstants.WORD_WRAP,e.style.whiteSpace="normal","break-word"==e.style.wordWrap){var u=e;null!=u.firstChild&&"DIV"==u.firstChild.nodeName&&
-(u.firstChild.style.width="100%")}}else e.style.whiteSpace="nowrap";q=r.rotation+(q||0);this.rotateHtml&&0!=q?(f.style.display="inline",f.style.zoom="1",f.appendChild(e),8==document.documentMode&&!mxClient.IS_EM&&"DIV"!=this.root.nodeName?(s.appendChild(f),l.appendChild(s)):l.appendChild(f)):8==document.documentMode&&!mxClient.IS_EM?(s.appendChild(e),l.appendChild(s)):(e.style.display="inline",l.appendChild(e));"DIV"!=this.root.nodeName?(p=this.createVmlElement("rect"),p.stroked="false",p.filled=
-"false",p.appendChild(l),this.root.appendChild(p)):this.root.appendChild(l);n?(e.style.overflow="hidden",e.style.width=Math.round(c)+"px",mxClient.IS_QUIRKS||(e.style.maxHeight=Math.round(d)+"px")):"fill"==m?(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.height=Math.max(0,d)+1+"px"):"width"==m&&(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!=q){u=q*(Math.PI/180);q=parseFloat(parseFloat(Math.cos(u)).toFixed(8));
-p=parseFloat(parseFloat(Math.sin(-u)).toFixed(8));u%=2*Math.PI;0>u&&(u+=2*Math.PI);u%=Math.PI;u>Math.PI/2&&(u=Math.PI-u);g=Math.cos(u);var y=Math.sin(u);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",s.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);s=e;null!=s.firstChild&&"DIV"==s.firstChild.nodeName&&(s=s.firstChild);u=s.offsetWidth+3;s=s.offsetHeight;n?(c=Math.min(c,u),
-s=Math.min(s,d)):c=u;k&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(n||"width"==m)&&s>d)s=d,e.style.height=s+"px";d=s;n=(d-d*g+c*-y)/2-p*c*(v+0.5)+q*d*(t+0.5);k=(c-c*g+d*-y)/2+q*c*(v+0.5)+p*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(m=this.createElement("div"),m.style.display="inline-block",m.style.position="absolute",m.style.left=this.format(a+(k-c/2)*r.scale)+"px",m.style.top=this.format(b+(n-d/2)*r.scale)+"px",l.parentNode.appendChild(m),m.appendChild(l)):(r=8==document.documentMode&&
-!mxClient.IS_EM?1:r.scale,l.style.left=this.format(a+(k-c/2)*r)+"px",l.style.top=this.format(b+(n-d/2)*r)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+q+", M12\x3d"+p+", M21\x3d"+-p+", M22\x3d"+q+", 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&&(l.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,s=e.offsetHeight,mxClient.IS_QUIRKS&&n&&s>d&&(s=d,e.style.height=s+"px"),d=s,e.style.visibility="",r.appendChild(e),l.style.left=this.format(a+c*v*this.state.scale)+"px",l.style.top=this.format(b+d*t*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),s.style.left=100*v+
-"%",s.style.top=100*t+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,k,l,m,n,q,p)}};
-mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,k,l,m,n,q,p){k=this.state;a=(a+k.dx)*k.scale;b=(b+k.dy)*k.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=k.fontColor;d.opacity=100*k.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=
+mxVmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,n,m,p,q){if(this.textEnabled&&null!=e){var s=this.state;if("html"==l){null!=s.rotation&&(b=this.rotatePoint(a,b,s.rotation,s.rotationCx,s.rotationCy),a=b.x,b=b.y);8==document.documentMode&&!mxClient.IS_EM?(a+=s.dx,b+=s.dy,"fill"!=n&&g==mxConstants.ALIGN_TOP&&(b-=1)):(a*=s.scale,b*=s.scale);l=8==document.documentMode&&!mxClient.IS_EM?this.createVmlElement("group"):this.createElement("div");l.style.position="absolute";l.style.display="inline";
+l.style.left=this.format(a)+"px";l.style.top=this.format(b)+"px";l.style.zoom=s.scale;var r=this.createElement("div");r.style.position="relative";r.style.display="inline";var t=mxUtils.getAlignmentAsPoint(f,g),u=t.x,t=t.y;e=this.createDiv(e,f,g,n);f=this.createElement("div");null!=q&&e.setAttribute("dir",q);if(k&&0<c){if(m||(e.style.width=Math.round(c)+"px"),e.style.wordWrap=mxConstants.WORD_WRAP,e.style.whiteSpace="normal","break-word"==e.style.wordWrap){var v=e;null!=v.firstChild&&"DIV"==v.firstChild.nodeName&&
+(v.firstChild.style.width="100%")}}else e.style.whiteSpace="nowrap";p=s.rotation+(p||0);this.rotateHtml&&0!=p?(f.style.display="inline",f.style.zoom="1",f.appendChild(e),8==document.documentMode&&!mxClient.IS_EM&&"DIV"!=this.root.nodeName?(r.appendChild(f),l.appendChild(r)):l.appendChild(f)):8==document.documentMode&&!mxClient.IS_EM?(r.appendChild(e),l.appendChild(r)):(e.style.display="inline",l.appendChild(e));"DIV"!=this.root.nodeName?(q=this.createVmlElement("rect"),q.stroked="false",q.filled=
+"false",q.appendChild(l),this.root.appendChild(q)):this.root.appendChild(l);m?(e.style.overflow="hidden",e.style.width=Math.round(c)+"px",mxClient.IS_QUIRKS||(e.style.maxHeight=Math.round(d)+"px")):"fill"==n?(e.style.overflow="hidden",e.style.width=Math.max(0,c)+1+"px",e.style.height=Math.max(0,d)+1+"px"):"width"==n&&(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!=p){v=p*(Math.PI/180);p=parseFloat(parseFloat(Math.cos(v)).toFixed(8));
+q=parseFloat(parseFloat(Math.sin(-v)).toFixed(8));v%=2*Math.PI;0>v&&(v+=2*Math.PI);v%=Math.PI;v>Math.PI/2&&(v=Math.PI-v);g=Math.cos(v);var z=Math.sin(v);8==document.documentMode&&!mxClient.IS_EM&&(e.style.display="inline-block",f.style.display="inline-block",r.style.display="inline-block");e.style.visibility="hidden";e.style.position="absolute";document.body.appendChild(e);r=e;null!=r.firstChild&&"DIV"==r.firstChild.nodeName&&(r=r.firstChild);v=r.offsetWidth+3;r=r.offsetHeight;m?(c=Math.min(c,v),
+r=Math.min(r,d)):c=v;k&&(e.style.width=c+"px");if(mxClient.IS_QUIRKS&&(m||"width"==n)&&r>d)r=d,e.style.height=r+"px";d=r;m=(d-d*g+c*-z)/2-q*c*(u+0.5)+p*d*(t+0.5);k=(c-c*g+d*-z)/2+p*c*(u+0.5)+q*d*(t+0.5);"group"==l.nodeName&&"DIV"==this.root.nodeName?(n=this.createElement("div"),n.style.display="inline-block",n.style.position="absolute",n.style.left=this.format(a+(k-c/2)*s.scale)+"px",n.style.top=this.format(b+(m-d/2)*s.scale)+"px",l.parentNode.appendChild(n),n.appendChild(l)):(s=8==document.documentMode&&
+!mxClient.IS_EM?1:s.scale,l.style.left=this.format(a+(k-c/2)*s)+"px",l.style.top=this.format(b+(m-d/2)*s)+"px");f.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+p+", M12\x3d"+q+", M21\x3d"+-q+", M22\x3d"+p+", 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&&(l.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),s=e.parentNode,e.style.visibility="hidden",document.body.appendChild(e),c=e.offsetWidth,r=e.offsetHeight,mxClient.IS_QUIRKS&&m&&r>d&&(r=d,e.style.height=r+"px"),d=r,e.style.visibility="",s.appendChild(e),l.style.left=this.format(a+c*u*this.state.scale)+"px",l.style.top=this.format(b+d*t*this.state.scale)+"px"):(1>this.state.alpha&&(e.style.filter="alpha(opacity\x3d"+100*this.state.alpha+")"),r.style.left=100*u+
+"%",r.style.top=100*t+"%")}else this.plainText(a,b,c,d,mxUtils.htmlEntities(e,!1),f,g,k,l,n,m,p,q)}};
+mxVmlCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,k,l,n,m,p,q){k=this.state;a=(a+k.dx)*k.scale;b=(b+k.dy)*k.scale;c=this.createVmlElement("shape");c.style.width="1px";c.style.height="1px";c.stroked="false";d=this.createVmlElement("fill");d.color=k.fontColor;d.opacity=100*k.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=k.fontFamily;d.string=e;d.on="true";f=k.fontSize*k.scale/this.vmlScale;d.style.fontSize=f+"px";(k.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold");(k.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic");(k.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline");e=e.split("\n");k=f+(e.length-1)*f*mxConstants.LINE_HEIGHT;f=e=0;
-g==mxConstants.ALIGN_BOTTOM?f=-k/2:g!=mxConstants.ALIGN_MIDDLE&&(f=k/2);null!=q&&(c.style.rotation=q,g=q*(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)};
+g==mxConstants.ALIGN_BOTTOM?f=-k/2:g!=mxConstants.ALIGN_MIDDLE&&(f=k/2);null!=p&&(c.style.rotation=p,g=p*(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 mxGuide(a,b){this.graph=a;this.setStates(b)}mxGuide.prototype.graph=null;mxGuide.prototype.states=null;mxGuide.prototype.horizontal=!0;mxGuide.prototype.vertical=!0;mxGuide.prototype.guideX=null;mxGuide.prototype.guideY=null;mxGuide.prototype.setStates=function(a){this.states=a};mxGuide.prototype.isEnabledForEvent=function(a){return!0};mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize/2};
mxGuide.prototype.createGuideShape=function(a){a=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);a.isDashed=!0;return a};
-mxGuide.prototype.move=function(a,b,c){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=b){var d=this.graph.getView().translate,e=this.graph.getView().scale,f=b.x,g=b.y,k=!1,l=null,m=null,n=!1,q=null,p=null,r=this.getGuideTolerance(),s=r,t=r,r=a.clone();r.x+=b.x;r.y+=b.y;var v=r.x,u=r.x+r.width,y=r.getCenterX(),z=r.y,x=r.y+r.height,G=r.getCenterY();b=function(b,c){b+=this.graph.panDx;var d=!1;Math.abs(b-y)<s?(f=b-a.getCenterX(),s=Math.abs(b-y),d=!0):Math.abs(b-v)<s?(f=b-a.x,
-s=Math.abs(b-v),d=!0):Math.abs(b-u)<s&&(f=b-a.x-a.width,s=Math.abs(b-u),d=!0);d&&(l=c,m=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||d};for(var r=function(b){b+=this.graph.panDy;var c=!1;Math.abs(b-G)<t?(g=b-a.getCenterY(),t=Math.abs(b-G),c=!0):Math.abs(b-
-z)<t?(g=b-a.y,t=Math.abs(b-z),c=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),c=!0);c&&(q=E,p=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));n=n||c},D=0;D<this.states.length;D++){var E=this.states[D];null!=E&&(this.horizontal&&(b.call(this,E.getCenterX(),
-E),b.call(this,E.x,E),b.call(this,E.x+E.width,E)),this.vertical&&(r.call(this,E.getCenterY(),E),r.call(this,E.y,E),r.call(this,E.y+E.height,E)))}c&&(k||(c=a.x-(this.graph.snap(a.x/e-d.x)+d.x)*e,f=this.graph.snap(f/e)*e-c),n||(d=a.y-(this.graph.snap(a.y/e-d.y)+d.y)*e,g=this.graph.snap(g/e)*e-d));e=this.graph.container;!k&&null!=this.guideX?this.guideX.node.style.visibility="hidden":null!=this.guideX&&(null!=l&&null!=a&&(minY=Math.min(a.y+g-this.graph.panDy,l.y),maxY=Math.max(a.y+a.height+g-this.graph.panDy,
-l.y+l.height)),this.guideX.points=null!=minY&&null!=maxY?[new mxPoint(m,minY),new mxPoint(m,maxY)]:[new mxPoint(m,-this.graph.panDy),new mxPoint(m,e.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(l,!0),this.guideX.node.style.visibility="visible",this.guideX.redraw());!n&&null!=this.guideY?this.guideY.node.style.visibility="hidden":null!=this.guideY&&(null!=q&&null!=a&&(minX=Math.min(a.x+f-this.graph.panDx,q.x),maxX=Math.max(a.x+a.width+f-this.graph.panDx,q.x+q.width)),this.guideY.points=
-null!=minX&&null!=maxX?[new mxPoint(minX,p),new mxPoint(maxX,p)]:[new mxPoint(-this.graph.panDx,p),new mxPoint(e.scrollWidth-3-this.graph.panDx,p)],this.guideY.stroke=this.getGuideColor(q,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw());b=new mxPoint(f,g)}return b};mxGuide.prototype.getGuideColor=function(a,b){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
+mxGuide.prototype.move=function(a,b,c){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=b){var d=this.graph.getView().translate,e=this.graph.getView().scale,f=b.x,g=b.y,k=!1,l=null,n=null,m=!1,p=null,q=null,s=this.getGuideTolerance(),r=s,t=s,s=a.clone();s.x+=b.x;s.y+=b.y;var u=s.x,v=s.x+s.width,z=s.getCenterX(),y=s.y,x=s.y+s.height,E=s.getCenterY();b=function(b,c){b+=this.graph.panDx;var d=!1;Math.abs(b-z)<r?(f=b-a.getCenterX(),r=Math.abs(b-z),d=!0):Math.abs(b-u)<r?(f=b-a.x,
+r=Math.abs(b-u),d=!0):Math.abs(b-v)<r&&(f=b-a.x-a.width,r=Math.abs(b-v),d=!0);d&&(l=c,n=Math.round(b-this.graph.panDx),null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||d};for(var s=function(b){b+=this.graph.panDy;var c=!1;Math.abs(b-E)<t?(g=b-a.getCenterY(),t=Math.abs(b-E),c=!0):Math.abs(b-
+y)<t?(g=b-a.y,t=Math.abs(b-y),c=!0):Math.abs(b-x)<t&&(g=b-a.y-a.height,t=Math.abs(b-x),c=!0);c&&(p=F,q=Math.round(b-this.graph.panDy),null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));m=m||c},C=0;C<this.states.length;C++){var F=this.states[C];null!=F&&(this.horizontal&&(b.call(this,F.getCenterX(),
+F),b.call(this,F.x,F),b.call(this,F.x+F.width,F)),this.vertical&&(s.call(this,F.getCenterY(),F),s.call(this,F.y,F),s.call(this,F.y+F.height,F)))}c&&(k||(c=a.x-(this.graph.snap(a.x/e-d.x)+d.x)*e,f=this.graph.snap(f/e)*e-c),m||(d=a.y-(this.graph.snap(a.y/e-d.y)+d.y)*e,g=this.graph.snap(g/e)*e-d));e=this.graph.container;!k&&null!=this.guideX?this.guideX.node.style.visibility="hidden":null!=this.guideX&&(null!=l&&null!=a&&(minY=Math.min(a.y+g-this.graph.panDy,l.y),maxY=Math.max(a.y+a.height+g-this.graph.panDy,
+l.y+l.height)),this.guideX.points=null!=minY&&null!=maxY?[new mxPoint(n,minY),new mxPoint(n,maxY)]:[new mxPoint(n,-this.graph.panDy),new mxPoint(n,e.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(l,!0),this.guideX.node.style.visibility="visible",this.guideX.redraw());!m&&null!=this.guideY?this.guideY.node.style.visibility="hidden":null!=this.guideY&&(null!=p&&null!=a&&(minX=Math.min(a.x+f-this.graph.panDx,p.x),maxX=Math.max(a.x+a.width+f-this.graph.panDx,p.x+p.width)),this.guideY.points=
+null!=minX&&null!=maxX?[new mxPoint(minX,q),new mxPoint(maxX,q)]:[new mxPoint(-this.graph.panDx,q),new mxPoint(e.scrollWidth-3-this.graph.panDx,q)],this.guideY.stroke=this.getGuideColor(p,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw());b=new mxPoint(f,g)}return b};mxGuide.prototype.getGuideColor=function(a,b){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
mxGuide.prototype.setVisible=function(a){null!=this.guideX&&(this.guideX.node.style.visibility=a?"visible":"hidden");null!=this.guideY&&(this.guideY.node.style.visibility=a?"visible":"hidden")};mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null);null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)};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;
mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
@@ -598,14 +598,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),k=Math.min(g.width,g.height),k="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*k;a.setStrokeWidth(k);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,k,l){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l),c=c.nextSibling};
mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
-mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,m=d.height,n=Math.min(l,m);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f){a.begin();for(c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling}else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
-m);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*m,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*m,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*m);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*m,Number(c.getAttribute("x-axis-rotation")),
-Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,b=Number(b)/100,b=Math.min(n*b,d*
-b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*m,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
-else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var q=b.rotation,p=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=p&&b?d-q:p||b?d+q:d-q}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
-f)q=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=q&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,q.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
-f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
-f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);e&&("fillstroke"==f||"fill"==f||"stroke"==f)&&a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
+mxStencil.prototype.drawNode=function(a,b,c,d,e){var f=c.nodeName,g=d.x,k=d.y,l=d.width,n=d.height,m=Math.min(l,n);if("save"==f)a.save();else if("restore"==f)a.restore();else if("path"==f){a.begin();for(c=c.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,d,e),c=c.nextSibling}else if("close"==f)a.close();else if("move"==f)a.moveTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n);else if("line"==f)a.lineTo(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*
+n);else if("quad"==f)a.quadTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*n,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*n);else if("curve"==f)a.curveTo(g+Number(c.getAttribute("x1"))*l,k+Number(c.getAttribute("y1"))*n,g+Number(c.getAttribute("x2"))*l,k+Number(c.getAttribute("y2"))*n,g+Number(c.getAttribute("x3"))*l,k+Number(c.getAttribute("y3"))*n);else if("arc"==f)a.arcTo(Number(c.getAttribute("rx"))*l,Number(c.getAttribute("ry"))*n,Number(c.getAttribute("x-axis-rotation")),
+Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n);else if("rect"==f)a.rect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*n);else if("roundrect"==f)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),m=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*n,b=Number(b)/100,b=Math.min(m*b,d*
+b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,m,d,b,b);else if("ellipse"==f)a.ellipse(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*n);else if("image"==f)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*l,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),"1"==c.getAttribute("flipV")));
+else if("text"==f){if(!b.outline){m=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*n,0,0,m,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
+f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*n,m=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*n,p.drawShape(a,b,g,k,m,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:m,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
+f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(n=0;n<c.length;n++)0<c[n].length&&l.push(Number(c[n])*m);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
+f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*m);e&&("fillstroke"==f||"fill"==f||"stroke"==f)&&a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?0.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
@@ -632,8 +632,8 @@ mxShape.prototype.configureCanvas=function(a,b,c,d,e){var f=null;null!=this.styl
b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke)};mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);a.setShadow(!1);this.paintForeground(a,b,c,d,e)};
mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};mxShape.prototype.paintEdgeShape=function(a,b){};mxShape.prototype.getArcSize=function(a,b){var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(a*c,b*c)};
mxShape.prototype.paintGlassEffect=function(a,b,c,d,e,f){var g=Math.ceil(this.strokewidth/2);a.setGradient("#ffffff","#ffffff",b,c,d,0.6*e,"south",0.9,0.1);a.begin();f+=2*g;this.isRounded?(a.moveTo(b-g+f,c-g),a.quadTo(b-g,c-g,b-g,c-g+f),a.lineTo(b-g,c+0.4*e),a.quadTo(b+0.5*d,c+0.7*e,b+d+g,c+0.4*e),a.lineTo(b+d+g,c-g+f),a.quadTo(b+d+g,c-g,b+d+g-f,c-g)):(a.moveTo(b-g,c-g),a.lineTo(b-g,c+0.4*e),a.quadTo(b+0.5*d,c+0.7*e,b+d+g,c+0.4*e),a.lineTo(b+d+g,c-g));a.close();a.fill()};
-mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b.slice();var g=b[0],g=new mxPoint(f.x+(g.x-f.x)/2,f.y+(g.y-f.y)/2);b.splice(0,0,g)}var k=b[0],g=1;for(a.moveTo(k.x,k.y);g<(e?b.length:b.length-1);){var l=b[mxUtils.mod(g,b.length)],m=k.x-l.x,k=k.y-l.y;if(c&&(0!=m||0!=k)){var n=Math.sqrt(m*m+k*k),m=m*Math.min(d,n/2)/n,k=k*Math.min(d,n/2)/n;a.lineTo(l.x+m,l.y+k);for(k=b[mxUtils.mod(g+1,b.length)];g<b.length-2&&0==Math.round(k.x-l.x)&&0==Math.round(k.y-l.y);)k=b[mxUtils.mod(g+
-2,b.length)],g++;m=k.x-l.x;k=k.y-l.y;n=Math.max(1,Math.sqrt(m*m+k*k));m=m*Math.min(d,n/2)/n;k=k*Math.min(d,n/2)/n;m=l.x+m;k=l.y+k;a.quadTo(l.x,l.y,m,k);l=new mxPoint(m,k)}else a.lineTo(l.x,l.y);k=l;g++}e?a.close():a.lineTo(f.x,f.y)};
+mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b.slice();var g=b[0],g=new mxPoint(f.x+(g.x-f.x)/2,f.y+(g.y-f.y)/2);b.splice(0,0,g)}var k=b[0],g=1;for(a.moveTo(k.x,k.y);g<(e?b.length:b.length-1);){var l=b[mxUtils.mod(g,b.length)],n=k.x-l.x,k=k.y-l.y;if(c&&(0!=n||0!=k)){var m=Math.sqrt(n*n+k*k),n=n*Math.min(d,m/2)/m,k=k*Math.min(d,m/2)/m;a.lineTo(l.x+n,l.y+k);for(k=b[mxUtils.mod(g+1,b.length)];g<b.length-2&&0==Math.round(k.x-l.x)&&0==Math.round(k.y-l.y);)k=b[mxUtils.mod(g+
+2,b.length)],g++;n=k.x-l.x;k=k.y-l.y;m=Math.max(1,Math.sqrt(n*n+k*k));n=n*Math.min(d,m/2)/m;k=k*Math.min(d,m/2)/m;n=l.x+n;k=l.y+k;a.quadTo(l.x,l.y,n,k);l=new mxPoint(n,k)}else a.lineTo(l.x,l.y);k=l;g++}e?a.close():a.lineTo(f.x,f.y)};
mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass};
mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY,
this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.arrowStrokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,
@@ -647,10 +647,10 @@ mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&(t
mxShape.prototype.getShapeRotation=function(){var a=this.getRotation();null!=this.direction&&(this.direction==mxConstants.DIRECTION_NORTH?a+=270:this.direction==mxConstants.DIRECTION_WEST?a+=180:this.direction==mxConstants.DIRECTION_SOUTH&&(a+=90));return a};
mxShape.prototype.createTransparentSvgRectangle=function(a,b,c,d){var e=document.createElementNS(mxConstants.NS_SVG,"rect");e.setAttribute("x",a);e.setAttribute("y",b);e.setAttribute("width",c);e.setAttribute("height",d);e.setAttribute("fill","none");e.setAttribute("stroke","none");e.setAttribute("pointer-events","all");return e};mxShape.prototype.setTransparentBackgroundImage=function(a){a.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"};
mxShape.prototype.releaseSvgGradients=function(a){if(null!=a)for(var b in a){var c=a[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)-1,0==c.mxRefCount&&null!=c.parentNode&&c.parentNode.removeChild(c))}};mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null);this.releaseSvgGradients(this.oldGradients);this.oldGradients=null};
-var mxStencilRegistry={stencils:{},addStencil:function(a,b){mxStencilRegistry.stencils[a]=b},getStencil:function(a){return mxStencilRegistry.stencils[a]}},mxMarker={markers:[],addMarker:function(a,b){mxMarker.markers[a]=b},createMarker:function(a,b,c,d,e,f,g,k,l,m){var n=mxMarker.markers[c];return null!=n?n(a,b,c,d,e,f,g,k,l,m):null}};
-(function(){function a(a){a=null!=a?a:2;return function(b,c,g,k,l,m,n,q,p,r){c=1.118*l*p;q=1.118*m*p;l*=n+p;m*=n+p;var s=k.clone();s.x-=c;s.y-=q;n=g!=mxConstants.ARROW_CLASSIC&&g!=mxConstants.ARROW_CLASSIC_THIN?1:0.75;k.x+=-l*n-c;k.y+=-m*n-q;return function(){b.begin();b.moveTo(s.x,s.y);b.lineTo(s.x-l-m/a,s.y-m+l/a);(g==mxConstants.ARROW_CLASSIC||g==mxConstants.ARROW_CLASSIC_THIN)&&b.lineTo(s.x-3*l/4,s.y-3*m/4);b.lineTo(s.x+m/a-l,s.y-m-l/a);b.close();r?b.fillAndStroke():b.stroke()}}}function b(a){a=
-null!=a?a:2;return function(b,c,g,k,l,m,n,q,p,r){c=1.118*l*p;g=1.118*m*p;l*=n+p;m*=n+p;var s=k.clone();s.x-=c;s.y-=g;k.x+=2*-c;k.y+=2*-g;return function(){b.begin();b.moveTo(s.x-l-m/a,s.y-m+l/a);b.lineTo(s.x,s.y);b.lineTo(s.x+m/a-l,s.y-m-l/a);b.stroke()}}}function c(a,b,c,g,k,l,m,n,q,p){n=c==mxConstants.ARROW_DIAMOND?0.7071:0.9862;b=k*q*n;n*=l*q;k*=m+q;l*=m+q;var r=g.clone();r.x-=b;r.y-=n;g.x+=-k-b;g.y+=-l-n;var s=c==mxConstants.ARROW_DIAMOND?2:3.4;return function(){a.begin();a.moveTo(r.x,r.y);a.lineTo(r.x-
-k/2-l/s,r.y+k/s-l/2);a.lineTo(r.x-k,r.y-l);a.lineTo(r.x-k/2+l/s,r.y-l/2-k/s);a.close();p?a.fillAndStroke():a.stroke()}}mxMarker.addMarker("classic",a(2));mxMarker.addMarker("classicThin",a(3));mxMarker.addMarker("block",a(2));mxMarker.addMarker("blockThin",a(3));mxMarker.addMarker("open",b(2));mxMarker.addMarker("openThin",b(3));mxMarker.addMarker("oval",function(a,b,c,g,k,l,m,n,q,p){var r=m/2,s=g.clone();g.x-=k*r;g.y-=l*r;return function(){a.ellipse(s.x-r,s.y-r,m,m);p?a.fillAndStroke():a.stroke()}});
+var mxStencilRegistry={stencils:{},addStencil:function(a,b){mxStencilRegistry.stencils[a]=b},getStencil:function(a){return mxStencilRegistry.stencils[a]}},mxMarker={markers:[],addMarker:function(a,b){mxMarker.markers[a]=b},createMarker:function(a,b,c,d,e,f,g,k,l,n){var m=mxMarker.markers[c];return null!=m?m(a,b,c,d,e,f,g,k,l,n):null}};
+(function(){function a(a){a=null!=a?a:2;return function(b,c,g,k,l,n,m,p,q,s){c=1.118*l*q;p=1.118*n*q;l*=m+q;n*=m+q;var r=k.clone();r.x-=c;r.y-=p;m=g!=mxConstants.ARROW_CLASSIC&&g!=mxConstants.ARROW_CLASSIC_THIN?1:0.75;k.x+=-l*m-c;k.y+=-n*m-p;return function(){b.begin();b.moveTo(r.x,r.y);b.lineTo(r.x-l-n/a,r.y-n+l/a);(g==mxConstants.ARROW_CLASSIC||g==mxConstants.ARROW_CLASSIC_THIN)&&b.lineTo(r.x-3*l/4,r.y-3*n/4);b.lineTo(r.x+n/a-l,r.y-n-l/a);b.close();s?b.fillAndStroke():b.stroke()}}}function b(a){a=
+null!=a?a:2;return function(b,c,g,k,l,n,m,p,q,s){c=1.118*l*q;g=1.118*n*q;l*=m+q;n*=m+q;var r=k.clone();r.x-=c;r.y-=g;k.x+=2*-c;k.y+=2*-g;return function(){b.begin();b.moveTo(r.x-l-n/a,r.y-n+l/a);b.lineTo(r.x,r.y);b.lineTo(r.x+n/a-l,r.y-n-l/a);b.stroke()}}}function c(a,b,c,g,k,l,n,m,p,q){m=c==mxConstants.ARROW_DIAMOND?0.7071:0.9862;b=k*p*m;m*=l*p;k*=n+p;l*=n+p;var s=g.clone();s.x-=b;s.y-=m;g.x+=-k-b;g.y+=-l-m;var r=c==mxConstants.ARROW_DIAMOND?2:3.4;return function(){a.begin();a.moveTo(s.x,s.y);a.lineTo(s.x-
+k/2-l/r,s.y+k/r-l/2);a.lineTo(s.x-k,s.y-l);a.lineTo(s.x-k/2+l/r,s.y-l/2-k/r);a.close();q?a.fillAndStroke():a.stroke()}}mxMarker.addMarker("classic",a(2));mxMarker.addMarker("classicThin",a(3));mxMarker.addMarker("block",a(2));mxMarker.addMarker("blockThin",a(3));mxMarker.addMarker("open",b(2));mxMarker.addMarker("openThin",b(3));mxMarker.addMarker("oval",function(a,b,c,g,k,l,n,m,p,q){var s=n/2,r=g.clone();g.x-=k*s;g.y-=l*s;return function(){a.ellipse(r.x-s,r.y-s,n,n);q?a.fillAndStroke():a.stroke()}});
mxMarker.addMarker("diamond",c);mxMarker.addMarker("diamondThin",c)})();function mxActor(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxActor,mxShape);mxActor.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();this.redrawPath(a,b,c,d,e);a.fillAndStroke()};
mxActor.prototype.redrawPath=function(a,b,c,d,e){b=d/3;a.moveTo(0,e);a.curveTo(0,3*e/5,0,2*e/5,d/2,2*e/5);a.curveTo(d/2-b,2*e/5,d/2-b,0,d/2,0);a.curveTo(d/2+b,0,d/2+b,2*e/5,d/2,2*e/5);a.curveTo(d,2*e/5,d,3*e/5,d,e);a.close()};function mxCloud(a,b,c,d){mxActor.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
mxCloud.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0.25*d,0.25*e);a.curveTo(0.05*d,0.25*e,0,0.5*e,0.16*d,0.55*e);a.curveTo(0,0.66*e,0.18*d,0.9*e,0.31*d,0.8*e);a.curveTo(0.4*d,e,0.7*d,e,0.8*d,0.8*e);a.curveTo(d,0.8*e,d,0.6*e,0.875*d,0.5*e);a.curveTo(d,0.3*e,0.8*d,0.1*e,0.625*d,0.2*e);a.curveTo(0.5*d,0.05*e,0.3*d,0.05*e,0.25*d,0.25*e);a.close()};function mxRectangleShape(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}
@@ -664,24 +664,24 @@ mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){var f=d/2,g=e/2,k=mxUti
mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,b){null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,b,this.isRounded):this.paintCurvedLine(a,b)};mxPolyline.prototype.paintLine=function(a,b,c){var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,b,c,d,!1);a.stroke()};
mxPolyline.prototype.paintCurvedLine=function(a,b){a.begin();var c=b[0],d=b.length;a.moveTo(c.x,c.y);for(c=1;c<d-2;c++){var e=b[c],f=b[c+1];a.quadTo(e.x,e.y,(e.x+f.x)/2,(e.y+f.y)/2)}e=b[d-2];f=b[d-1];a.quadTo(e.x,e.y,f.x,f.y);a.stroke()};
function mxArrow(a,b,c,d,e,f,g){mxShape.call(this);this.points=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=e?e:mxConstants.ARROW_WIDTH;this.spacing=null!=f?f:mxConstants.ARROW_SPACING;this.endSize=null!=g?g:mxConstants.ARROW_SIZE}mxUtils.extend(mxArrow,mxShape);mxArrow.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=Math.max(this.arrowWidth,this.endSize);a.grow((b/2+this.strokewidth)*this.scale)};
-mxArrow.prototype.paintEdgeShape=function(a,b){var c=mxConstants.ARROW_SPACING,d=mxConstants.ARROW_WIDTH,e=mxConstants.ARROW_SIZE,f=b[0],g=b[b.length-1],k=g.x-f.x,l=g.y-f.y,m=Math.sqrt(k*k+l*l),n=m-2*c-e,k=k/m,l=l/m,m=d*l/3,d=-d*k/3,e=f.x-m/2+c*k,f=f.y-d/2+c*l,q=e+m,p=f+d,r=q+n*k,n=p+n*l,s=r+m,t=n+d,v=s-3*m,u=t-3*d;a.begin();a.moveTo(e,f);a.lineTo(q,p);a.lineTo(r,n);a.lineTo(s,t);a.lineTo(g.x-c*k,g.y-c*l);a.lineTo(v,u);a.lineTo(v+m,u+d);a.close();a.fillAndStroke()};
+mxArrow.prototype.paintEdgeShape=function(a,b){var c=mxConstants.ARROW_SPACING,d=mxConstants.ARROW_WIDTH,e=mxConstants.ARROW_SIZE,f=b[0],g=b[b.length-1],k=g.x-f.x,l=g.y-f.y,n=Math.sqrt(k*k+l*l),m=n-2*c-e,k=k/n,l=l/n,n=d*l/3,d=-d*k/3,e=f.x-n/2+c*k,f=f.y-d/2+c*l,p=e+n,q=f+d,s=p+m*k,m=q+m*l,r=s+n,t=m+d,u=r-3*n,v=t-3*d;a.begin();a.moveTo(e,f);a.lineTo(p,q);a.lineTo(s,m);a.lineTo(r,t);a.lineTo(g.x-c*k,g.y-c*l);a.lineTo(u,v);a.lineTo(u+n,v+d);a.close();a.fillAndStroke()};
function mxArrowConnector(a,b,c,d,e,f,g){mxShape.call(this);this.points=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=e?e:mxConstants.ARROW_WIDTH;this.arrowSpacing=null!=f?f:mxConstants.ARROW_SPACING;this.startSize=mxConstants.ARROW_SIZE/5;this.endSize=mxConstants.ARROW_SIZE/5}mxUtils.extend(mxArrowConnector,mxShape);mxArrowConnector.prototype.useSvgBoundingBox=!0;
mxArrowConnector.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.arrowSpacing=mxConstants.ARROW_SPACING};mxArrowConnector.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.startSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5),this.endSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5))};
mxArrowConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=this.getEdgeWidth();this.isMarkerStart()&&(b=Math.max(b,this.getStartArrowWidth()));this.isMarkerEnd()&&(b=Math.max(b,this.getEndArrowWidth()));a.grow((b/2+this.strokewidth)*this.scale)};
-mxArrowConnector.prototype.paintEdgeShape=function(a,b){var c=this.strokewidth;this.outline&&(c=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));for(var d=this.getStartArrowWidth()+c,e=this.getEndArrowWidth()+c,f=this.outline?this.getEdgeWidth()+c:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),m=g?0:this.arrowSpacing+c/2,n=this.startSize+c,c=this.endSize+c,q=this.isArrowRounded(),p=b[b.length-1],r=1;r<b.length-1&&b[r].x==
-b[0].x&&b[r].y==b[0].y;)r++;var s=b[r].x-b[0].x,r=b[r].y-b[0].y,t=Math.sqrt(s*s+r*r);if(0!=t){var v=s/t,u,y=v,z=r/t,x,G=z,t=f*z,D=-f*v,E=[];q?a.setLineJoin("round"):2<b.length&&a.setMiterLimit(1.42);a.begin();s=v;r=z;if(k&&!g)this.paintMarker(a,b[0].x,b[0].y,v,z,n,d,f,m,!0);else{u=b[0].x+t/2+m*v;x=b[0].y+D/2+m*z;var A=b[0].x-t/2+m*v,F=b[0].y-D/2+m*z;g?(a.moveTo(u,x),E.push(function(){a.lineTo(A,F)})):(a.moveTo(A,F),a.lineTo(u,x))}for(var H=x=u=0,t=0;t<b.length-2;t++)if(D=mxUtils.relativeCcw(b[t].x,
-b[t].y,b[t+1].x,b[t+1].y,b[t+2].x,b[t+2].y),u=b[t+2].x-b[t+1].x,x=b[t+2].y-b[t+1].y,H=Math.sqrt(u*u+x*x),0!=H&&(y=u/H,G=x/H,tmp=Math.max(Math.sqrt((v*y+z*G+1)/2),0.04),u=v+y,x=z+G,H=Math.sqrt(u*u+x*x),0!=H)){u/=H;x/=H;var H=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),H=0!=D&&q?Math.max(0.1,H):Math.max(tmp,0.06),I=b[t+1].x+x*f/2/H,M=b[t+1].y-u*f/2/H;x=b[t+1].x-x*f/2/H;u=b[t+1].y+u*f/2/H;0==D||!q?(a.lineTo(I,M),function(b,c){E.push(function(){a.lineTo(b,c)})}(x,u)):-1==D?(D=x+G*f,H=u-y*f,
-a.lineTo(x+z*f,u-v*f),a.quadTo(I,M,D,H),function(b,c){E.push(function(){a.lineTo(b,c)})}(x,u)):(a.lineTo(I,M),function(b,c){var d=I-z*f,e=M+v*f,g=I-G*f,k=M+y*f;E.push(function(){a.quadTo(b,c,d,e)});E.push(function(){a.lineTo(g,k)})}(x,u));v=y;z=G}t=f*G;D=-f*y;if(l&&!g)this.paintMarker(a,p.x,p.y,-v,-z,c,e,f,m,!1);else{a.lineTo(p.x-m*y+t/2,p.y-m*G+D/2);var L=p.x-m*y-t/2,R=p.y-m*G-D/2;g?(a.moveTo(L,R),E.splice(0,0,function(){a.moveTo(L,R)})):a.lineTo(L,R)}for(t=E.length-1;0<=t;t--)E[t]();g?(a.end(),
-a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);q&&a.setLineJoin("flat");2<b.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,b[0].x,b[0].y,s,r,n,d,f,m,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,p.x,p.y,-v,-z,c,e,f,m,!0),a.stroke(),a.end()))}};
-mxArrowConnector.prototype.paintMarker=function(a,b,c,d,e,f,g,k,l,m){g=k/g;var n=k*e/2;k=-k*d/2;var q=(l+f)*d;f=(l+f)*e;m?a.moveTo(b-n+q,c-k+f):a.lineTo(b-n+q,c-k+f);a.lineTo(b-n/g+q,c-k/g+f);a.lineTo(b+l*d,c+l*e);a.lineTo(b+n/g+q,c+k/g+f);a.lineTo(b+n+q,c+k+f)};mxArrowConnector.prototype.isArrowRounded=function(){return this.isRounded};mxArrowConnector.prototype.getStartArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEndArrowWidth=function(){return mxConstants.ARROW_WIDTH};
+mxArrowConnector.prototype.paintEdgeShape=function(a,b){var c=this.strokewidth;this.outline&&(c=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));for(var d=this.getStartArrowWidth()+c,e=this.getEndArrowWidth()+c,f=this.outline?this.getEdgeWidth()+c:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),n=g?0:this.arrowSpacing+c/2,m=this.startSize+c,c=this.endSize+c,p=this.isArrowRounded(),q=b[b.length-1],s=1;s<b.length-1&&b[s].x==
+b[0].x&&b[s].y==b[0].y;)s++;var r=b[s].x-b[0].x,s=b[s].y-b[0].y,t=Math.sqrt(r*r+s*s);if(0!=t){var u=r/t,v,z=u,y=s/t,x,E=y,t=f*y,C=-f*u,F=[];p?a.setLineJoin("round"):2<b.length&&a.setMiterLimit(1.42);a.begin();r=u;s=y;if(k&&!g)this.paintMarker(a,b[0].x,b[0].y,u,y,m,d,f,n,!0);else{v=b[0].x+t/2+n*u;x=b[0].y+C/2+n*y;var D=b[0].x-t/2+n*u,G=b[0].y-C/2+n*y;g?(a.moveTo(v,x),F.push(function(){a.lineTo(D,G)})):(a.moveTo(D,G),a.lineTo(v,x))}for(var H=x=v=0,t=0;t<b.length-2;t++)if(C=mxUtils.relativeCcw(b[t].x,
+b[t].y,b[t+1].x,b[t+1].y,b[t+2].x,b[t+2].y),v=b[t+2].x-b[t+1].x,x=b[t+2].y-b[t+1].y,H=Math.sqrt(v*v+x*x),0!=H&&(z=v/H,E=x/H,tmp=Math.max(Math.sqrt((u*z+y*E+1)/2),0.04),v=u+z,x=y+E,H=Math.sqrt(v*v+x*x),0!=H)){v/=H;x/=H;var H=Math.max(tmp,Math.min(this.strokewidth/200+0.04,0.35)),H=0!=C&&p?Math.max(0.1,H):Math.max(tmp,0.06),I=b[t+1].x+x*f/2/H,N=b[t+1].y-v*f/2/H;x=b[t+1].x-x*f/2/H;v=b[t+1].y+v*f/2/H;0==C||!p?(a.lineTo(I,N),function(b,c){F.push(function(){a.lineTo(b,c)})}(x,v)):-1==C?(C=x+E*f,H=v-z*f,
+a.lineTo(x+y*f,v-u*f),a.quadTo(I,N,C,H),function(b,c){F.push(function(){a.lineTo(b,c)})}(x,v)):(a.lineTo(I,N),function(b,c){var d=I-y*f,e=N+u*f,g=I-E*f,k=N+z*f;F.push(function(){a.quadTo(b,c,d,e)});F.push(function(){a.lineTo(g,k)})}(x,v));u=z;y=E}t=f*E;C=-f*z;if(l&&!g)this.paintMarker(a,q.x,q.y,-u,-y,c,e,f,n,!1);else{a.lineTo(q.x-n*z+t/2,q.y-n*E+C/2);var L=q.x-n*z-t/2,S=q.y-n*E-C/2;g?(a.moveTo(L,S),F.splice(0,0,function(){a.moveTo(L,S)})):a.lineTo(L,S)}for(t=F.length-1;0<=t;t--)F[t]();g?(a.end(),
+a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);p&&a.setLineJoin("flat");2<b.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,b[0].x,b[0].y,r,s,m,d,f,n,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,q.x,q.y,-u,-y,c,e,f,n,!0),a.stroke(),a.end()))}};
+mxArrowConnector.prototype.paintMarker=function(a,b,c,d,e,f,g,k,l,n){g=k/g;var m=k*e/2;k=-k*d/2;var p=(l+f)*d;f=(l+f)*e;n?a.moveTo(b-m+p,c-k+f):a.lineTo(b-m+p,c-k+f);a.lineTo(b-m/g+p,c-k/g+f);a.lineTo(b+l*d,c+l*e);a.lineTo(b+m/g+p,c+k/g+f);a.lineTo(b+m+p,c+k+f)};mxArrowConnector.prototype.isArrowRounded=function(){return this.isRounded};mxArrowConnector.prototype.getStartArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEndArrowWidth=function(){return mxConstants.ARROW_WIDTH};
mxArrowConnector.prototype.getEdgeWidth=function(){return mxConstants.ARROW_WIDTH/3};mxArrowConnector.prototype.isOpenEnded=function(){return!1};mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE};mxArrowConnector.prototype.isMarkerEnd=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE};
-function mxText(a,b,c,d,e,f,g,k,l,m,n,q,p,r,s,t,v,u,y,z,x){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:"";this.valign=null!=d?d:"";this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);this.spacingBottom=this.spacing+parseInt(q||
-0);this.spacingLeft=this.spacing+parseInt(p||0);this.horizontal=null!=r?r:!0;this.background=s;this.border=t;this.wrap=null!=v?v:!1;this.clipped=null!=u?u:!1;this.overflow=null!=y?y:"visible";this.labelPadding=null!=z?z:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
+function mxText(a,b,c,d,e,f,g,k,l,n,m,p,q,s,r,t,u,v,z,y,x){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:"";this.valign=null!=d?d:"";this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(n||0);this.spacingRight=this.spacing+parseInt(m||0);this.spacingBottom=this.spacing+parseInt(p||
+0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=s?s:!0;this.background=r;this.border=t;this.wrap=null!=u?u:!1;this.clipped=null!=v?v:!1;this.overflow=null!=z?z:"visible";this.labelPadding=null!=y?y:0;this.textDirection=x;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;mxText.prototype.replaceLinefeeds=!0;
mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8==document.documentMode&&!mxClient.IS_EM?4:3;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isParseVml=function(){return!1};mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};
mxText.prototype.paint=function(a,b){var c=this.scale,d=this.bounds.x/c,e=this.bounds.y/c,f=this.bounds.width/c,c=this.bounds.height/c;this.updateTransform(a,d,e,f,c);this.configureCanvas(a,d,e,f,c);if(b){var g=null!=this.state?this.state.unscaledWidth:null;null!=this.node.firstChild&&this.lastUnscaledWidth!=g&&a.invalidateCachedOffsetSize(this.node);a.updateText(d,e,f,c,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node)}else{var k=(g=mxUtils.isNode(this.value)||
-this.dialect==mxConstants.DIALECT_STRICTHTML)||a instanceof mxVmlCanvas2D?"html":"",l=this.value;!g&&"html"==k&&(l=mxUtils.htmlEntities(l,!1));"html"==k&&!mxUtils.isNode(this.value)&&(l=mxUtils.replaceTrailingNewlines(l,"\x3cdiv\x3e\x3cbr\x3e\x3c/div\x3e"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"\x3cbr/\x3e"):l,m=this.textDirection;m==mxConstants.TEXT_DIRECTION_AUTO&&!g&&(m=this.getAutoDirection());m!=mxConstants.TEXT_DIRECTION_LTR&&m!=mxConstants.TEXT_DIRECTION_RTL&&
-(m=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),m)}this.lastUnscaledWidth=null!=this.state?this.state.unscaledWidth:null};
+this.dialect==mxConstants.DIALECT_STRICTHTML)||a instanceof mxVmlCanvas2D?"html":"",l=this.value;!g&&"html"==k&&(l=mxUtils.htmlEntities(l,!1));"html"==k&&!mxUtils.isNode(this.value)&&(l=mxUtils.replaceTrailingNewlines(l,"\x3cdiv\x3e\x3cbr\x3e\x3c/div\x3e"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"\x3cbr/\x3e"):l,n=this.textDirection;n==mxConstants.TEXT_DIRECTION_AUTO&&!g&&(n=this.getAutoDirection());n!=mxConstants.TEXT_DIRECTION_LTR&&n!=mxConstants.TEXT_DIRECTION_RTL&&
+(n=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),n)}this.lastUnscaledWidth=null!=this.state?this.state.unscaledWidth:null};
mxText.prototype.redraw=function(){if(this.visible&&this.checkBounds()&&this.cacheEnabled&&this.lastValue==this.value&&(mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML))if("DIV"==this.node.nodeName&&(this.isHtmlAllowed()||!mxClient.IS_VML))this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||8>=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};
@@ -704,8 +704,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,k=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 l=Math.round(this.bounds.width/this.scale);this.wrap&&0<l?(g.style.whiteSpace="normal",g.style.wordWrap=mxConstants.WORD_WRAP,e=l,this.clipped&&
(e=Math.min(e,this.bounds.width)),g.style.width=e+"px"):g.style.whiteSpace="nowrap";k=g;null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,this.wrap&&"break-word"==g.style.wordWrap&&(k.style.width="100%"));!this.clipped&&this.wrap&&0<l&&(e=k.offsetWidth+this.textWidthPadding,g.style.width=e+"px");f=k.offsetHeight+2;mxClient.IS_QUIRKS&&null!=this.border&&this.border!=mxConstants.NONE&&(f+=3)}else null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,f=k.offsetHeight);e=k.offsetWidth+
this.textWidthPadding;this.clipped&&(f=Math.min(f,this.bounds.height));l=this.bounds.width/d;g=this.bounds.height/d;"fill"==this.overflow?(f=g,e=l):"width"==this.overflow&&(f=k.scrollHeight,e=l);this.offsetWidth=e;this.offsetHeight=f;mxClient.IS_QUIRKS&&(this.clipped||"width"==this.overflow&&0<g)?(g=Math.min(g,f),a.height=Math.round(g)+"px"):g=f;if("fill"!=this.overflow&&"width"!=this.overflow&&(this.clipped&&(e=Math.min(l,e)),l=e,mxClient.IS_QUIRKS&&this.clipped||this.wrap))a.width=Math.round(l)+
-"px";var g=g*d,l=l*d,m=this.getTextRotation()*(Math.PI/180),e=parseFloat(parseFloat(Math.cos(m)).toFixed(8)),f=parseFloat(parseFloat(Math.sin(-m)).toFixed(8)),m=m%(2*Math.PI);0>m&&(m+=2*Math.PI);m%=Math.PI;m>Math.PI/2&&(m=Math.PI-m);var k=Math.cos(m),n=Math.sin(-m),b=l*-(b+0.5),q=g*-(c+0.5),p=(g-g*k+l*n)/2+f*b-e*q;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&&0<a.filter.length?a.filter+
-(" "+c):c);c=0;"fill"!=this.overflow&&mxClient.IS_QUIRKS&&(c=this.valign==mxConstants.ALIGN_TOP?c-1:this.valign==mxConstants.ALIGN_BOTTOM?c+2:c+1);a.zoom=d;a.left=Math.round(this.bounds.x+((l-l*k+g*n)/2-e*b-f*q)-l/2)+"px";a.top=Math.round(this.bounds.y+p-g/2+c)+"px"};
+"px";var g=g*d,l=l*d,n=this.getTextRotation()*(Math.PI/180),e=parseFloat(parseFloat(Math.cos(n)).toFixed(8)),f=parseFloat(parseFloat(Math.sin(-n)).toFixed(8)),n=n%(2*Math.PI);0>n&&(n+=2*Math.PI);n%=Math.PI;n>Math.PI/2&&(n=Math.PI-n);var k=Math.cos(n),m=Math.sin(-n),b=l*-(b+0.5),p=g*-(c+0.5),q=(g-g*k+l*m)/2+f*b-e*p;0!=n&&(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&&0<a.filter.length?a.filter+
+(" "+c):c);c=0;"fill"!=this.overflow&&mxClient.IS_QUIRKS&&(c=this.valign==mxConstants.ALIGN_TOP?c-1:this.valign==mxConstants.ALIGN_BOTTOM?c+2:c+1);a.zoom=d;a.left=Math.round(this.bounds.x+((l-l*k+g*m)/2-e*b-f*p)-l/2)+"px";a.top=Math.round(this.bounds.y+q-g/2+c)+"px"};
mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var a=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(a=mxUtils.htmlEntities(a,!1));var a=mxUtils.replaceTrailingNewlines(a,"\x3cdiv\x3e\x3cbr\x3e\x3c/div\x3e"),a=this.replaceLinefeeds?a.replace(/\n/g,"\x3cbr/\x3e"):a,b=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,c=null!=this.border&&this.border!=mxConstants.NONE?this.border:
null;if("fill"==this.overflow||"width"==this.overflow)null!=b&&(this.node.style.backgroundColor=b),null!=c&&(this.node.style.border="1px solid "+c);else{var d="";null!=b&&(d+="background-color:"+b+";");null!=c&&(d+="border:1px solid "+c+";");a='\x3cdiv style\x3d"zoom:1;'+d+"display:inline-block;_display:inline;text-decoration:inherit;padding-bottom:1px;padding-right:1px;line-height:"+(mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT)+'"\x3e'+a+"\x3c/div\x3e"}this.node.innerHTML=
a;a=this.node.getElementsByTagName("div");0<a.length&&(b=this.textDirection,b==mxConstants.TEXT_DIRECTION_AUTO&&this.dialect!=mxConstants.DIALECT_STRICTHTML&&(b=this.getAutoDirection()),b==mxConstants.TEXT_DIRECTION_LTR||b==mxConstants.TEXT_DIRECTION_RTL?a[a.length-1].setAttribute("dir",b):a[a.length-1].removeAttribute("dir"))}};
@@ -765,14 +765,14 @@ mxStackLayout.prototype.resizeParentMax=!1;mxStackLayout.prototype.resizeLast=!1
mxStackLayout.prototype.moveCell=function(a,b,c){var d=this.graph.getModel(),e=d.getParent(a),f=this.isHorizontal();if(null!=a&&null!=e){var g=0,k=0,l=d.getChildCount(e);b=f?b:c;g=this.graph.getView().getState(e);null!=g&&(b-=f?g.x:g.y);b/=this.graph.view.scale;for(g=0;g<l;g++)if(c=d.getChildAt(e,g),c!=a&&(c=d.getGeometry(c),null!=c)){c=f?c.x+c.width/2:c.y+c.height/2;if(k<=b&&c>b)break;k=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 k=this.graph.getCellStyle(a),l=mxUtils.getNumber(k,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),k=1==mxUtils.getValue(k,
-mxConstants.STYLE_HORIZONTAL,!0);null!=b&&(l=k?Math.min(l,b.height):Math.min(l,b.width));c==k&&(e-=l);k?g+=l:f+=l}d.beginUpdate();try{for(var l=0,k=null,m=0,n=null,q=d.getChildCount(a),p=0;p<q;p++){var r=d.getChildAt(a,p);if(!this.isVertexIgnored(r)&&this.isVertexMovable(r)){var s=d.getGeometry(r);if(null!=s){s=s.clone();if(null!=this.wrap&&null!=k&&(c&&k.x+k.width+s.width+2*this.spacing>this.wrap||!c&&k.y+k.height+s.height+2*this.spacing>this.wrap))k=null,c?g+=l+this.spacing:f+=l+this.spacing,l=
-0;var l=Math.max(l,c?s.height:s.width),t=0;if(!this.borderCollapse)var v=this.graph.getCellStyle(r),t=mxUtils.getNumber(v,mxConstants.STYLE_STROKEWIDTH,1);null!=k?c?s.x=m+this.spacing+Math.floor(t/2):s.y=m+this.spacing+Math.floor(t/2):this.keepFirstLocation||(c?s.x=f:s.y=g);c?s.y=g:s.x=f;this.fill&&null!=e&&(c?s.height=e:s.width=e);this.setChildGeometry(r,s);n=r;k=s;m=c?k.x+k.width+Math.floor(t/2):k.y+k.height+Math.floor(t/2)}}}this.resizeParent&&null!=b&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,
-b,k):this.resizeLast&&null!=b&&null!=k&&null!=n&&(c?k.width=b.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=b.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(n,k))}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&&(l=k?Math.min(l,b.height):Math.min(l,b.width));c==k&&(e-=l);k?g+=l:f+=l}d.beginUpdate();try{for(var l=0,k=null,n=0,m=null,p=d.getChildCount(a),q=0;q<p;q++){var s=d.getChildAt(a,q);if(!this.isVertexIgnored(s)&&this.isVertexMovable(s)){var r=d.getGeometry(s);if(null!=r){r=r.clone();if(null!=this.wrap&&null!=k&&(c&&k.x+k.width+r.width+2*this.spacing>this.wrap||!c&&k.y+k.height+r.height+2*this.spacing>this.wrap))k=null,c?g+=l+this.spacing:f+=l+this.spacing,l=
+0;var l=Math.max(l,c?r.height:r.width),t=0;if(!this.borderCollapse)var u=this.graph.getCellStyle(s),t=mxUtils.getNumber(u,mxConstants.STYLE_STROKEWIDTH,1);null!=k?c?r.x=n+this.spacing+Math.floor(t/2):r.y=n+this.spacing+Math.floor(t/2):this.keepFirstLocation||(c?r.x=f:r.y=g);c?r.y=g:r.x=f;this.fill&&null!=e&&(c?r.height=e:r.width=e);this.setChildGeometry(s,r);m=s;k=r;n=c?k.x+k.width+Math.floor(t/2):k.y+k.height+Math.floor(t/2)}}}this.resizeParent&&null!=b&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,
+b,k):this.resizeLast&&null!=b&&null!=k&&null!=m&&(c?k.width=b.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=b.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(m,k))}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;e<g;e++){var k=c.getChildAt(d,e),k=this.getVertexBounds(k);if(null!=k){k=k.x+k.width/2;if(f<b&&k>b)break;f=k}}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;g<f;g++){var k=c.getChildAt(a,g);!this.isVertexIgnored(k)&&this.isVertexMovable(k)&&e.push(k)}f=e.length;if(0<f){var l=this.border,m=this.border,n=b?
-d.height:d.width,n=n-2*this.border;a=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;n-=b?a.height:a.width;l+=a.width;m+=a.height;a=this.border+(f-1)*this.spacing;d=b?(d.width-l-a)/f:(d.height-m-a)/f;if(0<d){c.beginUpdate();try{for(g=0;g<f;g++){var k=e[g],q=c.getGeometry(k);null!=q&&(q=q.clone(),q.x=l,q.y=m,b?(this.resizeVertices&&(q.width=d,q.height=n),l+=d+this.spacing):(this.resizeVertices&&(q.height=d,q.width=n),m+=d+this.spacing),c.setGeometry(k,q))}}finally{c.endUpdate()}}}}};
+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;g<f;g++){var k=c.getChildAt(a,g);!this.isVertexIgnored(k)&&this.isVertexMovable(k)&&e.push(k)}f=e.length;if(0<f){var l=this.border,n=this.border,m=b?
+d.height:d.width,m=m-2*this.border;a=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;m-=b?a.height:a.width;l+=a.width;n+=a.height;a=this.border+(f-1)*this.spacing;d=b?(d.width-l-a)/f:(d.height-n-a)/f;if(0<d){c.beginUpdate();try{for(g=0;g<f;g++){var k=e[g],p=c.getGeometry(k);null!=p&&(p=p.clone(),p.x=l,p.y=n,b?(this.resizeVertices&&(p.width=d,p.height=m),l+=d+this.spacing):(this.resizeVertices&&(p.height=d,p.width=m),n+=d+this.spacing),c.setGeometry(k,p))}}finally{c.endUpdate()}}}}};
function mxCompactTreeLayout(a,b,c){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.invert=null!=c?c:!1}mxCompactTreeLayout.prototype=new mxGraphLayout;mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout;mxCompactTreeLayout.prototype.horizontal=null;mxCompactTreeLayout.prototype.invert=null;mxCompactTreeLayout.prototype.resizeParent=!0;mxCompactTreeLayout.prototype.maintainParentLocation=!1;mxCompactTreeLayout.prototype.groupPadding=10;
mxCompactTreeLayout.prototype.groupPaddingTop=0;mxCompactTreeLayout.prototype.groupPaddingRight=0;mxCompactTreeLayout.prototype.groupPaddingBottom=0;mxCompactTreeLayout.prototype.groupPaddingLeft=0;mxCompactTreeLayout.prototype.parentsChanged=null;mxCompactTreeLayout.prototype.moveTree=!1;mxCompactTreeLayout.prototype.visited=null;mxCompactTreeLayout.prototype.levelDistance=10;mxCompactTreeLayout.prototype.nodeDistance=20;mxCompactTreeLayout.prototype.resetEdges=!0;
mxCompactTreeLayout.prototype.prefHozEdgeSep=5;mxCompactTreeLayout.prototype.prefVertEdgeOff=4;mxCompactTreeLayout.prototype.minEdgeJetty=8;mxCompactTreeLayout.prototype.channelBuffer=4;mxCompactTreeLayout.prototype.edgeRouting=!0;mxCompactTreeLayout.prototype.sortEdges=!1;mxCompactTreeLayout.prototype.alignRanks=!1;mxCompactTreeLayout.prototype.maxRankHeight=null;mxCompactTreeLayout.prototype.root=null;mxCompactTreeLayout.prototype.node=null;
@@ -784,7 +784,7 @@ mxCompactTreeLayout.prototype.moveNode=function(a,b,c){a.x+=b;a.y+=c;this.apply(
mxCompactTreeLayout.prototype.sortOutgoingEdges=function(a,b){var c=new mxDictionary;b.sort(function(b,e){var f=b.getTerminal(b.getTerminal(!1)==a),g=c.get(f);null==g&&(g=mxCellPath.create(f).split(mxCellPath.PATH_SEPARATOR),c.put(f,g));var f=e.getTerminal(e.getTerminal(!1)==a),k=c.get(f);null==k&&(k=mxCellPath.create(f).split(mxCellPath.PATH_SEPARATOR),c.put(f,k));return mxCellPath.compare(g,k)})};
mxCompactTreeLayout.prototype.findRankHeights=function(a,b){if(null==this.maxRankHeight[b]||this.maxRankHeight[b]<a.height)this.maxRankHeight[b]=a.height;for(var c=a.child;null!=c;)this.findRankHeights(c,b+1),c=c.next};mxCompactTreeLayout.prototype.setCellHeights=function(a,b){null!=this.maxRankHeight[b]&&this.maxRankHeight[b]>a.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 k=0;k<f.length;k++){var l=f[k];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null);this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),
-this.setEdgePoints(l,null));var m=g.getState(l),l=null!=m?m.getVisibleTerminal(this.invert):g.getVisibleTerminal(l,this.invert),m=this.dfs(l,b);null!=m&&null!=c.getGeometry(l)&&(null==e?d.child=m:e.next=m,e=m)}}}return d};mxCompactTreeLayout.prototype.layout=function(a){if(null!=a){for(var b=a.child;null!=b;)this.layout(b),b=b.next;null!=a.child?this.attachParent(a,this.join(a)):this.layoutLeaf(a)}};
+this.setEdgePoints(l,null));var n=g.getState(l),l=null!=n?n.getVisibleTerminal(this.invert):g.getVisibleTerminal(l,this.invert),n=this.dfs(l,b);null!=n&&null!=c.getGeometry(l)&&(null==e?d.child=n:e.next=n,e=n)}}}return d};mxCompactTreeLayout.prototype.layout=function(a){if(null!=a){for(var b=a.child;null!=b;)this.layout(b),b=b.next;null!=a.child?this.attachParent(a,this.join(a)):this.layoutLeaf(a)}};
mxCompactTreeLayout.prototype.horizontalLayout=function(a,b,c,d){a.x+=b+a.offsetX;a.y+=c+a.offsetY;d=this.apply(a,d);b=a.child;if(null!=b){d=this.horizontalLayout(b,a.x,a.y,d);c=a.y+b.offsetY;for(var e=b.next;null!=e;)d=this.horizontalLayout(e,a.x+b.offsetX,c,d),c+=e.offsetY,e=e.next}return d};
mxCompactTreeLayout.prototype.verticalLayout=function(a,b,c,d,e){a.x+=c+a.offsetY;a.y+=d+a.offsetX;e=this.apply(a,e);b=a.child;if(null!=b){e=this.verticalLayout(b,a,a.x,a.y,e);c=a.x+b.offsetY;for(d=b.next;null!=d;)e=this.verticalLayout(d,a,c,a.y+b.offsetX,e),c+=d.offsetY,d=d.next}return e};
mxCompactTreeLayout.prototype.attachParent=function(a,b){var c=this.nodeDistance+this.levelDistance,d=(b-a.width)/2-this.nodeDistance,e=d+a.width+2*this.nodeDistance-b;a.child.offsetX=c+a.height;a.child.offsetY=e;a.contour.upperHead=this.createLine(a.height,0,this.createLine(c,e,a.contour.upperHead));a.contour.lowerHead=this.createLine(a.height,0,this.createLine(c,d,a.contour.lowerHead))};
@@ -796,30 +796,30 @@ mxCompactTreeLayout.prototype.createNode=function(a){var b={};b.cell=a;b.x=0;b.y
mxCompactTreeLayout.prototype.apply=function(a,b){var c=this.graph.getModel(),d=a.cell,e=c.getGeometry(d);null!=d&&null!=e&&(this.isVertexMovable(d)&&(e=this.setVertexLocation(d,a.x,a.y),this.resizeParent&&(c=c.getParent(d),d=mxCellPath.create(c),null==this.parentsChanged[d]&&(this.parentsChanged[d]=c))),b=null==b?new mxRectangle(e.x,e.y,e.width,e.height):new mxRectangle(Math.min(b.x,e.x),Math.min(b.y,e.y),Math.max(b.x+b.width,e.x+e.width),Math.max(b.y+b.height,e.y+e.height)));return b};
mxCompactTreeLayout.prototype.createLine=function(a,b,c){var d={};d.dx=a;d.dy=b;d.next=c;return d};mxCompactTreeLayout.prototype.adjustParents=function(){var a=[],b;for(b in this.parentsChanged)a.push(this.parentsChanged[b]);this.arrangeGroups(mxUtils.sortCells(a,!0),this.groupPadding,this.groupPaddingTop,this.groupPaddingRight,this.groupPaddingBottom,this.groupPaddingLeft)};
mxCompactTreeLayout.prototype.localEdgeProcessing=function(a){this.processNodeOutgoing(a);for(a=a.child;null!=a;)this.localEdgeProcessing(a),a=a.next};
-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,k=this.getVertexBounds(c),l=0;l<e.length;l++){for(var m=
-e[l].cell.cell,n=this.getVertexBounds(m),m=this.graph.getEdgesBetween(c,m,!1),q=[],p=0,r=0,s=0;s<m.length;s++)this.horizontal?(p=k.x+k.width,r=k.y+b,q.push(new mxPoint(p,r)),p=k.x+k.width+f,q.push(new mxPoint(p,r)),r=n.y+n.height/2):(p=k.x+b,r=k.y+k.height,q.push(new mxPoint(p,r)),r=k.y+k.height+f,q.push(new mxPoint(p,r)),p=n.x+n.width/2),q.push(new mxPoint(p,r)),this.setEdgePoints(m[s],q);l<d/2?f+=this.prefVertEdgeOff:l>d/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,k=this.getVertexBounds(c),l=0;l<e.length;l++){for(var n=
+e[l].cell.cell,m=this.getVertexBounds(n),n=this.graph.getEdgesBetween(c,n,!1),p=[],q=0,s=0,r=0;r<n.length;r++)this.horizontal?(q=k.x+k.width,s=k.y+b,p.push(new mxPoint(q,s)),q=k.x+k.width+f,p.push(new mxPoint(q,s)),s=m.y+m.height/2):(q=k.x+b,s=k.y+k.height,p.push(new mxPoint(q,s)),s=k.y+k.height+f,p.push(new mxPoint(q,s)),q=m.x+m.width/2),p.push(new mxPoint(q,s)),this.setEdgePoints(n[r],p);l<d/2?f+=this.prefVertEdgeOff:l>d/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.weightedValue<a.weightedValue?-1:b.nudge?1:-1:0};function mxRadialTreeLayout(a){mxCompactTreeLayout.call(this,a,!1)}
mxUtils.extend(mxRadialTreeLayout,mxCompactTreeLayout);mxRadialTreeLayout.prototype.angleOffset=0.5;mxRadialTreeLayout.prototype.rootx=0;mxRadialTreeLayout.prototype.rooty=0;mxRadialTreeLayout.prototype.levelDistance=120;mxRadialTreeLayout.prototype.nodeDistance=10;mxRadialTreeLayout.prototype.autoRadius=!1;mxRadialTreeLayout.prototype.sortEdges=!1;mxRadialTreeLayout.prototype.rowMinX=[];mxRadialTreeLayout.prototype.rowMaxX=[];mxRadialTreeLayout.prototype.rowMinCenX=[];
mxRadialTreeLayout.prototype.rowMaxCenX=[];mxRadialTreeLayout.prototype.rowRadi=[];mxRadialTreeLayout.prototype.row=[];mxRadialTreeLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
mxRadialTreeLayout.prototype.execute=function(a,b){this.parent=a;this.edgeRouting=this.useBoundingBox=!1;mxCompactTreeLayout.prototype.execute.apply(this,arguments);var c=null,d=this.getVertexBounds(this.root);this.centerX=d.x+d.width/2;this.centerY=d.y+d.height/2;for(var e in this.visited){var f=this.getVertexBounds(this.visited[e]),c=null!=c?c:f.clone();c.add(f)}this.calcRowDims([this.node],0);for(var g=0,k=0,c=0;c<this.row.length;c++)e=(this.rowMaxX[c]-this.centerX-this.nodeDistance)/this.rowRadi[c],
-g=Math.max(g,(this.centerX-this.rowMinX[c]-this.nodeDistance)/this.rowRadi[c]),k=Math.max(k,e);for(c=0;c<this.row.length;c++){var l=this.centerX-this.nodeDistance-g*this.rowRadi[c],m=this.centerX+this.nodeDistance+k*this.rowRadi[c]-l;for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),d.theta=2*Math.PI*((f.x+f.width/2-l)/m)}for(c=this.row.length-2;0<=c;c--){f=this.row[c];for(e=0;e<f.length;e++){d=f[e];g=d.child;for(l=k=0;null!=g;)l+=g.theta,k++,g=g.next;0<k&&(g=l/
+g=Math.max(g,(this.centerX-this.rowMinX[c]-this.nodeDistance)/this.rowRadi[c]),k=Math.max(k,e);for(c=0;c<this.row.length;c++){var l=this.centerX-this.nodeDistance-g*this.rowRadi[c],n=this.centerX+this.nodeDistance+k*this.rowRadi[c]-l;for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),d.theta=2*Math.PI*((f.x+f.width/2-l)/n)}for(c=this.row.length-2;0<=c;c--){f=this.row[c];for(e=0;e<f.length;e++){d=f[e];g=d.child;for(l=k=0;null!=g;)l+=g.theta,k++,g=g.next;0<k&&(g=l/
k,g>d.theta&&e<f.length-1?d.theta=Math.min(g,f[e+1].theta-Math.PI/10):g<d.theta&&0<e&&(d.theta=Math.max(g,f[e-1].theta+Math.PI/10)))}}for(c=0;c<this.row.length;c++)for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),this.setVertexLocation(d.cell,this.centerX-f.width/2+this.rowRadi[c]*Math.cos(d.theta),this.centerY-f.height/2+this.rowRadi[c]*Math.sin(d.theta))};
mxRadialTreeLayout.prototype.calcRowDims=function(a,b){if(!(null==a||0==a.length)){this.rowMinX[b]=this.centerX;this.rowMaxX[b]=this.centerX;this.rowMinCenX[b]=this.centerX;this.rowMaxCenX[b]=this.centerX;this.row[b]=[];for(var c=!1,d=0;d<a.length;d++)for(var e=null!=a[d]?a[d].child:null;null!=e;)vertexBounds=this.getVertexBounds(e.cell),this.rowMinX[b]=Math.min(vertexBounds.x,this.rowMinX[b]),this.rowMaxX[b]=Math.max(vertexBounds.x+vertexBounds.width,this.rowMaxX[b]),this.rowMinCenX[b]=Math.min(vertexBounds.x+
vertexBounds.width/2,this.rowMinCenX[b]),this.rowMaxCenX[b]=Math.max(vertexBounds.x+vertexBounds.width/2,this.rowMaxCenX[b]),this.rowRadi[b]=vertexBounds.y-this.getVertexBounds(this.root).y,null!=e.child&&(c=!0),this.row[b].push(e),e=e.next;c&&this.calcRowDims(this.row[b],b+1)}};function mxFastOrganicLayout(a){mxGraphLayout.call(this,a)}mxFastOrganicLayout.prototype=new mxGraphLayout;mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout;mxFastOrganicLayout.prototype.useInputOrigin=!0;
mxFastOrganicLayout.prototype.resetEdges=!0;mxFastOrganicLayout.prototype.disableEdgeStyle=!0;mxFastOrganicLayout.prototype.forceConstant=50;mxFastOrganicLayout.prototype.forceConstantSquared=0;mxFastOrganicLayout.prototype.minDistanceLimit=2;mxFastOrganicLayout.prototype.maxDistanceLimit=500;mxFastOrganicLayout.prototype.minDistanceLimitSquared=4;mxFastOrganicLayout.prototype.initialTemp=200;mxFastOrganicLayout.prototype.temperature=0;mxFastOrganicLayout.prototype.maxIterations=0;
mxFastOrganicLayout.prototype.iteration=0;mxFastOrganicLayout.prototype.allowedToRun=!0;mxFastOrganicLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
mxFastOrganicLayout.prototype.execute=function(a){var b=this.graph.getModel();this.vertexArray=[];for(var c=this.graph.getChildVertices(a),d=0;d<c.length;d++)this.isVertexIgnored(c[d])||this.vertexArray.push(c[d]);var e=this.useInputOrigin?this.graph.getBoundingBoxFromGeometry(this.vertexArray):null,f=this.vertexArray.length;this.indices=[];this.dispX=[];this.dispY=[];this.cellLocation=[];this.isMoveable=[];this.neighbours=[];this.radius=[];this.radiusSquared=[];0.001>this.forceConstant&&(this.forceConstant=
-0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;d<this.vertexArray.length;d++){var g=this.vertexArray[d];this.cellLocation[d]=[];var k=mxObjectIdentity.get(g);this.indices[k]=d;var l=this.getVertexBounds(g),m=l.width,n=l.height,q=l.x,p=l.y;this.cellLocation[d][0]=q+m/2;this.cellLocation[d][1]=p+n/2;this.radius[d]=Math.min(m,n);this.radiusSquared[d]=this.radius[d]*this.radius[d]}b.beginUpdate();try{for(d=0;d<f;d++){this.dispX[d]=0;this.dispY[d]=0;this.isMoveable[d]=this.isVertexMovable(this.vertexArray[d]);
-var r=this.graph.getConnections(this.vertexArray[d],a),c=this.graph.getOpposites(r,this.vertexArray[d]);this.neighbours[d]=[];for(m=0;m<c.length;m++){this.resetEdges&&this.graph.resetEdge(r[m]);this.disableEdgeStyle&&this.setEdgeStyleEnabled(r[m],!1);var k=mxObjectIdentity.get(c[m]),s=this.indices[k];this.neighbours[d][m]=null!=s?s:d}}this.temperature=this.initialTemp;0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(f));for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;
-this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature()}a=c=null;for(d=0;d<this.vertexArray.length;d++)g=this.vertexArray[d],this.isVertexMovable(g)&&(l=this.getVertexBounds(g),null!=l&&(this.cellLocation[d][0]-=l.width/2,this.cellLocation[d][1]-=l.height/2,q=this.graph.snap(this.cellLocation[d][0]),p=this.graph.snap(this.cellLocation[d][1]),this.setVertexLocation(g,q,p),c=null==c?q:Math.min(c,q),a=null==a?p:Math.min(a,p)));d=-(c||0)+1;g=-(a||0)+1;null!=e&&(d+=e.x,
+0.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;d<this.vertexArray.length;d++){var g=this.vertexArray[d];this.cellLocation[d]=[];var k=mxObjectIdentity.get(g);this.indices[k]=d;var l=this.getVertexBounds(g),n=l.width,m=l.height,p=l.x,q=l.y;this.cellLocation[d][0]=p+n/2;this.cellLocation[d][1]=q+m/2;this.radius[d]=Math.min(n,m);this.radiusSquared[d]=this.radius[d]*this.radius[d]}b.beginUpdate();try{for(d=0;d<f;d++){this.dispX[d]=0;this.dispY[d]=0;this.isMoveable[d]=this.isVertexMovable(this.vertexArray[d]);
+var s=this.graph.getConnections(this.vertexArray[d],a),c=this.graph.getOpposites(s,this.vertexArray[d]);this.neighbours[d]=[];for(n=0;n<c.length;n++){this.resetEdges&&this.graph.resetEdge(s[n]);this.disableEdgeStyle&&this.setEdgeStyleEnabled(s[n],!1);var k=mxObjectIdentity.get(c[n]),r=this.indices[k];this.neighbours[d][n]=null!=r?r:d}}this.temperature=this.initialTemp;0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(f));for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;
+this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature()}a=c=null;for(d=0;d<this.vertexArray.length;d++)g=this.vertexArray[d],this.isVertexMovable(g)&&(l=this.getVertexBounds(g),null!=l&&(this.cellLocation[d][0]-=l.width/2,this.cellLocation[d][1]-=l.height/2,p=this.graph.snap(this.cellLocation[d][0]),q=this.graph.snap(this.cellLocation[d][1]),this.setVertexLocation(g,p,q),c=null==c?p:Math.min(c,p),a=null==a?q:Math.min(a,q)));d=-(c||0)+1;g=-(a||0)+1;null!=e&&(d+=e.x,
g+=e.y);this.graph.moveCells(this.vertexArray,d,g)}finally{b.endUpdate()}};mxFastOrganicLayout.prototype.calcPositions=function(){for(var a=0;a<this.vertexArray.length;a++)if(this.isMoveable[a]){var b=Math.sqrt(this.dispX[a]*this.dispX[a]+this.dispY[a]*this.dispY[a]);0.001>b&&(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;a<this.vertexArray.length;a++)for(var b=0;b<this.neighbours[a].length;b++){var c=this.neighbours[a][b];if(a!=c&&this.isMoveable[a]&&this.isMoveable[c]){var d=this.cellLocation[a][0]-this.cellLocation[c][0],e=this.cellLocation[a][1]-this.cellLocation[c][1],f=d*d+e*e-this.radiusSquared[a]-this.radiusSquared[c];f<this.minDistanceLimitSquared&&(f=this.minDistanceLimitSquared);var g=Math.sqrt(f),f=f/this.forceConstant,d=d/g*f,e=e/g*f;
this.dispX[a]-=d;this.dispY[a]-=e;this.dispX[c]+=d;this.dispY[c]+=e}}};
mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var a=this.vertexArray.length,b=0;b<a;b++)for(var c=b;c<a;c++){if(!this.allowedToRun)return;if(c!=b&&this.isMoveable[b]&&this.isMoveable[c]){var d=this.cellLocation[b][0]-this.cellLocation[c][0],e=this.cellLocation[b][1]-this.cellLocation[c][1];0==d&&(d=0.01+Math.random());0==e&&(e=0.01+Math.random());var f=Math.sqrt(d*d+e*e),g=f-this.radius[b]-this.radius[c];g>this.maxDistanceLimit||(g<this.minDistanceLimit&&(g=this.minDistanceLimit),g=this.forceConstantSquared/
g,d=d/f*g,e=e/f*g,this.dispX[b]+=d,this.dispY[b]+=e,this.dispX[c]-=d,this.dispY[c]-=e)}}};mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)};function mxCircleLayout(a,b){mxGraphLayout.call(this,a);this.radius=null!=b?b:100}mxCircleLayout.prototype=new mxGraphLayout;mxCircleLayout.prototype.constructor=mxCircleLayout;mxCircleLayout.prototype.radius=null;mxCircleLayout.prototype.moveCircle=!1;
mxCircleLayout.prototype.x0=0;mxCircleLayout.prototype.y0=0;mxCircleLayout.prototype.resetEdges=!0;mxCircleLayout.prototype.disableEdgeStyle=!0;
-mxCircleLayout.prototype.execute=function(a){var b=this.graph.getModel();b.beginUpdate();try{for(var c=0,d=null,e=null,f=[],g=b.getChildCount(a),k=0;k<g;k++){var l=b.getChildAt(a,k);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{f.push(l);var m=this.getVertexBounds(l),d=null==d?m.y:Math.min(d,m.y),e=null==e?m.x:Math.min(e,m.x),c=Math.max(c,Math.max(m.width,m.height))}}var n=this.getRadius(f.length,
-c);this.moveCircle&&(e=this.x0,d=this.y0);this.circle(f,n,e,d)}finally{b.endUpdate()}};mxCircleLayout.prototype.getRadius=function(a,b){return Math.max(a*b/Math.PI,this.radius)};mxCircleLayout.prototype.circle=function(a,b,c,d){for(var e=a.length,f=2*Math.PI/e,g=0;g<e;g++)this.isVertexMovable(a[g])&&this.setVertexLocation(a[g],c+b+b*Math.sin(g*f),d+b+b*Math.cos(g*f))};function mxParallelEdgeLayout(a){mxGraphLayout.call(this,a)}mxParallelEdgeLayout.prototype=new mxGraphLayout;
+mxCircleLayout.prototype.execute=function(a){var b=this.graph.getModel();b.beginUpdate();try{for(var c=0,d=null,e=null,f=[],g=b.getChildCount(a),k=0;k<g;k++){var l=b.getChildAt(a,k);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{f.push(l);var n=this.getVertexBounds(l),d=null==d?n.y:Math.min(d,n.y),e=null==e?n.x:Math.min(e,n.x),c=Math.max(c,Math.max(n.width,n.height))}}var m=this.getRadius(f.length,
+c);this.moveCircle&&(e=this.x0,d=this.y0);this.circle(f,m,e,d)}finally{b.endUpdate()}};mxCircleLayout.prototype.getRadius=function(a,b){return Math.max(a*b/Math.PI,this.radius)};mxCircleLayout.prototype.circle=function(a,b,c,d){for(var e=a.length,f=2*Math.PI/e,g=0;g<e;g++)this.isVertexMovable(a[g])&&this.setVertexLocation(a[g],c+b+b*Math.sin(g*f),d+b+b*Math.cos(g*f))};function mxParallelEdgeLayout(a){mxGraphLayout.call(this,a)}mxParallelEdgeLayout.prototype=new mxGraphLayout;
mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout;mxParallelEdgeLayout.prototype.spacing=20;mxParallelEdgeLayout.prototype.execute=function(a){a=this.findParallels(a);this.graph.model.beginUpdate();try{for(var b in a){var c=a[b];1<c.length&&this.layout(c)}}finally{this.graph.model.endUpdate()}};
mxParallelEdgeLayout.prototype.findParallels=function(a){for(var b=this.graph.getModel(),c=[],d=b.getChildCount(a),e=0;e<d;e++){var f=b.getChildAt(a,e);if(!this.isEdgeIgnored(f)){var g=this.getEdgeId(f);null!=g&&(null==c[g]&&(c[g]=[]),c[g].push(f))}}return c};mxParallelEdgeLayout.prototype.getEdgeId=function(a){var b=this.graph.getView(),c=b.getVisibleTerminal(a,!0);a=b.getVisibleTerminal(a,!1);return null!=c&&null!=a?(c=mxObjectIdentity.get(c),a=mxObjectIdentity.get(a),c>a?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;f<a.length;f++)this.route(a[f],b,c),b+=this.spacing;else if(null!=e&&null!=d){var b=e.x+e.width/2,c=e.y+e.height/2,f=d.x+d.width/2-b,g=d.y+d.height/2-c,d=Math.sqrt(f*f+g*g);if(0<d){e=g*this.spacing/d;d=f*this.spacing/d;b=b+f/2+e*(a.length-1)/
@@ -844,22 +844,22 @@ function mxGraphHierarchyModel(a,b,c,d,e){a.getGraph();this.tightenToSource=e;th
l&&(l=a.getVisibleTerminal(k,!0),l=this.vertexMapper.get(l));null!=l&&c[d]!=l&&(g.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,g)&&l.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<b.length;e++){c[e]=new mxGraphHierarchyNode(b[e]);this.vertexMapper.put(b[e],c[e]);var f=a.getEdges(b[e]);c[e].connectsAsSource=[];for(var g=0;g<f.length;g++){var k=a.getVisibleTerminal(f[g],!1);if(k!=b[e]&&a.graph.model.isVertex(k)&&!a.isVertexIgnored(k)){var l=a.getEdgesBetween(b[e],k,!1),k=a.getEdgesBetween(b[e],k,!0);if(null!=l&&0<l.length&&null==this.edgeMapper.get(l[0])&&2*k.length>=l.length){for(var k=
-new mxGraphHierarchyEdge(l),m=0;m<l.length;m++){var n=l[m];this.edgeMapper.put(n,k);d.resetEdge(n);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(n,!1),a.setOrthogonalEdge(n,!0))}k.source=c[e];0>mxUtils.indexOf(c[e].connectsAsSource,k)&&c[e].connectsAsSource.push(k)}}}c[e].temp[0]=0}};
-mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;b<this.roots.length;b++){var c=this.vertexMapper.get(this.roots[b]);null!=c&&a.push(c)}for(var d=this.vertexMapper.getValues(),b=0;b<d.length;b++)d[b].temp[0]=-1;for(var e=a.slice();0<a.length;){var c=a[0],f,g;f=c.connectsAsTarget;g=c.connectsAsSource;for(var k=!0,l=this.SOURCESCANSTARTRANK,b=0;b<f.length;b++){var m=f[b];if(5270620==m.temp[0])m=m.source,l=Math.min(l,m.temp[0]-1);else{k=!1;break}}if(k){c.temp[0]=
-l;this.maxRank=Math.min(this.maxRank,l);if(null!=g)for(b=0;b<g.length;b++)m=g[b],m.temp[0]=5270620,m=m.target,-1==m.temp[0]&&(a.push(m),m.temp[0]=-2);a.shift()}else if(b=a.shift(),a.push(c),b==c&&1==a.length)break}for(b=0;b<d.length;b++)d[b].temp[0]-=this.maxRank;for(b=0;b<e.length;b++){c=e[b];a=0;f=c.connectsAsSource;for(d=0;d<f.length;d++)m=f[d],m=m.target,c.temp[0]=Math.max(a,m.temp[0]+1),a=c.temp[0]}this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank};
-mxGraphHierarchyModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,m){0==m&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=
+new mxGraphHierarchyEdge(l),n=0;n<l.length;n++){var m=l[n];this.edgeMapper.put(m,k);d.resetEdge(m);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(m,!1),a.setOrthogonalEdge(m,!0))}k.source=c[e];0>mxUtils.indexOf(c[e].connectsAsSource,k)&&c[e].connectsAsSource.push(k)}}}c[e].temp[0]=0}};
+mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;b<this.roots.length;b++){var c=this.vertexMapper.get(this.roots[b]);null!=c&&a.push(c)}for(var d=this.vertexMapper.getValues(),b=0;b<d.length;b++)d[b].temp[0]=-1;for(var e=a.slice();0<a.length;){var c=a[0],f,g;f=c.connectsAsTarget;g=c.connectsAsSource;for(var k=!0,l=this.SOURCESCANSTARTRANK,b=0;b<f.length;b++){var n=f[b];if(5270620==n.temp[0])n=n.source,l=Math.min(l,n.temp[0]-1);else{k=!1;break}}if(k){c.temp[0]=
+l;this.maxRank=Math.min(this.maxRank,l);if(null!=g)for(b=0;b<g.length;b++)n=g[b],n.temp[0]=5270620,n=n.target,-1==n.temp[0]&&(a.push(n),n.temp[0]=-2);a.shift()}else if(b=a.shift(),a.push(c),b==c&&1==a.length)break}for(b=0;b<d.length;b++)d[b].temp[0]-=this.maxRank;for(b=0;b<e.length;b++){c=e[b];a=0;f=c.connectsAsSource;for(d=0;d<f.length;d++)n=f[d],n=n.target,c.temp[0]=Math.max(a,n.temp[0]+1),a=c.temp[0]}this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank};
+mxGraphHierarchyModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,n){0==n&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=
[];d.x=[];d.y=[];for(b=d.minRank+1;b<d.maxRank;b++)a[b].push(d),d.setGeneralPurposeVariable(b,a[b].length-1)}},c,!1,null)};mxGraphHierarchyModel.prototype.visit=function(a,b,c,d){if(null!=b){for(var e=0;e<b.length;e++){var f=b[e];null!=f&&(null==d&&(d={}),c?(f.hashCode=[],f.hashCode[0]=this.dfsCount,f.hashCode[1]=e,this.extendedDfs(null,f,null,a,d,f.hashCode,e,0)):this.dfs(null,f,null,a,d,0))}this.dfsCount++}};
mxGraphHierarchyModel.prototype.dfs=function(a,b,c,d,e,f){if(null!=b){var g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,f,0);a=b.connectsAsSource.slice();for(c=0;c<a.length;c++)g=a[c],this.dfs(b,g.target,g,d,e,f+1)}else d(a,b,c,f,1)}};
mxGraphHierarchyModel.prototype.extendedDfs=function(a,b,c,d,e,f,g,k){if(null!=b){if(null!=a&&(null==b.hashCode||b.hashCode[0]!=a.hashCode[0]))f=a.hashCode.length+1,b.hashCode=a.hashCode.slice(),b.hashCode[f-1]=g;g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,k,0);a=b.connectsAsSource.slice();for(c=0;c<a.length;c++)g=a[c],this.extendedDfs(b,g.target,g,d,e,b.hashCode,c,k+1)}else d(a,b,c,k,1)}};
function mxSwimlaneModel(a,b,c,d,e){a.getGraph();this.tightenToSource=e;this.roots=c;this.parent=d;this.vertexMapper=new mxDictionary;this.edgeMapper=new mxDictionary;this.maxRank=0;c=[];null==b&&(b=this.graph.getChildVertices(d));this.maxRank=this.SOURCESCANSTARTRANK;this.createInternalCells(a,b,c);for(d=0;d<b.length;d++){e=c[d].connectsAsSource;for(var f=0;f<e.length;f++){var g=e[f],k=g.edges;if(null!=k&&0<k.length){var k=k[0],l=a.getVisibleTerminal(k,!1),l=this.vertexMapper.get(l);c[d]==l&&(l=
a.getVisibleTerminal(k,!0),l=this.vertexMapper.get(l));null!=l&&c[d]!=l&&(g.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,g)&&l.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<b.length;f++){c[f]=new mxGraphHierarchyNode(b[f]);this.vertexMapper.put(b[f],c[f]);c[f].swimlaneIndex=-1;for(var g=0;g<e.length;g++)if(d.model.getParent(b[f])==e[g]){c[f].swimlaneIndex=g;break}g=a.getEdges(b[f]);c[f].connectsAsSource=[];for(var k=0;k<g.length;k++){var l=a.getVisibleTerminal(g[k],!1);if(l!=b[f]&&a.graph.model.isVertex(l)&&!a.isVertexIgnored(l)){var m=a.getEdgesBetween(b[f],l,!1),
-l=a.getEdgesBetween(b[f],l,!0);if(null!=m&&0<m.length&&null==this.edgeMapper.get(m[0])&&2*l.length>=m.length){for(var l=new mxGraphHierarchyEdge(m),n=0;n<m.length;n++){var q=m[n];this.edgeMapper.put(q,l);d.resetEdge(q);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(q,!1),a.setOrthogonalEdge(q,!0))}l.source=c[f];0>mxUtils.indexOf(c[f].connectsAsSource,l)&&c[f].connectsAsSource.push(l)}}}c[f].temp[0]=0}};
+mxSwimlaneModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=a.swimlanes,f=0;f<b.length;f++){c[f]=new mxGraphHierarchyNode(b[f]);this.vertexMapper.put(b[f],c[f]);c[f].swimlaneIndex=-1;for(var g=0;g<e.length;g++)if(d.model.getParent(b[f])==e[g]){c[f].swimlaneIndex=g;break}g=a.getEdges(b[f]);c[f].connectsAsSource=[];for(var k=0;k<g.length;k++){var l=a.getVisibleTerminal(g[k],!1);if(l!=b[f]&&a.graph.model.isVertex(l)&&!a.isVertexIgnored(l)){var n=a.getEdgesBetween(b[f],l,!1),
+l=a.getEdgesBetween(b[f],l,!0);if(null!=n&&0<n.length&&null==this.edgeMapper.get(n[0])&&2*l.length>=n.length){for(var l=new mxGraphHierarchyEdge(n),m=0;m<n.length;m++){var p=n[m];this.edgeMapper.put(p,l);d.resetEdge(p);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(p,!1),a.setOrthogonalEdge(p,!0))}l.source=c[f];0>mxUtils.indexOf(c[f].connectsAsSource,l)&&c[f].connectsAsSource.push(l)}}}c[f].temp[0]=0}};
mxSwimlaneModel.prototype.initialRank=function(){this.ranksPerGroup=[];var a=[],b={};if(null!=this.roots)for(var c=0;c<this.roots.length;c++){var d=this.vertexMapper.get(this.roots[c]);this.maxChainDfs(null,d,null,b,0);null!=d&&a.push(d)}d=[];b=[];for(c=this.ranksPerGroup.length-1;0<=c;c--)d[c]=c==this.ranksPerGroup.length-1?0:b[c+1]+1,b[c]=d[c]+this.ranksPerGroup[c];this.maxRank=b[0];d=this.vertexMapper.getValues();for(c=0;c<d.length;c++)d[c].temp[0]=-1;for(a.slice();0<a.length;){var d=a[0],e,f;
e=d.connectsAsTarget;f=d.connectsAsSource;for(var g=!0,k=b[0],c=0;c<e.length;c++){var l=e[c];if(5270620==l.temp[0])l=l.source,k=Math.min(k,l.temp[0]-1);else{g=!1;break}}if(g){k>b[d.swimlaneIndex]&&(k=b[d.swimlaneIndex]);d.temp[0]=k;if(null!=f)for(c=0;c<f.length;c++)l=f[c],l.temp[0]=5270620,l=l.target,-1==l.temp[0]&&(a.push(l),l.temp[0]=-2);a.shift()}else if(c=a.shift(),a.push(d),c==d&&1==a.length)break}};
mxSwimlaneModel.prototype.maxChainDfs=function(a,b,c,d,e){if(null!=b&&(a=mxCellPath.create(b.cell),null==d[a])){d[a]=b;a=b.swimlaneIndex;if(null==this.ranksPerGroup[a]||this.ranksPerGroup[a]<e)this.ranksPerGroup[a]=e;a=b.connectsAsSource.slice();for(c=0;c<a.length;c++){var f=a[c],g=f.target;b.swimlaneIndex<g.swimlaneIndex?this.maxChainDfs(b,g,f,mxUtils.clone(d,null,!0),0):b.swimlaneIndex==g.swimlaneIndex&&this.maxChainDfs(b,g,f,mxUtils.clone(d,null,!0),e+1)}}};
-mxSwimlaneModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,m){0==m&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=[];d.x=
+mxSwimlaneModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,n){0==n&&0>c.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<b.maxRank-c.maxRank){d.maxRank=b.maxRank;d.minRank=c.maxRank;d.temp=[];d.x=
[];d.y=[];for(b=d.minRank+1;b<d.maxRank;b++)a[b].push(d),d.setGeneralPurposeVariable(b,a[b].length-1)}},c,!1,null)};mxSwimlaneModel.prototype.visit=function(a,b,c,d){if(null!=b){for(var e=0;e<b.length;e++){var f=b[e];null!=f&&(null==d&&(d={}),c?(f.hashCode=[],f.hashCode[0]=this.dfsCount,f.hashCode[1]=e,this.extendedDfs(null,f,null,a,d,f.hashCode,e,0)):this.dfs(null,f,null,a,d,0))}this.dfsCount++}};
mxSwimlaneModel.prototype.dfs=function(a,b,c,d,e,f){if(null!=b){var g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,f,0);a=b.connectsAsSource.slice();for(c=0;c<a.length;c++)g=a[c],this.dfs(b,g.target,g,d,e,f+1)}else d(a,b,c,f,1)}};
mxSwimlaneModel.prototype.extendedDfs=function(a,b,c,d,e,f,g,k){if(null!=b){if(null!=a&&(null==b.hashCode||b.hashCode[0]!=a.hashCode[0]))f=a.hashCode.length+1,b.hashCode=a.hashCode.slice(),b.hashCode[f-1]=g;g=b.id;if(null==e[g]){e[g]=b;d(a,b,c,k,0);a=b.connectsAsSource.slice();c=b.connectsAsTarget.slice();for(g=0;g<a.length;g++){f=a[g];var l=f.target;b.swimlaneIndex<=l.swimlaneIndex&&this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}for(g=0;g<c.length;g++)f=c[g],l=f.source,b.swimlaneIndex<l.swimlaneIndex&&
@@ -867,59 +867,59 @@ this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}else d(a,b,c,k,1)}};function mxHier
mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null;mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0;mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0;mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2;
mxMedianHybridCrossingReduction.prototype.execute=function(a){a=this.layout.getModel();this.nestedBestRanks=[];for(var b=0;b<a.ranks.length;b++)this.nestedBestRanks[b]=a.ranks[b].slice();for(var c=0,d=this.calculateCrossings(a),b=0;b<this.maxIterations&&c<this.maxNoImprovementIterations;b++){this.weightedMedian(b,a);this.transpose(b,a);var e=this.calculateCrossings(a);if(e<d){d=e;for(e=c=0;e<this.nestedBestRanks.length;e++)for(var f=a.ranks[e],g=0;g<f.length;g++){var k=f[g];this.nestedBestRanks[e][k.getGeneralPurposeVariable(e)]=
k}}else{c++;for(e=0;e<this.nestedBestRanks.length;e++){f=a.ranks[e];for(g=0;g<f.length;g++)k=f[g],k.setGeneralPurposeVariable(e,g)}}if(0==d)break}c=[];d=[];for(b=0;b<a.maxRank+1;b++)d[b]=[],c[b]=d[b];for(b=0;b<this.nestedBestRanks.length;b++)for(e=0;e<this.nestedBestRanks[b].length;e++)d[b].push(this.nestedBestRanks[b][e]);a.ranks=c};mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(a){for(var b=a.ranks.length,c=0,d=1;d<b;d++)c+=this.calculateRankCrossing(d,a);return c};
-mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(a,b){for(var c=0,d=b.ranks[a],e=b.ranks[a-1],f=[],g=0;g<d.length;g++){for(var k=d[g],l=k.getGeneralPurposeVariable(a),k=k.getPreviousLayerConnectedCells(a),m=[],n=0;n<k.length;n++){var q=k[n].getGeneralPurposeVariable(a-1);m.push(q)}m.sort(function(a,b){return a-b});f[l]=m}d=[];for(g=0;g<f.length;g++)d=d.concat(f[g]);for(f=1;f<e.length;)f<<=1;l=2*f-1;f-=1;e=[];for(g=0;g<l;++g)e[g]=0;for(g=0;g<d.length;g++){l=d[g]+f;for(++e[l];0<
+mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(a,b){for(var c=0,d=b.ranks[a],e=b.ranks[a-1],f=[],g=0;g<d.length;g++){for(var k=d[g],l=k.getGeneralPurposeVariable(a),k=k.getPreviousLayerConnectedCells(a),n=[],m=0;m<k.length;m++){var p=k[m].getGeneralPurposeVariable(a-1);n.push(p)}n.sort(function(a,b){return a-b});f[l]=n}d=[];for(g=0;g<f.length;g++)d=d.concat(f[g]);for(f=1;f<e.length;)f<<=1;l=2*f-1;f-=1;e=[];for(g=0;g<l;++g)e[g]=0;for(g=0;g<d.length;g++){l=d[g]+f;for(++e[l];0<
l;)l%2&&(c+=e[l+1]),l=l-1>>1,++e[l]}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;f<b.ranks.length;f++){for(var g=b.ranks[f],k=[],l=0;l<g.length;l++){var m=g[l],n=m.getGeneralPurposeVariable(f);0>n&&(n=l);k[n]=m}for(var q=null,p=null,r=null,s=null,t=null,v=null,u=null,y=null,l=0;l<g.length-1;l++){if(0==l){for(var u=k[l],m=u.getNextLayerConnectedCells(f),n=u.getPreviousLayerConnectedCells(f),r=[],s=[],z=0;z<m.length;z++)r[z]=m[z].getGeneralPurposeVariable(f+
-1);for(z=0;z<n.length;z++)s[z]=n[z].getGeneralPurposeVariable(f-1)}else m=q,n=p,r=t,s=v,u=y;y=k[l+1];q=y.getNextLayerConnectedCells(f);p=y.getPreviousLayerConnectedCells(f);t=[];v=[];for(z=0;z<q.length;z++)t[z]=q[z].getGeneralPurposeVariable(f+1);for(z=0;z<p.length;z++)v[z]=p[z].getGeneralPurposeVariable(f-1);for(var x=0,G=0,z=0;z<r.length;z++)for(var D=0;D<t.length;D++)r[z]>t[D]&&x++,r[z]<t[D]&&G++;for(z=0;z<s.length;z++)for(D=0;D<v.length;D++)s[z]>v[D]&&x++,s[z]<v[D]&&G++;if(G<x||G==x&&e)q=u.getGeneralPurposeVariable(f),
-u.setGeneralPurposeVariable(f,y.getGeneralPurposeVariable(f)),y.setGeneralPurposeVariable(f,q),q=m,p=n,t=r,v=s,y=u,e||(c=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,b){var c=0==a%2;if(c)for(var d=b.maxRank-1;0<=d;d--)this.medianRank(d,c);else for(d=1;d<b.maxRank;d++)this.medianRank(d,c)};
-mxMedianHybridCrossingReduction.prototype.medianRank=function(a,b){for(var c=this.nestedBestRanks[a].length,d=[],e=[],f=0;f<c;f++){var g=this.nestedBestRanks[a][f],k=new MedianCellSorter;k.cell=g;var l;l=b?g.getNextLayerConnectedCells(a):g.getPreviousLayerConnectedCells(a);var m;m=b?a+1:a-1;null!=l&&0!=l.length?(k.medianValue=this.medianValue(l,m),d.push(k)):e[g.getGeneralPurposeVariable(a)]=!0}d.sort(MedianCellSorter.prototype.compare);for(f=0;f<c;f++)null==e[f]&&(g=d.shift().cell,g.setGeneralPurposeVariable(a,
+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;f<b.ranks.length;f++){for(var g=b.ranks[f],k=[],l=0;l<g.length;l++){var n=g[l],m=n.getGeneralPurposeVariable(f);0>m&&(m=l);k[m]=n}for(var p=null,q=null,s=null,r=null,t=null,u=null,v=null,z=null,l=0;l<g.length-1;l++){if(0==l){for(var v=k[l],n=v.getNextLayerConnectedCells(f),m=v.getPreviousLayerConnectedCells(f),s=[],r=[],y=0;y<n.length;y++)s[y]=n[y].getGeneralPurposeVariable(f+
+1);for(y=0;y<m.length;y++)r[y]=m[y].getGeneralPurposeVariable(f-1)}else n=p,m=q,s=t,r=u,v=z;z=k[l+1];p=z.getNextLayerConnectedCells(f);q=z.getPreviousLayerConnectedCells(f);t=[];u=[];for(y=0;y<p.length;y++)t[y]=p[y].getGeneralPurposeVariable(f+1);for(y=0;y<q.length;y++)u[y]=q[y].getGeneralPurposeVariable(f-1);for(var x=0,E=0,y=0;y<s.length;y++)for(var C=0;C<t.length;C++)s[y]>t[C]&&x++,s[y]<t[C]&&E++;for(y=0;y<r.length;y++)for(C=0;C<u.length;C++)r[y]>u[C]&&x++,r[y]<u[C]&&E++;if(E<x||E==x&&e)p=v.getGeneralPurposeVariable(f),
+v.setGeneralPurposeVariable(f,z.getGeneralPurposeVariable(f)),z.setGeneralPurposeVariable(f,p),p=n,q=m,t=s,u=r,z=v,e||(c=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,b){var c=0==a%2;if(c)for(var d=b.maxRank-1;0<=d;d--)this.medianRank(d,c);else for(d=1;d<b.maxRank;d++)this.medianRank(d,c)};
+mxMedianHybridCrossingReduction.prototype.medianRank=function(a,b){for(var c=this.nestedBestRanks[a].length,d=[],e=[],f=0;f<c;f++){var g=this.nestedBestRanks[a][f],k=new MedianCellSorter;k.cell=g;var l;l=b?g.getNextLayerConnectedCells(a):g.getPreviousLayerConnectedCells(a);var n;n=b?a+1:a-1;null!=l&&0!=l.length?(k.medianValue=this.medianValue(l,n),d.push(k)):e[g.getGeneralPurposeVariable(a)]=!0}d.sort(MedianCellSorter.prototype.compare);for(f=0;f<c;f++)null==e[f]&&(g=d.shift().cell,g.setGeneralPurposeVariable(a,
f))};mxMedianHybridCrossingReduction.prototype.medianValue=function(a,b){for(var c=[],d=0,e=0;e<a.length;e++){var f=a[e];c[d++]=f.getGeneralPurposeVariable(b)}c.sort(function(a,b){return a-b});if(1==d%2)return c[Math.floor(d/2)];if(2==d)return(c[0]+c[1])/2;e=d/2;f=c[e-1]-c[0];d=c[d-1]-c[e];return(c[e-1]*d+c[e]*f)/(f+d)};function MedianCellSorter(){}MedianCellSorter.prototype.medianValue=0;MedianCellSorter.prototype.cell=!1;
MedianCellSorter.prototype.compare=function(a,b){return null!=a&&null!=b?b.medianValue>a.medianValue?-1:b.medianValue<a.medianValue?1:0:0};function mxMinimumCycleRemover(a){this.layout=a}mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage;mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover;mxMinimumCycleRemover.prototype.layout=null;
-mxMinimumCycleRemover.prototype.execute=function(a){a=this.layout.getModel();for(var b={},c=a.vertexMapper.getValues(),d={},e=0;e<c.length;e++)d[c[e].id]=c[e];c=null;if(null!=a.roots)for(var f=a.roots,c=[],e=0;e<f.length;e++)c[e]=a.vertexMapper.get(f[e]);a.visit(function(a,c,e,f,n){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget),c.connectsAsSource.push(e));b[c.id]=c;delete d[c.id]},c,!0,null);e=mxUtils.clone(b,null,
-!0);a.visit(function(a,c,e,f,n){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),c.connectsAsSource.push(e),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget));b[c.id]=c;delete d[c.id]},d,!0,e)};function mxCoordinateAssignment(a,b,c,d,e,f){this.layout=a;this.intraCellSpacing=b;this.interRankCellSpacing=c;this.orientation=d;this.initialX=e;this.parallelEdgeSpacing=f}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage;
+mxMinimumCycleRemover.prototype.execute=function(a){a=this.layout.getModel();for(var b={},c=a.vertexMapper.getValues(),d={},e=0;e<c.length;e++)d[c[e].id]=c[e];c=null;if(null!=a.roots)for(var f=a.roots,c=[],e=0;e<f.length;e++)c[e]=a.vertexMapper.get(f[e]);a.visit(function(a,c,e,f,m){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget),c.connectsAsSource.push(e));b[c.id]=c;delete d[c.id]},c,!0,null);e=mxUtils.clone(b,null,
+!0);a.visit(function(a,c,e,f,m){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),c.connectsAsSource.push(e),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget));b[c.id]=c;delete d[c.id]},d,!0,e)};function mxCoordinateAssignment(a,b,c,d,e,f){this.layout=a;this.intraCellSpacing=b;this.interRankCellSpacing=c;this.orientation=d;this.initialX=e;this.parallelEdgeSpacing=f}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage;
mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment;mxCoordinateAssignment.prototype.layout=null;mxCoordinateAssignment.prototype.intraCellSpacing=30;mxCoordinateAssignment.prototype.interRankCellSpacing=100;mxCoordinateAssignment.prototype.parallelEdgeSpacing=10;mxCoordinateAssignment.prototype.maxIterations=8;mxCoordinateAssignment.prototype.prefHozEdgeSep=5;mxCoordinateAssignment.prototype.prefVertEdgeOff=2;mxCoordinateAssignment.prototype.minEdgeJetty=12;
mxCoordinateAssignment.prototype.channelBuffer=4;mxCoordinateAssignment.prototype.jettyPositions=null;mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH;mxCoordinateAssignment.prototype.initialX=null;mxCoordinateAssignment.prototype.limitX=null;mxCoordinateAssignment.prototype.currentXDelta=null;mxCoordinateAssignment.prototype.widestRank=null;mxCoordinateAssignment.prototype.rankTopY=null;mxCoordinateAssignment.prototype.rankBottomY=null;
mxCoordinateAssignment.prototype.widestRankValue=null;mxCoordinateAssignment.prototype.rankWidths=null;mxCoordinateAssignment.prototype.rankY=null;mxCoordinateAssignment.prototype.fineTuning=!0;mxCoordinateAssignment.prototype.nextLayerConnectedCache=null;mxCoordinateAssignment.prototype.previousLayerConnectedCache=null;mxCoordinateAssignment.prototype.groupPadding=10;
mxCoordinateAssignment.prototype.printStatus=function(){var a=this.layout.getModel();mxLog.show();mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3dCoord assignment debug\x3d\x3d\x3d\x3d\x3d\x3d\x3d");for(var b=0;b<a.ranks.length;b++){mxLog.write("Rank ",b," : ");for(var c=a.ranks[b],d=0;d<c.length;d++)mxLog.write(c[d].getGeneralPurposeVariable(b)," ");mxLog.writeln()}mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d")};
mxCoordinateAssignment.prototype.execute=function(a){this.jettyPositions={};a=this.layout.getModel();this.currentXDelta=0;this.initialCoords(this.layout.getGraph(),a);this.fineTuning&&this.minNode(a);var b=1E8;if(this.fineTuning)for(var c=0;c<this.maxIterations;c++){0!=c&&(this.medianPos(c,a),this.minNode(a));if(this.currentXDelta<b){for(var d=0;d<a.ranks.length;d++)for(var e=a.ranks[d],f=0;f<e.length;f++){var g=e[f];g.setX(d,g.getGeneralPurposeVariable(d))}b=this.currentXDelta}else for(d=0;d<a.ranks.length;d++){e=
a.ranks[d];for(f=0;f<e.length;f++)g=e[f],g.setGeneralPurposeVariable(d,g.getX(d))}this.minPath(this.layout.getGraph(),a);this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),a)};
-mxCoordinateAssignment.prototype.minNode=function(a){for(var b=[],c=new mxDictionary,d=[],e=0;e<=a.maxRank;e++){d[e]=a.ranks[e];for(var f=0;f<d[e].length;f++){var g=d[e][f],k=new WeightedCellSorter(g,e);k.rankIndex=f;k.visited=!0;b.push(k);c.put(g,k)}}a=10*b.length;for(f=0;0<b.length&&f<=a;){var g=b.shift(),e=g.cell,l=g.weightedValue,m=parseInt(g.rankIndex),k=e.getNextLayerConnectedCells(l),n=e.getPreviousLayerConnectedCells(l),q=k.length,p=n.length,r=this.medianXValue(k,l+1),s=this.medianXValue(n,
-l-1),t=q+p,v=e.getGeneralPurposeVariable(l),u=v;0<t&&(u=(r*q+s*p)/t);q=!1;u<v-1?0==m?(e.setGeneralPurposeVariable(l,u),q=!0):(m=d[l][m-1],v=m.getGeneralPurposeVariable(l),v=v+m.width/2+this.intraCellSpacing+e.width/2,v<u?(e.setGeneralPurposeVariable(l,u),q=!0):v<e.getGeneralPurposeVariable(l)-1&&(e.setGeneralPurposeVariable(l,v),q=!0)):u>v+1&&(m==d[l].length-1?(e.setGeneralPurposeVariable(l,u),q=!0):(m=d[l][m+1],v=m.getGeneralPurposeVariable(l),v=v-m.width/2-this.intraCellSpacing-e.width/2,v>u?(e.setGeneralPurposeVariable(l,
-u),q=!0):v>e.getGeneralPurposeVariable(l)+1&&(e.setGeneralPurposeVariable(l,v),q=!0)));if(q){for(e=0;e<k.length;e++)l=k[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l));for(e=0;e<n.length;e++)l=n[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l))}g.visited=!1;f++}};mxCoordinateAssignment.prototype.medianPos=function(a,b){if(0==a%2)for(var c=b.maxRank;0<c;c--)this.rankMedianPosition(c-1,b,c);else for(c=0;c<b.maxRank-1;c++)this.rankMedianPosition(c+1,b,c)};
+mxCoordinateAssignment.prototype.minNode=function(a){for(var b=[],c=new mxDictionary,d=[],e=0;e<=a.maxRank;e++){d[e]=a.ranks[e];for(var f=0;f<d[e].length;f++){var g=d[e][f],k=new WeightedCellSorter(g,e);k.rankIndex=f;k.visited=!0;b.push(k);c.put(g,k)}}a=10*b.length;for(f=0;0<b.length&&f<=a;){var g=b.shift(),e=g.cell,l=g.weightedValue,n=parseInt(g.rankIndex),k=e.getNextLayerConnectedCells(l),m=e.getPreviousLayerConnectedCells(l),p=k.length,q=m.length,s=this.medianXValue(k,l+1),r=this.medianXValue(m,
+l-1),t=p+q,u=e.getGeneralPurposeVariable(l),v=u;0<t&&(v=(s*p+r*q)/t);p=!1;v<u-1?0==n?(e.setGeneralPurposeVariable(l,v),p=!0):(n=d[l][n-1],u=n.getGeneralPurposeVariable(l),u=u+n.width/2+this.intraCellSpacing+e.width/2,u<v?(e.setGeneralPurposeVariable(l,v),p=!0):u<e.getGeneralPurposeVariable(l)-1&&(e.setGeneralPurposeVariable(l,u),p=!0)):v>u+1&&(n==d[l].length-1?(e.setGeneralPurposeVariable(l,v),p=!0):(n=d[l][n+1],u=n.getGeneralPurposeVariable(l),u=u-n.width/2-this.intraCellSpacing-e.width/2,u>v?(e.setGeneralPurposeVariable(l,
+v),p=!0):u>e.getGeneralPurposeVariable(l)+1&&(e.setGeneralPurposeVariable(l,u),p=!0)));if(p){for(e=0;e<k.length;e++)l=k[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l));for(e=0;e<m.length;e++)l=m[e],l=c.get(l),null!=l&&!1==l.visited&&(l.visited=!0,b.push(l))}g.visited=!1;f++}};mxCoordinateAssignment.prototype.medianPos=function(a,b){if(0==a%2)for(var c=b.maxRank;0<c;c--)this.rankMedianPosition(c-1,b,c);else for(c=0;c<b.maxRank-1;c++)this.rankMedianPosition(c+1,b,c)};
mxCoordinateAssignment.prototype.rankMedianPosition=function(a,b,c){b=b.ranks[a];for(var d=[],e={},f=0;f<b.length;f++){var g=b[f];d[f]=new WeightedCellSorter;d[f].cell=g;d[f].rankIndex=f;e[g.id]=d[f];var k=null,k=c<a?g.getPreviousLayerConnectedCells(a):g.getNextLayerConnectedCells(a);d[f].weightedValue=this.calculatedWeightedValue(g,k)}d.sort(WeightedCellSorter.prototype.compare);for(f=0;f<d.length;f++){var l=0,g=d[f].cell,l=0,k=c<a?g.getPreviousLayerConnectedCells(a).slice():g.getNextLayerConnectedCells(a).slice();
-null!=k&&(l=k.length,l=0<l?this.medianXValue(k,c):g.getGeneralPurposeVariable(a));for(var m=0,k=-1E8,n=d[f].rankIndex-1;0<=n;){var q=e[b[n].id];if(null!=q){var p=q.cell;q.visited?(k=p.getGeneralPurposeVariable(a)+p.width/2+this.intraCellSpacing+m+g.width/2,n=-1):(m+=p.width+this.intraCellSpacing,n--)}}m=0;p=1E8;for(n=d[f].rankIndex+1;n<d.length;)if(q=e[b[n].id],null!=q){var r=q.cell;q.visited?(p=r.getGeneralPurposeVariable(a)-r.width/2-this.intraCellSpacing-m-g.width/2,n=d.length):(m+=r.width+this.intraCellSpacing,
-n++)}l>=k&&l<=p?g.setGeneralPurposeVariable(a,l):l<k?(g.setGeneralPurposeVariable(a,k),this.currentXDelta+=k-l):l>p&&(g.setGeneralPurposeVariable(a,p),this.currentXDelta+=l-p);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d<b.length;d++){var e=b[d];a.isVertex()&&e.isVertex()?c++:c=a.isEdge()&&e.isEdge()?c+8:c+2}return c};
+null!=k&&(l=k.length,l=0<l?this.medianXValue(k,c):g.getGeneralPurposeVariable(a));for(var n=0,k=-1E8,m=d[f].rankIndex-1;0<=m;){var p=e[b[m].id];if(null!=p){var q=p.cell;p.visited?(k=q.getGeneralPurposeVariable(a)+q.width/2+this.intraCellSpacing+n+g.width/2,m=-1):(n+=q.width+this.intraCellSpacing,m--)}}n=0;q=1E8;for(m=d[f].rankIndex+1;m<d.length;)if(p=e[b[m].id],null!=p){var s=p.cell;p.visited?(q=s.getGeneralPurposeVariable(a)-s.width/2-this.intraCellSpacing-n-g.width/2,m=d.length):(n+=s.width+this.intraCellSpacing,
+m++)}l>=k&&l<=q?g.setGeneralPurposeVariable(a,l):l<k?(g.setGeneralPurposeVariable(a,k),this.currentXDelta+=k-l):l>q&&(g.setGeneralPurposeVariable(a,q),this.currentXDelta+=l-q);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d<b.length;d++){var e=b[d];a.isVertex()&&e.isVertex()?c++:c=a.isEdge()&&e.isEdge()?c+8:c+2}return c};
mxCoordinateAssignment.prototype.medianXValue=function(a,b){if(0==a.length)return 0;for(var c=[],d=0;d<a.length;d++)c[d]=a[d].getGeneralPurposeVariable(b);c.sort(function(a,b){return a-b});if(1==a.length%2)return c[Math.floor(a.length/2)];d=a.length/2;return(c[d-1]+c[d])/2};
mxCoordinateAssignment.prototype.initialCoords=function(a,b){this.calculateWidestRank(a,b);for(var c=this.widestRank;0<=c;c--)c<b.maxRank&&this.rankCoordinates(c,a,b);for(c=this.widestRank+1;c<=b.maxRank;c++)0<c&&this.rankCoordinates(c,a,b)};
mxCoordinateAssignment.prototype.rankCoordinates=function(a,b,c){b=c.ranks[a];c=0;for(var d=this.initialX+(this.widestRankValue-this.rankWidths[a])/2,e=!1,f=0;f<b.length;f++){var g=b[f];if(g.isVertex()){var k=this.layout.getVertexBounds(g.cell);null!=k?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(g.width=k.width,g.height=k.height):(g.width=k.height,g.height=k.width):e=!0;c=Math.max(c,g.height)}else g.isEdge()&&(k=1,null!=g.edges?k=g.edges.length:mxLog.warn("edge.edges is null"),
g.width=(k-1)*this.parallelEdgeSpacing);d+=g.width/2;g.setX(a,d);g.setGeneralPurposeVariable(a,d);d+=g.width/2;d+=this.intraCellSpacing}!0==e&&mxLog.warn("At least one cell has no bounds")};
-mxCoordinateAssignment.prototype.calculateWidestRank=function(a,b){var c=-this.interRankCellSpacing,d=0;this.rankWidths=[];this.rankY=[];for(var e=b.maxRank;0<=e;e--){for(var f=0,g=b.ranks[e],k=this.initialX,l=!1,m=0;m<g.length;m++){var n=g[m];if(n.isVertex()){var q=this.layout.getVertexBounds(n.cell);null!=q?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(n.width=q.width,n.height=q.height):(n.width=q.height,n.height=q.width):l=!0;f=Math.max(f,n.height)}else n.isEdge()&&
-(q=1,null!=n.edges?q=n.edges.length:mxLog.warn("edge.edges is null"),n.width=(q-1)*this.parallelEdgeSpacing);k+=n.width/2;n.setX(e,k);n.setGeneralPurposeVariable(e,k);k+=n.width/2;k+=this.intraCellSpacing;k>this.widestRankValue&&(this.widestRankValue=k,this.widestRank=e);this.rankWidths[e]=k}!0==l&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;k=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+k:c-
-k;for(m=0;m<g.length;m++)g[m].setY(e,c)}};
-mxCoordinateAssignment.prototype.minPath=function(a,b){for(var c=b.edgeMapper.getValues(),d=0;d<c.length;d++){var e=c[d];if(!(1>e.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,k=0,l=e.minRank+2;l<e.maxRank;l++){var m=e.getGeneralPurposeVariable(l);f!=m?(g=!1,f=m):k++}if(!g){for(var g=f=0,m=[],n=[],q=e.getGeneralPurposeVariable(e.minRank+1),l=e.minRank+1;l<e.maxRank-1;l++){var p=e.getX(l+1);q==p?(m[l-e.minRank-1]=q,f++):this.repositionValid(b,e,l+1,q)?(m[l-e.minRank-
-1]=q,f++):q=m[l-e.minRank-1]=p}q=e.getX(l);for(l=e.maxRank-1;l>e.minRank+1;l--)p=e.getX(l-1),q==p?(n[l-e.minRank-2]=q,g++):this.repositionValid(b,e,l-1,q)?(n[l-e.minRank-2]=q,g++):(n[l-e.minRank-2]=e.getX(l-1),q=p);if(g>k||f>k)if(g>=f)for(l=e.maxRank-2;l>e.minRank;l--)e.setX(l,n[l-e.minRank-1]);else if(f>g)for(l=e.minRank+2;l<e.maxRank;l++)e.setX(l,m[l-e.minRank-2])}}}};
+mxCoordinateAssignment.prototype.calculateWidestRank=function(a,b){var c=-this.interRankCellSpacing,d=0;this.rankWidths=[];this.rankY=[];for(var e=b.maxRank;0<=e;e--){for(var f=0,g=b.ranks[e],k=this.initialX,l=!1,n=0;n<g.length;n++){var m=g[n];if(m.isVertex()){var p=this.layout.getVertexBounds(m.cell);null!=p?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(m.width=p.width,m.height=p.height):(m.width=p.height,m.height=p.width):l=!0;f=Math.max(f,m.height)}else m.isEdge()&&
+(p=1,null!=m.edges?p=m.edges.length:mxLog.warn("edge.edges is null"),m.width=(p-1)*this.parallelEdgeSpacing);k+=m.width/2;m.setX(e,k);m.setGeneralPurposeVariable(e,k);k+=m.width/2;k+=this.intraCellSpacing;k>this.widestRankValue&&(this.widestRankValue=k,this.widestRank=e);this.rankWidths[e]=k}!0==l&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;k=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+k:c-
+k;for(n=0;n<g.length;n++)g[n].setY(e,c)}};
+mxCoordinateAssignment.prototype.minPath=function(a,b){for(var c=b.edgeMapper.getValues(),d=0;d<c.length;d++){var e=c[d];if(!(1>e.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,k=0,l=e.minRank+2;l<e.maxRank;l++){var n=e.getGeneralPurposeVariable(l);f!=n?(g=!1,f=n):k++}if(!g){for(var g=f=0,n=[],m=[],p=e.getGeneralPurposeVariable(e.minRank+1),l=e.minRank+1;l<e.maxRank-1;l++){var q=e.getX(l+1);p==q?(n[l-e.minRank-1]=p,f++):this.repositionValid(b,e,l+1,p)?(n[l-e.minRank-
+1]=p,f++):p=n[l-e.minRank-1]=q}p=e.getX(l);for(l=e.maxRank-1;l>e.minRank+1;l--)q=e.getX(l-1),p==q?(m[l-e.minRank-2]=p,g++):this.repositionValid(b,e,l-1,p)?(m[l-e.minRank-2]=p,g++):(m[l-e.minRank-2]=e.getX(l-1),p=q);if(g>k||f>k)if(g>=f)for(l=e.maxRank-2;l>e.minRank;l--)e.setX(l,m[l-e.minRank-1]);else if(f>g)for(l=e.minRank+2;l<e.maxRank;l++)e.setX(l,n[l-e.minRank-2])}}}};
mxCoordinateAssignment.prototype.repositionValid=function(a,b,c,d){a=a.ranks[c];for(var e=-1,f=0;f<a.length;f++)if(b==a[f]){e=f;break}if(0>e)return!1;f=b.getGeneralPurposeVariable(c);if(d<f){if(0==e)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}else if(d>f){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;c<b.ranks.length;c++)this.rankTopY[c]=Number.MAX_VALUE,this.rankBottomY[c]=-Number.MAX_VALUE;for(var d=b.vertexMapper.getValues(),c=0;c<d.length;c++)this.setVertexLocation(d[c]);(this.layout.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.layout.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(b);d=b.edgeMapper.getValues();
for(c=0;c<d.length;c++)this.setEdgePosition(d[c])};
-mxCoordinateAssignment.prototype.localEdgeProcessing=function(a){for(var b=0;b<a.ranks.length;b++)for(var c=a.ranks[b],d=0;d<c.length;d++){var e=c[d];if(e.isVertex())for(var f=e.getPreviousLayerConnectedCells(b),g=b-1,k=0;2>k;k++){if(-1<g&&g<a.ranks.length&&null!=f&&0<f.length){for(var l=[],m=0;m<f.length;m++){var n=new WeightedCellSorter(f[m],f[m].getX(g));l.push(n)}l.sort(WeightedCellSorter.prototype.compare);for(var n=e.x[0]-e.width/2,q=n+e.width,p=f=0,g=[],m=0;m<l.length;m++){var r=l[m].cell,
-s;if(r.isVertex()){s=0==k?e.connectsAsSource:e.connectsAsTarget;for(var t=0;t<s.length;t++)if(s[t].source==r||s[t].target==r)f+=s[t].edges.length,p++,g.push(s[t])}else f+=r.edges.length,p++,g.push(r)}e.width>(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep,q-=this.prefHozEdgeSep);l=(q-n)/f;n+=l/2;q=this.minEdgeJetty-this.prefVertEdgeOff;for(m=p=0;m<g.length;m++){r=g[m].edges.length;s=this.jettyPositions[g[m].ids[0]];null==s&&(s=[],this.jettyPositions[g[m].ids[0]]=s);m<f/2?
-q+=this.prefVertEdgeOff:m>f/2&&(q-=this.prefVertEdgeOff);for(t=0;t<r;t++)s[4*t+2*k]=n,n+=l,s[4*t+2*k+1]=q;p=Math.max(p,q)}}f=e.getNextLayerConnectedCells(b);g=b+1}}};
-mxCoordinateAssignment.prototype.setEdgePosition=function(a){var b=0;if(101207!=a.temp[0]){var c=a.maxRank,d=a.minRank;c==d&&(c=a.source.maxRank,d=a.target.minRank);for(var e=0,f=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,m=0;m<a.edges.length;m++){var n=a.edges[m],q=this.layout.getVisibleTerminal(n,!0),p=[],r=a.isReversed;q!=g&&(r=!r);if(null!=f){var s=r?
-2:0,t=r?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[c]:this.rankBottomY[c],v=f[4*e+1+s];r!=l&&(v=-v);var t=t+v,s=f[4*e+s],u=k.model.getTerminal(n,!0);this.layout.isPort(u)&&k.model.getParent(u)==q&&(s=k.view.getState(u),s=null!=s?s.x:q.geometry.x+a.source.width*u.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(p.push(new mxPoint(s,t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&p.push(new mxPoint(s,t+v))):(p.push(new mxPoint(t,
-s)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&p.push(new mxPoint(t+v,s)))}s=a.x.length-1;t=v=-1;q=a.maxRank-1;for(r&&(s=0,v=a.x.length,t=1,q=a.minRank+1);a.maxRank!=a.minRank&&s!=v;s+=t){var u=a.x[s]+b,y=(this.rankTopY[q]+this.rankBottomY[q+1])/2,z=(this.rankTopY[q-1]+this.rankBottomY[q])/2;if(r)var x=y,y=z,z=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(p.push(new mxPoint(u,y)),p.push(new mxPoint(u,z))):(p.push(new mxPoint(y,u)),p.push(new mxPoint(z,
-u)));this.limitX=Math.max(this.limitX,u);q+=t}null!=f&&(s=r?2:0,t=r?l?this.rankTopY[c]:this.rankBottomY[c]:l?this.rankBottomY[d]:this.rankTopY[d],v=f[4*e+3-s],r!=l&&(v=-v),t-=v,s=f[4*e+2-s],r=k.model.getTerminal(n,!1),q=this.layout.getVisibleTerminal(n,!1),this.layout.isPort(r)&&k.model.getParent(r)==q&&(s=k.view.getState(r),s=null!=s?s.x:q.geometry.x+a.target.width*r.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
-p.push(new mxPoint(s,t-v)),p.push(new mxPoint(s,t))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&p.push(new mxPoint(t-v,s)),p.push(new mxPoint(t,s))));a.isReversed&&this.processReversedEdge(a,n);this.layout.setEdgePoints(n,p);b=0==b?this.parallelEdgeSpacing:0<b?-b:-b+this.parallelEdgeSpacing;e++}a.temp[0]=101207}};
+mxCoordinateAssignment.prototype.localEdgeProcessing=function(a){for(var b=0;b<a.ranks.length;b++)for(var c=a.ranks[b],d=0;d<c.length;d++){var e=c[d];if(e.isVertex())for(var f=e.getPreviousLayerConnectedCells(b),g=b-1,k=0;2>k;k++){if(-1<g&&g<a.ranks.length&&null!=f&&0<f.length){for(var l=[],n=0;n<f.length;n++){var m=new WeightedCellSorter(f[n],f[n].getX(g));l.push(m)}l.sort(WeightedCellSorter.prototype.compare);for(var m=e.x[0]-e.width/2,p=m+e.width,q=f=0,g=[],n=0;n<l.length;n++){var s=l[n].cell,
+r;if(s.isVertex()){r=0==k?e.connectsAsSource:e.connectsAsTarget;for(var t=0;t<r.length;t++)if(r[t].source==s||r[t].target==s)f+=r[t].edges.length,q++,g.push(r[t])}else f+=s.edges.length,q++,g.push(s)}e.width>(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(m+=this.prefHozEdgeSep,p-=this.prefHozEdgeSep);l=(p-m)/f;m+=l/2;p=this.minEdgeJetty-this.prefVertEdgeOff;for(n=q=0;n<g.length;n++){s=g[n].edges.length;r=this.jettyPositions[g[n].ids[0]];null==r&&(r=[],this.jettyPositions[g[n].ids[0]]=r);n<f/2?
+p+=this.prefVertEdgeOff:n>f/2&&(p-=this.prefVertEdgeOff);for(t=0;t<s;t++)r[4*t+2*k]=m,m+=l,r[4*t+2*k+1]=p;q=Math.max(q,p)}}f=e.getNextLayerConnectedCells(b);g=b+1}}};
+mxCoordinateAssignment.prototype.setEdgePosition=function(a){var b=0;if(101207!=a.temp[0]){var c=a.maxRank,d=a.minRank;c==d&&(c=a.source.maxRank,d=a.target.minRank);for(var e=0,f=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,n=0;n<a.edges.length;n++){var m=a.edges[n],p=this.layout.getVisibleTerminal(m,!0),q=[],s=a.isReversed;p!=g&&(s=!s);if(null!=f){var r=s?
+2:0,t=s?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[c]:this.rankBottomY[c],u=f[4*e+1+r];s!=l&&(u=-u);var t=t+u,r=f[4*e+r],v=k.model.getTerminal(m,!0);this.layout.isPort(v)&&k.model.getParent(v)==p&&(r=k.view.getState(v),r=null!=r?r.x:p.geometry.x+a.source.width*v.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(r,t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(r,t+u))):(q.push(new mxPoint(t,
+r)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(t+u,r)))}r=a.x.length-1;t=u=-1;p=a.maxRank-1;for(s&&(r=0,u=a.x.length,t=1,p=a.minRank+1);a.maxRank!=a.minRank&&r!=u;r+=t){var v=a.x[r]+b,z=(this.rankTopY[p]+this.rankBottomY[p+1])/2,y=(this.rankTopY[p-1]+this.rankBottomY[p])/2;if(s)var x=z,z=y,y=x;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(v,z)),q.push(new mxPoint(v,y))):(q.push(new mxPoint(z,v)),q.push(new mxPoint(y,
+v)));this.limitX=Math.max(this.limitX,v);p+=t}null!=f&&(r=s?2:0,t=s?l?this.rankTopY[c]:this.rankBottomY[c]:l?this.rankBottomY[d]:this.rankTopY[d],u=f[4*e+3-r],s!=l&&(u=-u),t-=u,r=f[4*e+2-r],s=k.model.getTerminal(m,!1),p=this.layout.getVisibleTerminal(m,!1),this.layout.isPort(s)&&k.model.getParent(s)==p&&(r=k.view.getState(s),r=null!=r?r.x:p.geometry.x+a.target.width*s.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
+q.push(new mxPoint(r,t-u)),q.push(new mxPoint(r,t))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(t-u,r)),q.push(new mxPoint(t,r))));a.isReversed&&this.processReversedEdge(a,m);this.layout.setEdgePoints(m,q);b=0==b?this.parallelEdgeSpacing:0<b?-b:-b+this.parallelEdgeSpacing;e++}a.temp[0]=101207}};
mxCoordinateAssignment.prototype.setVertexLocation=function(a){var b=a.cell,c=a.x[0]-a.width/2,d=a.y[0]-a.height/2;this.rankTopY[a.minRank]=Math.min(this.rankTopY[a.minRank],d);this.rankBottomY[a.minRank]=Math.max(this.rankBottomY[a.minRank],d+a.height);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(b,c,d):this.layout.setVertexLocation(b,d,c);this.limitX=Math.max(this.limitX,c+a.width)};
mxCoordinateAssignment.prototype.processReversedEdge=function(a,b){};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.weightedValue<a.weightedValue?1:b.nudge?-1:1:0};
function mxSwimlaneOrdering(a){this.layout=a}mxSwimlaneOrdering.prototype=new mxHierarchicalLayoutStage;mxSwimlaneOrdering.prototype.constructor=mxSwimlaneOrdering;mxSwimlaneOrdering.prototype.layout=null;
-mxSwimlaneOrdering.prototype.execute=function(a){a=this.layout.getModel();var b=mxUtils.clone(a.vertexMapper,null,!0),c=null;if(null!=a.roots)for(var d=a.roots,c=[],e=0;e<d.length;e++)mxCellPath.create(d[e]),c[e]=a.vertexMapper.get(d[e]);a.visit(function(a,c,d,e,m){e=null!=a&&a.swimlaneIndex==c.swimlaneIndex&&c.isAncestor(a);m=null!=a&&null!=d&&a.swimlaneIndex<c.swimlaneIndex&&d.source==c;e?(d.invert(),mxUtils.remove(d,a.connectsAsSource),c.connectsAsSource.push(d),a.connectsAsTarget.push(d),mxUtils.remove(d,
-c.connectsAsTarget)):m&&(d.invert(),mxUtils.remove(d,a.connectsAsTarget),c.connectsAsTarget.push(d),a.connectsAsSource.push(d),mxUtils.remove(d,c.connectsAsSource));a=mxCellPath.create(c.cell);delete b[a]},c,!0,null)};function mxHierarchicalLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxHierarchicalLayout.prototype=new mxGraphLayout;
+mxSwimlaneOrdering.prototype.execute=function(a){a=this.layout.getModel();var b=mxUtils.clone(a.vertexMapper,null,!0),c=null;if(null!=a.roots)for(var d=a.roots,c=[],e=0;e<d.length;e++)mxCellPath.create(d[e]),c[e]=a.vertexMapper.get(d[e]);a.visit(function(a,c,d,e,n){e=null!=a&&a.swimlaneIndex==c.swimlaneIndex&&c.isAncestor(a);n=null!=a&&null!=d&&a.swimlaneIndex<c.swimlaneIndex&&d.source==c;e?(d.invert(),mxUtils.remove(d,a.connectsAsSource),c.connectsAsSource.push(d),a.connectsAsTarget.push(d),mxUtils.remove(d,
+c.connectsAsTarget)):n&&(d.invert(),mxUtils.remove(d,a.connectsAsTarget),c.connectsAsTarget.push(d),a.connectsAsSource.push(d),mxUtils.remove(d,c.connectsAsSource));a=mxCellPath.create(c.cell);delete b[a]},c,!0,null)};function mxHierarchicalLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxHierarchicalLayout.prototype=new mxGraphLayout;
mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout;mxHierarchicalLayout.prototype.roots=null;mxHierarchicalLayout.prototype.resizeParent=!1;mxHierarchicalLayout.prototype.maintainParentLocation=!1;mxHierarchicalLayout.prototype.moveParent=!1;mxHierarchicalLayout.prototype.parentBorder=0;mxHierarchicalLayout.prototype.intraCellSpacing=30;mxHierarchicalLayout.prototype.interRankCellSpacing=100;mxHierarchicalLayout.prototype.interHierarchySpacing=60;
mxHierarchicalLayout.prototype.parallelEdgeSpacing=10;mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH;mxHierarchicalLayout.prototype.fineTuning=!0;mxHierarchicalLayout.prototype.tightenToSource=!0;mxHierarchicalLayout.prototype.disableEdgeStyle=!0;mxHierarchicalLayout.prototype.traverseAncestors=!0;mxHierarchicalLayout.prototype.model=null;mxHierarchicalLayout.prototype.edgesCache=null;mxHierarchicalLayout.prototype.edgeSourceTermCache=null;
mxHierarchicalLayout.prototype.edgesTargetTermCache=null;mxHierarchicalLayout.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE;mxHierarchicalLayout.prototype.getModel=function(){return this.model};
mxHierarchicalLayout.prototype.execute=function(a,b){this.parent=a;var c=this.graph.model;this.edgesCache=new mxDictionary;this.edgeSourceTermCache=new mxDictionary;this.edgesTargetTermCache=new mxDictionary;null!=b&&!(b instanceof Array)&&(b=[b]);if(!(null==b&&null==a)){this.parentY=this.parentX=null;if(a!=this.root&&null!=c.isVertex(a)&&this.maintainParentLocation){var d=this.graph.getCellGeometry(a);null!=d&&(this.parentX=d.x,this.parentY=d.y)}if(null!=b){for(var e=[],f=0;f<b.length;f++)(null!=
a?c.isAncestor(a,b[f]):1)&&c.isVertex(b[f])&&e.push(b[f]);this.roots=e}c.beginUpdate();try{this.run(a),this.resizeParent&&!this.graph.isCellCollapsed(a)&&this.graph.updateGroupBounds([a],this.parentBorder,this.moveParent),null!=this.parentX&&null!=this.parentY&&(d=this.graph.getCellGeometry(a),null!=d&&(d=d.clone(),d.x=this.parentX,d.y=this.parentY,c.setGeometry(a,d)))}finally{c.endUpdate()}}};
-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 k=b[g];if(d.isVertex(k)&&this.graph.isCellVisible(k)){for(var l=this.getEdges(k),m=0,n=0,q=0;q<l.length;q++)this.getVisibleTerminal(l[q],!0)==k?m++:n++;0==n&&0<m&&c.push(k);l=m-n;l>f&&(f=l,e=k)}}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 k=b[g];if(d.isVertex(k)&&this.graph.isCellVisible(k)){for(var l=this.getEdges(k),n=0,m=0,p=0;p<l.length;p++)this.getVisibleTerminal(l[p],!0)==k?n++:m++;0==m&&0<n&&c.push(k);l=n-m;l>f&&(f=l,e=k)}}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;f<e;f++){var g=c.getChildAt(a,f);if(this.isPort(g))b=b.concat(c.getEdges(g,!0,!0));else if(d||!this.graph.isCellVisible(g))b=b.concat(c.getEdges(g,!0,!0))}b=b.concat(c.getEdges(a,!0,!0));c=[];for(f=0;f<b.length;f++)d=this.getVisibleTerminal(b[f],!0),e=this.getVisibleTerminal(b[f],!1),(d==e||d!=e&&(e==a&&(null==
this.parent||this.graph.isValidAncestor(d,this.parent,this.traverseAncestors))||d==a&&(null==this.parent||this.graph.isValidAncestor(e,this.parent,this.traverseAncestors))))&&c.push(b[f]);this.edgesCache.put(a,c);return c};
mxHierarchicalLayout.prototype.getVisibleTerminal=function(a,b){var c=this.edgesTargetTermCache;b&&(c=this.edgeSourceTermCache);var d=c.get(a);if(null!=d)return d;var d=this.graph.view.getState(a),e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b);null==e&&(e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b));null!=e&&(this.isPort(e)&&(e=this.graph.model.getParent(e)),c.put(a,e));return e};
@@ -927,7 +927,7 @@ mxHierarchicalLayout.prototype.run=function(a){var b=[],c=[];if(null==this.roots
0;e<b.length;e++){k=b[e];d=[];for(f in k)d.push(k[f]);this.model=new mxGraphHierarchyModel(this,d,this.roots,a,this.tightenToSource);this.cycleStage(a);this.layeringStage();this.crossingStage(a);c=this.placementStage(c,a)}};
mxHierarchicalLayout.prototype.filterDescendants=function(a,b){var c=this.graph.model;c.isVertex(a)&&a!=this.parent&&this.graph.isCellVisible(a)&&(b[mxObjectIdentity.get(a)]=a);if(this.traverseAncestors||a==this.parent&&this.graph.isCellVisible(a))for(var d=c.getChildCount(a),e=0;e<d;e++){var f=c.getChildAt(a,e);this.isPort(f)||this.filterDescendants(f,b)}};mxHierarchicalLayout.prototype.isPort=function(a){return a.geometry.relative?!0:!1};
mxHierarchicalLayout.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.getVisibleTerminal(d[f],!0),k=this.getVisibleTerminal(d[f],!1);(g==a&&k==b||!c&&g==b&&k==a)&&e.push(d[f])}return e};
-mxHierarchicalLayout.prototype.traverse=function(a,b,c,d,e,f,g){if(null!=a&&null!=d){var k=mxObjectIdentity.get(a);if(null==d[k]&&(null==g||null!=g[k])){null==e[k]&&(e[k]=a);null==d[k]&&(d[k]=a);null!==g&&delete g[k];var l=this.getEdges(a),k=[];for(c=0;c<l.length;c++)k[c]=this.getVisibleTerminal(l[c],!0)==a;for(c=0;c<l.length;c++)if(!b||k[c]){a=this.getVisibleTerminal(l[c],!k[c]);for(var m=1,n=0;n<l.length;n++)if(n!=c){var q=k[n];this.getVisibleTerminal(l[n],!q)==a&&(q?m++:m--)}0<=m&&(e=this.traverse(a,
+mxHierarchicalLayout.prototype.traverse=function(a,b,c,d,e,f,g){if(null!=a&&null!=d){var k=mxObjectIdentity.get(a);if(null==d[k]&&(null==g||null!=g[k])){null==e[k]&&(e[k]=a);null==d[k]&&(d[k]=a);null!==g&&delete g[k];var l=this.getEdges(a),k=[];for(c=0;c<l.length;c++)k[c]=this.getVisibleTerminal(l[c],!0)==a;for(c=0;c<l.length;c++)if(!b||k[c]){a=this.getVisibleTerminal(l[c],!k[c]);for(var n=1,m=0;m<l.length;m++)if(m!=c){var p=k[m];this.getVisibleTerminal(l[m],!p)==a&&(p?n++:n--)}0<=n&&(e=this.traverse(a,
b,l[c],d,e,f,g))}}else if(null==e[k])for(c=0;c<f.length;c++)if(b=f[c],null!=b[k]){for(l in b)e[l]=b[l];f.splice(c,1);break}}return e};mxHierarchicalLayout.prototype.cycleStage=function(a){(new mxMinimumCycleRemover(this)).execute(a)};mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxHierarchicalLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
mxHierarchicalLayout.prototype.placementStage=function(a,b){var c=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,a,this.parallelEdgeSpacing);c.fineTuning=this.fineTuning;c.execute(b);return c.limitX+this.interHierarchySpacing};function mxSwimlaneLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}mxSwimlaneLayout.prototype=new mxGraphLayout;
mxSwimlaneLayout.prototype.constructor=mxSwimlaneLayout;mxSwimlaneLayout.prototype.roots=null;mxSwimlaneLayout.prototype.swimlanes=null;mxSwimlaneLayout.prototype.dummyVertices=null;mxSwimlaneLayout.prototype.dummyVertexWidth=50;mxSwimlaneLayout.prototype.resizeParent=!1;mxSwimlaneLayout.prototype.maintainParentLocation=!1;mxSwimlaneLayout.prototype.moveParent=!1;mxSwimlaneLayout.prototype.parentBorder=30;mxSwimlaneLayout.prototype.intraCellSpacing=30;
@@ -938,7 +938,7 @@ this.graph.getChildCells(b[e]);if(null==f||0==f.length)f=this.graph.insertVertex
mxSwimlaneLayout.prototype.updateGroupBounds=function(){var a=[],b=this.model,c;for(c in b.edgeMapper)for(var d=b.edgeMapper[c],e=0;e<d.edges.length;e++)a.push(d.edges[e]);a=this.graph.getBoundingBoxFromGeometry(a,!0);b=[];for(e=0;e<this.swimlanes.length;e++){var f=this.swimlanes[e];c=this.graph.getCellGeometry(f);if(null!=c){var g=this.graph.getChildCells(f),d=this.graph.isSwimlane(f)?this.graph.getStartSize(f):new mxRectangle,f=this.graph.getBoundingBoxFromGeometry(g);b[e]=f;d=f.y+c.y-d.height-
this.parentBorder;c=f.y+c.y+f.height;null==a?a=new mxRectangle(0,d,0,c-d):(a.y=Math.min(a.y,d),c=Math.max(a.y+a.height,c),a.height=c-a.y)}}for(e=0;e<this.swimlanes.length;e++)if(f=this.swimlanes[e],c=this.graph.getCellGeometry(f),null!=c){var g=this.graph.getChildCells(f),d=this.graph.isSwimlane(f)?this.graph.getStartSize(f):new mxRectangle,k=c.clone(),l=0==e?this.parentBorder:this.interRankCellSpacing/2;k.x+=b[e].x-d.width-l;k.y=k.y+a.y-c.y-this.parentBorder;k.width=b[e].width+d.width+this.interRankCellSpacing/
2+l;k.height=a.height+d.height+2*this.parentBorder;this.graph.model.setGeometry(f,k);this.graph.moveCells(g,-b[e].x+d.width+l,c.y-a.y+this.parentBorder)}};
-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 k=b[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),m=0,n=0,q=0;q<l.length;q++){var p=this.getVisibleTerminal(l[q],!0);p==k?(p=this.getVisibleTerminal(l[q],!1),d.isAncestor(a,p)&&m++):d.isAncestor(a,p)&&n++}0==n&&0<m&&c.push(k);l=m-n;l>f&&(f=l,e=k)}}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 k=b[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),n=0,m=0,p=0;p<l.length;p++){var q=this.getVisibleTerminal(l[p],!0);q==k?(q=this.getVisibleTerminal(l[p],!1),d.isAncestor(a,q)&&n++):d.isAncestor(a,q)&&m++}0==m&&0<n&&c.push(k);l=n-m;l>f&&(f=l,e=k)}}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<e;f++){var g=c.getChildAt(a,f);if(this.isPort(g))b=b.concat(c.getEdges(g,!0,!0));else if(d||!this.graph.isCellVisible(g))b=b.concat(c.getEdges(g,!0,!0))}b=b.concat(c.getEdges(a,!0,!0));c=[];for(f=0;f<b.length;f++)d=this.getVisibleTerminal(b[f],!0),e=this.getVisibleTerminal(b[f],!1),(d==e||d!=e&&(e==a&&(null==this.parent||
this.graph.isValidAncestor(d,this.parent,this.traverseAncestors))||d==a&&(null==this.parent||this.graph.isValidAncestor(e,this.parent,this.traverseAncestors))))&&c.push(b[f]);this.edgesCache.put(a,c);return c};
mxSwimlaneLayout.prototype.getVisibleTerminal=function(a,b){var c=this.edgesTargetTermCache;b&&(c=this.edgeSourceTermCache);var d=c.get(a);if(null!=d)return d;var d=this.graph.view.getState(a),e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b);null==e&&(e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b));null!=e&&(this.isPort(e)&&(e=this.graph.model.getParent(e)),c.put(a,e));return e};
@@ -946,8 +946,8 @@ mxSwimlaneLayout.prototype.run=function(a){var b=[],c=[];if(null!=this.swimlanes
e=!0;for(f in d)if(null!=d[f]){e=!1;break}}}}else for(e=0;e<this.roots.length;e++)l={},b.push(l),this.traverse(this.roots[e],!0,null,c,l,b,null);b=[];for(f in c)b.push(c[f]);this.model=new mxSwimlaneModel(this,b,this.roots,a,this.tightenToSource);this.cycleStage(a);this.layeringStage();this.crossingStage(a);initialX=this.placementStage(0,a)};
mxSwimlaneLayout.prototype.filterDescendants=function(a,b){var c=this.graph.model;c.isVertex(a)&&a!=this.parent&&c.getParent(a)!=this.parent&&this.graph.isCellVisible(a)&&(b[mxObjectIdentity.get(a)]=a);if(this.traverseAncestors||a==this.parent&&this.graph.isCellVisible(a))for(var d=c.getChildCount(a),e=0;e<d;e++){var f=c.getChildAt(a,e);this.isPort(f)||this.filterDescendants(f,b)}};mxSwimlaneLayout.prototype.isPort=function(a){return a.geometry.relative?!0:!1};
mxSwimlaneLayout.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.getVisibleTerminal(d[f],!0),k=this.getVisibleTerminal(d[f],!1);(g==a&&k==b||!c&&g==b&&k==a)&&e.push(d[f])}return e};
-mxSwimlaneLayout.prototype.traverse=function(a,b,c,d,e,f,g,k){if(null!=a&&null!=d){var l=mxObjectIdentity.get(a);if(null==d[l]&&(null==g||null!=g[l])){null==e[l]&&(e[l]=a);null==d[l]&&(d[l]=a);null!==g&&delete g[l];var m=this.getEdges(a),l=this.graph.model;for(c=0;c<m.length;c++){var n=this.getVisibleTerminal(m[c],!0),q=n==a;q&&(n=this.getVisibleTerminal(m[c],!1));for(var p=0,p=0;p<this.swimlanes.length&&!l.isAncestor(this.swimlanes[p],n);p++);if(!(p>=this.swimlanes.length)&&(p>k||(!b||q)&&p==k))e=
-this.traverse(n,b,m[c],d,e,f,g,p)}}else if(null==e[l])for(c=0;c<f.length;c++)if(a=f[c],null!=a[l]){for(m in a)e[m]=a[m];f.splice(c,1);break}}return e};mxSwimlaneLayout.prototype.cycleStage=function(a){(new mxSwimlaneOrdering(this)).execute(a)};mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxSwimlaneLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
+mxSwimlaneLayout.prototype.traverse=function(a,b,c,d,e,f,g,k){if(null!=a&&null!=d){var l=mxObjectIdentity.get(a);if(null==d[l]&&(null==g||null!=g[l])){null==e[l]&&(e[l]=a);null==d[l]&&(d[l]=a);null!==g&&delete g[l];var n=this.getEdges(a),l=this.graph.model;for(c=0;c<n.length;c++){var m=this.getVisibleTerminal(n[c],!0),p=m==a;p&&(m=this.getVisibleTerminal(n[c],!1));for(var q=0,q=0;q<this.swimlanes.length&&!l.isAncestor(this.swimlanes[q],m);q++);if(!(q>=this.swimlanes.length)&&(q>k||(!b||p)&&q==k))e=
+this.traverse(m,b,n[c],d,e,f,g,q)}}else if(null==e[l])for(c=0;c<f.length;c++)if(a=f[c],null!=a[l]){for(n in a)e[n]=a[n];f.splice(c,1);break}}return e};mxSwimlaneLayout.prototype.cycleStage=function(a){(new mxSwimlaneOrdering(this)).execute(a)};mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxSwimlaneLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
mxSwimlaneLayout.prototype.placementStage=function(a,b){var c=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,a,this.parallelEdgeSpacing);c.fineTuning=this.fineTuning;c.execute(b);return c.limitX+this.interHierarchySpacing};function mxGraphModel(a){this.currentEdit=this.createUndoableEdit();null!=a?this.setRoot(a):this.clear()}mxGraphModel.prototype=new mxEventSource;mxGraphModel.prototype.constructor=mxGraphModel;mxGraphModel.prototype.root=null;
mxGraphModel.prototype.cells=null;mxGraphModel.prototype.maintainEdgeParent=!0;mxGraphModel.prototype.ignoreRelativeEdgeParent=!0;mxGraphModel.prototype.createIds=!0;mxGraphModel.prototype.prefix="";mxGraphModel.prototype.postfix="";mxGraphModel.prototype.nextId=0;mxGraphModel.prototype.currentEdit=null;mxGraphModel.prototype.updateLevel=0;mxGraphModel.prototype.endingUpdate=!1;mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())};mxGraphModel.prototype.isCreateIds=function(){return this.createIds};
mxGraphModel.prototype.setCreateIds=function(a){this.createIds=a};mxGraphModel.prototype.createRoot=function(){var a=new mxCell;a.insert(new mxCell);return a};mxGraphModel.prototype.getCell=function(a){return null!=this.cells?this.cells[a]:null};mxGraphModel.prototype.filterCells=function(a,b){var c=null;if(null!=a)for(var c=[],d=0;d<a.length;d++)b(a[d])&&c.push(a[d]);return c};mxGraphModel.prototype.getDescendants=function(a){return this.filterDescendants(null,a)};
@@ -965,8 +965,8 @@ mxGraphModel.prototype.getChildCells=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:
mxGraphModel.prototype.setTerminal=function(a,b,c){var d=b!=this.getTerminal(a,c);this.execute(new mxTerminalChange(this,a,b,c));this.maintainEdgeParent&&d&&this.updateEdgeParent(a,this.getRoot());return b};mxGraphModel.prototype.setTerminals=function(a,b,c){this.beginUpdate();try{this.setTerminal(a,b,!0),this.setTerminal(a,c,!1)}finally{this.endUpdate()}};
mxGraphModel.prototype.terminalForCellChanged=function(a,b,c){var d=this.getTerminal(a,c);null!=b?b.insertEdge(a,c):null!=d&&d.removeEdge(a,c);return d};mxGraphModel.prototype.getEdgeCount=function(a){return null!=a?a.getEdgeCount():0};mxGraphModel.prototype.getEdgeAt=function(a,b){return null!=a?a.getEdgeAt(b):null};mxGraphModel.prototype.getDirectedEdgeCount=function(a,b,c){for(var d=0,e=this.getEdgeCount(a),f=0;f<e;f++){var g=this.getEdgeAt(a,f);g!=c&&this.getTerminal(g,b)==a&&d++}return d};
mxGraphModel.prototype.getConnections=function(a){return this.getEdges(a,!0,!0,!1)};mxGraphModel.prototype.getIncomingEdges=function(a){return this.getEdges(a,!0,!1,!1)};mxGraphModel.prototype.getOutgoingEdges=function(a){return this.getEdges(a,!1,!0,!1)};
-mxGraphModel.prototype.getEdges=function(a,b,c,d){b=null!=b?b:!0;c=null!=c?c:!0;d=null!=d?d:!0;for(var e=this.getEdgeCount(a),f=[],g=0;g<e;g++){var k=this.getEdgeAt(a,g),l=this.getTerminal(k,!0),m=this.getTerminal(k,!1);(d&&l==m||l!=m&&(b&&m==a||c&&l==a))&&f.push(k)}return f};
-mxGraphModel.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;var d=this.getEdgeCount(a),e=this.getEdgeCount(b),f=a,g=d;e<d&&(g=e,f=b);d=[];for(e=0;e<g;e++){var k=this.getEdgeAt(f,e),l=this.getTerminal(k,!0),m=this.getTerminal(k,!1),n=m==a&&l==b;(l==a&&m==b||!c&&n)&&d.push(k)}return d};
+mxGraphModel.prototype.getEdges=function(a,b,c,d){b=null!=b?b:!0;c=null!=c?c:!0;d=null!=d?d:!0;for(var e=this.getEdgeCount(a),f=[],g=0;g<e;g++){var k=this.getEdgeAt(a,g),l=this.getTerminal(k,!0),n=this.getTerminal(k,!1);(d&&l==n||l!=n&&(b&&n==a||c&&l==a))&&f.push(k)}return f};
+mxGraphModel.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;var d=this.getEdgeCount(a),e=this.getEdgeCount(b),f=a,g=d;e<d&&(g=e,f=b);d=[];for(e=0;e<g;e++){var k=this.getEdgeAt(f,e),l=this.getTerminal(k,!0),n=this.getTerminal(k,!1),m=n==a&&l==b;(l==a&&n==b||!c&&m)&&d.push(k)}return d};
mxGraphModel.prototype.getOpposites=function(a,b,c,d){c=null!=c?c:!0;d=null!=d?d:!0;var e=[];if(null!=a)for(var f=0;f<a.length;f++){var g=this.getTerminal(a[f],!0),k=this.getTerminal(a[f],!1);g==b&&null!=k&&k!=b&&d?e.push(k):k==b&&null!=g&&g!=b&&c&&e.push(g)}return e};
mxGraphModel.prototype.getTopmostCells=function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.put(a[d],!0);for(d=0;d<a.length;d++){for(var e=a[d],f=!0,g=this.getParent(e);null!=g;){if(b.get(g)){f=!1;break}g=this.getParent(g)}f&&c.push(e)}return c};mxGraphModel.prototype.isVertex=function(a){return null!=a?a.isVertex():!1};mxGraphModel.prototype.isEdge=function(a){return null!=a?a.isEdge():!1};mxGraphModel.prototype.isConnectable=function(a){return null!=a?a.isConnectable():!1};
mxGraphModel.prototype.getValue=function(a){return null!=a?a.getValue():null};mxGraphModel.prototype.setValue=function(a,b){this.execute(new mxValueChange(this,a,b));return b};mxGraphModel.prototype.valueForCellChanged=function(a,b){return a.valueChanged(b)};mxGraphModel.prototype.getGeometry=function(a){return null!=a?a.getGeometry():null};mxGraphModel.prototype.setGeometry=function(a,b){b!=this.getGeometry(a)&&this.execute(new mxGeometryChange(this,a,b));return b};
@@ -976,7 +976,7 @@ mxGraphModel.prototype.visibleStateForCellChanged=function(a,b){var c=this.isVis
mxGraphModel.prototype.endUpdate=function(){this.updateLevel--;0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT));if(!this.endingUpdate){this.endingUpdate=0==this.updateLevel;this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var a=this.currentEdit;this.currentEdit=this.createUndoableEdit();a.notify();this.fireEvent(new mxEventObject(mxEvent.UNDO,
"edit",a))}}finally{this.endingUpdate=!1}}};mxGraphModel.prototype.createUndoableEdit=function(){var a=new mxUndoableEdit(this,!0);a.notify=function(){a.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",a,"changes",a.changes));a.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",a,"changes",a.changes))};return a};
mxGraphModel.prototype.mergeChildren=function(a,b,c){c=null!=c?c:!0;this.beginUpdate();try{var d={};this.mergeChildrenImpl(a,b,c,d);for(var e in d){var f=d[e],g=this.getTerminal(f,!0);null!=g&&(g=d[mxCellPath.create(g)],this.setTerminal(f,g,!0));g=this.getTerminal(f,!1);null!=g&&(g=d[mxCellPath.create(g)],this.setTerminal(f,g,!1))}}finally{this.endUpdate()}};
-mxGraphModel.prototype.mergeChildrenImpl=function(a,b,c,d){this.beginUpdate();try{for(var e=a.getChildCount(),f=0;f<e;f++){var g=a.getChildAt(f);if("function"==typeof g.getId){var k=g.getId(),l=null!=k&&(!this.isEdge(g)||!c)?this.getCell(k):null;if(null==l){var m=g.clone();m.setId(k);m.setTerminal(g.getTerminal(!0),!0);m.setTerminal(g.getTerminal(!1),!1);l=b.insert(m);this.cellAdded(l)}d[mxCellPath.create(g)]=l;this.mergeChildrenImpl(g,l,c,d)}}}finally{this.endUpdate()}};
+mxGraphModel.prototype.mergeChildrenImpl=function(a,b,c,d){this.beginUpdate();try{for(var e=a.getChildCount(),f=0;f<e;f++){var g=a.getChildAt(f);if("function"==typeof g.getId){var k=g.getId(),l=null!=k&&(!this.isEdge(g)||!c)?this.getCell(k):null;if(null==l){var n=g.clone();n.setId(k);n.setTerminal(g.getTerminal(!0),!0);n.setTerminal(g.getTerminal(!1),!1);l=b.insert(n);this.cellAdded(l)}d[mxCellPath.create(g)]=l;this.mergeChildrenImpl(g,l,c,d)}}}finally{this.endUpdate()}};
mxGraphModel.prototype.getParents=function(a){var b=[];if(null!=a)for(var c=new mxDictionary,d=0;d<a.length;d++){var e=this.getParent(a[d]);null!=e&&!c.get(e)&&(c.put(e,!0),b.push(e))}return b};mxGraphModel.prototype.cloneCell=function(a){return null!=a?this.cloneCells([a],!0)[0]:null};
mxGraphModel.prototype.cloneCells=function(a,b,c){c=null!=c?c:{};for(var d=[],e=0;e<a.length;e++)null!=a[e]?d.push(this.cloneCellImpl(a[e],c,b)):d.push(null);for(e=0;e<d.length;e++)null!=d[e]&&this.restoreClone(d[e],a[e],c);return d};mxGraphModel.prototype.cloneCellImpl=function(a,b,c){var d=this.cellCloned(a);b[mxObjectIdentity.get(a)]=d;if(c){c=this.getChildCount(a);for(var e=0;e<c;e++){var f=this.cloneCellImpl(this.getChildAt(a,e),b,!0);d.insert(f)}}return d};
mxGraphModel.prototype.cellCloned=function(a){return a.clone()};mxGraphModel.prototype.restoreClone=function(a,b,c){var d=this.getTerminal(b,!0);null!=d&&(d=c[mxObjectIdentity.get(d)],null!=d&&d.insertEdge(a,!0));d=this.getTerminal(b,!1);null!=d&&(d=c[mxObjectIdentity.get(d)],null!=d&&d.insertEdge(a,!1));for(var d=this.getChildCount(a),e=0;e<d;e++)this.restoreClone(this.getChildAt(a,e),this.getChildAt(b,e),c)};function mxRootChange(a,b){this.model=a;this.previous=this.root=b}
@@ -1007,46 +1007,46 @@ b);this.relative||(this.x=parseFloat(this.x)*a,this.y=parseFloat(this.y)*b,c&&(b
mxGeometry.prototype.equals=function(a){return mxRectangle.prototype.equals.apply(this,arguments)&&this.relative==a.relative&&(null==this.sourcePoint&&null==a.sourcePoint||null!=this.sourcePoint&&this.sourcePoint.equals(a.sourcePoint))&&(null==this.targetPoint&&null==a.targetPoint||null!=this.targetPoint&&this.targetPoint.equals(a.targetPoint))&&(null==this.points&&null==a.points||null!=this.points&&mxUtils.equalPoints(this.points,a.points))&&(null==this.alternateBounds&&null==a.alternateBounds||
null!=this.alternateBounds&&this.alternateBounds.equals(a.alternateBounds))&&(null==this.offset&&null==a.offset||null!=this.offset&&this.offset.equals(a.offset))};
var mxCellPath={PATH_SEPARATOR:".",create:function(a){var b="";if(null!=a)for(var c=a.getParent();null!=c;)b=c.getIndex(a)+mxCellPath.PATH_SEPARATOR+b,a=c,c=a.getParent();a=b.length;1<a&&(b=b.substring(0,a-1));return b},getParentPath:function(a){if(null!=a){var b=a.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=b)return a.substring(0,b);if(0<a.length)return""}return null},resolve:function(a,b){var c=a;if(null!=b)for(var d=b.split(mxCellPath.PATH_SEPARATOR),e=0;e<d.length;e++)c=c.getChildAt(parseInt(d[e]));
-return c},compare:function(a,b){for(var c=Math.min(a.length,b.length),d=0,e=0;e<c;e++)if(a[e]!=b[e]){0==a[e].length||0==b[e].length?d=a[e]==b[e]?0:a[e]>b[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),k=Math.PI,l=Math.PI/2-f,m=Math.atan2(a.height,a.width);f<-k+m||f>k-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(l)/2):f<m?(g.x=a.x+a.width,g.y=e+a.width*Math.tan(f)/2):(g.y=a.y+a.height,g.x=b+a.height*Math.tan(l)/2);d&&(c.x>=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.x<a.x?g.x=a.x:c.x>a.x+a.width&&(g.x=a.x+a.width),c.y<a.y?g.y=a.y:c.y>a.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,k=a.height/2,l=e+g,m=f+k;b=c.x;c=c.y;var n=parseInt(b-l),q=parseInt(c-m);if(0==n&&0!=q)return new mxPoint(l,
-m+k*q/Math.abs(q));if(0==n&&0==q)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/(k*k)))||0,b<=e&&(a=-a),new mxPoint(l+a,c);if(b>=e&&b<=e+a.width)return a=b-l,a=Math.sqrt(k*k*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,m+a)}e=q/n;m-=e*l;f=g*g*e*e+k*k;a=-2*l*f;k=Math.sqrt(a*a-4*f*(g*g*e*e*l*l+k*k*l*l-g*g*k*k));g=(-a+k)/(2*f);k=(-a-k)/(2*f);l=e*g+m;m=e*k+m;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(l-c,2));b=Math.sqrt(Math.pow(k-b,2)+Math.pow(m-c,2));f=c=0;e<b?(c=
-g,f=l):(c=k,f=m);return new mxPoint(c,f)},RhombusPerimeter:function(a,b,c,d){b=a.x;var e=a.y,f=a.width;a=a.height;var g=b+f/2,k=e+a/2,l=c.x;c=c.y;if(g==l)return k>c?new mxPoint(g,e):new mxPoint(g,e+a);if(k==c)return g>l?new mxPoint(b,k):new mxPoint(b+f,k);var m=g,n=k;d&&(l>=b&&l<=b+f?m=l:c>=e&&c<=e+a&&(n=c));return l<g?c<k?mxUtils.intersection(l,c,m,n,g,e,b,k):mxUtils.intersection(l,c,m,n,g,e+a,b,k):c<k?mxUtils.intersection(l,c,m,n,g,e,b+f,k):mxUtils.intersection(l,c,m,n,g,e+a,b+f,k)},TrianglePerimeter:function(a,
-b,c,d){b=null!=b?b.style[mxConstants.STYLE_DIRECTION]:null;var e=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH,f=a.x,g=a.y,k=a.width;a=a.height;var l=f+k/2,m=g+a/2,n=new mxPoint(f,g),q=new mxPoint(f+k,m),p=new mxPoint(f,g+a);b==mxConstants.DIRECTION_NORTH?(n=p,q=new mxPoint(l,g),p=new mxPoint(f+k,g+a)):b==mxConstants.DIRECTION_SOUTH?(q=new mxPoint(l,g+a),p=new mxPoint(f+k,g)):b==mxConstants.DIRECTION_WEST&&(n=new mxPoint(f+k,g),q=new mxPoint(f,m),p=new mxPoint(f+k,g+a));var r=c.x-
-l,s=c.y-m,r=e?Math.atan2(r,s):Math.atan2(s,r),t=e?Math.atan2(k,a):Math.atan2(a,k),s=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?r>-t&&r<t:r<-Math.PI+t||r>Math.PI-t,t=null;s?t=d&&(e&&c.x>=n.x&&c.x<=p.x||!e&&c.y>=n.y&&c.y<=p.y)?e?new mxPoint(c.x,n.y):new mxPoint(n.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+k/2+a*Math.tan(r)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+k/2-a*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+k,g+a/2+k*Math.tan(r)/2):new mxPoint(f,
-g+a/2-k*Math.tan(r)/2):(d&&(d=new mxPoint(l,m),c.y>=g&&c.y<=g+a?(d.x=e?l:b==mxConstants.DIRECTION_WEST?f+k:f,d.y=c.y):c.x>=f&&c.x<=f+k&&(d.x=c.x,d.y=!e?m:b==mxConstants.DIRECTION_NORTH?g+a:g),l=d.x,m=d.y),t=e&&c.x<=f+k/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,l,m,n.x,n.y,q.x,q.y):mxUtils.intersection(c.x,c.y,l,m,q.x,q.y,p.x,p.y));null==t&&(t=new mxPoint(l,m));return t},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var m=c.x,n=c.y,q=
--Math.atan2(n-a,m-l),p=Math.PI,r=Math.PI/2,s=new mxPoint(l,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;s=new mxPoint;if(m<e&&n<f||m<e&&n>f+k||m>e+g&&n<f||m>e+g&&n>f+k)d=!1;if(d){if(t){if(m==l){if(n<=f)return new mxPoint(l,f);if(n>=f+k)return new mxPoint(l,f+k)}else if(m<e){if(n==f+k/4)return new mxPoint(e,f+k/4);if(n==f+3*k/4)return new mxPoint(e,
-f+3*k/4)}else if(m>e+g){if(n==f+k/4)return new mxPoint(e+g,f+k/4);if(n==f+3*k/4)return new mxPoint(e+g,f+3*k/4)}else if(m==e){if(n<a)return new mxPoint(e,f+k/4);if(n>a)return new mxPoint(e,f+3*k/4)}else if(m==e+g){if(n<a)return new mxPoint(e+g,f+k/4);if(n>a)return new mxPoint(e+g,f+3*k/4)}if(n==f)return new mxPoint(l,f);if(n==f+k)return new mxPoint(l,f+k);m<l?n>f+k/4&&n<f+3*k/4?(b=new mxPoint(e,f),s=new mxPoint(e,f+k)):n<f+k/4?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+
-g,f-Math.floor(0.25*k))):n>f+3*k/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+g,f+Math.floor(1.25*k))):m>l&&(n>f+k/4&&n<f+3*k/4?(b=new mxPoint(e+g,f),s=new mxPoint(e+g,f+k)):n<f+k/4?(b=new mxPoint(e,f-Math.floor(0.25*k)),s=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):n>f+3*k/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e,f+Math.floor(1.25*k))))}else{if(n==a){if(m<=e)return new mxPoint(e,f+k/2);if(m>=e+g)return new mxPoint(e+g,f+k/
-2)}else if(n<f){if(m==e+g/4)return new mxPoint(e+g/4,f);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f)}else if(n>f+k){if(m==e+g/4)return new mxPoint(e+g/4,f+k);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f+k)}else if(n==f){if(m<l)return new mxPoint(e+g/4,f);if(m>l)return new mxPoint(e+3*g/4,f)}else if(n==f+k){if(m<l)return new mxPoint(e+g/4,f+k);if(n>a)return new mxPoint(e+3*g/4,f+k)}if(m==e)return new mxPoint(e,a);if(m==e+g)return new mxPoint(e+g,a);n<a?m>e+g/4&&m<e+3*g/4?(b=new mxPoint(e,f),s=new mxPoint(e+
-g,f)):m<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f+k),s=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):m>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f+k)):n>a&&(m>e+g/4&&m<e+3*g/4?(b=new mxPoint(e,f+k),s=new mxPoint(e+g,f+k)):m<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f),s=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k))):m>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f)))}d=
-l;q=a;m>=e&&m<=e+g?(d=m,q=n<a?f+k:f):n>=f&&n<=f+k&&(q=n,d=m<l?e+g:e);s=mxUtils.intersection(d,q,c.x,c.y,b.x,b.y,s.x,s.y)}else{if(t){m=Math.atan2(k/4,g/2);if(q==m)return new mxPoint(e+g,f+Math.floor(0.25*k));if(q==r)return new mxPoint(e+Math.floor(0.5*g),f);if(q==p-m)return new mxPoint(e,f+Math.floor(0.25*k));if(q==-m)return new mxPoint(e+g,f+Math.floor(0.75*k));if(q==-r)return new mxPoint(e+Math.floor(0.5*g),f+k);if(q==-p+m)return new mxPoint(e,f+Math.floor(0.75*k));q<m&&q>-m?(b=new mxPoint(e+g,f),
-s=new mxPoint(e+g,f+k)):q>m&&q<r?(b=new mxPoint(e,f-Math.floor(0.25*k)),s=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):q>r&&q<p-m?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+g,f-Math.floor(0.25*k))):q>p-m&&q<=p||q<-p+m&&q>=-p?(b=new mxPoint(e,f),s=new mxPoint(e,f+k)):q<-m&&q>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e,f+Math.floor(1.25*k))):q<-r&&q>-p+m&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),s=new mxPoint(e+g,f+
-Math.floor(1.25*k)))}else{m=Math.atan2(k/2,g/4);if(q==m)return new mxPoint(e+Math.floor(0.75*g),f);if(q==p-m)return new mxPoint(e+Math.floor(0.25*g),f);if(q==p||q==-p)return new mxPoint(e,f+Math.floor(0.5*k));if(0==q)return new mxPoint(e+g,f+Math.floor(0.5*k));if(q==-m)return new mxPoint(e+Math.floor(0.75*g),f+k);if(q==-p+m)return new mxPoint(e+Math.floor(0.25*g),f+k);0<q&&q<m?(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f+k)):q>m&&q<p-m?(b=new mxPoint(e,
-f),s=new mxPoint(e+g,f)):q>p-m&&q<p?(b=new mxPoint(e-Math.floor(0.25*g),f+k),s=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):0>q&&q>-m?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),s=new mxPoint(e+Math.floor(1.25*g),f)):q<-m&&q>-p+m?(b=new mxPoint(e,f+k),s=new mxPoint(e+g,f+k)):q<-p+m&&q>-p&&(b=new mxPoint(e-Math.floor(0.25*g),f),s=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)))}s=mxUtils.intersection(l,a,c.x,c.y,b.x,b.y,s.x,s.y)}return null==s?new mxPoint(l,a):s}};
+return c},compare:function(a,b){for(var c=Math.min(a.length,b.length),d=0,e=0;e<c;e++)if(a[e]!=b[e]){0==a[e].length||0==b[e].length?d=a[e]==b[e]?0:a[e]>b[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),k=Math.PI,l=Math.PI/2-f,n=Math.atan2(a.height,a.width);f<-k+n||f>k-n?(g.x=a.x,g.y=e-a.width*
+Math.tan(f)/2):f<-n?(g.y=a.y,g.x=b-a.height*Math.tan(l)/2):f<n?(g.x=a.x+a.width,g.y=e+a.width*Math.tan(f)/2):(g.y=a.y+a.height,g.x=b+a.height*Math.tan(l)/2);d&&(c.x>=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.x<a.x?g.x=a.x:c.x>a.x+a.width&&(g.x=a.x+a.width),c.y<a.y?g.y=a.y:c.y>a.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,k=a.height/2,l=e+g,n=f+k;b=c.x;c=c.y;var m=parseInt(b-l),p=parseInt(c-n);if(0==m&&0!=p)return new mxPoint(l,
+n+k*p/Math.abs(p));if(0==m&&0==p)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-n,a=Math.sqrt(g*g*(1-a*a/(k*k)))||0,b<=e&&(a=-a),new mxPoint(l+a,c);if(b>=e&&b<=e+a.width)return a=b-l,a=Math.sqrt(k*k*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,n+a)}e=p/m;n-=e*l;f=g*g*e*e+k*k;a=-2*l*f;k=Math.sqrt(a*a-4*f*(g*g*e*e*l*l+k*k*l*l-g*g*k*k));g=(-a+k)/(2*f);k=(-a-k)/(2*f);l=e*g+n;n=e*k+n;e=Math.sqrt(Math.pow(g-b,2)+Math.pow(l-c,2));b=Math.sqrt(Math.pow(k-b,2)+Math.pow(n-c,2));f=c=0;e<b?(c=
+g,f=l):(c=k,f=n);return new mxPoint(c,f)},RhombusPerimeter:function(a,b,c,d){b=a.x;var e=a.y,f=a.width;a=a.height;var g=b+f/2,k=e+a/2,l=c.x;c=c.y;if(g==l)return k>c?new mxPoint(g,e):new mxPoint(g,e+a);if(k==c)return g>l?new mxPoint(b,k):new mxPoint(b+f,k);var n=g,m=k;d&&(l>=b&&l<=b+f?n=l:c>=e&&c<=e+a&&(m=c));return l<g?c<k?mxUtils.intersection(l,c,n,m,g,e,b,k):mxUtils.intersection(l,c,n,m,g,e+a,b,k):c<k?mxUtils.intersection(l,c,n,m,g,e,b+f,k):mxUtils.intersection(l,c,n,m,g,e+a,b+f,k)},TrianglePerimeter:function(a,
+b,c,d){b=null!=b?b.style[mxConstants.STYLE_DIRECTION]:null;var e=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH,f=a.x,g=a.y,k=a.width;a=a.height;var l=f+k/2,n=g+a/2,m=new mxPoint(f,g),p=new mxPoint(f+k,n),q=new mxPoint(f,g+a);b==mxConstants.DIRECTION_NORTH?(m=q,p=new mxPoint(l,g),q=new mxPoint(f+k,g+a)):b==mxConstants.DIRECTION_SOUTH?(p=new mxPoint(l,g+a),q=new mxPoint(f+k,g)):b==mxConstants.DIRECTION_WEST&&(m=new mxPoint(f+k,g),p=new mxPoint(f,n),q=new mxPoint(f+k,g+a));var s=c.x-
+l,r=c.y-n,s=e?Math.atan2(s,r):Math.atan2(r,s),t=e?Math.atan2(k,a):Math.atan2(a,k),r=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?s>-t&&s<t:s<-Math.PI+t||s>Math.PI-t,t=null;r?t=d&&(e&&c.x>=m.x&&c.x<=q.x||!e&&c.y>=m.y&&c.y<=q.y)?e?new mxPoint(c.x,m.y):new mxPoint(m.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+k/2+a*Math.tan(s)/2,g+a):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+k/2-a*Math.tan(s)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+k,g+a/2+k*Math.tan(s)/2):new mxPoint(f,
+g+a/2-k*Math.tan(s)/2):(d&&(d=new mxPoint(l,n),c.y>=g&&c.y<=g+a?(d.x=e?l:b==mxConstants.DIRECTION_WEST?f+k:f,d.y=c.y):c.x>=f&&c.x<=f+k&&(d.x=c.x,d.y=!e?n:b==mxConstants.DIRECTION_NORTH?g+a:g),l=d.x,n=d.y),t=e&&c.x<=f+k/2||!e&&c.y<=g+a/2?mxUtils.intersection(c.x,c.y,l,n,m.x,m.y,p.x,p.y):mxUtils.intersection(c.x,c.y,l,n,p.x,p.y,q.x,q.y));null==t&&(t=new mxPoint(l,n));return t},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var n=c.x,m=c.y,p=
+-Math.atan2(m-a,n-l),q=Math.PI,s=Math.PI/2,r=new mxPoint(l,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;r=new mxPoint;if(n<e&&m<f||n<e&&m>f+k||n>e+g&&m<f||n>e+g&&m>f+k)d=!1;if(d){if(t){if(n==l){if(m<=f)return new mxPoint(l,f);if(m>=f+k)return new mxPoint(l,f+k)}else if(n<e){if(m==f+k/4)return new mxPoint(e,f+k/4);if(m==f+3*k/4)return new mxPoint(e,
+f+3*k/4)}else if(n>e+g){if(m==f+k/4)return new mxPoint(e+g,f+k/4);if(m==f+3*k/4)return new mxPoint(e+g,f+3*k/4)}else if(n==e){if(m<a)return new mxPoint(e,f+k/4);if(m>a)return new mxPoint(e,f+3*k/4)}else if(n==e+g){if(m<a)return new mxPoint(e+g,f+k/4);if(m>a)return new mxPoint(e+g,f+3*k/4)}if(m==f)return new mxPoint(l,f);if(m==f+k)return new mxPoint(l,f+k);n<l?m>f+k/4&&m<f+3*k/4?(b=new mxPoint(e,f),r=new mxPoint(e,f+k)):m<f+k/4?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+
+g,f-Math.floor(0.25*k))):m>f+3*k/4&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+g,f+Math.floor(1.25*k))):n>l&&(m>f+k/4&&m<f+3*k/4?(b=new mxPoint(e+g,f),r=new mxPoint(e+g,f+k)):m<f+k/4?(b=new mxPoint(e,f-Math.floor(0.25*k)),r=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):m>f+3*k/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e,f+Math.floor(1.25*k))))}else{if(m==a){if(n<=e)return new mxPoint(e,f+k/2);if(n>=e+g)return new mxPoint(e+g,f+k/
+2)}else if(m<f){if(n==e+g/4)return new mxPoint(e+g/4,f);if(n==e+3*g/4)return new mxPoint(e+3*g/4,f)}else if(m>f+k){if(n==e+g/4)return new mxPoint(e+g/4,f+k);if(n==e+3*g/4)return new mxPoint(e+3*g/4,f+k)}else if(m==f){if(n<l)return new mxPoint(e+g/4,f);if(n>l)return new mxPoint(e+3*g/4,f)}else if(m==f+k){if(n<l)return new mxPoint(e+g/4,f+k);if(m>a)return new mxPoint(e+3*g/4,f+k)}if(n==e)return new mxPoint(e,a);if(n==e+g)return new mxPoint(e+g,a);m<a?n>e+g/4&&n<e+3*g/4?(b=new mxPoint(e,f),r=new mxPoint(e+
+g,f)):n<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f+k),r=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):n>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f+k)):m>a&&(n>e+g/4&&n<e+3*g/4?(b=new mxPoint(e,f+k),r=new mxPoint(e+g,f+k)):n<e+g/4?(b=new mxPoint(e-Math.floor(0.25*g),f),r=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k))):n>e+3*g/4&&(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f)))}d=
+l;p=a;n>=e&&n<=e+g?(d=n,p=m<a?f+k:f):m>=f&&m<=f+k&&(p=m,d=n<l?e+g:e);r=mxUtils.intersection(d,p,c.x,c.y,b.x,b.y,r.x,r.y)}else{if(t){n=Math.atan2(k/4,g/2);if(p==n)return new mxPoint(e+g,f+Math.floor(0.25*k));if(p==s)return new mxPoint(e+Math.floor(0.5*g),f);if(p==q-n)return new mxPoint(e,f+Math.floor(0.25*k));if(p==-n)return new mxPoint(e+g,f+Math.floor(0.75*k));if(p==-s)return new mxPoint(e+Math.floor(0.5*g),f+k);if(p==-q+n)return new mxPoint(e,f+Math.floor(0.75*k));p<n&&p>-n?(b=new mxPoint(e+g,f),
+r=new mxPoint(e+g,f+k)):p>n&&p<s?(b=new mxPoint(e,f-Math.floor(0.25*k)),r=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k))):p>s&&p<q-n?(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+g,f-Math.floor(0.25*k))):p>q-n&&p<=q||p<-q+n&&p>=-q?(b=new mxPoint(e,f),r=new mxPoint(e,f+k)):p<-n&&p>-s?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e,f+Math.floor(1.25*k))):p<-s&&p>-q+n&&(b=new mxPoint(e-Math.floor(0.5*g),f+Math.floor(0.5*k)),r=new mxPoint(e+g,f+
+Math.floor(1.25*k)))}else{n=Math.atan2(k/2,g/4);if(p==n)return new mxPoint(e+Math.floor(0.75*g),f);if(p==q-n)return new mxPoint(e+Math.floor(0.25*g),f);if(p==q||p==-q)return new mxPoint(e,f+Math.floor(0.5*k));if(0==p)return new mxPoint(e+g,f+Math.floor(0.5*k));if(p==-n)return new mxPoint(e+Math.floor(0.75*g),f+k);if(p==-q+n)return new mxPoint(e+Math.floor(0.25*g),f+k);0<p&&p<n?(b=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f+k)):p>n&&p<q-n?(b=new mxPoint(e,
+f),r=new mxPoint(e+g,f)):p>q-n&&p<q?(b=new mxPoint(e-Math.floor(0.25*g),f+k),r=new mxPoint(e+Math.floor(0.5*g),f-Math.floor(0.5*k))):0>p&&p>-n?(b=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)),r=new mxPoint(e+Math.floor(1.25*g),f)):p<-n&&p>-q+n?(b=new mxPoint(e,f+k),r=new mxPoint(e+g,f+k)):p<-q+n&&p>-q&&(b=new mxPoint(e-Math.floor(0.25*g),f),r=new mxPoint(e+Math.floor(0.5*g),f+Math.floor(1.5*k)))}r=mxUtils.intersection(l,a,c.x,c.y,b.x,b.y,r.x,r.y)}return null==r?new mxPoint(l,a):r}};
function mxPrintPreview(a,b,c,d,e,f,g,k,l){this.graph=a;this.scale=null!=b?b:1/a.pageScale;this.border=null!=d?d:0;this.pageFormat=mxRectangle.fromRectangle(null!=c?c:a.pageFormat);this.title=null!=k?k:"Printer-friendly version";this.x0=null!=e?e:0;this.y0=null!=f?f:0;this.borderColor=g;this.pageSelector=null!=l?l:!0}mxPrintPreview.prototype.graph=null;mxPrintPreview.prototype.pageFormat=null;mxPrintPreview.prototype.scale=null;mxPrintPreview.prototype.border=0;
mxPrintPreview.prototype.marginTop=0;mxPrintPreview.prototype.marginBottom=0;mxPrintPreview.prototype.x0=0;mxPrintPreview.prototype.y0=0;mxPrintPreview.prototype.autoOrigin=!0;mxPrintPreview.prototype.printOverlays=!1;mxPrintPreview.prototype.printControls=!1;mxPrintPreview.prototype.printBackgroundImage=!1;mxPrintPreview.prototype.backgroundColor="#ffffff";mxPrintPreview.prototype.borderColor=null;mxPrintPreview.prototype.title=null;mxPrintPreview.prototype.pageSelector=null;
mxPrintPreview.prototype.wnd=null;mxPrintPreview.prototype.targetWindow=null;mxPrintPreview.prototype.pageCount=0;mxPrintPreview.prototype.clipping=!0;mxPrintPreview.prototype.getWindow=function(){return this.wnd};
mxPrintPreview.prototype.getDoctype=function(){var a="";5==document.documentMode?a='\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5"\x3e':8==document.documentMode?a='\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d8"\x3e':8<document.documentMode&&(a='\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3dedge"\x3e\x3c![endif]--\x3e');return a};
mxPrintPreview.prototype.appendGraph=function(a,b,c,d,e,f){this.graph=a;this.scale=null!=b?b:1/a.pageScale;this.x0=c;this.y0=d;this.open(null,null,e,f)};
mxPrintPreview.prototype.open=function(a,b,c,d){var e=this.graph.cellRenderer.initializeOverlay,f=null;try{this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(a,b){b.init(a.view.getDrawPane())});this.printControls&&(this.graph.cellRenderer.initControl=function(a,b,c,d){b.dialect=a.view.graph.dialect;b.init(a.view.getDrawPane())});this.wnd=null!=b?b:this.wnd;b=!1;null==this.wnd&&(b=!0,this.wnd=window.open());var g=this.wnd.document;if(b){var k=this.getDoctype();null!=k&&0<k.length&&
-g.writeln(k);mxClient.IS_VML?g.writeln('\x3chtml xmlns:v\x3d"urn:schemas-microsoft-com:vml" xmlns:o\x3d"urn:schemas-microsoft-com:office:office"\x3e'):("CSS1Compat"===document.compatMode&&g.writeln("\x3c!DOCTYPE html\x3e"),g.writeln("\x3chtml\x3e"));g.writeln("\x3chead\x3e");this.writeHead(g,a);g.writeln("\x3c/head\x3e");g.writeln('\x3cbody class\x3d"mxPage"\x3e')}var l=this.graph.getGraphBounds().clone(),m=this.graph.getView().getScale(),n=m/this.scale,q=this.graph.getView().getTranslate();this.autoOrigin||
-(this.x0-=q.x*this.scale,this.y0-=q.y*this.scale,l.width+=l.x,l.height+=l.y,l.x=0,this.border=l.y=0);var p=this.pageFormat.width-2*this.border,r=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;l.width/=n;l.height/=n;var s=Math.max(1,Math.ceil((l.width+this.x0)/p)),t=Math.max(1,Math.ceil((l.height+this.y0)/r));this.pageCount=s*t;var v=mxUtils.bind(this,function(){if(this.pageSelector&&(1<t||1<s)){var a=this.createPageSelector(t,s);g.body.appendChild(a);
-if(mxClient.IS_IE&&null==g.documentMode||5==g.documentMode||8==g.documentMode||7==g.documentMode){a.style.position="absolute";var b=function(){a.style.top=(g.body.scrollTop||g.documentElement.scrollTop)+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(a){b()});mxEvent.addListener(this.wnd,"resize",function(a){b()})}}}),u=mxUtils.bind(this,function(a,b){null!=this.borderColor&&(a.style.borderColor=this.borderColor,a.style.borderStyle="solid",a.style.borderWidth="1px");a.style.background=this.backgroundColor;
-if(c||b)a.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(a.outerHTML),a.parentNode.removeChild(a)):(a.parentNode.removeChild(a),g.body.appendChild(a));(c||b)&&this.addPageBreak(g)}),y=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=y)for(var z=0;z<y.length;z++)u(y[z],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),z=0;z<t;z++){var G=z*r/this.scale-this.y0/this.scale+(l.y-q.y*m)/m;for(a=0;a<
-s;a++){if(null==this.wnd)return null;var D=a*p/this.scale-this.x0/this.scale+(l.x-q.x*m)/m,E=z*s+a+1,A=new mxRectangle(D,G,p,r),f=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(a){this.addGraphFragment(-D,-G,this.scale,E,a,A);this.printBackgroundImage&&this.insertBackgroundImage(a,-D,-G)}),E);f.setAttribute("id","mxPage-"+E);u(f,null!=x||z<t-1||a<s-1)}}if(null!=x)for(z=0;z<x.length;z++)u(x[z],z<x.length);b&&!d&&(this.closeDocument(),v());this.wnd.focus()}catch(F){null!=
+g.writeln(k);mxClient.IS_VML?g.writeln('\x3chtml xmlns:v\x3d"urn:schemas-microsoft-com:vml" xmlns:o\x3d"urn:schemas-microsoft-com:office:office"\x3e'):("CSS1Compat"===document.compatMode&&g.writeln("\x3c!DOCTYPE html\x3e"),g.writeln("\x3chtml\x3e"));g.writeln("\x3chead\x3e");this.writeHead(g,a);g.writeln("\x3c/head\x3e");g.writeln('\x3cbody class\x3d"mxPage"\x3e')}var l=this.graph.getGraphBounds().clone(),n=this.graph.getView().getScale(),m=n/this.scale,p=this.graph.getView().getTranslate();this.autoOrigin||
+(this.x0-=p.x*this.scale,this.y0-=p.y*this.scale,l.width+=l.x,l.height+=l.y,l.x=0,this.border=l.y=0);var q=this.pageFormat.width-2*this.border,s=this.pageFormat.height-2*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;l.width/=m;l.height/=m;var r=Math.max(1,Math.ceil((l.width+this.x0)/q)),t=Math.max(1,Math.ceil((l.height+this.y0)/s));this.pageCount=r*t;var u=mxUtils.bind(this,function(){if(this.pageSelector&&(1<t||1<r)){var a=this.createPageSelector(t,r);g.body.appendChild(a);
+if(mxClient.IS_IE&&null==g.documentMode||5==g.documentMode||8==g.documentMode||7==g.documentMode){a.style.position="absolute";var b=function(){a.style.top=(g.body.scrollTop||g.documentElement.scrollTop)+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(a){b()});mxEvent.addListener(this.wnd,"resize",function(a){b()})}}}),v=mxUtils.bind(this,function(a,b){null!=this.borderColor&&(a.style.borderColor=this.borderColor,a.style.borderStyle="solid",a.style.borderWidth="1px");a.style.background=this.backgroundColor;
+if(c||b)a.style.pageBreakAfter="always";mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE?(g.writeln(a.outerHTML),a.parentNode.removeChild(a)):(a.parentNode.removeChild(a),g.body.appendChild(a));(c||b)&&this.addPageBreak(g)}),z=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=z)for(var y=0;y<z.length;y++)v(z[y],!0);for(var x=this.getAppendices(this.pageFormat.width,this.pageFormat.height),y=0;y<t;y++){var E=y*s/this.scale-this.y0/this.scale+(l.y-p.y*n)/n;for(a=0;a<
+r;a++){if(null==this.wnd)return null;var C=a*q/this.scale-this.x0/this.scale+(l.x-p.x*n)/n,F=y*r+a+1,D=new mxRectangle(C,E,q,s),f=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(a){this.addGraphFragment(-C,-E,this.scale,F,a,D);this.printBackgroundImage&&this.insertBackgroundImage(a,-C,-E)}),F);f.setAttribute("id","mxPage-"+F);v(f,null!=x||y<t-1||a<r-1)}}if(null!=x)for(y=0;y<x.length;y++)v(x[y],y<x.length);b&&!d&&(this.closeDocument(),u());this.wnd.focus()}catch(G){null!=
f&&null!=f.parentNode&&f.parentNode.removeChild(f)}finally{this.graph.cellRenderer.initializeOverlay=e}return this.wnd};mxPrintPreview.prototype.addPageBreak=function(a){var b=a.createElement("hr");b.className="mxPageBreak";a.body.appendChild(b)};mxPrintPreview.prototype.closeDocument=function(){if(null!=this.wnd&&null!=this.wnd.document){var a=this.wnd.document;this.writePostfix(a);a.writeln("\x3c/body\x3e");a.writeln("\x3c/html\x3e");a.close();mxEvent.release(a.body)}};
mxPrintPreview.prototype.writeHead=function(a,b){null!=this.title&&a.writeln("\x3ctitle\x3e"+this.title+"\x3c/title\x3e");mxClient.IS_VML&&a.writeln('\x3cstyle type\x3d"text/css"\x3ev\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}\x3c/style\x3e');mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a);a.writeln('\x3cstyle type\x3d"text/css"\x3e');a.writeln("@media print {");a.writeln(" table.mxPageSelector { display: none; }");a.writeln(" hr.mxPageBreak { display: none; }");
a.writeln("}");a.writeln("@media screen {");a.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }");a.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }");a.writeln(" body.mxPage { background: gray; }");a.writeln("}");null!=b&&a.writeln(b);a.writeln("\x3c/style\x3e")};mxPrintPreview.prototype.writePostfix=function(a){};
-mxPrintPreview.prototype.createPageSelector=function(a,b){var c=this.wnd.document,d=c.createElement("table");d.className="mxPageSelector";d.setAttribute("border","0");for(var e=c.createElement("tbody"),f=0;f<a;f++){for(var g=c.createElement("tr"),k=0;k<b;k++){var l=f*b+k+1,m=c.createElement("td"),n=c.createElement("a");n.setAttribute("href","#mxPage-"+l);mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC&&n.setAttribute("onclick","var page \x3d document.getElementById('mxPage-"+l+"');page.scrollIntoView(true);event.preventDefault();");
-mxUtils.write(n,l,c);m.appendChild(n);g.appendChild(m)}e.appendChild(g)}d.appendChild(e);return d};
-mxPrintPreview.prototype.renderPage=function(a,b,c,d,e,f){f=this.wnd.document;var g=document.createElement("div"),k=null;try{if(0!=c||0!=d){g.style.position="relative";g.style.width=a+"px";g.style.height=b+"px";g.style.pageBreakInside="avoid";var l=document.createElement("div");l.style.position="relative";l.style.top=this.border+"px";l.style.left=this.border+"px";l.style.width=a-2*this.border+"px";l.style.height=b-2*this.border+"px";l.style.overflow="hidden";var m=document.createElement("div");m.style.position=
-"relative";m.style.marginLeft=c+"px";m.style.marginTop=d+"px";8==f.documentMode&&(l.style.position="absolute",m.style.position="absolute");10==f.documentMode&&(m.style.width="100%",m.style.height="100%");l.appendChild(m);g.appendChild(l);document.body.appendChild(g);k=m}else g.style.width=a+"px",g.style.height=b+"px",g.style.overflow="hidden",g.style.pageBreakInside="avoid",8==f.documentMode&&(g.style.position="relative"),l=document.createElement("div"),l.style.width=a-2*this.border+"px",l.style.height=
-b-2*this.border+"px",l.style.overflow="hidden",mxClient.IS_IE&&(null==f.documentMode||5==f.documentMode||8==f.documentMode||7==f.documentMode)?(l.style.marginTop=this.border+"px",l.style.marginLeft=this.border+"px"):(l.style.top=this.border+"px",l.style.left=this.border+"px"),this.graph.dialect==mxConstants.DIALECT_VML&&(l.style.position="absolute"),g.appendChild(l),document.body.appendChild(g),k=l}catch(n){throw g.parentNode.removeChild(g),n;}e(k);return g};
+mxPrintPreview.prototype.createPageSelector=function(a,b){var c=this.wnd.document,d=c.createElement("table");d.className="mxPageSelector";d.setAttribute("border","0");for(var e=c.createElement("tbody"),f=0;f<a;f++){for(var g=c.createElement("tr"),k=0;k<b;k++){var l=f*b+k+1,n=c.createElement("td"),m=c.createElement("a");m.setAttribute("href","#mxPage-"+l);mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC&&m.setAttribute("onclick","var page \x3d document.getElementById('mxPage-"+l+"');page.scrollIntoView(true);event.preventDefault();");
+mxUtils.write(m,l,c);n.appendChild(m);g.appendChild(n)}e.appendChild(g)}d.appendChild(e);return d};
+mxPrintPreview.prototype.renderPage=function(a,b,c,d,e,f){f=this.wnd.document;var g=document.createElement("div"),k=null;try{if(0!=c||0!=d){g.style.position="relative";g.style.width=a+"px";g.style.height=b+"px";g.style.pageBreakInside="avoid";var l=document.createElement("div");l.style.position="relative";l.style.top=this.border+"px";l.style.left=this.border+"px";l.style.width=a-2*this.border+"px";l.style.height=b-2*this.border+"px";l.style.overflow="hidden";var n=document.createElement("div");n.style.position=
+"relative";n.style.marginLeft=c+"px";n.style.marginTop=d+"px";8==f.documentMode&&(l.style.position="absolute",n.style.position="absolute");10==f.documentMode&&(n.style.width="100%",n.style.height="100%");l.appendChild(n);g.appendChild(l);document.body.appendChild(g);k=n}else g.style.width=a+"px",g.style.height=b+"px",g.style.overflow="hidden",g.style.pageBreakInside="avoid",8==f.documentMode&&(g.style.position="relative"),l=document.createElement("div"),l.style.width=a-2*this.border+"px",l.style.height=
+b-2*this.border+"px",l.style.overflow="hidden",mxClient.IS_IE&&(null==f.documentMode||5==f.documentMode||8==f.documentMode||7==f.documentMode)?(l.style.marginTop=this.border+"px",l.style.marginLeft=this.border+"px"):(l.style.top=this.border+"px",l.style.left=this.border+"px"),this.graph.dialect==mxConstants.DIALECT_VML&&(l.style.position="absolute"),g.appendChild(l),document.body.appendChild(g),k=l}catch(m){throw g.parentNode.removeChild(g),m;}e(k);return g};
mxPrintPreview.prototype.getRoot=function(){var a=this.graph.view.currentRoot;null==a&&(a=this.graph.getModel().getRoot());return a};
-mxPrintPreview.prototype.addGraphFragment=function(a,b,c,d,e,f){var g=this.graph.getView();d=this.graph.container;this.graph.container=e;var k=g.getCanvas(),l=g.getBackgroundPane(),m=g.getDrawPane(),n=g.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?g.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?g.createVml():g.createHtml();var q=g.isEventsEnabled();g.setEventsEnabled(!1);var p=this.graph.isEnabled();this.graph.setEnabled(!1);var r=g.getTranslate();g.translate=new mxPoint(a,
-b);var s=this.graph.cellRenderer.redraw,t=g.states;a=g.scale;if(this.clipping){var v=new mxRectangle((f.x+r.x)*a,(f.y+r.y)*a,f.width*a/c,f.height*a/c);this.graph.cellRenderer.redraw=function(a,b,c){if(null!=a){var d=t.get(a.cell);if(null!=d&&(d=g.getBoundingBox(d,!1),null!=d&&!mxUtils.intersects(v,d)))return}s.apply(this,arguments)}}a=null;try{var u=[this.getRoot()];a=new mxTemporaryCellStates(g,c,u)}finally{if(mxClient.IS_IE)g.overlayPane.innerHTML="",g.canvas.style.overflow="hidden",g.canvas.style.position=
-"relative",g.canvas.style.top=this.marginTop+"px",g.canvas.style.width=f.width+"px",g.canvas.style.height=f.height+"px";else for(c=e.firstChild;null!=c;)u=c.nextSibling,b=c.nodeName.toLowerCase(),"svg"==b?(c.style.overflow="hidden",c.style.position="relative",c.style.top=this.marginTop+"px",c.setAttribute("width",f.width),c.setAttribute("height",f.height),c.style.width="",c.style.height=""):"default"!=c.style.cursor&&"div"!=b&&c.parentNode.removeChild(c),c=u;this.printBackgroundImage&&(e=e.getElementsByTagName("svg"),
-0<e.length&&(e[0].style.position="absolute"));g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(p);this.graph.container=d;this.graph.cellRenderer.redraw=s;g.canvas=k;g.backgroundPane=l;g.drawPane=m;g.overlayPane=n;g.translate=r;a.destroy();g.setEventsEnabled(q)}};
+mxPrintPreview.prototype.addGraphFragment=function(a,b,c,d,e,f){var g=this.graph.getView();d=this.graph.container;this.graph.container=e;var k=g.getCanvas(),l=g.getBackgroundPane(),n=g.getDrawPane(),m=g.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?g.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?g.createVml():g.createHtml();var p=g.isEventsEnabled();g.setEventsEnabled(!1);var q=this.graph.isEnabled();this.graph.setEnabled(!1);var s=g.getTranslate();g.translate=new mxPoint(a,
+b);var r=this.graph.cellRenderer.redraw,t=g.states;a=g.scale;if(this.clipping){var u=new mxRectangle((f.x+s.x)*a,(f.y+s.y)*a,f.width*a/c,f.height*a/c);this.graph.cellRenderer.redraw=function(a,b,c){if(null!=a){var d=t.get(a.cell);if(null!=d&&(d=g.getBoundingBox(d,!1),null!=d&&!mxUtils.intersects(u,d)))return}r.apply(this,arguments)}}a=null;try{var v=[this.getRoot()];a=new mxTemporaryCellStates(g,c,v)}finally{if(mxClient.IS_IE)g.overlayPane.innerHTML="",g.canvas.style.overflow="hidden",g.canvas.style.position=
+"relative",g.canvas.style.top=this.marginTop+"px",g.canvas.style.width=f.width+"px",g.canvas.style.height=f.height+"px";else for(c=e.firstChild;null!=c;)v=c.nextSibling,b=c.nodeName.toLowerCase(),"svg"==b?(c.style.overflow="hidden",c.style.position="relative",c.style.top=this.marginTop+"px",c.setAttribute("width",f.width),c.setAttribute("height",f.height),c.style.width="",c.style.height=""):"default"!=c.style.cursor&&"div"!=b&&c.parentNode.removeChild(c),c=v;this.printBackgroundImage&&(e=e.getElementsByTagName("svg"),
+0<e.length&&(e[0].style.position="absolute"));g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(q);this.graph.container=d;this.graph.cellRenderer.redraw=r;g.canvas=k;g.backgroundPane=l;g.drawPane=n;g.overlayPane=m;g.translate=s;a.destroy();g.setEventsEnabled(p)}};
mxPrintPreview.prototype.insertBackgroundImage=function(a,b,c){var d=this.graph.backgroundImage;if(null!=d){var e=document.createElement("img");e.style.position="absolute";e.style.marginLeft=Math.round(b*this.scale)+"px";e.style.marginTop=Math.round(c*this.scale)+"px";e.setAttribute("width",Math.round(this.scale*d.width));e.setAttribute("height",Math.round(this.scale*d.height));e.src=d.src;a.insertBefore(e,a.firstChild)}};mxPrintPreview.prototype.getCoverPages=function(){return null};
mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.prototype.print=function(a){a=this.open(a);null!=a&&a.print()};mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)};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};
@@ -1083,18 +1083,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,k=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,l=(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,n=(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+n,b.y+k,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?n+l:0),b.height-(g==mxConstants.ALIGN_MIDDLE?k+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,k=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*c+f,n=(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+k,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?m+l:0),b.height-(g==mxConstants.ALIGN_MIDDLE?k+n: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),k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(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=k?"bold":"normal";this.textarea.style.fontStyle=l?"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),k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,n=(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=n?"underline":"";this.textarea.style.fontWeight=k?"bold":"normal";this.textarea.style.fontStyle=l?"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<this.textarea.innerHTML.length&&(this.textarea.innerHTML!=this.getEmptyLabelText()||!this.clearOnChange)&&document.execCommand("selectAll",!1,null)}catch(n){}}};mxCellEditor.prototype.isSelectText=function(){return this.selectText};
+0);this.resize();try{this.textarea.focus(),this.isSelectText()&&0<this.textarea.innerHTML.length&&(this.textarea.innerHTML!=this.getEmptyLabelText()||!this.clearOnChange)&&document.execCommand("selectAll",!1,null)}catch(m){}}};mxCellEditor.prototype.isSelectText=function(){return this.selectText};
mxCellEditor.prototype.stopEditing=function(a){if(null!=this.editingCell){null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null);a=!a?this.graph.view.getState(this.editingCell):null;var b=this.initialValue;this.bounds=this.trigger=this.editingCell=this.initialValue=null;this.textarea.blur();null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea);this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.textarea.innerHTML="",
this.clearOnChange=!1);null!=a&&this.textarea.innerHTML!=b&&(b=this.getCurrentValue(a),null!=b&&this.applyValue(a,b));mxEvent.release(this.textarea);this.textarea=null}};mxCellEditor.prototype.isHideLabel=function(a){return!0};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,"left"==this.textarea.style.textAlign?120:40)};
mxCellEditor.prototype.getEditorBounds=function(a){var b=this.graph.getModel().isEdge(a.cell),c=this.graph.getView().scale,d=this.getMinimumSize(a),e=d.width,d=d.height,f=null;if(!b&&a.view.graph.cellRenderer.legacySpacing&&"fill"==a.style[mxConstants.STYLE_OVERFLOW])f=a.shape.getLabelBounds(mxRectangle.fromRectangle(a));else{var g=parseInt(a.style[mxConstants.STYLE_SPACING]||0)*c,k=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+g,f=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||
@@ -1139,8 +1139,8 @@ b==mxConstants.ALIGN_CENTER&&f==mxConstants.ALIGN_MIDDLE&&(e=a.shape.getLabelBou
mxCellRenderer.prototype.rotateLabelBounds=function(a,b){b.y-=a.text.margin.y*b.height;b.x-=a.text.margin.x*b.width;if(!this.legacySpacing||"fill"!=a.style[mxConstants.STYLE_OVERFLOW]&&"width"!=a.style[mxConstants.STYLE_OVERFLOW]){var c=a.view.scale,d=a.text.getSpacing();b.x+=d.x*c;b.y+=d.y*c;var d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),f=mxUtils.getValue(a.style,
mxConstants.STYLE_LABEL_WIDTH,null);b.width=Math.max(0,b.width-(d==mxConstants.ALIGN_CENTER&&null==f?a.text.spacingLeft*c+a.text.spacingRight*c:0));b.height=Math.max(0,b.height-(e==mxConstants.ALIGN_MIDDLE?a.text.spacingTop*c+a.text.spacingBottom*c:0))}e=a.text.getTextRotation();if(0!=e&&null!=a&&a.view.graph.model.isVertex(a.cell)&&(c=a.getCenterX(),d=a.getCenterY(),b.x!=c||b.y!=d))e*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),Math.cos(e),Math.sin(e),new mxPoint(c,d)),b.x=pt.x,b.y=
pt.y};
-mxCellRenderer.prototype.redrawCellOverlays=function(a,b){this.createCellOverlays(a);if(null!=a.overlays){var c=mxUtils.mod(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0),90),d=mxUtils.toRadians(c),e=Math.cos(d),f=Math.sin(d);a.overlays.visit(function(d,k){var l=k.overlay.getBounds(a);if(!a.view.graph.getModel().isEdge(a.cell)&&null!=a.shape&&0!=c){var m=l.getCenterX(),n=l.getCenterY(),n=mxUtils.getRotatedPoint(new mxPoint(m,n),e,f,new mxPoint(a.getCenterX(),a.getCenterY())),m=n.x,n=n.y;l.x=
-Math.round(m-l.width/2);l.y=Math.round(n-l.height/2)}if(b||null==k.bounds||k.scale!=a.view.scale||!k.bounds.equals(l))k.bounds=l,k.scale=a.view.scale,k.redraw()})}};
+mxCellRenderer.prototype.redrawCellOverlays=function(a,b){this.createCellOverlays(a);if(null!=a.overlays){var c=mxUtils.mod(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0),90),d=mxUtils.toRadians(c),e=Math.cos(d),f=Math.sin(d);a.overlays.visit(function(d,k){var l=k.overlay.getBounds(a);if(!a.view.graph.getModel().isEdge(a.cell)&&null!=a.shape&&0!=c){var n=l.getCenterX(),m=l.getCenterY(),m=mxUtils.getRotatedPoint(new mxPoint(n,m),e,f,new mxPoint(a.getCenterX(),a.getCenterY())),n=m.x,m=m.y;l.x=
+Math.round(n-l.width/2);l.y=Math.round(m-l.height/2)}if(b||null==k.bounds||k.scale!=a.view.scale||!k.bounds.equals(l))k.bounds=l,k.scale=a.view.scale,k.redraw()})}};
mxCellRenderer.prototype.redrawControl=function(a,b){var c=a.view.graph.getFoldingImage(a);if(null!=a.control&&null!=c){var c=this.getControlBounds(a,c.width,c.height),d=this.legacyControlPosition?mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0):a.shape.getTextRotation(),e=a.view.scale;if(b||a.control.scale!=e||!a.control.bounds.equals(c)||a.control.rotation!=d)a.control.rotation=d,a.control.bounds=c,a.control.scale=e,a.control.redraw()}};
mxCellRenderer.prototype.getControlBounds=function(a,b,c){if(null!=a.control){var d=a.view.scale,e=a.getCenterX(),f=a.getCenterY();if(!a.view.graph.getModel().isEdge(a.cell)&&(e=a.x+b*d,f=a.y+c*d,null!=a.shape)){var g=a.shape.getShapeRotation();if(this.legacyControlPosition)g=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0);else if(a.shape.isPaintBoundsInverted())var k=(a.width-a.height)/2,e=e+k,f=f-k;0!=g&&(k=mxUtils.toRadians(g),g=Math.cos(k),k=Math.sin(k),f=mxUtils.getRotatedPoint(new mxPoint(e,
f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.graph.getModel().isEdge(a.cell),new mxRectangle(Math.round(e-b/2*d),Math.round(f-c/2*d),Math.round(b*d),Math.round(c*d))}return null};
@@ -1150,34 +1150,34 @@ mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);if(nul
mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):null!=a.shape&&!mxUtils.equalEntries(a.shape.style,a.style)&&(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);if(null!=a.shape&&(this.createControl(a),b||null==a.shape.bounds||a.shape.scale!=a.view.scale||null==a.absolutePoints&&!a.shape.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(a.shape.points,a.absolutePoints)))null!=a.absolutePoints?(a.shape.points=
a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?a.shape.redraw():a.shape.updateBoundingBox(),e=!0;return e};mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
-var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
-l.relative?k=0.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=0.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
-f=new mxPoint(a+(k?-d:d),b),m=new mxPoint(g+(l?-d:d),c),k==l?(d=k?Math.min(a,g)-d:Math.max(a,g)+d,e.push(new mxPoint(d,b)),e.push(new mxPoint(d,c))):(f.x<m.x==k?(d=b+(c-b)/2,e.push(f),e.push(new mxPoint(f.x,d)),e.push(new mxPoint(m.x,d))):e.push(f),e.push(m)))},Loop:function(a,b,c,d,e){c=a.absolutePoints;var f=c[c.length-1];if(null!=c[0]&&null!=f){if(null!=d&&0<d.length)for(b=0;b<d.length;b++)c=d[b],c=a.view.transformControlPoint(a,c),e.push(new mxPoint(c.x,c.y))}else if(null!=b){var f=a.view,g=f.graph;
-c=null!=d&&0<d.length?d[0]:null;null!=c&&(c=f.transformControlPoint(a,c),mxUtils.contains(b,c.x,c.y)&&(c=null));var k=d=0,l=0,m=0,g=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,g.gridSize)*f.scale;a=mxUtils.getValue(a.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);a==mxConstants.DIRECTION_NORTH||a==mxConstants.DIRECTION_SOUTH?(d=f.getRoutingCenterX(b),k=g):(l=f.getRoutingCenterY(b),m=g);null==c||c.x<b.x||c.x>b.x+b.width?null!=c?(d=c.x,m=Math.max(Math.abs(l-c.y),m)):a==mxConstants.DIRECTION_NORTH?
-l=b.y-2*k:a==mxConstants.DIRECTION_SOUTH?l=b.y+b.height+2*k:d=a==mxConstants.DIRECTION_EAST?b.x-2*m:b.x+b.width+2*m:null!=c&&(d=f.getRoutingCenterX(b),k=Math.max(Math.abs(d-c.x),m),l=c.y,m=0);e.push(new mxPoint(d-k,l-m));e.push(new mxPoint(d+k,l+m))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0<d.length?d[0]:null,g=!1,k=!1;if(null!=b&&null!=c)if(null!=f)var l=Math.min(b.x,c.x),m=Math.max(b.x+b.width,c.x+c.width),k=Math.min(b.y,c.y),n=Math.max(b.y+b.height,c.y+c.height),f=a.view.transformControlPoint(a,
-f),g=f.y<k||f.y>n,k=f.x<l||f.x>m;else l=Math.max(b.x,c.x),m=Math.min(b.x+b.width,c.x+c.width),(g=l==m)||(k=Math.max(b.y,c.y),n=Math.min(b.y+b.height,c.y+c.height),k=k==n);!k&&(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<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,
+var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],n=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var m=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=m==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
+l.relative?k=0.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=n?(c=new mxCellState,c.x=n.x,c.y=n.y):null!=c&&(m=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),m!=mxConstants.DIRECTION_MASK_NONE&&m!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=m==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=0.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
+f=new mxPoint(a+(k?-d:d),b),n=new mxPoint(g+(l?-d:d),c),k==l?(d=k?Math.min(a,g)-d:Math.max(a,g)+d,e.push(new mxPoint(d,b)),e.push(new mxPoint(d,c))):(f.x<n.x==k?(d=b+(c-b)/2,e.push(f),e.push(new mxPoint(f.x,d)),e.push(new mxPoint(n.x,d))):e.push(f),e.push(n)))},Loop:function(a,b,c,d,e){c=a.absolutePoints;var f=c[c.length-1];if(null!=c[0]&&null!=f){if(null!=d&&0<d.length)for(b=0;b<d.length;b++)c=d[b],c=a.view.transformControlPoint(a,c),e.push(new mxPoint(c.x,c.y))}else if(null!=b){var f=a.view,g=f.graph;
+c=null!=d&&0<d.length?d[0]:null;null!=c&&(c=f.transformControlPoint(a,c),mxUtils.contains(b,c.x,c.y)&&(c=null));var k=d=0,l=0,n=0,g=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,g.gridSize)*f.scale;a=mxUtils.getValue(a.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);a==mxConstants.DIRECTION_NORTH||a==mxConstants.DIRECTION_SOUTH?(d=f.getRoutingCenterX(b),k=g):(l=f.getRoutingCenterY(b),n=g);null==c||c.x<b.x||c.x>b.x+b.width?null!=c?(d=c.x,n=Math.max(Math.abs(l-c.y),n)):a==mxConstants.DIRECTION_NORTH?
+l=b.y-2*k:a==mxConstants.DIRECTION_SOUTH?l=b.y+b.height+2*k:d=a==mxConstants.DIRECTION_EAST?b.x-2*n:b.x+b.width+2*n:null!=c&&(d=f.getRoutingCenterX(b),k=Math.max(Math.abs(d-c.x),n),l=c.y,n=0);e.push(new mxPoint(d-k,l-n));e.push(new mxPoint(d+k,l+n))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0<d.length?d[0]:null,g=!1,k=!1;if(null!=b&&null!=c)if(null!=f)var l=Math.min(b.x,c.x),n=Math.max(b.x+b.width,c.x+c.width),k=Math.min(b.y,c.y),m=Math.max(b.y+b.height,c.y+c.height),f=a.view.transformControlPoint(a,
+f),g=f.y<k||f.y>m,k=f.x<l||f.x>n;else l=Math.max(b.x,c.x),n=Math.min(b.x+b.width,c.x+c.width),(g=l==n)||(k=Math.max(b.y,c.y),m=Math.min(b.y+b.height,c.y+c.height),k=k==m);!k&&(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<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,
b.x=k.x,b.y=k.y);null!=g&&(c=new mxCellState,c.x=g.x,c.y=g.y);null!=b&&null!=c&&(a=Math.max(b.x,c.x),k=Math.min(b.x+b.width,c.x+c.width),a=null!=d?d.x:Math.round(k+(a-k)/2),k=f.getRoutingCenterY(b),f=f.getRoutingCenterY(c),null!=d&&(d.y>=b.y&&d.y<=b.y+b.height&&(k=d.y),d.y>=c.y&&d.y<=c.y+c.height&&(f=d.y)),!mxUtils.contains(c,a,k)&&!mxUtils.contains(b,a,k)&&e.push(new mxPoint(a,k)),!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<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,b.x=k.x,b.y=k.y);null!=g&&(c=new mxCellState,c.x=g.x,c.y=g.y);null!=b&&null!=c&&(k=Math.max(b.y,c.y),g=Math.min(b.y+b.height,c.y+c.height),a=f.getRoutingCenterX(b),
null!=d&&d.x>=b.x&&d.x<=b.x+b.width&&(a=d.x),k=null!=d?d.y:Math.round(g+(k-g)/2),!mxUtils.contains(c,a,k)&&!mxUtils.contains(b,a,k)&&e.push(new mxPoint(a,k)),a=null!=d&&d.x>=c.x&&d.x<=c.x+c.width?d.x:f.getRoutingCenterX(c),!mxUtils.contains(c,a,k)&&!mxUtils.contains(b,a,k)&&e.push(new mxPoint(a,k)),1==e.length&&(null!=d&&1==e.length?!mxUtils.contains(c,d.x,k)&&!mxUtils.contains(b,d.x,k)&&e.push(new mxPoint(d.x,k)):(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,k)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==l||Math.abs(l.x-a.x)>=k||Math.abs(l.y-a.y)>=k)e.push(a),l=a;return l}var g=a.absolutePoints,k=Math.max(1,a.view.scale),l=0<e.length?e[0]:null,m=!0,n=null,q=g[0];null==q&&null!=b?q=new mxPoint(a.view.getRoutingCenterX(b),a.view.getRoutingCenterY(b)):null!=q&&(q=q.clone());q.x=Math.round(q.x);q.y=Math.round(q.y);var p=g.length-1;if(null!=d&&0<d.length){for(var n=[],r=0;r<d.length;r++){var s=a.view.transformControlPoint(a,d[r]);null!=
-s&&(s.x=Math.round(s.x),s.y=Math.round(s.y),n.push(s))}if(0==n.length)return;d=n;null!=q&&null!=d[0]&&(Math.abs(d[0].x-q.x)<k&&(d[0].x=q.x),Math.abs(d[0].y-q.y)<k&&(d[0].y=q.y));s=g[p];null!=s&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-s.x)<k&&(d[d.length-1].x=s.x),Math.abs(d[d.length-1].y-s.y)<k&&(d[d.length-1].y=s.y));var n=d[0],t=b,v=g[0],u=!1,y=!1,u=n;null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);for(r=0;2>r;r++){var z=null!=v&&v.x==u.x,x=null!=v&&v.y==u.y,G=null!=t&&u.y>=t.y&&
-u.y<=t.y+t.height,t=null!=t&&u.x>=t.x&&u.x<=t.x+t.width,u=x||null==v&&G,y=z||null==v&&t;if(!(0==r&&(u&&y||z&&x))){if(null!=v&&!x&&!z&&(G||t)){m=G?!1:!0;break}if(y||u){m=u;1==r&&(m=0==d.length%2?u:y);break}}t=c;v=g[p];null!=v&&(v.x=Math.round(v.x),v.y=Math.round(v.y),t=null);u=d[d.length-1];z&&x&&(d=d.slice(1))}m&&(null!=g[0]&&g[0].y!=n.y||null==g[0]&&null!=b&&(n.y<b.y||n.y>b.y+b.height))?f(new mxPoint(q.x,n.y)):!m&&(null!=g[0]&&g[0].x!=n.x||null==g[0]&&null!=b&&(n.x<b.x||n.x>b.x+b.width))&&f(new mxPoint(n.x,
-q.y));m?q.y=n.y:q.x=n.x;for(r=0;r<d.length;r++)m=!m,n=d[r],m?q.y=n.y:q.x=n.x,f(q.clone())}else n=q,m=!0;q=g[p];null==q&&null!=c&&(q=new mxPoint(a.view.getRoutingCenterX(c),a.view.getRoutingCenterY(c)));null!=q&&(q.x=Math.round(q.x),q.y=Math.round(q.y),null!=n&&(m&&(null!=g[p]&&g[p].y!=n.y||null==g[p]&&null!=c&&(n.y<c.y||n.y>c.y+c.height))?f(new mxPoint(q.x,n.y)):!m&&(null!=g[p]&&g[p].x!=n.x||null==g[p]&&null!=c&&(n.x<c.x||n.x>c.x+c.width))&&f(new mxPoint(n.x,q.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<e.length&&null!=e[e.length-1]&&mxUtils.contains(c,e[e.length-1].x,e[e.length-1].y);)e.splice(e.length-1,1);null!=s&&null!=e[e.length-1]&&Math.abs(s.x-e[e.length-1].x)<k&&Math.abs(s.y-e[e.length-1].y)<k&&(e.splice(e.length-1,1),null!=e[e.length-1]&&(Math.abs(e[e.length-1].x-s.x)<k&&(e[e.length-1].x=s.x),Math.abs(e[e.length-1].y-s.y)<k&&(e[e.length-1].y=s.y)))},orthBuffer:10,orthPointsFallback:!0,dirVectors:[[-1,
+2,k)))))},SegmentConnector:function(a,b,c,d,e){function f(a){if(null==l||Math.abs(l.x-a.x)>=k||Math.abs(l.y-a.y)>=k)e.push(a),l=a;return l}var g=a.absolutePoints,k=Math.max(1,a.view.scale),l=0<e.length?e[0]:null,n=!0,m=null,p=g[0];null==p&&null!=b?p=new mxPoint(a.view.getRoutingCenterX(b),a.view.getRoutingCenterY(b)):null!=p&&(p=p.clone());p.x=Math.round(p.x);p.y=Math.round(p.y);var q=g.length-1;if(null!=d&&0<d.length){for(var m=[],s=0;s<d.length;s++){var r=a.view.transformControlPoint(a,d[s]);null!=
+r&&(r.x=Math.round(r.x),r.y=Math.round(r.y),m.push(r))}if(0==m.length)return;d=m;null!=p&&null!=d[0]&&(Math.abs(d[0].x-p.x)<k&&(d[0].x=p.x),Math.abs(d[0].y-p.y)<k&&(d[0].y=p.y));r=g[q];null!=r&&null!=d[d.length-1]&&(Math.abs(d[d.length-1].x-r.x)<k&&(d[d.length-1].x=r.x),Math.abs(d[d.length-1].y-r.y)<k&&(d[d.length-1].y=r.y));var m=d[0],t=b,u=g[0],v=!1,z=!1,v=m;null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),t=null);for(s=0;2>s;s++){var y=null!=u&&u.x==v.x,x=null!=u&&u.y==v.y,E=null!=t&&v.y>=t.y&&
+v.y<=t.y+t.height,t=null!=t&&v.x>=t.x&&v.x<=t.x+t.width,v=x||null==u&&E,z=y||null==u&&t;if(!(0==s&&(v&&z||y&&x))){if(null!=u&&!x&&!y&&(E||t)){n=E?!1:!0;break}if(z||v){n=v;1==s&&(n=0==d.length%2?v:z);break}}t=c;u=g[q];null!=u&&(u.x=Math.round(u.x),u.y=Math.round(u.y),t=null);v=d[d.length-1];y&&x&&(d=d.slice(1))}n&&(null!=g[0]&&g[0].y!=m.y||null==g[0]&&null!=b&&(m.y<b.y||m.y>b.y+b.height))?f(new mxPoint(p.x,m.y)):!n&&(null!=g[0]&&g[0].x!=m.x||null==g[0]&&null!=b&&(m.x<b.x||m.x>b.x+b.width))&&f(new mxPoint(m.x,
+p.y));n?p.y=m.y:p.x=m.x;for(s=0;s<d.length;s++)n=!n,m=d[s],n?p.y=m.y:p.x=m.x,f(p.clone())}else m=p,n=!0;p=g[q];null==p&&null!=c&&(p=new mxPoint(a.view.getRoutingCenterX(c),a.view.getRoutingCenterY(c)));null!=p&&(p.x=Math.round(p.x),p.y=Math.round(p.y),null!=m&&(n&&(null!=g[q]&&g[q].y!=m.y||null==g[q]&&null!=c&&(m.y<c.y||m.y>c.y+c.height))?f(new mxPoint(p.x,m.y)):!n&&(null!=g[q]&&g[q].x!=m.x||null==g[q]&&null!=c&&(m.x<c.x||m.x>c.x+c.width))&&f(new mxPoint(m.x,p.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[q]&&null!=c)for(;1<e.length&&null!=e[e.length-1]&&mxUtils.contains(c,e[e.length-1].x,e[e.length-1].y);)e.splice(e.length-1,1);null!=r&&null!=e[e.length-1]&&Math.abs(r.x-e[e.length-1].x)<k&&Math.abs(r.y-e[e.length-1].y)<k&&(e.splice(e.length-1,1),null!=e[e.length-1]&&(Math.abs(e[e.length-1].x-r.x)<k&&(e[e.length-1].x=r.x),Math.abs(e[e.length-1].y-r.y)<k&&(e[e.length-1].y=r.y)))},orthBuffer:10,orthPointsFallback:!0,dirVectors:[[-1,
0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,
2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,
getJettySize:function(a,b,c,d,e){b=mxUtils.getValue(a.style,e?mxConstants.STYLE_SOURCE_JETTY_SIZE:mxConstants.STYLE_TARGET_JETTY_SIZE,mxUtils.getValue(a.style,mxConstants.STYLE_JETTY_SIZE,mxEdgeStyle.orthBuffer));"auto"==b&&(mxUtils.getValue(a.style,e?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE?(a=mxUtils.getNumber(a.style,e?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),b=Math.max(2,Math.ceil((a+mxEdgeStyle.orthBuffer)/
-mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):b=2*mxEdgeStyle.orthBuffer);return b},OrthConnector:function(a,b,c,d,e){var f=a.view.graph,g=null==b?!1:f.getModel().isEdge(b.cell),k=null==c?!1:f.getModel().isEdge(c.cell),f=a.absolutePoints,l=f[0],m=f[f.length-1],n=null!=b?b.x:l.x,q=null!=b?b.y:l.y,p=null!=b?b.width:0,r=null!=b?b.height:0,s=null!=c?c.x:m.x,t=null!=c?c.y:m.y,v=null!=c?c.width:0,u=null!=c?c.height:0,f=a.view.scale*mxEdgeStyle.getJettySize(a,b,c,d,!0),y=a.view.scale*mxEdgeStyle.getJettySize(a,
-b,c,d,!1);null!=b&&c==b&&(f=y=Math.max(f,y));var z=y+f,x=!1;if(null!=l&&null!=m)var x=m.x-l.x,G=m.y-l.y,x=x*x+G*G<z*z;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,b,c,d,e);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=b&&(d[0]=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(n,q,p,r),x),n=x.x,
-q=x.y,p=x.width,r=x.height));null!=c&&(d[1]=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(s,t,v,u),x),s=x.x,t=x.y,v=x.width,u=x.height));n=Math.round(10*n)/10;q=Math.round(10*q)/10;p=Math.round(10*p)/10;r=Math.round(10*r)/10;s=Math.round(10*s)/10;t=Math.round(10*t)/10;v=Math.round(10*v)/10;u=Math.round(10*u)/10;a=[0,0];n=[[n,q,p,r],[s,t,v,u]];y=[f,y];for(x=0;2>x;x++)mxEdgeStyle.limits[x][1]=
-n[x][0]-y[x],mxEdgeStyle.limits[x][2]=n[x][1]-y[x],mxEdgeStyle.limits[x][4]=n[x][0]+n[x][2]+y[x],mxEdgeStyle.limits[x][8]=n[x][1]+n[x][3]+y[x];y=n[0][1]+n[0][3]/2;q=n[1][1]+n[1][3]/2;x=n[0][0]+n[0][2]/2-(n[1][0]+n[1][2]/2);G=y-q;y=0;0>x?y=0>G?2:1:0>=G&&(y=3,0==x&&(y=2));q=null;null!=b&&(q=l);b=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=q&&(b[x][0]=(q.x-n[x][0])/n[x][2],1>=Math.abs(q.x-n[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(q.x-n[x][0]-n[x][2])&&(a[x]=mxConstants.DIRECTION_MASK_EAST),
-b[x][1]=(q.y-n[x][1])/n[x][3],1>=Math.abs(q.y-n[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(q.y-n[x][1]-n[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),q=null,null!=c&&(q=m);x=n[0][1]-(n[1][1]+n[1][3]);m=n[0][0]-(n[1][0]+n[1][2]);q=n[1][1]-(n[0][1]+n[0][3]);p=n[1][0]-(n[0][0]+n[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(m-z,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-z,0);mxEdgeStyle.vertexSeperations[4]=Math.max(q-z,0);mxEdgeStyle.vertexSeperations[3]=Math.max(p-z,0);z=[];
-c=[];l=[];c[0]=m>=p?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;l[0]=x>=q?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);l[1]=mxUtils.reversePortConstraints(l[0]);m=m>=p?m:p;q=x>=q?x:q;p=[[0,0],[0,0]];r=!1;for(x=0;2>x;x++)0==a[x]&&(0==(c[x]&d[x])&&(c[x]=mxUtils.reversePortConstraints(c[x])),0==(l[x]&d[x])&&(l[x]=mxUtils.reversePortConstraints(l[x])),p[x][0]=l[x],p[x][1]=c[x]);0<q&&0<m&&(0<(c[0]&d[0])&&0<(l[1]&d[1])?(p[0][0]=
-c[0],p[0][1]=l[0],p[1][0]=l[1],p[1][1]=c[1],r=!0):0<(l[0]&d[0])&&0<(c[1]&d[1])&&(p[0][0]=l[0],p[0][1]=c[0],p[1][0]=c[1],p[1][1]=l[1],r=!0));0<q&&!r&&(p[0][0]=l[0],p[0][1]=c[0],p[1][0]=l[1],p[1][1]=c[1],r=!0);0<m&&!r&&(p[0][0]=c[0],p[0][1]=l[0],p[1][0]=c[1],p[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(p[x][0]&d[x])&&(p[x][0]=p[x][1]),z[x]=p[x][0]&d[x],z[x]|=(p[x][1]&d[x])<<8,z[x]|=(p[1-x][x]&d[x])<<16,z[x]|=(p[1-x][1-x]&d[x])<<24,0==(z[x]&15)&&(z[x]<<=8),0==(z[x]&3840)&&(z[x]=z[x]&15|z[x]>>8),0==
-(z[x]&983040)&&(z[x]=z[x]&65535|(z[x]&251658240)>>8),a[x]=z[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];d=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];z=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];d-=y;z-=y;1>d&&(d+=4);1>z&&(z+=4);d=mxEdgeStyle.routePatterns[d-1][z-1];mxEdgeStyle.wayPoints1[0][0]=n[0][0];mxEdgeStyle.wayPoints1[0][1]=n[0][1];switch(a[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=
-f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*n[0][2];mxEdgeStyle.wayPoints1[0][1]+=n[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=n[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=b[0][1]*n[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=b[0][0]*n[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;c=z=0<(a[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?
-0:1;for(x=0;x<d.length;x++)l=d[x]&15,s=l==mxConstants.DIRECTION_MASK_EAST?3:l,s+=y,4<s&&(s-=4),m=mxEdgeStyle.dirVectors[s-1],l=0<s%2?0:1,l!=z&&(f++,mxEdgeStyle.wayPoints1[f][0]=mxEdgeStyle.wayPoints1[f-1][0],mxEdgeStyle.wayPoints1[f][1]=mxEdgeStyle.wayPoints1[f-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),r=0<(d[x]&mxEdgeStyle.SOURCE_MASK),q=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,q<<=y,15<q&&(q>>=4),p=0<(d[x]&mxEdgeStyle.CENTER_MASK),(r||t)&&9>q?(r=r?0:1,s=p&&0==l?n[r][0]+b[r][0]*n[r][2]:p?n[r][1]+b[r][1]*
-n[r][3]:mxEdgeStyle.limits[r][q],0==l?(q=(s-mxEdgeStyle.wayPoints1[f][0])*m[0],0<q&&(mxEdgeStyle.wayPoints1[f][0]+=m[0]*q)):(q=(s-mxEdgeStyle.wayPoints1[f][1])*m[1],0<q&&(mxEdgeStyle.wayPoints1[f][1]+=m[1]*q))):p&&(mxEdgeStyle.wayPoints1[f][0]+=m[0]*Math.abs(mxEdgeStyle.vertexSeperations[s]/2),mxEdgeStyle.wayPoints1[f][1]+=m[1]*Math.abs(mxEdgeStyle.vertexSeperations[s]/2)),0<f&&mxEdgeStyle.wayPoints1[f][l]==mxEdgeStyle.wayPoints1[f-1][l]?f--:z=l;for(x=0;x<=f&&!(x==f&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
+mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):b=2*mxEdgeStyle.orthBuffer);return b},OrthConnector:function(a,b,c,d,e){var f=a.view.graph,g=null==b?!1:f.getModel().isEdge(b.cell),k=null==c?!1:f.getModel().isEdge(c.cell),f=a.absolutePoints,l=f[0],n=f[f.length-1],m=null!=b?b.x:l.x,p=null!=b?b.y:l.y,q=null!=b?b.width:0,s=null!=b?b.height:0,r=null!=c?c.x:n.x,t=null!=c?c.y:n.y,u=null!=c?c.width:0,v=null!=c?c.height:0,f=a.view.scale*mxEdgeStyle.getJettySize(a,b,c,d,!0),z=a.view.scale*mxEdgeStyle.getJettySize(a,
+b,c,d,!1);null!=b&&c==b&&(f=z=Math.max(f,z));var y=z+f,x=!1;if(null!=l&&null!=n)var x=n.x-l.x,E=n.y-l.y,x=x*x+E*E<y*y;if(x||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,b,c,d,e);else{d=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];x=0;null!=b&&(d[0]=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(m,p,q,s),x),m=x.x,
+p=x.y,q=x.width,s=x.height));null!=c&&(d[1]=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_ALL),x=mxUtils.getValue(c.style,mxConstants.STYLE_ROTATION,0),0!=x&&(x=mxUtils.getBoundingBox(new mxRectangle(r,t,u,v),x),r=x.x,t=x.y,u=x.width,v=x.height));m=Math.round(10*m)/10;p=Math.round(10*p)/10;q=Math.round(10*q)/10;s=Math.round(10*s)/10;r=Math.round(10*r)/10;t=Math.round(10*t)/10;u=Math.round(10*u)/10;v=Math.round(10*v)/10;a=[0,0];m=[[m,p,q,s],[r,t,u,v]];z=[f,z];for(x=0;2>x;x++)mxEdgeStyle.limits[x][1]=
+m[x][0]-z[x],mxEdgeStyle.limits[x][2]=m[x][1]-z[x],mxEdgeStyle.limits[x][4]=m[x][0]+m[x][2]+z[x],mxEdgeStyle.limits[x][8]=m[x][1]+m[x][3]+z[x];z=m[0][1]+m[0][3]/2;p=m[1][1]+m[1][3]/2;x=m[0][0]+m[0][2]/2-(m[1][0]+m[1][2]/2);E=z-p;z=0;0>x?z=0>E?2:1:0>=E&&(z=3,0==x&&(z=2));p=null;null!=b&&(p=l);b=[[0.5,0.5],[0.5,0.5]];for(x=0;2>x;x++)null!=p&&(b[x][0]=(p.x-m[x][0])/m[x][2],1>=Math.abs(p.x-m[x][0])?a[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(p.x-m[x][0]-m[x][2])&&(a[x]=mxConstants.DIRECTION_MASK_EAST),
+b[x][1]=(p.y-m[x][1])/m[x][3],1>=Math.abs(p.y-m[x][1])?a[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(p.y-m[x][1]-m[x][3])&&(a[x]=mxConstants.DIRECTION_MASK_SOUTH)),p=null,null!=c&&(p=n);x=m[0][1]-(m[1][1]+m[1][3]);n=m[0][0]-(m[1][0]+m[1][2]);p=m[1][1]-(m[0][1]+m[0][3]);q=m[1][0]-(m[0][0]+m[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(n-y,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-y,0);mxEdgeStyle.vertexSeperations[4]=Math.max(p-y,0);mxEdgeStyle.vertexSeperations[3]=Math.max(q-y,0);y=[];
+c=[];l=[];c[0]=n>=q?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;l[0]=x>=p?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;c[1]=mxUtils.reversePortConstraints(c[0]);l[1]=mxUtils.reversePortConstraints(l[0]);n=n>=q?n:q;p=x>=p?x:p;q=[[0,0],[0,0]];s=!1;for(x=0;2>x;x++)0==a[x]&&(0==(c[x]&d[x])&&(c[x]=mxUtils.reversePortConstraints(c[x])),0==(l[x]&d[x])&&(l[x]=mxUtils.reversePortConstraints(l[x])),q[x][0]=l[x],q[x][1]=c[x]);0<p&&0<n&&(0<(c[0]&d[0])&&0<(l[1]&d[1])?(q[0][0]=
+c[0],q[0][1]=l[0],q[1][0]=l[1],q[1][1]=c[1],s=!0):0<(l[0]&d[0])&&0<(c[1]&d[1])&&(q[0][0]=l[0],q[0][1]=c[0],q[1][0]=c[1],q[1][1]=l[1],s=!0));0<p&&!s&&(q[0][0]=l[0],q[0][1]=c[0],q[1][0]=l[1],q[1][1]=c[1],s=!0);0<n&&!s&&(q[0][0]=c[0],q[0][1]=l[0],q[1][0]=c[1],q[1][1]=l[1]);for(x=0;2>x;x++)if(0==a[x]&&(0==(q[x][0]&d[x])&&(q[x][0]=q[x][1]),y[x]=q[x][0]&d[x],y[x]|=(q[x][1]&d[x])<<8,y[x]|=(q[1-x][x]&d[x])<<16,y[x]|=(q[1-x][1-x]&d[x])<<24,0==(y[x]&15)&&(y[x]<<=8),0==(y[x]&3840)&&(y[x]=y[x]&15|y[x]>>8),0==
+(y[x]&983040)&&(y[x]=y[x]&65535|(y[x]&251658240)>>8),a[x]=y[x]&15,d[x]==mxConstants.DIRECTION_MASK_WEST||d[x]==mxConstants.DIRECTION_MASK_NORTH||d[x]==mxConstants.DIRECTION_MASK_EAST||d[x]==mxConstants.DIRECTION_MASK_SOUTH))a[x]=d[x];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(x=0;x<d.length;x++)l=d[x]&15,r=l==mxConstants.DIRECTION_MASK_EAST?3:l,r+=z,4<r&&(r-=4),n=mxEdgeStyle.dirVectors[r-1],l=0<r%2?0:1,l!=y&&(f++,mxEdgeStyle.wayPoints1[f][0]=mxEdgeStyle.wayPoints1[f-1][0],mxEdgeStyle.wayPoints1[f][1]=mxEdgeStyle.wayPoints1[f-1][1]),t=0<(d[x]&mxEdgeStyle.TARGET_MASK),s=0<(d[x]&mxEdgeStyle.SOURCE_MASK),p=(d[x]&mxEdgeStyle.SIDE_MASK)>>5,p<<=z,15<p&&(p>>=4),q=0<(d[x]&mxEdgeStyle.CENTER_MASK),(s||t)&&9>p?(s=s?0:1,r=q&&0==l?m[s][0]+b[s][0]*m[s][2]:q?m[s][1]+b[s][1]*
+m[s][3]:mxEdgeStyle.limits[s][p],0==l?(p=(r-mxEdgeStyle.wayPoints1[f][0])*n[0],0<p&&(mxEdgeStyle.wayPoints1[f][0]+=n[0]*p)):(p=(r-mxEdgeStyle.wayPoints1[f][1])*n[1],0<p&&(mxEdgeStyle.wayPoints1[f][1]+=n[1]*p))):q&&(mxEdgeStyle.wayPoints1[f][0]+=n[0]*Math.abs(mxEdgeStyle.vertexSeperations[r]/2),mxEdgeStyle.wayPoints1[f][1]+=n[1]*Math.abs(mxEdgeStyle.vertexSeperations[r]/2)),0<f&&mxEdgeStyle.wayPoints1[f][l]==mxEdgeStyle.wayPoints1[f-1][l]?f--:y=l;for(x=0;x<=f&&!(x==f&&((0<(a[1]&(mxConstants.DIRECTION_MASK_EAST|
mxConstants.DIRECTION_MASK_WEST))?0:1)==c?0:1)!=(f+1)%2);x++)e.push(new mxPoint(Math.round(mxEdgeStyle.wayPoints1[x][0]),Math.round(mxEdgeStyle.wayPoints1[x][1])));for(a=1;a<e.length;)null==e[a-1]||null==e[a]||e[a-1].x!=e[a].x||e[a-1].y!=e[a].y?a++:e.splice(a,1)}},getRoutePattern:function(a,b,c,d){var e=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];a=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];e-=b;a-=b;1>e&&(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);
@@ -1228,12 +1228,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,k=f.y,l=c,m=k,n=1;n<b.length;n++){var q=b[n];null!=q&&(e=f.x-q.x,f=f.y-q.y,e=Math.sqrt(e*e+f*f),g.push(e),d+=e,f=q,c=Math.min(f.x,c),k=Math.min(f.y,k),l=Math.max(f.x,l),m=Math.max(f.y,m))}a.length=d;a.segments=g;a.x=c;a.y=k;a.width=Math.max(1,l-c);a.height=
-Math.max(1,m-k)}};
-mxGraphView.prototype.getPoint=function(a,b){var c=a.getCenterX(),d=a.getCenterY();if(null!=a.segments&&(null==b||b.relative)){for(var e=a.absolutePoints.length,f=Math.round(((null!=b?b.x/2:0)+0.5)*a.length),g=a.segments[0],k=0,l=1;f>=Math.round(k+g)&&l<e-1;)k+=g,g=a.segments[l++];e=0==g?0:(f-k)/g;f=a.absolutePoints[l-1];l=a.absolutePoints[l];if(null!=f&&null!=l){k=c=d=0;if(null!=b){var d=b.y,m=b.offset;null!=m&&(c=m.x,k=m.y)}m=l.x-f.x;l=l.y-f.y;c=f.x+m*e+((0==g?0:l/g)*d+c)*this.scale;d=f.y+l*e-((0==
-g?0:m/g)*d-k)*this.scale}}else null!=b&&(m=b.offset,null!=m&&(c+=m.x,d+=m.y));return new mxPoint(c,d)};
-mxGraphView.prototype.getRelativePoint=function(a,b,c){var d=this.graph.getModel().getGeometry(a.cell);if(null!=d){var e=a.absolutePoints.length;if(d.relative&&1<e){for(var d=a.length,f=a.segments,g=a.absolutePoints[0],k=a.absolutePoints[1],l=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),m=0,n=0,q=0,p=2;p<e;p++)n+=f[p-2],k=a.absolutePoints[p],g=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),g<=l&&(l=g,m=p-1,q=n),g=k;e=f[m];g=a.absolutePoints[m];k=a.absolutePoints[m+1];l=k.x;f=k.y;a=g.x-l;m=g.y-f;f=(a-(b-l))*
-a+(m-(c-f))*m;a=Math.sqrt(0>=f?0:f*f/(a*a+m*m));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,k.x,k.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-q-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,k=f.y,l=c,n=k,m=1;m<b.length;m++){var p=b[m];null!=p&&(e=f.x-p.x,f=f.y-p.y,e=Math.sqrt(e*e+f*f),g.push(e),d+=e,f=p,c=Math.min(f.x,c),k=Math.min(f.y,k),l=Math.max(f.x,l),n=Math.max(f.y,n))}a.length=d;a.segments=g;a.x=c;a.y=k;a.width=Math.max(1,l-c);a.height=
+Math.max(1,n-k)}};
+mxGraphView.prototype.getPoint=function(a,b){var c=a.getCenterX(),d=a.getCenterY();if(null!=a.segments&&(null==b||b.relative)){for(var e=a.absolutePoints.length,f=Math.round(((null!=b?b.x/2:0)+0.5)*a.length),g=a.segments[0],k=0,l=1;f>=Math.round(k+g)&&l<e-1;)k+=g,g=a.segments[l++];e=0==g?0:(f-k)/g;f=a.absolutePoints[l-1];l=a.absolutePoints[l];if(null!=f&&null!=l){k=c=d=0;if(null!=b){var d=b.y,n=b.offset;null!=n&&(c=n.x,k=n.y)}n=l.x-f.x;l=l.y-f.y;c=f.x+n*e+((0==g?0:l/g)*d+c)*this.scale;d=f.y+l*e-((0==
+g?0:n/g)*d-k)*this.scale}}else null!=b&&(n=b.offset,null!=n&&(c+=n.x,d+=n.y));return new mxPoint(c,d)};
+mxGraphView.prototype.getRelativePoint=function(a,b,c){var d=this.graph.getModel().getGeometry(a.cell);if(null!=d){var e=a.absolutePoints.length;if(d.relative&&1<e){for(var d=a.length,f=a.segments,g=a.absolutePoints[0],k=a.absolutePoints[1],l=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),n=0,m=0,p=0,q=2;q<e;q++)m+=f[q-2],k=a.absolutePoints[q],g=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),g<=l&&(l=g,n=q-1,p=m),g=k;e=f[n];g=a.absolutePoints[n];k=a.absolutePoints[n+1];l=k.x;f=k.y;a=g.x-l;n=g.y-f;f=(a-(b-l))*
+a+(n-(c-f))*n;a=Math.sqrt(0>=f?0:f*f/(a*a+n*n));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,k.x,k.y,b,c)&&(e=-e);return new mxPoint(-2*((d/2-p-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&&0<b.length&&null!=a.segments){var c=this.graph.getCellGeometry(a.cell);if(c.relative){var d=this.getPoint(a,c);null!=d&&(a.absoluteOffset=d)}else{var d=b[0],e=b[b.length-1];if(null!=d&&null!=e){var b=e.x-d.x,f=e.y-d.y,g=e=0,c=c.offset;null!=c&&(e=c.x,g=c.y);c=d.y+f/2+g*this.scale;a.absoluteOffset.x=d.x+b/2+e*this.scale;a.absoluteOffset.y=c}}}};
mxGraphView.prototype.getState=function(a,b){b=b||!1;var c=null;if(null!=a&&(c=this.states.get(a),b&&(null==c||this.updateStyle)&&this.graph.isCellVisible(a)))null==c?(c=this.createState(a),this.states.put(a,c)):c.style=this.graph.getCellStyle(a);return c};mxGraphView.prototype.isRendering=function(){return this.rendering};mxGraphView.prototype.setRendering=function(a){this.rendering=a};mxGraphView.prototype.isAllowEval=function(){return this.allowEval};
mxGraphView.prototype.setAllowEval=function(a){this.allowEval=a};mxGraphView.prototype.getStates=function(){return this.states};mxGraphView.prototype.setStates=function(a){this.states=a};mxGraphView.prototype.getCellStates=function(a){if(null==a)return this.states;for(var b=[],c=0;c<a.length;c++){var d=this.getState(a[c]);null!=d&&b.push(d)}return b};
@@ -1295,15 +1295,15 @@ Math.max(e.clientWidth,e.scrollWidth)+d-f,a=this.view.getCanvas();a.style.width=
d-f))}}else this.allowAutoPanning&&!this.panningHandler.isActive()&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(a+this.panDx,b+this.panDy))};mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)};
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));b=this.pageBreaksVisible?Math.ceil(b/d.width):1;c=this.pageBreaksVisible?Math.ceil(c/d.height):1;return new mxRectangle(0,0,b*d.width+2+a.x,c*d.height+2+a.y)};
-mxGraph.prototype.fit=function(a,b,c,d,e,f){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var g=this.getBorderSizes(),k=this.container.offsetWidth-g.x-g.width-1,l=this.container.offsetHeight-g.y-g.height-1,g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var m=this.view.scale,n=g.width/m,q=g.height/m;null!=this.backgroundImage&&(n=Math.max(n,
-this.backgroundImage.width-g.x/m),q=Math.max(q,this.backgroundImage.height-g.y/m));var p=(b?a:2*a)+c,k=k-p,l=l-p;e=e?l/q:f?k/n:Math.min(k/n,l/q);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
-null!=g.x?Math.floor(this.view.translate.x-g.x/m+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/m+a/e+c/2):a);else return e}}return this.view.scale};
+mxGraph.prototype.fit=function(a,b,c,d,e,f){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var g=this.getBorderSizes(),k=this.container.offsetWidth-g.x-g.width-1,l=this.container.offsetHeight-g.y-g.height-1,g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var n=this.view.scale,m=g.width/n,p=g.height/n;null!=this.backgroundImage&&(m=Math.max(m,
+this.backgroundImage.width-g.x/n),p=Math.max(p,this.backgroundImage.height-g.y/n));var q=(b?a:2*a)+c,k=k-q,l=l-q;e=e?l/p:f?k/m:Math.min(k/m,l/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
+null!=g.x?Math.floor(this.view.translate.x-g.x/n+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/n+a/e+c/2):a);else return e}}return this.view.scale};
mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
-var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
-l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
+var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,n=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
+l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+n))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
mxGraph.prototype.getCellStyle=function(a){var b=this.model.getStyle(a),c=null,c=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=b&&(c=this.postProcessCellStyle(this.stylesheet.getCellStyle(b,c)));null==c&&(c=mxGraph.prototype.EMPTY_ARRAY);return c};
mxGraph.prototype.postProcessCellStyle=function(a){if(null!=a){var b=a[mxConstants.STYLE_IMAGE],c=this.getImageFromBundles(b);null!=c?a[mxConstants.STYLE_IMAGE]=c:c=b;null!=c&&"data:image/"==c.substring(0,11)&&("data:image/svg+xml,\x3c"==c.substring(0,20)?c=c.substring(0,19)+encodeURIComponent(c.substring(19)):"data:image/svg+xml,%3C"!=c.substring(0,22)&&(b=c.indexOf(","),0<b&&";base64,"!=c.substring(b-7,b+1)&&(c=c.substring(0,b)+";base64,"+c.substring(b+1))),a[mxConstants.STYLE_IMAGE]=c)}return a};
mxGraph.prototype.setCellStyle=function(a,b){b=b||this.getSelectionCells();if(null!=b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setStyle(b[c],a)}finally{this.model.endUpdate()}}};mxGraph.prototype.toggleCellStyle=function(a,b,c){c=c||this.getSelectionCell();return this.toggleCellStyles(a,b,[c])};
@@ -1321,21 +1321,21 @@ this.cellsAdded(c,a,f,null,null,!1,!1);this.cellsMoved(c,-d.x,-d.y,!1,!0);this.c
mxGraph.prototype.getBoundsForGroup=function(a,b,c){b=this.getBoundingBoxFromGeometry(b,!0);null!=b&&(this.isSwimlane(a)&&(a=this.getStartSize(a),b.x-=a.width,b.y-=a.height,b.width+=a.width,b.height+=a.height),null!=c&&(b.x-=c,b.y-=c,b.width+=2*c,b.height+=2*c));return b};mxGraph.prototype.createGroupCell=function(a){a=new mxCell("");a.setVertex(!0);a.setConnectable(!1);return a};
mxGraph.prototype.ungroupCells=function(a){var b=[];if(null==a){a=this.getSelectionCells();for(var c=[],d=0;d<a.length;d++)0<this.model.getChildCount(a[d])&&c.push(a[d]);a=c}if(null!=a&&0<a.length){this.model.beginUpdate();try{for(d=0;d<a.length;d++){var e=this.model.getChildren(a[d]);if(null!=e&&0<e.length){var e=e.slice(),f=this.model.getParent(a[d]),g=this.model.getChildCount(f);this.cellsAdded(e,f,g,null,null,!0);b=b.concat(e)}}this.removeCellsAfterUngroup(a);this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,
"cells",a))}finally{this.model.endUpdate()}}return b};mxGraph.prototype.removeCellsAfterUngroup=function(a){this.cellsRemoved(this.addAllEdges(a))};mxGraph.prototype.removeCellsFromParent=function(a){null==a&&(a=this.getSelectionCells());this.model.beginUpdate();try{var b=this.getDefaultParent(),c=this.model.getChildCount(b);this.cellsAdded(a,b,c,null,null,!0);this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",a))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.updateGroupBounds=function(a,b,c,d,e,f,g){null==a&&(a=this.getSelectionCells());b=null!=b?b:0;c=null!=c?c:!1;d=null!=d?d:0;e=null!=e?e:0;f=null!=f?f:0;g=null!=g?g:0;this.model.beginUpdate();try{for(var k=a.length-1;0<=k;k--){var l=this.getCellGeometry(a[k]);if(null!=l){var m=this.getChildCells(a[k]);if(null!=m&&0<m.length){var n=this.getBoundingBoxFromGeometry(m,!0);if(null!=n&&0<n.width&&0<n.height){var q=0,p=0;if(this.isSwimlane(a[k]))var r=this.getStartSize(a[k]),q=r.width,p=
-r.height;l=l.clone();c&&(l.x=Math.round(l.x+n.x-b-q-g),l.y=Math.round(l.y+n.y-b-p-d));l.width=Math.round(n.width+2*b+q+g+e);l.height=Math.round(n.height+2*b+p+d+f);this.model.setGeometry(a[k],l);this.moveCells(m,b+q-n.x+g,b+p-n.y+d)}}}}}finally{this.model.endUpdate()}return a};
+mxGraph.prototype.updateGroupBounds=function(a,b,c,d,e,f,g){null==a&&(a=this.getSelectionCells());b=null!=b?b:0;c=null!=c?c:!1;d=null!=d?d:0;e=null!=e?e:0;f=null!=f?f:0;g=null!=g?g:0;this.model.beginUpdate();try{for(var k=a.length-1;0<=k;k--){var l=this.getCellGeometry(a[k]);if(null!=l){var n=this.getChildCells(a[k]);if(null!=n&&0<n.length){var m=this.getBoundingBoxFromGeometry(n,!0);if(null!=m&&0<m.width&&0<m.height){var p=0,q=0;if(this.isSwimlane(a[k]))var s=this.getStartSize(a[k]),p=s.width,q=
+s.height;l=l.clone();c&&(l.x=Math.round(l.x+m.x-b-p-g),l.y=Math.round(l.y+m.y-b-q-d));l.width=Math.round(m.width+2*b+p+g+e);l.height=Math.round(m.height+2*b+q+d+f);this.model.setGeometry(a[k],l);this.moveCells(n,b+p-m.x+g,b+q-m.y+d)}}}}}finally{this.model.endUpdate()}return a};
mxGraph.prototype.getBoundingBox=function(a){var b=null;if(null!=a&&0<a.length)for(var c=0;c<a.length;c++)if(this.model.isVertex(a[c])||this.model.isEdge(a[c])){var d=this.view.getBoundingBox(this.view.getState(a[c]),!0);null!=d&&(null==b?b=mxRectangle.fromRectangle(d):b.add(d))}return b};
-mxGraph.prototype.cloneCells=function(a,b,c){b=null!=b?b:!0;var d=null;if(null!=a){for(var e=new mxDictionary,d=[],f=0;f<a.length;f++)e.put(a[f],!0),d.push(a[f]);if(0<d.length)for(var g=this.view.scale,k=this.view.translate,d=this.model.cloneCells(a,!0,c),f=0;f<a.length;f++)if(!b&&this.model.isEdge(d[f])&&null!=this.getEdgeValidationError(d[f],this.model.getTerminal(d[f],!0),this.model.getTerminal(d[f],!1)))d[f]=null;else{var l=this.model.getGeometry(d[f]);if(null!=l){var m=this.view.getState(a[f]),
-n=this.view.getState(this.model.getParent(a[f]));if(null!=m&&null!=n)if(c=n.origin.x,n=n.origin.y,this.model.isEdge(d[f])){for(var m=m.absolutePoints,q=this.model.getTerminal(a[f],!0);null!=q&&!e.get(q);)q=this.model.getParent(q);null==q&&l.setTerminalPoint(new mxPoint(m[0].x/g-k.x,m[0].y/g-k.y),!0);for(q=this.model.getTerminal(a[f],!1);null!=q&&!e.get(q);)q=this.model.getParent(q);null==q&&(q=m.length-1,l.setTerminalPoint(new mxPoint(m[q].x/g-k.x,m[q].y/g-k.y),!1));l=l.points;if(null!=l)for(m=0;m<
-l.length;m++)l[m].x+=c,l[m].y+=n}else l.translate(c,n)}}else d=[]}return d};mxGraph.prototype.insertVertex=function(a,b,c,d,e,f,g,k,l){b=this.createVertex(a,b,c,d,e,f,g,k,l);return this.addCell(b,a)};mxGraph.prototype.createVertex=function(a,b,c,d,e,f,g,k,l){a=new mxGeometry(d,e,f,g);a.relative=null!=l?l:!1;c=new mxCell(c,a,k);c.setId(b);c.setVertex(!0);c.setConnectable(!0);return c};mxGraph.prototype.insertEdge=function(a,b,c,d,e,f){b=this.createEdge(a,b,c,d,e,f);return this.addEdge(b,a,d,e)};
+mxGraph.prototype.cloneCells=function(a,b,c){b=null!=b?b:!0;var d=null;if(null!=a){for(var e=new mxDictionary,d=[],f=0;f<a.length;f++)e.put(a[f],!0),d.push(a[f]);if(0<d.length)for(var g=this.view.scale,k=this.view.translate,d=this.model.cloneCells(a,!0,c),f=0;f<a.length;f++)if(!b&&this.model.isEdge(d[f])&&null!=this.getEdgeValidationError(d[f],this.model.getTerminal(d[f],!0),this.model.getTerminal(d[f],!1)))d[f]=null;else{var l=this.model.getGeometry(d[f]);if(null!=l){var n=this.view.getState(a[f]),
+m=this.view.getState(this.model.getParent(a[f]));if(null!=n&&null!=m)if(c=m.origin.x,m=m.origin.y,this.model.isEdge(d[f])){for(var n=n.absolutePoints,p=this.model.getTerminal(a[f],!0);null!=p&&!e.get(p);)p=this.model.getParent(p);null==p&&l.setTerminalPoint(new mxPoint(n[0].x/g-k.x,n[0].y/g-k.y),!0);for(p=this.model.getTerminal(a[f],!1);null!=p&&!e.get(p);)p=this.model.getParent(p);null==p&&(p=n.length-1,l.setTerminalPoint(new mxPoint(n[p].x/g-k.x,n[p].y/g-k.y),!1));l=l.points;if(null!=l)for(n=0;n<
+l.length;n++)l[n].x+=c,l[n].y+=m}else l.translate(c,m)}}else d=[]}return d};mxGraph.prototype.insertVertex=function(a,b,c,d,e,f,g,k,l){b=this.createVertex(a,b,c,d,e,f,g,k,l);return this.addCell(b,a)};mxGraph.prototype.createVertex=function(a,b,c,d,e,f,g,k,l){a=new mxGeometry(d,e,f,g);a.relative=null!=l?l:!1;c=new mxCell(c,a,k);c.setId(b);c.setVertex(!0);c.setConnectable(!0);return c};mxGraph.prototype.insertEdge=function(a,b,c,d,e,f){b=this.createEdge(a,b,c,d,e,f);return this.addEdge(b,a,d,e)};
mxGraph.prototype.createEdge=function(a,b,c,d,e,f){a=new mxCell(c,new mxGeometry,f);a.setId(b);a.setEdge(!0);a.geometry.relative=!0;return a};mxGraph.prototype.addEdge=function(a,b,c,d,e){return this.addCell(a,b,e,c,d)};mxGraph.prototype.addCell=function(a,b,c,d,e){return this.addCells([a],b,c,d,e)[0]};
mxGraph.prototype.addCells=function(a,b,c,d,e){null==b&&(b=this.getDefaultParent());null==c&&(c=this.model.getChildCount(b));this.model.beginUpdate();try{this.cellsAdded(a,b,c,d,e,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",a,"parent",b,"index",c,"source",d,"target",e))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.cellsAdded=function(a,b,c,d,e,f,g){if(null!=a&&null!=b&&null!=c){this.model.beginUpdate();try{for(var k=f?this.view.getState(b):null,l=null!=k?k.origin:null,m=new mxPoint(0,0),k=0;k<a.length;k++)if(null==a[k])c--;else{var n=this.model.getParent(a[k]);if(null!=l&&a[k]!=b&&b!=n){var q=this.view.getState(n),p=null!=q?q.origin:m,r=this.model.getGeometry(a[k]);if(null!=r){var s=p.x-l.x,t=p.y-l.y,r=r.clone();r.translate(s,t);!r.relative&&this.model.isVertex(a[k])&&!this.isAllowNegativeCoordinates()&&
-(r.x=Math.max(0,r.x),r.y=Math.max(0,r.y));this.model.setGeometry(a[k],r)}}b==n&&c+k>this.model.getChildCount(b)&&c--;this.model.add(b,a[k],c+k);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[k],!0);this.isExtendParentsOnAdd(a[k])&&this.isExtendParent(a[k])&&this.extendParent(a[k]);(null==g||g)&&this.constrainChild(a[k]);null!=d&&this.cellConnected(a[k],d,!0);null!=e&&this.cellConnected(a[k],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 k=f?this.view.getState(b):null,l=null!=k?k.origin:null,n=new mxPoint(0,0),k=0;k<a.length;k++)if(null==a[k])c--;else{var m=this.model.getParent(a[k]);if(null!=l&&a[k]!=b&&b!=m){var p=this.view.getState(m),q=null!=p?p.origin:n,s=this.model.getGeometry(a[k]);if(null!=s){var r=q.x-l.x,t=q.y-l.y,s=s.clone();s.translate(r,t);!s.relative&&this.model.isVertex(a[k])&&!this.isAllowNegativeCoordinates()&&
+(s.x=Math.max(0,s.x),s.y=Math.max(0,s.y));this.model.setGeometry(a[k],s)}}b==m&&c+k>this.model.getChildCount(b)&&c--;this.model.add(b,a[k],c+k);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[k],!0);this.isExtendParentsOnAdd(a[k])&&this.isExtendParent(a[k])&&this.extendParent(a[k]);(null==g||g)&&this.constrainChild(a[k]);null!=d&&this.cellConnected(a[k],d,!0);null!=e&&this.cellConnected(a[k],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;d<c;d++)this.autoSizeCell(this.model.getChildAt(a,d));this.getModel().isVertex(a)&&this.isAutoSizeCell(a)&&this.updateCellSize(a)};
mxGraph.prototype.removeCells=function(a,b){b=null!=b?b:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));b&&(a=this.getDeletableCells(this.addAllEdges(a)));this.model.beginUpdate();try{this.cellsRemoved(a),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",a,"includeEdges",b))}finally{this.model.endUpdate()}return a};
-mxGraph.prototype.cellsRemoved=function(a){if(null!=a&&0<a.length){var b=this.view.scale,c=this.view.translate;this.model.beginUpdate();try{for(var d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++){for(var f=this.getAllEdges([a[e]]),g=mxUtils.bind(this,function(d,g){var n=this.model.getGeometry(d);if(null!=n){var q=this.view.getState(d);if(null!=q){for(var p=q.getVisibleTerminal(g),r=!1;null!=p;){if(a[e]==p){r=!0;break}p=this.model.getParent(p)}if(r){var p=c.x,r=c.y,s=this.view.getState(this.model.getParent(d));
-null!=s&&this.model.isVertex(s.cell)&&(p=s.x/b,r=s.y/b);n=n.clone();q=q.absolutePoints;s=g?0:q.length-1;n.setTerminalPoint(new mxPoint(q[s].x/b-p,q[s].y/b-r),g);this.model.setTerminal(f[k],null,g);this.model.setGeometry(f[k],n)}}}}),k=0;k<f.length;k++)d.get(f[k])||(g(f[k],!0),g(f[k],!1));this.model.remove(a[e])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",a))}finally{this.model.endUpdate()}}};
-mxGraph.prototype.splitEdge=function(a,b,c,d,e){d=d||0;e=e||0;var f=this.model.getParent(a),g=this.model.getTerminal(a,!0);this.model.beginUpdate();try{if(null==c){c=this.cloneCells([a])[0];var k=this.view.getState(a),l=this.getCellGeometry(c);if(null!=l&&null!=l.points&&null!=k){var m=this.view.translate,n=this.view.scale,q=mxUtils.findNearestSegment(k,(d+m.x)*n,(e+m.y)*n);l.points=l.points.slice(0,q);l=this.getCellGeometry(a);null!=l&&null!=l.points&&(l=l.clone(),l.points=l.points.slice(q),this.model.setGeometry(a,
+mxGraph.prototype.cellsRemoved=function(a){if(null!=a&&0<a.length){var b=this.view.scale,c=this.view.translate;this.model.beginUpdate();try{for(var d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++){for(var f=this.getAllEdges([a[e]]),g=mxUtils.bind(this,function(d,g){var m=this.model.getGeometry(d);if(null!=m){var p=this.view.getState(d);if(null!=p){for(var q=p.getVisibleTerminal(g),s=!1;null!=q;){if(a[e]==q){s=!0;break}q=this.model.getParent(q)}if(s){var q=c.x,s=c.y,r=this.view.getState(this.model.getParent(d));
+null!=r&&this.model.isVertex(r.cell)&&(q=r.x/b,s=r.y/b);m=m.clone();p=p.absolutePoints;r=g?0:p.length-1;m.setTerminalPoint(new mxPoint(p[r].x/b-q,p[r].y/b-s),g);this.model.setTerminal(f[k],null,g);this.model.setGeometry(f[k],m)}}}}),k=0;k<f.length;k++)d.get(f[k])||(g(f[k],!0),g(f[k],!1));this.model.remove(a[e])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",a))}finally{this.model.endUpdate()}}};
+mxGraph.prototype.splitEdge=function(a,b,c,d,e){d=d||0;e=e||0;var f=this.model.getParent(a),g=this.model.getTerminal(a,!0);this.model.beginUpdate();try{if(null==c){c=this.cloneCells([a])[0];var k=this.view.getState(a),l=this.getCellGeometry(c);if(null!=l&&null!=l.points&&null!=k){var n=this.view.translate,m=this.view.scale,p=mxUtils.findNearestSegment(k,(d+n.x)*m,(e+n.y)*m);l.points=l.points.slice(0,p);l=this.getCellGeometry(a);null!=l&&null!=l.points&&(l=l.clone(),l.points=l.points.slice(p),this.model.setGeometry(a,
l))}}this.cellsMoved(b,d,e,!1,!1);this.cellsAdded(b,f,this.model.getChildCount(f),null,null,!0);this.cellsAdded([c],f,this.model.getChildCount(f),g,b[0],!1);this.cellConnected(a,b[0],!0);this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",a,"cells",b,"newEdge",c,"dx",d,"dy",e))}finally{this.model.endUpdate()}return c};
mxGraph.prototype.toggleCells=function(a,b,c){null==b&&(b=this.getSelectionCells());c&&(b=this.addAllEdges(b));this.model.beginUpdate();try{this.cellsToggled(b,a),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",a,"cells",b,"includeEdges",c))}finally{this.model.endUpdate()}return b};mxGraph.prototype.cellsToggled=function(a,b){if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}}};
mxGraph.prototype.foldCells=function(a,b,c,d,e){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing(!1);this.model.beginUpdate();try{this.cellsFolded(c,a,b,d),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",a,"recurse",b,"cells",c))}finally{this.model.endUpdate()}return c};
@@ -1345,7 +1345,7 @@ mxGraph.prototype.updateAlternateBounds=function(a,b,c){if(null!=a&&null!=b){c=t
0);0!=e&&(a=b.alternateBounds.getCenterX()-b.getCenterX(),c=b.alternateBounds.getCenterY()-b.getCenterY(),d=Math.cos(e),e=Math.sin(e),b.alternateBounds.x+=d*a-e*c-a,b.alternateBounds.y+=e*a+d*c-c)}}};mxGraph.prototype.addAllEdges=function(a){var b=a.slice();return mxUtils.removeDuplicates(b.concat(this.getAllEdges(a)))};
mxGraph.prototype.getAllEdges=function(a){var b=[];if(null!=a)for(var c=0;c<a.length;c++){for(var d=this.model.getEdgeCount(a[c]),e=0;e<d;e++)b.push(this.model.getEdgeAt(a[c],e));d=this.model.getChildren(a[c]);b=b.concat(this.getAllEdges(d))}return b};mxGraph.prototype.updateCellSize=function(a,b){b=null!=b?b:!1;this.model.beginUpdate();try{this.cellSizeUpdated(a,b),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",a,"ignoreChildren",b))}finally{this.model.endUpdate()}return a};
mxGraph.prototype.cellSizeUpdated=function(a,b){if(null!=a){this.model.beginUpdate();try{var c=this.getPreferredSizeForCell(a),d=this.model.getGeometry(a);if(null!=c&&null!=d){var e=this.isCellCollapsed(a),d=d.clone();if(this.isSwimlane(a)){var f=this.view.getState(a),g=null!=f?f.style:this.getCellStyle(a),k=this.model.getStyle(a);null==k&&(k="");mxUtils.getValue(g,mxConstants.STYLE_HORIZONTAL,!0)?(k=mxUtils.setStyle(k,mxConstants.STYLE_STARTSIZE,c.height+8),e&&(d.height=c.height+8),d.width=c.width):
-(k=mxUtils.setStyle(k,mxConstants.STYLE_STARTSIZE,c.width+8),e&&(d.width=c.width+8),d.height=c.height);this.model.setStyle(a,k)}else d.width=c.width,d.height=c.height;if(!b&&!e){var l=this.view.getBounds(this.model.getChildren(a));if(null!=l){var m=this.view.translate,n=this.view.scale,q=(l.y+l.height)/n-d.y-m.y;d.width=Math.max(d.width,(l.x+l.width)/n-d.x-m.x);d.height=Math.max(d.height,q)}}this.cellsResized([a],[d],!1)}}finally{this.model.endUpdate()}}};
+(k=mxUtils.setStyle(k,mxConstants.STYLE_STARTSIZE,c.width+8),e&&(d.width=c.width+8),d.height=c.height);this.model.setStyle(a,k)}else d.width=c.width,d.height=c.height;if(!b&&!e){var l=this.view.getBounds(this.model.getChildren(a));if(null!=l){var n=this.view.translate,m=this.view.scale,p=(l.y+l.height)/m-d.y-n.y;d.width=Math.max(d.width,(l.x+l.width)/m-d.x-n.x);d.height=Math.max(d.height,p)}}this.cellsResized([a],[d],!1)}}finally{this.model.endUpdate()}}};
mxGraph.prototype.getPreferredSizeForCell=function(a){var b=null;if(null!=a){var c=this.view.getState(a)||this.view.createState(a),d=c.style;if(!this.model.isEdge(a)){var e=d[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE;a=b=0;if((null!=this.getImage(c)||null!=d[mxConstants.STYLE_IMAGE])&&d[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_LABEL)d[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(b+=parseFloat(d[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),d[mxConstants.STYLE_ALIGN]!=
mxConstants.ALIGN_CENTER&&(a+=parseFloat(d[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize);b+=2*(d[mxConstants.STYLE_SPACING]||0);b+=d[mxConstants.STYLE_SPACING_LEFT]||0;b+=d[mxConstants.STYLE_SPACING_RIGHT]||0;a+=2*(d[mxConstants.STYLE_SPACING]||0);a+=d[mxConstants.STYLE_SPACING_TOP]||0;a+=d[mxConstants.STYLE_SPACING_BOTTOM]||0;var f=this.getFoldingImage(c);null!=f&&(b+=f.width+8);f=this.cellRenderer.getLabelValue(c);null!=f&&0<f.length?(this.isHtmlLabel(c.cell)||(f=mxUtils.htmlEntities(f)),
f=f.replace(/\n/g,"\x3cbr\x3e"),e=mxUtils.getSizeForString(f,e,d[mxConstants.STYLE_FONTFAMILY]),c=e.width+b,a=e.height+a,mxUtils.getValue(d,mxConstants.STYLE_HORIZONTAL,!0)||(d=a,a=c,c=d),this.gridEnabled&&(c=this.snap(c+this.gridSize/2),a=this.snap(a+this.gridSize/2)),b=new mxRectangle(0,0,c,a)):(d=4*this.gridSize,b=new mxRectangle(0,0,d,d))}}return b};mxGraph.prototype.resizeCell=function(a,b,c){return this.resizeCells([a],[b],c)[0]};
@@ -1353,11 +1353,11 @@ mxGraph.prototype.resizeCells=function(a,b,c){c=null!=c?c:this.isRecursiveResize
mxGraph.prototype.cellsResized=function(a,b,c){c=null!=c?c:!1;if(null!=a&&null!=b&&a.length==b.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++)this.cellResized(a[d],b[d],!1,c),this.isExtendParent(a[d])&&this.extendParent(a[d]),this.constrainChild(a[d]);this.resetEdgesOnResize&&this.resetEdges(a);this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",a,"bounds",b))}finally{this.model.endUpdate()}}};
mxGraph.prototype.cellResized=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e&&(e.x!=b.x||e.y!=b.y||e.width!=b.width||e.height!=b.height)){e=e.clone();!c&&e.relative?(c=e.offset,null!=c&&(c.x+=b.x-e.x,c.y+=b.y-e.y)):(e.x=b.x,e.y=b.y);e.width=b.width;e.height=b.height;!e.relative&&this.model.isVertex(a)&&!this.isAllowNegativeCoordinates()&&(e.x=Math.max(0,e.x),e.y=Math.max(0,e.y));this.model.beginUpdate();try{d&&this.resizeChildCells(a,e),this.model.setGeometry(a,e),this.constrainChildCells(a)}finally{this.model.endUpdate()}}};
mxGraph.prototype.resizeChildCells=function(a,b){for(var c=this.model.getGeometry(a),d=b.width/c.width,c=b.height/c.height,e=this.model.getChildCount(a),f=0;f<e;f++)this.scaleCell(this.model.getChildAt(a,f),d,c,!0)};mxGraph.prototype.constrainChildCells=function(a){for(var b=this.model.getChildCount(a),c=0;c<b;c++)this.constrainChild(this.model.getChildAt(a,c))};
-mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.view.getState(a),f=null!=f?f.style:this.getCellStyle(a),e=e.clone(),g=e.x,k=e.y,l=e.width,m=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=l*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=l);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=m*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=m);this.isCellMovable(a)||(e.x=g,e.y=k);this.isCellResizable(a)||
-(e.width=l,e.height=m);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);if(null!=b&&null!=c&&!this.isCellCollapsed(b)&&(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width<a.x+a.width||c.height<a.y+a.height)))c=c.clone(),c.width=Math.max(c.width,a.x+a.width),c.height=Math.max(c.height,a.y+a.height),this.cellsResized([b],[c],!1)}};
+mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.view.getState(a),f=null!=f?f.style:this.getCellStyle(a),e=e.clone(),g=e.x,k=e.y,l=e.width,n=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=l*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=l);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=n*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=n);this.isCellMovable(a)||(e.x=g,e.y=k);this.isCellResizable(a)||
+(e.width=l,e.height=n);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);if(null!=b&&null!=c&&!this.isCellCollapsed(b)&&(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width<a.x+a.width||c.height<a.y+a.height)))c=c.clone(),c.width=Math.max(c.width,a.x+a.width),c.height=Math.max(c.height,a.y+a.height),this.cellsResized([b],[c],!1)}};
mxGraph.prototype.importCells=function(a,b,c,d,e,f){return this.moveCells(a,b,c,!0,d,e,f)};
-mxGraph.prototype.moveCells=function(a,b,c,d,e,f,g){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:!1;if(null!=a&&(0!=b||0!=c||d||null!=e)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(var m=mxUtils.bind(this,function(a){for(;null!=a;){if(k.get(a))return!0;a=this.model.getParent(a)}return!1}),n=[],l=0;l<a.length;l++){var q=this.getCellGeometry(a[l]),p=this.model.getParent(a[l]);(null==q||!q.relative||!this.model.isEdge(p)||
-!m(this.model.getTerminal(p,!0))&&!m(this.model.getTerminal(p,!1)))&&n.push(a[l])}a=n;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==e&&(e=this.getDefaultParent()));var r=this.isAllowNegativeCoordinates();null!=e&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,b,c,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==e,this.isExtendParentsOnMove()&&null==e);this.setAllowNegativeCoordinates(r);if(null!=e){var s=this.model.getChildCount(e);this.cellsAdded(a,e,s,null,
+mxGraph.prototype.moveCells=function(a,b,c,d,e,f,g){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:!1;if(null!=a&&(0!=b||0!=c||d||null!=e)){a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(var n=mxUtils.bind(this,function(a){for(;null!=a;){if(k.get(a))return!0;a=this.model.getParent(a)}return!1}),m=[],l=0;l<a.length;l++){var p=this.getCellGeometry(a[l]),q=this.model.getParent(a[l]);(null==p||!p.relative||!this.model.isEdge(q)||
+!n(this.model.getTerminal(q,!0))&&!n(this.model.getTerminal(q,!1)))&&m.push(a[l])}a=m;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==e&&(e=this.getDefaultParent()));var s=this.isAllowNegativeCoordinates();null!=e&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,b,c,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==e,this.isExtendParentsOnMove()&&null==e);this.setAllowNegativeCoordinates(s);if(null!=e){var r=this.model.getChildCount(e);this.cellsAdded(a,e,r,null,
null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",a,"dx",b,"dy",c,"clone",d,"target",e,"event",f))}finally{this.model.endUpdate()}}return a};
mxGraph.prototype.cellsMoved=function(a,b,c,d,e,f){if(null!=a&&(0!=b||0!=c)){f=null!=f?f:!1;this.model.beginUpdate();try{d&&this.disconnectGraph(a);for(var g=0;g<a.length;g++)this.translateCell(a[g],b,c),f&&this.isExtendParent(a[g])?this.extendParent(a[g]):e&&this.constrainChild(a[g]);this.resetEdgesOnMove&&this.resetEdges(a);this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",a,"dx",b,"dy",c,"disconnect",d))}finally{this.model.endUpdate()}}};
mxGraph.prototype.translateCell=function(a,b,c){var d=this.model.getGeometry(a);if(null!=d){b=parseFloat(b);c=parseFloat(c);d=d.clone();d.translate(b,c);!d.relative&&this.model.isVertex(a)&&!this.isAllowNegativeCoordinates()&&(d.x=Math.max(0,parseFloat(d.x)),d.y=Math.max(0,parseFloat(d.y)));if(d.relative&&!this.model.isEdge(a)){var e=this.model.getParent(a),f=0;this.model.isVertex(e)&&(f=this.view.getState(e),e=null!=f?f.style:this.getCellStyle(e),f=mxUtils.getValue(e,mxConstants.STYLE_ROTATION,0));
@@ -1370,18 +1370,18 @@ e.y+e.height&&(g-=d.y+d.height-e.y-e.height-g);d.x<e.x&&(f-=d.x-e.x);d.y<e.y&&(g
mxGraph.prototype.resetEdges=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);this.model.beginUpdate();try{for(c=0;c<a.length;c++){var d=this.model.getEdges(a[c]);if(null!=d)for(var e=0;e<d.length;e++){var f=this.view.getState(d[e]),g=null!=f?f.getVisibleTerminal(!0):this.view.getVisibleTerminal(d[e],!0),k=null!=f?f.getVisibleTerminal(!1):this.view.getVisibleTerminal(d[e],!1);(!b.get(g)||!b.get(k))&&this.resetEdge(d[e])}this.resetEdges(this.model.getChildren(a[c]))}}finally{this.model.endUpdate()}}};
mxGraph.prototype.resetEdge=function(a){var b=this.model.getGeometry(a);null!=b&&null!=b.points&&0<b.points.length&&(b=b.clone(),b.points=[],this.model.setGeometry(a,b));return a};
mxGraph.prototype.getOutlineConstraint=function(a,b,c){if(null!=b.shape){c=this.view.getPerimeterBounds(b);var d=b.style[mxConstants.STYLE_DIRECTION];if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH){c.x+=c.width/2-c.height/2;c.y+=c.height/2-c.width/2;var e=c.width;c.width=c.height;c.height=e}var f=mxUtils.toRadians(b.shape.getShapeRotation());if(0!=f){var e=Math.cos(-f),f=Math.sin(-f),g=new mxPoint(c.getCenterX(),c.getCenterY());a=mxUtils.getRotatedPoint(a,e,f,g)}var g=f=1,k=0,l=
-0;if(this.getModel().isVertex(b.cell)){var m=b.style[mxConstants.STYLE_FLIPH],n=b.style[mxConstants.STYLE_FLIPV];null!=b.shape&&null!=b.shape.stencil&&(m=1==mxUtils.getValue(b.style,"stencilFlipH",0)||m,n=1==mxUtils.getValue(b.style,"stencilFlipV",0)||n);if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH)e=m,m=n,n=e;m&&(f=-1,k=-c.width);n&&(g=-1,l=-c.height)}a=new mxPoint((a.x-c.x)*f-k+c.x,(a.y-c.y)*g-l+c.y);b=Math.round(1E3*(a.x-c.x)/c.width)/1E3;a=Math.round(1E3*(a.y-c.y)/c.height)/
+0;if(this.getModel().isVertex(b.cell)){var n=b.style[mxConstants.STYLE_FLIPH],m=b.style[mxConstants.STYLE_FLIPV];null!=b.shape&&null!=b.shape.stencil&&(n=1==mxUtils.getValue(b.style,"stencilFlipH",0)||n,m=1==mxUtils.getValue(b.style,"stencilFlipV",0)||m);if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH)e=n,n=m,m=e;n&&(f=-1,k=-c.width);m&&(g=-1,l=-c.height)}a=new mxPoint((a.x-c.x)*f-k+c.x,(a.y-c.y)*g-l+c.y);b=Math.round(1E3*(a.x-c.x)/c.width)/1E3;a=Math.round(1E3*(a.y-c.y)/c.height)/
1E3;return new mxConnectionConstraint(new mxPoint(b,a),!1)}return null};mxGraph.prototype.getAllConnectionConstraints=function(a,b){return null!=a&&null!=a.shape&&null!=a.shape.stencil?a.shape.stencil.constraints:null};
mxGraph.prototype.getConnectionConstraint=function(a,b,c){b=null;var d=a.style[c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=d){var e=a.style[c?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=e&&(b=new mxPoint(parseFloat(d),parseFloat(e)))}d=!1;null!=b&&(d=mxUtils.getValue(a.style,c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0));return new mxConnectionConstraint(b,d)};
mxGraph.prototype.setConnectionConstraint=function(a,b,c,d){if(null!=d){this.model.beginUpdate();try{null==d||null==d.point?(this.setCellStyles(c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[a])):null!=d.point&&(this.setCellStyles(c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,d.point.x,[a]),this.setCellStyles(c?
mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,d.point.y,[a]),d.perimeter?this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[a]):this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[a]))}finally{this.model.endUpdate()}}};
-mxGraph.prototype.getConnectionPoint=function(a,b){var c=null;if(null!=a&&null!=b.point){var d=this.view.getPerimeterBounds(a),e=new mxPoint(d.getCenterX(),d.getCenterY()),f=a.style[mxConstants.STYLE_DIRECTION],g=0;null!=f&&(f==mxConstants.DIRECTION_NORTH?g+=270:f==mxConstants.DIRECTION_WEST?g+=180:f==mxConstants.DIRECTION_SOUTH&&(g+=90),(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)&&d.rotate90());if(null!=b.point){var k=c=1,l=0,m=0;if(this.getModel().isVertex(a.cell)){var n=a.style[mxConstants.STYLE_FLIPH],
-q=a.style[mxConstants.STYLE_FLIPV];null!=a.shape&&null!=a.shape.stencil&&(n=1==mxUtils.getValue(a.style,"stencilFlipH",0)||n,q=1==mxUtils.getValue(a.style,"stencilFlipV",0)||q);if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=n,n=q,q=f;n&&(c=-1,l=-d.width);q&&(k=-1,m=-d.height)}c=new mxPoint(d.x+b.point.x*d.width*c-l,d.y+b.point.y*d.height*k-m)}f=a.style[mxConstants.STYLE_ROTATION]||0;b.perimeter?(0!=g&&null!=c&&(k=d=0,90==g?k=1:180==g?d=-1:270==g&&(k=-1),c=mxUtils.getRotatedPoint(c,
+mxGraph.prototype.getConnectionPoint=function(a,b){var c=null;if(null!=a&&null!=b.point){var d=this.view.getPerimeterBounds(a),e=new mxPoint(d.getCenterX(),d.getCenterY()),f=a.style[mxConstants.STYLE_DIRECTION],g=0;null!=f&&(f==mxConstants.DIRECTION_NORTH?g+=270:f==mxConstants.DIRECTION_WEST?g+=180:f==mxConstants.DIRECTION_SOUTH&&(g+=90),(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)&&d.rotate90());if(null!=b.point){var k=c=1,l=0,n=0;if(this.getModel().isVertex(a.cell)){var m=a.style[mxConstants.STYLE_FLIPH],
+p=a.style[mxConstants.STYLE_FLIPV];null!=a.shape&&null!=a.shape.stencil&&(m=1==mxUtils.getValue(a.style,"stencilFlipH",0)||m,p=1==mxUtils.getValue(a.style,"stencilFlipV",0)||p);if(f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH)f=m,m=p,p=f;m&&(c=-1,l=-d.width);p&&(k=-1,n=-d.height)}c=new mxPoint(d.x+b.point.x*d.width*c-l,d.y+b.point.y*d.height*k-n)}f=a.style[mxConstants.STYLE_ROTATION]||0;b.perimeter?(0!=g&&null!=c&&(k=d=0,90==g?k=1:180==g?d=-1:270==g&&(k=-1),c=mxUtils.getRotatedPoint(c,
d,k,e)),null!=c&&b.perimeter&&(c=this.view.getPerimeterPoint(a,c,!1))):f+=g;0!=f&&null!=c&&(g=mxUtils.toRadians(f),d=Math.cos(g),k=Math.sin(g),c=mxUtils.getRotatedPoint(c,d,k,e))}null!=c&&(c.x=Math.round(c.x),c.y=Math.round(c.y));return c};mxGraph.prototype.connectCell=function(a,b,c,d){this.model.beginUpdate();try{var e=this.model.getTerminal(a,c);this.cellConnected(a,b,c,d);this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",a,"terminal",b,"source",c,"previous",e))}finally{this.model.endUpdate()}return a};
mxGraph.prototype.cellConnected=function(a,b,c,d){if(null!=a){this.model.beginUpdate();try{var e=this.model.getTerminal(a,c);this.setConnectionConstraint(a,b,c,d);this.isPortsEnabled()&&(d=null,this.isPort(b)&&(d=b.getId(),b=this.getTerminalForPort(b,c)),this.setCellStyles(c?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,d,[a]));this.model.setTerminal(a,b,c);this.resetEdgesOnConnect&&this.resetEdge(a);this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",a,"terminal",b,"source",
c,"previous",e))}finally{this.model.endUpdate()}}};
-mxGraph.prototype.disconnectGraph=function(a){if(null!=a){this.model.beginUpdate();try{for(var b=this.view.scale,c=this.view.translate,d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++)if(this.model.isEdge(a[e])){var f=this.model.getGeometry(a[e]);if(null!=f){var g=this.view.getState(a[e]),k=this.view.getState(this.model.getParent(a[e]));if(null!=g&&null!=k){var f=f.clone(),l=-k.origin.x,m=-k.origin.y,n=g.absolutePoints,q=this.model.getTerminal(a[e],!0);if(null!=q&&this.isCellDisconnectable(a[e],
-q,!0)){for(;null!=q&&!d.get(q);)q=this.model.getParent(q);null==q&&(f.setTerminalPoint(new mxPoint(n[0].x/b-c.x+l,n[0].y/b-c.y+m),!0),this.model.setTerminal(a[e],null,!0))}var p=this.model.getTerminal(a[e],!1);if(null!=p&&this.isCellDisconnectable(a[e],p,!1)){for(;null!=p&&!d.get(p);)p=this.model.getParent(p);if(null==p){var r=n.length-1;f.setTerminalPoint(new mxPoint(n[r].x/b-c.x+l,n[r].y/b-c.y+m),!1);this.model.setTerminal(a[e],null,!1)}}this.model.setGeometry(a[e],f)}}}}finally{this.model.endUpdate()}}};
+mxGraph.prototype.disconnectGraph=function(a){if(null!=a){this.model.beginUpdate();try{for(var b=this.view.scale,c=this.view.translate,d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++)if(this.model.isEdge(a[e])){var f=this.model.getGeometry(a[e]);if(null!=f){var g=this.view.getState(a[e]),k=this.view.getState(this.model.getParent(a[e]));if(null!=g&&null!=k){var f=f.clone(),l=-k.origin.x,n=-k.origin.y,m=g.absolutePoints,p=this.model.getTerminal(a[e],!0);if(null!=p&&this.isCellDisconnectable(a[e],
+p,!0)){for(;null!=p&&!d.get(p);)p=this.model.getParent(p);null==p&&(f.setTerminalPoint(new mxPoint(m[0].x/b-c.x+l,m[0].y/b-c.y+n),!0),this.model.setTerminal(a[e],null,!0))}var q=this.model.getTerminal(a[e],!1);if(null!=q&&this.isCellDisconnectable(a[e],q,!1)){for(;null!=q&&!d.get(q);)q=this.model.getParent(q);if(null==q){var s=m.length-1;f.setTerminalPoint(new mxPoint(m[s].x/b-c.x+l,m[s].y/b-c.y+n),!1);this.model.setTerminal(a[e],null,!1)}}this.model.setGeometry(a[e],f)}}}}finally{this.model.endUpdate()}}};
mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot};mxGraph.prototype.getTranslateForRoot=function(a){return null};mxGraph.prototype.isPort=function(a){return!1};mxGraph.prototype.getTerminalForPort=function(a,b){return this.model.getParent(a)};mxGraph.prototype.getChildOffsetForCell=function(a){return null};mxGraph.prototype.enterGroup=function(a){a=a||this.getSelectionCell();null!=a&&this.isValidRoot(a)&&(this.view.setCurrentRoot(a),this.clearSelection())};
mxGraph.prototype.exitGroup=function(){var a=this.model.getRoot(),b=this.getCurrentRoot();if(null!=b){for(var c=this.model.getParent(b);c!=a&&!this.isValidRoot(c)&&this.model.getParent(c)!=a;)c=this.model.getParent(c);c==a||this.model.getParent(c)==a?this.view.setCurrentRoot(null):this.view.setCurrentRoot(c);null!=this.view.getState(b)&&this.setSelectionCell(b)}};mxGraph.prototype.home=function(){var a=this.getCurrentRoot();null!=a&&(this.view.setCurrentRoot(null),null!=this.view.getState(a)&&this.setSelectionCell(a))};
mxGraph.prototype.isValidRoot=function(a){return null!=a};mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()};mxGraph.prototype.getCellBounds=function(a,b,c){var d=[a];b&&(d=d.concat(this.model.getEdges(a)));d=this.view.getBounds(d);if(c){c=this.model.getChildCount(a);for(var e=0;e<c;e++){var f=this.getCellBounds(this.model.getChildAt(a,e),b,!0);null!=d?d.add(f):d=f}}return d};
@@ -1393,8 +1393,8 @@ this.shiftPreview1.parentNode.removeChild(this.shiftPreview1);this.shiftPreview1
"absolute";this.shiftPreview1.style.overflow="visible";this.shiftPreview2=document.createElement("div");this.shiftPreview2.style.position="absolute";this.shiftPreview2.style.overflow="visible";for(var f=this.shiftPreview1,d=this.container.firstChild;null!=d;)e=d.nextSibling,d!=c.parentNode?f.appendChild(d):f=this.shiftPreview2,d=e;null!=this.shiftPreview1.firstChild&&this.container.insertBefore(this.shiftPreview1,c.parentNode);null!=this.shiftPreview2.firstChild&&this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=
a+"px";this.shiftPreview1.style.top=b+"px";this.shiftPreview2.style.left=a+"px";this.shiftPreview2.style.top=b+"px"}else c.style.left=a+"px",c.style.top=b+"px";this.panDx=a;this.panDy=b;this.fireEvent(new mxEventObject(mxEvent.PAN))}};mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)};mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)};
mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))};mxGraph.prototype.zoomTo=function(a,b){this.zoom(a/this.view.scale,b)};
-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,k=this.getGraphBounds(),l=this.view.translate,m=this.view.scale,n=a?f-k.width:0,q=b?g-k.height:0;e?(k.x-=l.x,k.y-=l.y,a=this.container.scrollWidth,b=this.container.scrollHeight,a>f&&(n=0),b>g&&(q=0),this.view.setTranslate(Math.floor(n/2-k.x),Math.floor(q/2-k.y)),this.container.scrollLeft=(a-f)/
-2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(l.x-k.x*m+n*c/m):l.x,b?Math.floor(l.y-k.y*m+q*d/m):l.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,k=this.getGraphBounds(),l=this.view.translate,n=this.view.scale,m=a?f-k.width:0,p=b?g-k.height:0;e?(k.x-=l.x,k.y-=l.y,a=this.container.scrollWidth,b=this.container.scrollHeight,a>f&&(m=0),b>g&&(p=0),this.view.setTranslate(Math.floor(m/2-k.x),Math.floor(p/2-k.y)),this.container.scrollLeft=(a-f)/
+2,this.container.scrollTop=(b-g)/2):this.view.setTranslate(a?Math.floor(l.x-k.x*n+m*c/n):l.x,b?Math.floor(l.y-k.y*n+p*d/n):l.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(1<a)var f=(a-1)/
(2*c),d=d*-f,e=e*-f;else f=(1/a-1)/(2*this.view.scale),d*=f,e*=f;this.view.scaleAndTranslate(c,this.view.translate.x+d,this.view.translate.y+e)}else{var f=this.view.translate.x,g=this.view.translate.y,k=this.container.scrollLeft,l=this.container.scrollTop;this.view.setScale(c);d&&(e=d=0,b&&(d=this.container.offsetWidth*(a-1)/2,e=this.container.offsetHeight*(a-1)/2),this.container.scrollLeft=(this.view.translate.x-f)*this.view.scale+Math.round(k*a+d),this.container.scrollTop=(this.view.translate.y-
g)*this.view.scale+Math.round(l*a+e))}};
@@ -1451,14 +1451,14 @@ mxGraph.prototype.getCellAt=function(a,b,c,d,e,f){d=null!=d?d:!0;e=null!=e?e:!0;
mxGraph.prototype.intersects=function(a,b,c){if(null!=a){var d=a.absolutePoints;if(null!=d){a=this.tolerance*this.tolerance;for(var e=d[0],f=1;f<d.length;f++){var g=d[f];if(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,b,c)<=a)return!0;e=g}}else if(e=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0),0!=e&&(d=Math.cos(-e),e=Math.sin(-e),f=new mxPoint(a.getCenterX(),a.getCenterY()),e=mxUtils.getRotatedPoint(new mxPoint(b,c),d,e,f),b=e.x,c=e.y),mxUtils.contains(a,b,c))return!0}return!1};
mxGraph.prototype.hitsSwimlaneContent=function(a,b,c){var d=this.getView().getState(a);a=this.getStartSize(a);if(null!=d){var e=this.getView().getScale();b-=d.x;c-=d.y;if(0<a.width&&0<b&&b>a.width*e||0<a.height&&0<c&&c>a.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.length;c++)this.isCellVisible(a[c])&&b.push(a[c]);return b};mxGraph.prototype.getConnections=function(a,b){return this.getEdges(a,b,!0,!0,!1)};mxGraph.prototype.getIncomingEdges=function(a,b){return this.getEdges(a,b,!0,!1,!1)};mxGraph.prototype.getOutgoingEdges=function(a,b){return this.getEdges(a,b,!1,!0,!1)};
-mxGraph.prototype.getEdges=function(a,b,c,d,e,f){c=null!=c?c:!0;d=null!=d?d:!0;e=null!=e?e:!0;f=null!=f?f:!1;for(var g=[],k=this.isCellCollapsed(a),l=this.model.getChildCount(a),m=0;m<l;m++){var n=this.model.getChildAt(a,m);if(k||!this.isCellVisible(n))g=g.concat(this.model.getEdges(n,c,d))}g=g.concat(this.model.getEdges(a,c,d));k=[];for(m=0;m<g.length;m++)n=this.view.getState(g[m]),l=null!=n?n.getVisibleTerminal(!0):this.view.getVisibleTerminal(g[m],!0),n=null!=n?n.getVisibleTerminal(!1):this.view.getVisibleTerminal(g[m],
-!1),(e&&l==n||l!=n&&(c&&n==a&&(null==b||this.isValidAncestor(l,b,f))||d&&l==a&&(null==b||this.isValidAncestor(n,b,f))))&&k.push(g[m]);return k};mxGraph.prototype.isValidAncestor=function(a,b,c){return c?this.model.isAncestor(b,a):this.model.getParent(a)==b};
+mxGraph.prototype.getEdges=function(a,b,c,d,e,f){c=null!=c?c:!0;d=null!=d?d:!0;e=null!=e?e:!0;f=null!=f?f:!1;for(var g=[],k=this.isCellCollapsed(a),l=this.model.getChildCount(a),n=0;n<l;n++){var m=this.model.getChildAt(a,n);if(k||!this.isCellVisible(m))g=g.concat(this.model.getEdges(m,c,d))}g=g.concat(this.model.getEdges(a,c,d));k=[];for(n=0;n<g.length;n++)m=this.view.getState(g[n]),l=null!=m?m.getVisibleTerminal(!0):this.view.getVisibleTerminal(g[n],!0),m=null!=m?m.getVisibleTerminal(!1):this.view.getVisibleTerminal(g[n],
+!1),(e&&l==m||l!=m&&(c&&m==a&&(null==b||this.isValidAncestor(l,b,f))||d&&l==a&&(null==b||this.isValidAncestor(m,b,f))))&&k.push(g[n]);return k};mxGraph.prototype.isValidAncestor=function(a,b,c){return c?this.model.isAncestor(b,a):this.model.getParent(a)==b};
mxGraph.prototype.getOpposites=function(a,b,c,d){c=null!=c?c:!0;d=null!=d?d:!0;var e=[],f=new mxDictionary;if(null!=a)for(var g=0;g<a.length;g++){var k=this.view.getState(a[g]),l=null!=k?k.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[g],!0),k=null!=k?k.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[g],!1);l==b&&null!=k&&k!=b&&d?f.get(k)||(f.put(k,!0),e.push(k)):k==b&&null!=l&&l!=b&&c&&!f.get(l)&&(f.put(l,!0),e.push(l))}return e};
mxGraph.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.view.getState(d[f]),k=null!=g?g.getVisibleTerminal(!0):this.view.getVisibleTerminal(d[f],!0),g=null!=g?g.getVisibleTerminal(!1):this.view.getVisibleTerminal(d[f],!1);(k==a&&g==b||!c&&k==b&&g==a)&&e.push(d[f])}return e};
mxGraph.prototype.getPointForEvent=function(a,b){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=this.view.scale,e=this.view.translate,f=!1!=b?this.gridSize/2:0;c.x=this.snap(c.x/d-e.x-f);c.y=this.snap(c.y/d-e.y-f);return c};
-mxGraph.prototype.getCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var m=g.getChildCount(e),n=0;n<m;n++){var q=g.getChildAt(e,n),p=this.view.getState(q);if(null!=p&&this.isCellVisible(q)){var r=mxUtils.getValue(p.style,mxConstants.STYLE_ROTATION)||0;0!=r&&(p=mxUtils.getBoundingBox(p,r));(g.isEdge(q)||g.isVertex(q))&&p.x>=a&&p.y+p.height<=l&&p.y>=b&&p.x+p.width<=k?f.push(q):this.getCells(a,
-b,c,d,q,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),k=0;k<g;k++){var l=this.model.getChildAt(c,k),m=this.view.getState(l);this.isCellVisible(l)&&null!=m&&(!d||m.x>=a)&&(!e||m.y>=b)&&f.push(l)}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,k=0,l=0;l<f;l++){var m=e.getChildAt(a,l);if(this.model.isVertex(m)&&this.isCellVisible(m)){for(var n=this.getConnections(m,b?a:null),q=0,p=0,r=0;r<n.length;r++)this.view.getVisibleTerminal(n[r],!0)==m?q++:p++;(c&&0==q&&0<p||!c&&0==p&&0<q)&&d.push(m);n=c?p-q:q-p;n>k&&(k=n,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<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var n=g.getChildCount(e),m=0;m<n;m++){var p=g.getChildAt(e,m),q=this.view.getState(p);if(null!=q&&this.isCellVisible(p)){var s=mxUtils.getValue(q.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(q=mxUtils.getBoundingBox(q,s));(g.isEdge(p)||g.isVertex(p))&&q.x>=a&&q.y+q.height<=l&&q.y>=b&&q.x+q.width<=k?f.push(p):this.getCells(a,
+b,c,d,p,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),k=0;k<g;k++){var l=this.model.getChildAt(c,k),n=this.view.getState(l);this.isCellVisible(l)&&null!=n&&(!d||n.x>=a)&&(!e||n.y>=b)&&f.push(l)}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,k=0,l=0;l<f;l++){var n=e.getChildAt(a,l);if(this.model.isVertex(n)&&this.isCellVisible(n)){for(var m=this.getConnections(n,b?a:null),p=0,q=0,s=0;s<m.length;s++)this.view.getVisibleTerminal(m[s],!0)==n?p++:q++;(c&&0==p&&0<q||!c&&0==q&&0<p)&&d.push(n);m=c?q-p:p-q;m>k&&(k=m,g=n)}}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),0<d)for(var f=0;f<d;f++){var g=this.model.getEdgeAt(a,f),k=this.model.getTerminal(g,!0)==a;if(!b||k)k=this.model.getTerminal(g,!k),this.traverse(k,b,c,g,e)}};mxGraph.prototype.isCellSelected=function(a){return this.getSelectionModel().isSelected(a)};mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()};
mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()};mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length};mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]};mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()};mxGraph.prototype.setSelectionCell=function(a){this.getSelectionModel().setCell(a)};mxGraph.prototype.setSelectionCells=function(a){this.getSelectionModel().setCells(a)};
mxGraph.prototype.addSelectionCell=function(a){this.getSelectionModel().addCell(a)};mxGraph.prototype.addSelectionCells=function(a){this.getSelectionModel().addCells(a)};mxGraph.prototype.removeSelectionCell=function(a){this.getSelectionModel().removeCell(a)};mxGraph.prototype.removeSelectionCells=function(a){this.getSelectionModel().removeCells(a)};mxGraph.prototype.selectRegion=function(a,b){var c=this.getCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};
@@ -1511,7 +1511,7 @@ mxOutline.prototype.getTranslateForEvent=function(a){return new mxPoint(a.getX()
mxOutline.prototype.mouseUp=function(a,b){if(this.active){var c=this.getTranslateForEvent(b),d=c.x,c=c.y;if(0<Math.abs(d)||0<Math.abs(c)){if(this.zoom){var c=this.selectionBorder.bounds.width,e=this.source.getView().scale;this.source.zoomTo(Math.max(this.minScale,e-d*e/c),!1)}else if(!this.source.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.source.container))this.source.panGraph(0,0),d/=this.outline.getView().scale,c/=this.outline.getView().scale,e=this.source.getView().translate,this.source.getView().setTranslate(e.x-
d,e.y-c);this.update();b.consume()}this.index=null;this.active=!1}};
mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null);null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null);null!=this.selectionBorder&&(this.selectionBorder.destroy(),
-this.selectionBorder=null);null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)};function mxMultiplicity(a,b,c,d,e,f,g,k,l,m){this.source=a;this.type=b;this.attr=c;this.value=d;this.min=null!=e?e:0;this.max=null!=f?f:"n";this.validNeighbors=g;this.countError=mxResources.get(k)||k;this.typeError=mxResources.get(l)||l;this.validNeighborsAllowed=null!=m?m:!0}mxMultiplicity.prototype.type=null;mxMultiplicity.prototype.attr=null;mxMultiplicity.prototype.value=null;mxMultiplicity.prototype.source=null;
+this.selectionBorder=null);null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)};function mxMultiplicity(a,b,c,d,e,f,g,k,l,n){this.source=a;this.type=b;this.attr=c;this.value=d;this.min=null!=e?e:0;this.max=null!=f?f:"n";this.validNeighbors=g;this.countError=mxResources.get(k)||k;this.typeError=mxResources.get(l)||l;this.validNeighborsAllowed=null!=n?n:!0}mxMultiplicity.prototype.type=null;mxMultiplicity.prototype.attr=null;mxMultiplicity.prototype.value=null;mxMultiplicity.prototype.source=null;
mxMultiplicity.prototype.min=null;mxMultiplicity.prototype.max=null;mxMultiplicity.prototype.validNeighbors=null;mxMultiplicity.prototype.validNeighborsAllowed=!0;mxMultiplicity.prototype.countError=null;mxMultiplicity.prototype.typeError=null;
mxMultiplicity.prototype.check=function(a,b,c,d,e,f){var g="";if(this.source&&this.checkTerminal(a,c,b)||!this.source&&this.checkTerminal(a,d,b)){if(null!=this.countError&&(this.source&&(0==this.max||e>=this.max)||!this.source&&(0==this.max||f>=this.max)))g+=this.countError+"\n";null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(a,b,c,d)||(g+=this.typeError+"\n"))}return 0<g.length?g:null};
mxMultiplicity.prototype.checkNeighbors=function(a,b,c,d){b=a.model.getValue(c);d=a.model.getValue(d);c=!this.validNeighborsAllowed;for(var e=this.validNeighbors,f=0;f<e.length;f++)if(this.source&&this.checkType(a,d,e[f])){c=this.validNeighborsAllowed;break}else if(!this.source&&this.checkType(a,b,e[f])){c=this.validNeighborsAllowed;break}return c};mxMultiplicity.prototype.checkTerminal=function(a,b,c){b=a.model.getValue(b);return this.checkType(a,b,this.type,this.attr,this.value)};
@@ -1531,7 +1531,7 @@ mxSwimlaneManager.prototype.isCellHorizontal=function(a){return this.graph.isSwi
mxSwimlaneManager.prototype.swimlaneAdded=function(a){for(var b=this.getGraph().getModel(),c=b.getParent(a),d=b.getChildCount(c),e=null,f=0;f<d;f++){var g=b.getChildAt(c,f);if(g!=a&&!this.isSwimlaneIgnored(g)&&(e=b.getGeometry(g),null!=e))break}null!=e&&(b=null!=c?this.isCellHorizontal(c):this.horizontal,this.resizeSwimlane(a,e.width,e.height,b))};
mxSwimlaneManager.prototype.cellsResized=function(a){if(null!=a){var b=this.getGraph().getModel();b.beginUpdate();try{for(var c=0;c<a.length;c++)if(!this.isSwimlaneIgnored(a[c])){var d=b.getGeometry(a[c]);if(null!=d){for(var e=new mxRectangle(0,0,d.width,d.height),f=a[c],g=f;null!=g;){var f=g,g=b.getParent(g),k=this.graph.isSwimlane(g)?this.graph.getStartSize(g):new mxRectangle;e.width+=k.width;e.height+=k.height}var l=null!=g?this.isCellHorizontal(g):this.horizontal;this.resizeSwimlane(f,e.width,
e.height,l)}}}finally{b.endUpdate()}}};
-mxSwimlaneManager.prototype.resizeSwimlane=function(a,b,c,d){var e=this.getGraph().getModel();e.beginUpdate();try{var f=this.isCellHorizontal(a);if(!this.isSwimlaneIgnored(a)){var g=e.getGeometry(a);if(null!=g&&(d&&g.height!=c||!d&&g.width!=b))g=g.clone(),d?g.height=c:g.width=b,e.setGeometry(a,g)}var k=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;b-=k.width;c-=k.height;var l=e.getChildCount(a);for(d=0;d<l;d++){var m=e.getChildAt(a,d);this.resizeSwimlane(m,b,c,f)}}finally{e.endUpdate()}};
+mxSwimlaneManager.prototype.resizeSwimlane=function(a,b,c,d){var e=this.getGraph().getModel();e.beginUpdate();try{var f=this.isCellHorizontal(a);if(!this.isSwimlaneIgnored(a)){var g=e.getGeometry(a);if(null!=g&&(d&&g.height!=c||!d&&g.width!=b))g=g.clone(),d?g.height=c:g.width=b,e.setGeometry(a,g)}var k=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;b-=k.width;c-=k.height;var l=e.getChildCount(a);for(d=0;d<l;d++){var n=e.getChildAt(a,d);this.resizeSwimlane(n,b,c,f)}}finally{e.endUpdate()}};
mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)};
function mxTemporaryCellStates(a,b,c,d){b=null!=b?b:1;this.view=a;this.oldValidateCellState=a.validateCellState;this.oldBounds=a.getGraphBounds();this.oldStates=a.getStates();this.oldScale=a.getScale();var e=this;a.validateCellState=function(b,c){return null==b||null==d||d(b)?e.oldValidateCellState.apply(a,arguments):null};a.setStates(new mxDictionary);a.setScale(b);if(null!=c){a.resetValidationState();b=null;for(var f=0;f<c.length;f++){var g=a.getBoundingBox(a.validateCellState(a.validateCell(c[f])));
null==b?b=g:b.add(g)}a.setGraphBounds(b||new mxRectangle)}}mxTemporaryCellStates.prototype.view=null;mxTemporaryCellStates.prototype.oldStates=null;mxTemporaryCellStates.prototype.oldBounds=null;mxTemporaryCellStates.prototype.oldScale=null;mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale);this.view.setStates(this.oldStates);this.view.setGraphBounds(this.oldBounds);this.view.validateCellState=this.oldValidateCellState};
@@ -1646,10 +1646,10 @@ this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.val
mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.cursor&&null!=this.graph.container&&(this.graph.container.style.cursor="");this.destroyIcons();this.marker.reset();this.constraintHandler.reset();this.sourceConstraint=this.error=this.previous=this.edgeState=this.currentPoint=this.originalPoint=null;this.mouseDownCounter=0;this.first=null;this.fireEvent(new mxEventObject(mxEvent.RESET))};
mxConnectionHandler.prototype.drawPreview=function(){this.updatePreview(null==this.error);this.shape.redraw()};mxConnectionHandler.prototype.updatePreview=function(a){this.shape.strokewidth=this.getEdgeWidth(a);this.shape.stroke=this.getEdgeColor(a)};mxConnectionHandler.prototype.getEdgeColor=function(a){return a?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR};mxConnectionHandler.prototype.getEdgeWidth=function(a){return a?3:1};
mxConnectionHandler.prototype.connect=function(a,b,c,d){if(null!=b||this.isCreateTarget(c)||this.graph.allowDanglingEdges){var e=this.graph.getModel(),f=!1,g=null;e.beginUpdate();try{if(null!=a&&null==b&&!this.graph.isIgnoreTerminalEvent(c)&&this.isCreateTarget(c)&&(b=this.createTargetVertex(c,a),null!=b)){d=this.graph.getDropTarget([b],c,d);f=!0;if(null==d||!this.graph.getModel().isEdge(d)){var k=this.graph.getView().getState(d);if(null!=k){var l=e.getGeometry(b);l.x-=k.origin.x;l.y-=k.origin.y}}else d=
-this.graph.getDefaultParent();this.graph.addCell(b,d)}var m=this.graph.getDefaultParent();null!=a&&null!=b&&e.getParent(a)==e.getParent(b)&&e.getParent(e.getParent(a))!=e.getRoot()&&(m=e.getParent(a),null!=a.geometry&&a.geometry.relative&&null!=b.geometry&&b.geometry.relative&&(m=e.getParent(m)));var n=k=null;null!=this.edgeState&&(k=this.edgeState.cell.value,n=this.edgeState.cell.style);g=this.insertEdge(m,null,k,a,b,n);if(null!=g){this.graph.setConnectionConstraint(g,a,!0,this.sourceConstraint);
-this.graph.setConnectionConstraint(g,b,!1,this.constraintHandler.currentConstraint);null!=this.edgeState&&e.setGeometry(g,this.edgeState.cell.geometry);e.getParent(a);if(this.isInsertBefore(g,a,b,c,d)){m=null;for(l=a;null!=l.parent&&null!=l.geometry&&l.geometry.relative&&l.parent!=g.parent;)l=this.graph.model.getParent(l);null!=l&&null!=l.parent&&l.parent==g.parent&&(m=l.parent.getIndex(l),l.parent.insert(g,m))}var q=e.getGeometry(g);null==q&&(q=new mxGeometry,q.relative=!0,e.setGeometry(g,q));if(null!=
-this.waypoints&&0<this.waypoints.length){var p=this.graph.view.scale,r=this.graph.view.translate;q.points=[];for(a=0;a<this.waypoints.length;a++){var s=this.waypoints[a];q.points.push(new mxPoint(s.x/p-r.x,s.y/p-r.y))}}if(null==b){var t=this.graph.view.translate,p=this.graph.view.scale,s=null!=this.originalPoint?new mxPoint(this.originalPoint.x/p-t.x,this.originalPoint.y/p-t.y):new mxPoint(this.currentPoint.x/p-t.x,this.currentPoint.y/p-t.y);s.x-=this.graph.panDx/this.graph.view.scale;s.y-=this.graph.panDy/
-this.graph.view.scale;q.setTerminalPoint(s,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",g,"terminal",b,"event",c,"target",d,"terminalInserted",f))}}catch(v){mxLog.show(),mxLog.debug(v.message)}finally{e.endUpdate()}this.select&&this.selectCells(g,f?b:null)}};mxConnectionHandler.prototype.selectCells=function(a,b){this.graph.setSelectionCell(a)};
+this.graph.getDefaultParent();this.graph.addCell(b,d)}var n=this.graph.getDefaultParent();null!=a&&null!=b&&e.getParent(a)==e.getParent(b)&&e.getParent(e.getParent(a))!=e.getRoot()&&(n=e.getParent(a),null!=a.geometry&&a.geometry.relative&&null!=b.geometry&&b.geometry.relative&&(n=e.getParent(n)));var m=k=null;null!=this.edgeState&&(k=this.edgeState.cell.value,m=this.edgeState.cell.style);g=this.insertEdge(n,null,k,a,b,m);if(null!=g){this.graph.setConnectionConstraint(g,a,!0,this.sourceConstraint);
+this.graph.setConnectionConstraint(g,b,!1,this.constraintHandler.currentConstraint);null!=this.edgeState&&e.setGeometry(g,this.edgeState.cell.geometry);e.getParent(a);if(this.isInsertBefore(g,a,b,c,d)){n=null;for(l=a;null!=l.parent&&null!=l.geometry&&l.geometry.relative&&l.parent!=g.parent;)l=this.graph.model.getParent(l);null!=l&&null!=l.parent&&l.parent==g.parent&&(n=l.parent.getIndex(l),l.parent.insert(g,n))}var p=e.getGeometry(g);null==p&&(p=new mxGeometry,p.relative=!0,e.setGeometry(g,p));if(null!=
+this.waypoints&&0<this.waypoints.length){var q=this.graph.view.scale,s=this.graph.view.translate;p.points=[];for(a=0;a<this.waypoints.length;a++){var r=this.waypoints[a];p.points.push(new mxPoint(r.x/q-s.x,r.y/q-s.y))}}if(null==b){var t=this.graph.view.translate,q=this.graph.view.scale,r=null!=this.originalPoint?new mxPoint(this.originalPoint.x/q-t.x,this.originalPoint.y/q-t.y):new mxPoint(this.currentPoint.x/q-t.x,this.currentPoint.y/q-t.y);r.x-=this.graph.panDx/this.graph.view.scale;r.y-=this.graph.panDy/
+this.graph.view.scale;p.setTerminalPoint(r,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",g,"terminal",b,"event",c,"target",d,"terminalInserted",f))}}catch(u){mxLog.show(),mxLog.debug(u.message)}finally{e.endUpdate()}this.select&&this.selectCells(g,f?b:null)}};mxConnectionHandler.prototype.selectCells=function(a,b){this.graph.setSelectionCell(a)};
mxConnectionHandler.prototype.insertEdge=function(a,b,c,d,e,f){if(null==this.factoryMethod)return this.graph.insertEdge(a,b,c,d,e,f);b=this.createEdge(c,d,e,f);return this.graph.addEdge(b,a,d,e)};
mxConnectionHandler.prototype.createTargetVertex=function(a,b){for(var c=this.graph.getCellGeometry(b);null!=c&&c.relative;)b=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);var d=this.graph.cloneCells([b])[0],c=this.graph.getModel().getGeometry(d);if(null!=c){var e=this.graph.view.translate,f=this.graph.view.scale,g=new mxPoint(this.currentPoint.x/f-e.x,this.currentPoint.y/f-e.y);c.x=Math.round(g.x-c.width/2-this.graph.panDx/f);c.y=Math.round(g.y-c.height/2-this.graph.panDy/f);
g=this.getAlignmentTolerance();if(0<g){var k=this.graph.view.getState(b);if(null!=k){var l=k.x/f-e.x,e=k.y/f-e.y;Math.abs(l-c.x)<=g&&(c.x=Math.round(l));Math.abs(e-c.y)<=g&&(c.y=Math.round(e))}}}return d};mxConnectionHandler.prototype.getAlignmentTolerance=function(a){return this.graph.isGridEnabled()?this.graph.gridSize/2:this.graph.tolerance};
@@ -1663,9 +1663,9 @@ mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.
mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
mxConstraintHandler.prototype.getCellForEvent=function(a,b){var c=a.getCell();if(null==c&&null!=b&&(a.getGraphX()!=b.x||a.getGraphY()!=b.y))c=this.graph.getCellAt(b.x,b.y);if(null!=c&&!this.graph.isCellConnectable(c)){var d=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(c=d)}return c};
mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!this.isEventIgnored(a)){null==this.mouseleaveHandler&&null!=this.graph.container&&(this.mouseleaveHandler=mxUtils.bind(this,function(){this.reset()}),mxEvent.addListener(this.graph.container,"mouseleave",this.resetHandler));var e=this.getTolerance(a),f=null!=d?d.x:a.getGraphX(),g=null!=d?d.y:a.getGraphY(),f=new mxRectangle(f-e,g-e,2*e,2*e),e=new mxRectangle(a.getGraphX()-e,a.getGraphY()-e,2*e,2*e),k=this.graph.view.getState(this.getCellForEvent(a,
-d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),m=0;m<this.focusIcons.length;m++){var n=
-g-this.focusIcons[m].bounds.getCenterX(),q=l-this.focusIcons[m].bounds.getCenterY(),n=n*n+q*q;if((this.intersects(this.focusIcons[m],e,b,c)||null!=d&&this.intersects(this.focusIcons[m],f,b,c))&&(null==a||n<a)){this.currentConstraint=this.constraints[m];this.currentPoint=this.focusPoints[m];a=n;n=this.focusIcons[m].bounds.clone();n.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(n.grow(1),n.width-=1,n.height-=1);if(null==this.focusHighlight){q=this.createHighlightShape();q.dialect=this.graph.dialect==
-mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;q.pointerEvents=!1;q.init(this.graph.getView().getOverlayPane());this.focusHighlight=q;var p=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(q.node,this.graph,p)}this.focusHighlight.bounds=n;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
+d));if(!this.isKeepFocusEvent(a)&&(null==this.currentFocusArea||null==this.currentFocus||null!=k||!this.graph.getModel().isVertex(this.currentFocus.cell)||!mxUtils.intersects(this.currentFocusArea,e))&&k!=this.currentFocus)this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b);a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),n=0;n<this.focusIcons.length;n++){var m=
+g-this.focusIcons[n].bounds.getCenterX(),p=l-this.focusIcons[n].bounds.getCenterY(),m=m*m+p*p;if((this.intersects(this.focusIcons[n],e,b,c)||null!=d&&this.intersects(this.focusIcons[n],f,b,c))&&(null==a||m<a)){this.currentConstraint=this.constraints[n];this.currentPoint=this.focusPoints[n];a=m;m=this.focusIcons[n].bounds.clone();m.grow(mxConstants.HIGHLIGHT_SIZE);mxClient.IS_IE&&(m.grow(1),m.width-=1,m.height-=1);if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=this.graph.dialect==
+mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());this.focusHighlight=p;var q=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,q)}this.focusHighlight.bounds=m;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
0;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());(mxClient.IS_QUIRKS||8==document.documentMode)&&mxEvent.addListener(f.node,
"dragstart",function(a){mxEvent.consume(a);return!1});null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
@@ -1720,7 +1720,7 @@ mxVertexHandler.prototype.mouseMove=function(a,b){!b.isConsumed()&&null!=this.in
mxVertexHandler.prototype.moveLabel=function(a){var b=new mxPoint(a.getGraphX(),a.getGraphY()),c=this.graph.view.translate,d=this.graph.view.scale;this.graph.isGridEnabledEvent(a.getEvent())&&(b.x=(this.graph.snap(b.x/d-c.x)+c.x)*d,b.y=(this.graph.snap(b.y/d-c.y)+c.y)*d);this.moveSizerTo(this.sizers[null!=this.rotationShape?this.sizers.length-2:this.sizers.length-1],b.x,b.y)};
mxVertexHandler.prototype.rotateVertex=function(a){var b=new mxPoint(a.getGraphX(),a.getGraphY()),c=this.state.x+this.state.width/2-b.x,d=this.state.y+this.state.height/2-b.y;this.currentAlpha=0!=c?180*Math.atan(d/c)/Math.PI+90:0>d?180:0;0<c&&(this.currentAlpha-=180);this.rotationRaster&&this.graph.isGridEnabledEvent(a.getEvent())?(c=b.x-this.state.getCenterX(),d=b.y-this.state.getCenterY(),a=3*Math.abs(Math.sqrt(c*c+d*d)-20),a=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(a))))),this.currentAlpha=
Math.round(this.currentAlpha/a)*a):this.currentAlpha=this.roundAngle(this.currentAlpha);this.selectionBorder.rotation=this.currentAlpha;this.selectionBorder.redraw();this.livePreview&&this.redrawHandles()};
-mxVertexHandler.prototype.resizeVertex=function(a){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),d=new mxPoint(a.getGraphX(),a.getGraphY()),e=this.graph.view.translate,f=this.graph.view.scale,g=Math.cos(-c),k=Math.sin(-c),l=d.x-this.startX,d=d.y-this.startY,m=k*l+g*d,l=g*l-k*d,d=m,g=this.graph.getCellGeometry(this.state.cell);this.unscaledBounds=this.union(g,l/f,d/f,this.index,this.graph.isGridEnabledEvent(a.getEvent()),
+mxVertexHandler.prototype.resizeVertex=function(a){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),d=new mxPoint(a.getGraphX(),a.getGraphY()),e=this.graph.view.translate,f=this.graph.view.scale,g=Math.cos(-c),k=Math.sin(-c),l=d.x-this.startX,d=d.y-this.startY,n=k*l+g*d,l=g*l-k*d,d=n,g=this.graph.getCellGeometry(this.state.cell);this.unscaledBounds=this.union(g,l/f,d/f,this.index,this.graph.isGridEnabledEvent(a.getEvent()),
1,new mxPoint(0,0),this.isConstrainedEvent(a),this.isCenteredEvent(this.state,a));g.relative||(k=this.graph.getMaximumGraphBounds(),null!=k&&null!=this.parentState&&(k=mxRectangle.fromRectangle(k),k.x-=(this.parentState.x-e.x*f)/f,k.y-=(this.parentState.y-e.y*f)/f),this.graph.isConstrainChild(this.state.cell)&&(l=this.graph.getCellContainmentArea(this.state.cell),null!=l&&(d=this.graph.getOverlap(this.state.cell),0<d&&(l=mxRectangle.fromRectangle(l),l.x-=l.width*d,l.y-=l.height*d,l.width+=2*l.width*
d,l.height+=2*l.height*d),null==k?k=l:(k=mxRectangle.fromRectangle(k),k.intersect(l)))),null!=k&&(this.unscaledBounds.x<k.x&&(this.unscaledBounds.width-=k.x-this.unscaledBounds.x,this.unscaledBounds.x=k.x),this.unscaledBounds.y<k.y&&(this.unscaledBounds.height-=k.y-this.unscaledBounds.y,this.unscaledBounds.y=k.y),this.unscaledBounds.x+this.unscaledBounds.width>k.x+k.width&&(this.unscaledBounds.width-=this.unscaledBounds.x+this.unscaledBounds.width-k.x-k.width),this.unscaledBounds.y+this.unscaledBounds.height>
k.y+k.height&&(this.unscaledBounds.height-=this.unscaledBounds.y+this.unscaledBounds.height-k.y-k.height)));this.bounds=new mxRectangle((null!=this.parentState?this.parentState.x:e.x*f)+this.unscaledBounds.x*f,(null!=this.parentState?this.parentState.y:e.y*f)+this.unscaledBounds.y*f,this.unscaledBounds.width*f,this.unscaledBounds.height*f);g.relative&&null!=this.parentState&&(this.bounds.x+=this.state.x-this.parentState.x,this.bounds.y+=this.state.y-this.parentState.y);g=Math.cos(c);k=Math.sin(c);
@@ -1729,7 +1729,7 @@ c=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY());l=c.x-b.x;d=c.y
mxVertexHandler.prototype.updateLivePreview=function(a){var b=this.graph.view.scale,c=this.graph.view.translate;a=this.state.clone();this.state.x=this.bounds.x;this.state.y=this.bounds.y;this.state.origin=new mxPoint(this.state.x/b-c.x,this.state.y/b-c.y);this.state.width=this.bounds.width;this.state.height=this.bounds.height;this.state.unscaledWidth=null;b=this.state.absoluteOffset;new mxPoint(b.x,b.y);this.state.absoluteOffset.x=0;this.state.absoluteOffset.y=0;b=this.graph.getCellGeometry(this.state.cell);
null!=b&&(c=b.offset||this.EMPTY_POINT,null!=c&&!b.relative&&(this.state.absoluteOffset.x=this.state.view.scale*c.x,this.state.absoluteOffset.y=this.state.view.scale*c.y),this.state.view.updateVertexLabelOffset(this.state));this.state.view.graph.cellRenderer.redraw(this.state,!0);this.state.view.invalidate(this.state.cell);this.state.invalid=!1;this.state.view.validate();this.redrawHandles();this.state.setState(a)};
mxVertexHandler.prototype.mouseUp=function(a,b){if(null!=this.index&&null!=this.state){var c=new mxPoint(b.getGraphX(),b.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index<=mxEvent.CUSTOM_HANDLE)null!=this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].execute();else if(this.index==mxEvent.ROTATION_HANDLE)if(null!=this.currentAlpha){var d=this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0);0!=d&&this.rotateCell(this.state.cell,d)}else this.rotateClick();
-else{var e=this.graph.isGridEnabledEvent(b.getEvent()),f=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(-f),k=Math.sin(-f),l=c.x-this.startX,m=c.y-this.startY,c=k*l+g*m,l=g*l-k*m,m=c,n=this.graph.view.scale,q=this.isRecursiveResize(this.state,b);this.resizeCell(this.state.cell,this.roundLength(l/n),this.roundLength(m/n),this.index,e,this.isConstrainedEvent(b),q)}}finally{this.graph.getModel().endUpdate()}b.consume();this.reset()}};
+else{var e=this.graph.isGridEnabledEvent(b.getEvent()),f=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(-f),k=Math.sin(-f),l=c.x-this.startX,n=c.y-this.startY,c=k*l+g*n,l=g*l-k*n,n=c,m=this.graph.view.scale,p=this.isRecursiveResize(this.state,b);this.resizeCell(this.state.cell,this.roundLength(l/m),this.roundLength(n/m),this.index,e,this.isConstrainedEvent(b),p)}}finally{this.graph.getModel().endUpdate()}b.consume();this.reset()}};
mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveResize(this.state)};mxVertexHandler.prototype.rotateClick=function(){};
mxVertexHandler.prototype.rotateCell=function(a,b,c){if(0!=b){var d=this.graph.getModel();if(d.isVertex(a)||d.isEdge(a)){if(!d.isEdge(a)){var e=this.graph.view.getState(a),e=null!=e?e.style:this.graph.getCellStyle(a);null!=e&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(e[mxConstants.STYLE_ROTATION]||0)+b,[a])}e=this.graph.getCellGeometry(a);if(null!=e){var f=this.graph.getCellGeometry(c);null!=f&&!d.isEdge(c)&&(e=e.clone(),e.rotate(b,new mxPoint(f.width/2,f.height/2)),d.setGeometry(a,e));
if(d.isVertex(a)&&!e.relative||d.isEdge(a)){c=d.getChildCount(a);for(e=0;e<c;e++)this.rotateCell(d.getChildAt(a,e),b,a)}}}}};
@@ -1737,17 +1737,17 @@ mxVertexHandler.prototype.reset=function(){null!=this.sizers&&null!=this.index&&
null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview());this.removeHint();this.redrawHandles();this.unscaledBounds=this.edgeHandlers=null};
mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){e=this.graph.model.getGeometry(a);null!=e&&(d==mxEvent.LABEL_HANDLE?(c=this.graph.view.scale,b=Math.round((this.labelShape.bounds.getCenterX()-this.startX)/c),c=Math.round((this.labelShape.bounds.getCenterY()-this.startY)/c),e=e.clone(),null==e.offset?e.offset=new mxPoint(b,c):(e.offset.x+=b,e.offset.y+=c),this.graph.model.setGeometry(a,e)):null!=this.unscaledBounds&&(c=this.graph.view.scale,(0!=this.childOffsetX||0!=this.childOffsetY)&&
this.moveChildren(a,Math.round(this.childOffsetX/c),Math.round(this.childOffsetY/c)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
-mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var m=a.width,n=a.height,q=a.x-g.x*f,p=q+m;a=a.y-g.y*f;var r=a+n,s=q+m/2,t=a+n/2;4<d?(r+=c,e&&(r=this.graph.snap(r/f)*f)):3>d&&(a+=c,e&&(a=this.graph.snap(a/f)*f));if(0==d||3==d||5==d)q+=b,e&&(q=this.graph.snap(q/f)*f);else if(2==d||4==d||7==d)p+=b,e&&(p=this.graph.snap(p/
-f)*f);e=p-q;c=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(q=p-e,a=r-c)));l&&(e+=e-m,c+=c-n,q+=s-(q+e/2),a+=t-(a+c/2));0>e&&(q+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(q+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));
+mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var n=a.width,m=a.height,p=a.x-g.x*f,q=p+n;a=a.y-g.y*f;var s=a+m,r=p+n/2,t=a+m/2;4<d?(s+=c,e&&(s=this.graph.snap(s/f)*f)):3>d&&(a+=c,e&&(a=this.graph.snap(a/f)*f));if(0==d||3==d||5==d)p+=b,e&&(p=this.graph.snap(p/f)*f);else if(2==d||4==d||7==d)q+=b,e&&(q=this.graph.snap(q/
+f)*f);e=q-p;c=s-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=q-e,a=s-c)));l&&(e+=e-n,c+=c-m,p+=r-(p+e/2),a+=t-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));
return d};mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.redrawHandles();this.drawPreview()};
mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;if(null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]&&(this.bounds.width<2*this.sizers[0].bounds.width+2*b||this.bounds.height<2*this.sizers[0].bounds.height+2*b))b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b;return a};
mxVertexHandler.prototype.redrawHandles=function(){var a=this.tolerance;this.verticalOffset=this.horizontalOffset=0;var b=this.bounds;if(null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]){if(null==this.index&&this.manageSizers&&8<=this.sizers.length){var c=this.getHandlePadding();this.horizontalOffset=c.x;this.verticalOffset=c.y;if(0!=this.horizontalOffset||0!=this.verticalOffset)b=new mxRectangle(b.x,b.y,b.width,b.height),b.x-=this.horizontalOffset/2,b.width+=this.horizontalOffset,b.y-=
this.verticalOffset/2,b.height+=this.verticalOffset;8<=this.sizers.length&&(b.width<2*this.sizers[0].bounds.width+2*a||b.height<2*this.sizers[0].bounds.height+2*a?(this.sizers[0].node.style.display="none",this.sizers[2].node.style.display="none",this.sizers[5].node.style.display="none",this.sizers[7].node.style.display="none"):(this.sizers[0].node.style.display="",this.sizers[2].node.style.display="",this.sizers[5].node.style.display="",this.sizers[7].node.style.display=""))}a=b.x+b.width;c=b.y+b.height;
-if(this.singleSizer)this.moveSizerTo(this.sizers[0],a,c);else{var d=b.x+b.width/2,e=b.y+b.height/2;if(8<=this.sizers.length){var f="nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),m=new mxPoint(b.getCenterX(),b.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),k,l,m);this.moveSizerTo(this.sizers[0],n.x,n.y);this.sizers[0].setCursor(f[mxUtils.mod(0+
-g,f.length)]);n.x=d;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[1],n.x,n.y);this.sizers[1].setCursor(f[mxUtils.mod(1+g,f.length)]);n.x=a;n.y=b.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[2],n.x,n.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);n.x=b.x;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[3],n.x,n.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);n.x=a;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[4],
-n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=b.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=a;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);this.moveSizerTo(this.sizers[8],
-d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(b.x+
-b.width/2,b.y+this.rotationHandleVSpacing),k,l,m),null!=this.rotationShape.node&&this.moveSizerTo(this.rotationShape,n.x,n.y));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)this.customHandles[b].redraw();this.updateParentHighlight()};
+if(this.singleSizer)this.moveSizerTo(this.sizers[0],a,c);else{var d=b.x+b.width/2,e=b.y+b.height/2;if(8<=this.sizers.length){var f="nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),n=new mxPoint(b.getCenterX(),b.getCenterY()),m=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),k,l,n);this.moveSizerTo(this.sizers[0],m.x,m.y);this.sizers[0].setCursor(f[mxUtils.mod(0+
+g,f.length)]);m.x=d;m.y=b.y;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[1],m.x,m.y);this.sizers[1].setCursor(f[mxUtils.mod(1+g,f.length)]);m.x=a;m.y=b.y;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[2],m.x,m.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);m.x=b.x;m.y=e;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[3],m.x,m.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);m.x=a;m.y=e;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[4],
+m.x,m.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);m.x=b.x;m.y=c;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[5],m.x,m.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);m.x=d;m.y=c;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[6],m.x,m.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);m.x=a;m.y=c;m=mxUtils.getRotatedPoint(m,k,l,n);this.moveSizerTo(this.sizers[7],m.x,m.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);this.moveSizerTo(this.sizers[8],
+d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),n=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),m=mxUtils.getRotatedPoint(new mxPoint(b.x+
+b.width/2,b.y+this.rotationHandleVSpacing),k,l,n),null!=this.rotationShape.node&&this.moveSizerTo(this.rotationShape,m.x,m.y));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(b=0;b<this.edgeHandlers.length;b++)this.edgeHandlers[b].redraw();if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)this.customHandles[b].redraw();this.updateParentHighlight()};
mxVertexHandler.prototype.updateParentHighlight=function(){if(null!=this.selectionBorder)if(null!=this.parentHighlight){var a=this.graph.model.getParent(this.state.cell);if(this.graph.model.isVertex(a)){var a=this.graph.view.getState(a),b=this.parentHighlight.bounds;if(null!=a&&(b.x!=a.x||b.y!=a.y||b.width!=a.width||b.height!=a.height))this.parentHighlight.bounds=a,this.parentHighlight.redraw()}else this.parentHighlight.destroy(),this.parentHighlight=null}else this.parentHighlightEnabled&&(a=this.graph.model.getParent(this.state.cell),
this.graph.model.isVertex(a)&&(a=this.graph.view.getState(a),null!=a&&(this.parentHighlight=this.createParentHighlightShape(a),this.parentHighlight.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(a.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()))))};
mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw());this.selectionBorder.bounds=this.bounds;this.selectionBorder.redraw();null!=this.parentHighlight&&this.parentHighlight.redraw()};
@@ -1790,10 +1790,10 @@ mxEvent.VIRTUAL_HANDLE?c.splice(mxEvent.VIRTUAL_HANDLE-this.index,1):c.splice(th
this.state.getVisibleTerminalState(!1);if(null!=k&&(l=this.graph.getConnectionConstraint(this.state,k,!1),null==l||null==this.graph.getConnectionPoint(k,l)))g[g.length-1]=new mxPoint(k.view.getRoutingCenterX(k),k.view.getRoutingCenterY(k));l=this.index;0<l&&l<g.length-1&&mxUtils.ptSegDistSq(g[l-1].x,g[l-1].y,g[l+1].x,g[l+1].y,a.x,a.y)<f&&(c.splice(l-1,1),e=c)}}null==e&&this.index>mxEvent.VIRTUAL_HANDLE&&(c[this.index-1]=d)}else this.graph.resetEdgesOnConnect&&(c=null);return null!=e?e:c};
mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){var b=mxUtils.getOffset(this.graph.container),c=a.getEvent(),d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),e=document.documentElement,f=this.currentPoint.x-this.graph.container.scrollLeft+b.x-((window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)),b=this.currentPoint.y-this.graph.container.scrollTop+b.y-((window.pageYOffset||e.scrollTop)-(e.clientTop||0));return this.outlineConnect&&!mxEvent.isShiftDown(a.getEvent())&&(a.isSource(this.marker.highlight.shape)||
mxEvent.isAltDown(a.getEvent())&&null!=a.getState()||this.marker.highlight.isHighlightAt(d,c)||(f!=d||b!=c)&&null==a.getState()&&this.marker.highlight.isHighlightAt(f,b))};
-mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d,e){var f=this.isSource?c:this.state.getVisibleTerminalState(!0),g=this.isTarget?c:this.state.getVisibleTerminalState(!1),k=this.graph.getConnectionConstraint(a,f,!0),l=this.graph.getConnectionConstraint(a,g,!1),m=this.constraintHandler.currentConstraint;null==m&&e&&(null!=c?(d.isSource(this.marker.highlight.shape)&&(b=new mxPoint(d.getGraphX(),d.getGraphY())),m=this.graph.getOutlineConstraint(b,c,d),this.constraintHandler.setFocus(d,c,this.isSource),
-this.constraintHandler.currentConstraint=m,this.constraintHandler.currentPoint=b):m=new mxConnectionConstraint);if(this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape){var n=this.graph.view.scale;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=e?mxConstants.OUTLINE_HIGHLIGHT_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/n/n,this.marker.highlight.repaint()):
-this.marker.hasValidState()&&(this.marker.highlight.shape.stroke=this.marker.getValidState()==d.getState()?mxConstants.DEFAULT_VALID_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/n/n,this.marker.highlight.repaint())}this.isSource?k=m:this.isTarget&&(l=m);if(this.isSource||this.isTarget)null!=m&&null!=m.point?(a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X]=m.point.x,a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]=
-m.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X],delete a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]);a.setVisibleTerminalState(f,!0);a.setVisibleTerminalState(g,!1);(!this.isSource||null!=f)&&a.view.updateFixedTerminalPoint(a,f,!0,k);(!this.isTarget||null!=g)&&a.view.updateFixedTerminalPoint(a,g,!1,l);if((this.isSource||this.isTarget)&&null==c)a.setAbsoluteTerminalPoint(b,this.isSource),null==this.marker.getMarkedState()&&(this.error=
+mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d,e){var f=this.isSource?c:this.state.getVisibleTerminalState(!0),g=this.isTarget?c:this.state.getVisibleTerminalState(!1),k=this.graph.getConnectionConstraint(a,f,!0),l=this.graph.getConnectionConstraint(a,g,!1),n=this.constraintHandler.currentConstraint;null==n&&e&&(null!=c?(d.isSource(this.marker.highlight.shape)&&(b=new mxPoint(d.getGraphX(),d.getGraphY())),n=this.graph.getOutlineConstraint(b,c,d),this.constraintHandler.setFocus(d,c,this.isSource),
+this.constraintHandler.currentConstraint=n,this.constraintHandler.currentPoint=b):n=new mxConnectionConstraint);if(this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape){var m=this.graph.view.scale;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=e?mxConstants.OUTLINE_HIGHLIGHT_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/m/m,this.marker.highlight.repaint()):
+this.marker.hasValidState()&&(this.marker.highlight.shape.stroke=this.marker.getValidState()==d.getState()?mxConstants.DEFAULT_VALID_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/m/m,this.marker.highlight.repaint())}this.isSource?k=n:this.isTarget&&(l=n);if(this.isSource||this.isTarget)null!=n&&null!=n.point?(a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X]=n.point.x,a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]=
+n.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X],delete a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]);a.setVisibleTerminalState(f,!0);a.setVisibleTerminalState(g,!1);(!this.isSource||null!=f)&&a.view.updateFixedTerminalPoint(a,f,!0,k);(!this.isTarget||null!=g)&&a.view.updateFixedTerminalPoint(a,g,!1,l);if((this.isSource||this.isTarget)&&null==c)a.setAbsoluteTerminalPoint(b,this.isSource),null==this.marker.getMarkedState()&&(this.error=
this.graph.allowDanglingEdges?null:"");a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)};
mxEdgeHandler.prototype.mouseMove=function(a,b){if(null!=this.index&&null!=this.marker){this.currentPoint=this.getPointForEvent(b);this.error=null;!this.graph.isIgnoreTerminalEvent(b.getEvent())&&mxEvent.isShiftDown(b.getEvent())&&null!=this.snapPoint&&(Math.abs(this.snapPoint.x-this.currentPoint.x)<Math.abs(this.snapPoint.y-this.currentPoint.y)?this.currentPoint.x=this.snapPoint.x:this.currentPoint.y=this.snapPoint.y);if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE)null!=
this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(b);else if(this.isLabel)this.label.x=this.currentPoint.x,this.label.y=this.currentPoint.y;else{this.points=this.getPreviewPoints(this.currentPoint,b);var c=this.isSource||this.isTarget?this.getPreviewTerminalState(b):null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint)this.currentPoint=this.constraintHandler.currentPoint.clone();
@@ -1837,10 +1837,10 @@ d=d.height;c=new mxRectangle(Math.round(e.x-c/2),Math.round(e.y-d/2),c,d);this.m
function mxEdgeSegmentHandler(a){mxEdgeHandler.call(this,a)}mxUtils.extend(mxEdgeSegmentHandler,mxElbowEdgeHandler);mxEdgeSegmentHandler.prototype.getCurrentPoints=function(){var a=this.state.absolutePoints;if(null!=a&&(2==a.length||3==a.length&&(a[0].x==a[1].x&&a[1].x==a[2].x||a[0].y==a[1].y&&a[1].y==a[2].y)))var b=a[0].x+(a[a.length-1].x-a[0].x)/2,c=a[0].y+(a[a.length-1].y-a[0].y)/2,a=[a[0],new mxPoint(b,c),new mxPoint(b,c),a[a.length-1]];return a};
mxEdgeSegmentHandler.prototype.getPreviewPoints=function(a){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);var b=this.getCurrentPoints(),c=this.convertPoint(b[0].clone(),!1);a=this.convertPoint(a.clone(),!1);for(var d=[],e=1;e<b.length;e++){var f=this.convertPoint(b[e].clone(),!1);e==this.index&&(0==Math.round(c.x-f.x)&&(c.x=a.x,f.x=a.x),0==Math.round(c.y-f.y)&&(c.y=a.y,f.y=a.y));e<b.length-1&&d.push(f);c=f}if(1==d.length){var b=this.state.getVisibleTerminalState(!0),
c=this.state.getVisibleTerminalState(!1),f=this.state.view.getScale(),g=this.state.view.getTranslate(),e=d[0].x*f+g.x,f=d[0].y*f+g.y;if(null!=b&&mxUtils.contains(b,e,f)||null!=c&&mxUtils.contains(c,e,f))d=[a,a]}return d};
-mxEdgeSegmentHandler.prototype.updatePreviewState=function(a,b,c,d){mxEdgeHandler.prototype.updatePreviewState.apply(this,arguments);if(!this.isSource&&!this.isTarget){b=this.convertPoint(b.clone(),!1);for(var e=a.absolutePoints,f=e[0],g=e[1],k=[],l=2;l<e.length;l++){var m=e[l];(0!=Math.round(f.x-g.x)||0!=Math.round(g.x-m.x))&&(0!=Math.round(f.y-g.y)||0!=Math.round(g.y-m.y))&&k.push(this.convertPoint(g.clone(),!1));f=g;g=m}f=this.state.getVisibleTerminalState(!0);g=this.state.getVisibleTerminalState(!1);
-l=this.state.absolutePoints;if(0==k.length&&(0==Math.round(e[0].x-e[e.length-1].x)||0==Math.round(e[0].y-e[e.length-1].y)))k=[b,b];else if(5==e.length&&2==k.length&&null!=f&&null!=g&&null!=l&&0==Math.round(l[0].x-l[l.length-1].x)){var k=this.graph.getView(),l=k.getScale(),m=k.getTranslate(),e=k.getRoutingCenterY(f)/l-m.y,n=this.graph.getConnectionConstraint(a,f,!0);null!=n&&(n=this.graph.getConnectionPoint(f,n),null!=n&&(this.convertPoint(n,!1),e=n.y));k=k.getRoutingCenterY(g)/l-m.y;if(l=this.graph.getConnectionConstraint(a,
-g,!1))n=this.graph.getConnectionPoint(g,l),null!=n&&(this.convertPoint(n,!1),k=n.y);k=[new mxPoint(b.x,e),new mxPoint(b.x,k)]}this.points=k;a.view.updateFixedTerminalPoints(a,f,g);a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)}};
-mxEdgeSegmentHandler.prototype.connect=function(a,b,c,d,e){for(var f=this.abspoints,g=f[0],k=f[1],l=[],m=2;m<f.length;m++){var n=f[m];(0!=Math.round(g.x-k.x)||0!=Math.round(k.x-n.x))&&(0!=Math.round(g.y-k.y)||0!=Math.round(k.y-n.y))&&l.push(this.convertPoint(k.clone(),!1));g=k;k=n}f=this.graph.getModel();f.beginUpdate();try{var q=f.getGeometry(a);null!=q&&(q=q.clone(),q.points=l,f.setGeometry(a,q));a=mxEdgeHandler.prototype.connect.apply(this,arguments)}finally{f.endUpdate()}return a};
+mxEdgeSegmentHandler.prototype.updatePreviewState=function(a,b,c,d){mxEdgeHandler.prototype.updatePreviewState.apply(this,arguments);if(!this.isSource&&!this.isTarget){b=this.convertPoint(b.clone(),!1);for(var e=a.absolutePoints,f=e[0],g=e[1],k=[],l=2;l<e.length;l++){var n=e[l];(0!=Math.round(f.x-g.x)||0!=Math.round(g.x-n.x))&&(0!=Math.round(f.y-g.y)||0!=Math.round(g.y-n.y))&&k.push(this.convertPoint(g.clone(),!1));f=g;g=n}f=this.state.getVisibleTerminalState(!0);g=this.state.getVisibleTerminalState(!1);
+l=this.state.absolutePoints;if(0==k.length&&(0==Math.round(e[0].x-e[e.length-1].x)||0==Math.round(e[0].y-e[e.length-1].y)))k=[b,b];else if(5==e.length&&2==k.length&&null!=f&&null!=g&&null!=l&&0==Math.round(l[0].x-l[l.length-1].x)){var k=this.graph.getView(),l=k.getScale(),n=k.getTranslate(),e=k.getRoutingCenterY(f)/l-n.y,m=this.graph.getConnectionConstraint(a,f,!0);null!=m&&(m=this.graph.getConnectionPoint(f,m),null!=m&&(this.convertPoint(m,!1),e=m.y));k=k.getRoutingCenterY(g)/l-n.y;if(l=this.graph.getConnectionConstraint(a,
+g,!1))m=this.graph.getConnectionPoint(g,l),null!=m&&(this.convertPoint(m,!1),k=m.y);k=[new mxPoint(b.x,e),new mxPoint(b.x,k)]}this.points=k;a.view.updateFixedTerminalPoints(a,f,g);a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)}};
+mxEdgeSegmentHandler.prototype.connect=function(a,b,c,d,e){for(var f=this.abspoints,g=f[0],k=f[1],l=[],n=2;n<f.length;n++){var m=f[n];(0!=Math.round(g.x-k.x)||0!=Math.round(k.x-m.x))&&(0!=Math.round(g.y-k.y)||0!=Math.round(k.y-m.y))&&l.push(this.convertPoint(k.clone(),!1));g=k;k=m}f=this.graph.getModel();f.beginUpdate();try{var p=f.getGeometry(a);null!=p&&(p=p.clone(),p.points=l,f.setGeometry(a,p));a=mxEdgeHandler.prototype.connect.apply(this,arguments)}finally{f.endUpdate()}return a};
mxEdgeSegmentHandler.prototype.getTooltipForNode=function(a){return null};mxEdgeSegmentHandler.prototype.start=function(a,b,c){mxEdgeHandler.prototype.start.apply(this,arguments);null!=this.bends[c]&&!this.isSource&&!this.isTarget&&mxUtils.setOpacity(this.bends[c].node,100)};
mxEdgeSegmentHandler.prototype.createBends=function(){var a=[],b=this.createHandleShape(0);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);var c=this.getCurrentPoints();if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var d=0;d<c.length-1;d++){b=this.createVirtualBend();a.push(b);var e=0==Math.round(c[d].x-c[d+1].x);0==Math.round(c[d].y-c[d+1].y)&&d<c.length-2&&(e=0==Math.round(c[d].x-c[d+2].x));b.setCursor(e?"col-resize":"row-resize");
this.points.push(new mxPoint(0,0))}}b=this.createHandleShape(c.length);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);return a};mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh();mxEdgeHandler.prototype.redraw.apply(this,arguments)};
@@ -1874,8 +1874,8 @@ mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener
function mxDefaultKeyHandler(a){if(null!=a){this.editor=a;this.handler=new mxKeyHandler(a.graph);var b=this.handler.escape;this.handler.escape=function(c){b.apply(this,arguments);a.hideProperties();a.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",c))}}}mxDefaultKeyHandler.prototype.editor=null;mxDefaultKeyHandler.prototype.handler=null;
mxDefaultKeyHandler.prototype.bindAction=function(a,b,c){var d=mxUtils.bind(this,function(){this.editor.execute(b)});c?this.handler.bindControlKey(a,d):this.handler.bindKey(a,d)};mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy();this.handler=null};function mxDefaultPopupMenu(a){this.config=a}mxDefaultPopupMenu.prototype.imageBasePath=null;mxDefaultPopupMenu.prototype.config=null;
mxDefaultPopupMenu.prototype.createMenu=function(a,b,c,d){if(null!=this.config){var e=this.createConditions(a,c,d);this.addItems(a,b,c,d,e,this.config.firstChild,null)}};
-mxDefaultPopupMenu.prototype.addItems=function(a,b,c,d,e,f,g){for(var k=!1;null!=f;){if("add"==f.nodeName){var l=f.getAttribute("if");if(null==l||e[l]){var l=f.getAttribute("as"),l=mxResources.get(l)||l,m=mxUtils.eval(mxUtils.getTextContent(f)),n=f.getAttribute("action"),q=f.getAttribute("icon"),p=f.getAttribute("iconCls"),r=f.getAttribute("enabled-if"),r=null==r||e[r];k&&(b.addSeparator(g),k=!1);null!=q&&this.imageBasePath&&(q=this.imageBasePath+q);l=this.addAction(b,a,l,q,m,n,c,g,p,r);this.addItems(a,
-b,c,d,e,f.firstChild,l)}}else"separator"==f.nodeName&&(k=!0);f=f.nextSibling}};mxDefaultPopupMenu.prototype.addAction=function(a,b,c,d,e,f,g,k,l,m){return a.addItem(c,d,function(a){"function"==typeof e&&e.call(b,b,g,a);null!=f&&b.execute(f,g,a)},k,l,m)};
+mxDefaultPopupMenu.prototype.addItems=function(a,b,c,d,e,f,g){for(var k=!1;null!=f;){if("add"==f.nodeName){var l=f.getAttribute("if");if(null==l||e[l]){var l=f.getAttribute("as"),l=mxResources.get(l)||l,n=mxUtils.eval(mxUtils.getTextContent(f)),m=f.getAttribute("action"),p=f.getAttribute("icon"),q=f.getAttribute("iconCls"),s=f.getAttribute("enabled-if"),s=null==s||e[s];k&&(b.addSeparator(g),k=!1);null!=p&&this.imageBasePath&&(p=this.imageBasePath+p);l=this.addAction(b,a,l,p,n,m,c,g,q,s);this.addItems(a,
+b,c,d,e,f.firstChild,l)}}else"separator"==f.nodeName&&(k=!0);f=f.nextSibling}};mxDefaultPopupMenu.prototype.addAction=function(a,b,c,d,e,f,g,k,l,n){return a.addItem(c,d,function(a){"function"==typeof e&&e.call(b,b,g,a);null!=f&&b.execute(f,g,a)},k,l,n)};
mxDefaultPopupMenu.prototype.createConditions=function(a,b,c){var d=a.graph.getModel(),e=d.getChildCount(b),f=[];f.nocell=null==b;f.ncells=1<a.graph.getSelectionCount();f.notRoot=d.getRoot()!=d.getParent(a.graph.getDefaultParent());f.cell=null!=b;d=null!=b&&1==a.graph.getSelectionCount();f.nonEmpty=d&&0<e;f.expandable=d&&a.graph.isCellFoldable(b,!1);f.collapsable=d&&a.graph.isCellFoldable(b,!0);f.validRoot=d&&a.graph.isValidRoot(b);f.emptyValidRoot=f.validRoot&&0==e;f.swimlane=d&&a.graph.isSwimlane(b);
e=this.config.getElementsByTagName("condition");for(d=0;d<e.length;d++){var g=mxUtils.eval(mxUtils.getTextContent(e[d])),k=e[d].getAttribute("name");null!=k&&"function"==typeof g&&(f[k]=g(a,b,c))}return f};function mxDefaultToolbar(a,b){this.editor=b;null!=a&&null!=b&&this.init(a)}mxDefaultToolbar.prototype.editor=null;mxDefaultToolbar.prototype.toolbar=null;mxDefaultToolbar.prototype.resetHandler=null;mxDefaultToolbar.prototype.spacing=4;mxDefaultToolbar.prototype.connectOnDrop=!1;
mxDefaultToolbar.prototype.init=function(a){null!=a&&(this.toolbar=new mxToolbar(a),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(a,c){var d=c.getProperty("function");this.editor.insertFunction=null!=d?mxUtils.bind(this,function(){d.apply(this,arguments);this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,
@@ -1884,8 +1884,8 @@ mxDefaultToolbar.prototype.addActionOption=function(a,b,c){var d=mxUtils.bind(th
mxDefaultToolbar.prototype.addPrototype=function(a,b,c,d,e,f){var g=mxUtils.bind(this,function(){return"function"==typeof c?c():null!=c?this.editor.graph.cloneCells([c])[0]:null}),k=mxUtils.bind(this,function(a,b){"function"==typeof e?e(this.editor,g(),a,b):this.drop(g(),a,b);this.toolbar.resetMode();mxEvent.consume(a)});a=this.toolbar.addMode(a,b,k,d,null,f);this.installDropHandler(a,function(a,b,c){k(b,c)});return a};
mxDefaultToolbar.prototype.drop=function(a,b,c){var d=this.editor.graph,e=d.getModel();if(null==c||e.isEdge(c)||!this.connectOnDrop||!d.isCellConnectable(c)){for(;null!=c&&!d.isValidDropTarget(c,[a],b);)c=e.getParent(c);this.insert(a,b,c)}else this.connect(a,b,c)};
mxDefaultToolbar.prototype.insert=function(a,b,c){var d=this.editor.graph;if(d.canImportCell(a)){var e=mxEvent.getClientX(b),f=mxEvent.getClientY(b),e=mxUtils.convertPoint(d.container,e,f);return d.isSplitEnabled()&&d.isSplitTarget(c,[a],b)?d.splitEdge(c,[a],null,e.x,e.y):this.editor.addVertex(c,a,e.x,e.y)}return null};
-mxDefaultToolbar.prototype.connect=function(a,b,c){b=this.editor.graph;var d=b.getModel();if(null!=c&&b.isCellConnectable(a)&&b.isEdgeValid(null,c,a)){var e=null;d.beginUpdate();try{var f=d.getGeometry(c),g=d.getGeometry(a).clone();g.x=f.x+(f.width-g.width)/2;g.y=f.y+(f.height-g.height)/2;var k=this.spacing*b.gridSize,l=20*d.getDirectedEdgeCount(c,!0);this.editor.horizontalFlow?g.x+=(g.width+f.width)/2+k+l:g.y+=(g.height+f.height)/2+k+l;a.setGeometry(g);var m=d.getParent(c);b.addCell(a,m);b.constrainChild(a);
-e=this.editor.createEdge(c,a);if(null==d.getGeometry(e)){var n=new mxGeometry;n.relative=!0;d.setGeometry(e,n)}b.addEdge(e,m,c,a)}finally{d.endUpdate()}b.setSelectionCells([a,e]);b.scrollCellToVisible(a)}};
+mxDefaultToolbar.prototype.connect=function(a,b,c){b=this.editor.graph;var d=b.getModel();if(null!=c&&b.isCellConnectable(a)&&b.isEdgeValid(null,c,a)){var e=null;d.beginUpdate();try{var f=d.getGeometry(c),g=d.getGeometry(a).clone();g.x=f.x+(f.width-g.width)/2;g.y=f.y+(f.height-g.height)/2;var k=this.spacing*b.gridSize,l=20*d.getDirectedEdgeCount(c,!0);this.editor.horizontalFlow?g.x+=(g.width+f.width)/2+k+l:g.y+=(g.height+f.height)/2+k+l;a.setGeometry(g);var n=d.getParent(c);b.addCell(a,n);b.constrainChild(a);
+e=this.editor.createEdge(c,a);if(null==d.getGeometry(e)){var m=new mxGeometry;m.relative=!0;d.setGeometry(e,m)}b.addEdge(e,n,c,a)}finally{d.endUpdate()}b.setSelectionCells([a,e]);b.scrollCellToVisible(a)}};
mxDefaultToolbar.prototype.installDropHandler=function(a,b){var c=document.createElement("img");c.setAttribute("src",a.getAttribute("src"));var d=mxUtils.bind(this,function(e){c.style.width=2*a.offsetWidth+"px";c.style.height=2*a.offsetHeight+"px";mxUtils.makeDraggable(a,this.editor.graph,b,c);mxEvent.removeListener(c,"load",d)});mxClient.IS_IE?d():mxEvent.addListener(c,"load",d)};
mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)};
function mxEditor(a){this.actions=[];this.addActions();if(null!=document.body){this.cycleAttributeValues=[];this.popupHandler=new mxDefaultPopupMenu;this.undoManager=new mxUndoManager;this.graph=this.createGraph();this.toolbar=this.createToolbar();this.keyHandler=new mxDefaultKeyHandler(this);this.configure(a);this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName;if(null!=this.onInit)this.onInit();mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}}
@@ -1927,9 +1927,9 @@ mxEditor.prototype.postDiagram=function(a,b){this.escapePostData&&(b=encodeURICo
mxEditor.prototype.swapStyles=function(a,b){var c=this.graph.getStylesheet().styles[b];this.graph.getView().getStylesheet().putCellStyle(b,this.graph.getStylesheet().styles[a]);this.graph.getStylesheet().putCellStyle(a,c);this.graph.refresh()};
mxEditor.prototype.showProperties=function(a){a=a||this.graph.getSelectionCell();null==a&&(a=this.graph.getCurrentRoot(),null==a&&(a=this.graph.getModel().getRoot()));if(null!=a){this.graph.stopEditing(!0);var b=mxUtils.getOffset(this.graph.container),c=b.x+10,b=b.y;if(null!=this.properties&&!this.movePropertiesDialog)c=this.properties.getX(),b=this.properties.getY();else{var d=this.graph.getCellBounds(a);null!=d&&(c+=d.x+Math.min(200,d.width),b+=d.y)}this.hideProperties();a=this.createProperties(a);
null!=a&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,a,c,b,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}};mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties};
-mxEditor.prototype.createProperties=function(a){var b=this.graph.getModel(),c=b.getValue(a);if(mxUtils.isNode(c)){var d=new mxForm("properties");d.addText("ID",a.getId()).setAttribute("readonly","true");var e=null,f=null,g=null,k=null,l=null;b.isVertex(a)&&(e=b.getGeometry(a),null!=e&&(f=d.addText("top",e.y),g=d.addText("left",e.x),k=d.addText("width",e.width),l=d.addText("height",e.height)));for(var m=b.getStyle(a),n=d.addText("Style",m||""),q=c.attributes,p=[],c=0;c<q.length;c++)p[c]=d.addTextarea(q[c].nodeName,
-q[c].value,"label"==q[c].nodeName?4:2);c=mxUtils.bind(this,function(){this.hideProperties();b.beginUpdate();try{null!=e&&(e=e.clone(),e.x=parseFloat(g.value),e.y=parseFloat(f.value),e.width=parseFloat(k.value),e.height=parseFloat(l.value),b.setGeometry(a,e));0<n.value.length?b.setStyle(a,n.value):b.setStyle(a,null);for(var c=0;c<q.length;c++){var d=new mxCellAttributeChange(a,q[c].nodeName,p[c].value);b.execute(d)}this.graph.isAutoSizeCell(a)&&this.graph.updateCellSize(a)}finally{b.endUpdate()}});
-m=mxUtils.bind(this,function(){this.hideProperties()});d.addButtons(c,m);return d.table}return null};mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)};
+mxEditor.prototype.createProperties=function(a){var b=this.graph.getModel(),c=b.getValue(a);if(mxUtils.isNode(c)){var d=new mxForm("properties");d.addText("ID",a.getId()).setAttribute("readonly","true");var e=null,f=null,g=null,k=null,l=null;b.isVertex(a)&&(e=b.getGeometry(a),null!=e&&(f=d.addText("top",e.y),g=d.addText("left",e.x),k=d.addText("width",e.width),l=d.addText("height",e.height)));for(var n=b.getStyle(a),m=d.addText("Style",n||""),p=c.attributes,q=[],c=0;c<p.length;c++)q[c]=d.addTextarea(p[c].nodeName,
+p[c].value,"label"==p[c].nodeName?4:2);c=mxUtils.bind(this,function(){this.hideProperties();b.beginUpdate();try{null!=e&&(e=e.clone(),e.x=parseFloat(g.value),e.y=parseFloat(f.value),e.width=parseFloat(k.value),e.height=parseFloat(l.value),b.setGeometry(a,e));0<m.value.length?b.setStyle(a,m.value):b.setStyle(a,null);for(var c=0;c<p.length;c++){var d=new mxCellAttributeChange(a,p[c].nodeName,q[c].value);b.execute(d)}this.graph.isAutoSizeCell(a)&&this.graph.updateCellSize(a)}finally{b.endUpdate()}});
+n=mxUtils.bind(this,function(){this.hideProperties()});d.addButtons(c,n);return d.table}return null};mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)};
mxEditor.prototype.showTasks=function(){if(null==this.tasks){var a=document.createElement("div");a.style.padding="4px";a.style.paddingLeft="20px";var b=document.body.clientWidth,b=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,a,b-220,this.tasksTop,200);b.setClosable(!0);b.destroyOnClose=!1;var c=mxUtils.bind(this,function(b){mxEvent.release(a);a.innerHTML="";this.createTasks(a)});this.graph.getModel().addListener(mxEvent.CHANGE,c);this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
c);this.graph.addListener(mxEvent.ROOT,c);null!=this.tasksWindowImage&&b.setImage(this.tasksWindowImage);this.tasks=b;this.createTasks(a)}this.tasks.setVisible(!0)};mxEditor.prototype.refreshTasks=function(a){null!=this.tasks&&(a=this.tasks.content,mxEvent.release(a),a.innerHTML="",this.createTasks(a))};mxEditor.prototype.createTasks=function(a){};
mxEditor.prototype.showHelp=function(a){if(null==this.help){var b=document.createElement("iframe");b.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp);b.setAttribute("height","100%");b.setAttribute("width","100%");b.setAttribute("frameBorder","0");b.style.backgroundColor="white";a=document.body.clientWidth;var c=document.body.clientHeight||document.documentElement.clientHeight,d=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,b,(a-this.helpWidth)/2,(c-this.helpHeight)/
@@ -1939,7 +1939,7 @@ b.destroyOnClose=!1;b.addListener(mxEvent.RESIZE_END,function(){c.update()});thi
mxEditor.prototype.createPopupMenu=function(a,b,c){this.popupHandler.createMenu(this,a,b,c)};mxEditor.prototype.createEdge=function(a,b){var c=null;if(null!=this.defaultEdge)c=this.graph.getModel().cloneCell(this.defaultEdge);else{c=new mxCell("");c.setEdge(!0);var d=new mxGeometry;d.relative=!0;c.setGeometry(d)}d=this.getEdgeStyle();null!=d&&c.setStyle(d);return c};mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle};
mxEditor.prototype.consumeCycleAttribute=function(a){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(a)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null};mxEditor.prototype.cycleAttribute=function(a){if(null!=this.cycleAttributeName){var b=this.consumeCycleAttribute(a);null!=b&&a.setStyle(a.getStyle()+";"+this.cycleAttributeName+"\x3d"+b)}};
mxEditor.prototype.addVertex=function(a,b,c,d){for(var e=this.graph.getModel();null!=a&&!this.graph.isValidDropTarget(a);)a=e.getParent(a);a=null!=a?a:this.graph.getSwimlaneAt(c,d);var f=this.graph.getView().scale,g=e.getGeometry(b),k=e.getGeometry(a);if(this.graph.isSwimlane(b)&&!this.graph.swimlaneNesting)a=null;else{if(null==a&&this.swimlaneRequired)return null;if(null!=a&&null!=k){var l=this.graph.getView().getState(a);if(null!=l){if(c-=l.origin.x*f,d-=l.origin.y*f,this.graph.isConstrainedMoving){var k=
-g.width,m=g.height,n=l.x+l.width;c+k>n&&(c-=c+k-n);n=l.y+l.height;d+m>n&&(d-=d+m-n)}}else null!=k&&(c-=k.x*f,d-=k.y*f)}}g=g.clone();g.x=this.graph.snap(c/f-this.graph.getView().translate.x-this.graph.gridSize/2);g.y=this.graph.snap(d/f-this.graph.getView().translate.y-this.graph.gridSize/2);b.setGeometry(g);null==a&&(a=this.graph.getDefaultParent());this.cycleAttribute(b);this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",b,"parent",a));e.beginUpdate();try{b=this.graph.addCell(b,
+g.width,n=g.height,m=l.x+l.width;c+k>m&&(c-=c+k-m);m=l.y+l.height;d+n>m&&(d-=d+n-m)}}else null!=k&&(c-=k.x*f,d-=k.y*f)}}g=g.clone();g.x=this.graph.snap(c/f-this.graph.getView().translate.x-this.graph.gridSize/2);g.y=this.graph.snap(d/f-this.graph.getView().translate.y-this.graph.gridSize/2);b.setGeometry(g);null==a&&(a=this.graph.getDefaultParent());this.cycleAttribute(b);this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",b,"parent",a));e.beginUpdate();try{b=this.graph.addCell(b,
a),null!=b&&(this.graph.constrainChild(b),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",b)))}finally{e.endUpdate()}null!=b&&(this.graph.setSelectionCell(b),this.graph.scrollCellToVisible(b),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",b)));return b};
mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};
var mxCodecRegistry={codecs:[],aliases:[],register:function(a){if(null!=a){var b=a.getName();mxCodecRegistry.codecs[b]=a;var c=mxUtils.getFunctionName(a.template.constructor);c!=b&&mxCodecRegistry.addAlias(c,b)}return a},addAlias:function(a,b){mxCodecRegistry.aliases[a]=b},getCodec:function(a){var b=null;if(null!=a){var b=mxUtils.getFunctionName(a),c=mxCodecRegistry.aliases[b];null!=c&&(b=c);b=mxCodecRegistry.codecs[b];if(null==b)try{b=new mxObjectCodec(new a),mxCodecRegistry.register(b)}catch(d){}}return b}};
@@ -1971,22 +1971,22 @@ mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxChildChange,["
var e=c.firstChild;d.child=a.decodeCell(e,!1);d=e.nextSibling;e.parentNode.removeChild(e);for(e=d;null!=e;){d=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var f=e.getAttribute("id");null==a.lookup(f)&&a.decodeCell(e)}e.parentNode.removeChild(e);e=d}}else e=c.getAttribute("child"),d.child=a.getObject(e);return c};a.afterDecode=function(a,c,d){d.child.parent=d.previous;d.previous=d.parent;d.previousIndex=d.index;return d};return a}());
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);a.afterDecode=function(a,c,d){d.previous=d.terminal;return d};return a}());var mxGenericChangeCodec=function(a,b){var c=new mxObjectCodec(a,["model","previous"],["cell"]);c.afterDecode=function(a,c,f){mxUtils.isNode(f.cell)&&(f.cell=a.decodeCell(f.cell,!1));f.previous=f[b];return f};return c};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value"));
mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style"));mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry"));mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed"));mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible"));mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value"));mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))}());
-mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxGraphView);a.encode=function(a,c){return this.encodeCell(a,c,c.graph.getModel().getRoot())};a.encodeCell=function(a,c,d){var e=c.graph.getModel(),f=c.getState(d),g=e.getParent(d);if(null==g||null!=f){var k=e.getChildCount(d),l=c.graph.getCellGeometry(d),m=null;g==e.getRoot()?m="layer":null==g?m="graph":e.isEdge(d)?m="edge":0<k&&null!=l?m="group":e.isVertex(d)&&(m="vertex");if(null!=m){var n=a.document.createElement(m);null!=c.graph.getLabel(d)&&
-(n.setAttribute("label",c.graph.getLabel(d)),c.graph.isHtmlLabel(d)&&n.setAttribute("html",!0));if(null==g){var q=c.getGraphBounds();null!=q&&(n.setAttribute("x",Math.round(q.x)),n.setAttribute("y",Math.round(q.y)),n.setAttribute("width",Math.round(q.width)),n.setAttribute("height",Math.round(q.height)));n.setAttribute("scale",c.scale)}else if(null!=f&&null!=l){for(q in f.style)g=f.style[q],"function"==typeof g&&"object"==typeof g&&(g=mxStyleRegistry.getName(g)),null!=g&&"function"!=typeof g&&"object"!=
-typeof g&&n.setAttribute(q,g);g=f.absolutePoints;if(null!=g&&0<g.length){l=Math.round(g[0].x)+","+Math.round(g[0].y);for(q=1;q<g.length;q++)l+=" "+Math.round(g[q].x)+","+Math.round(g[q].y);n.setAttribute("points",l)}else n.setAttribute("x",Math.round(f.x)),n.setAttribute("y",Math.round(f.y)),n.setAttribute("width",Math.round(f.width)),n.setAttribute("height",Math.round(f.height));q=f.absoluteOffset;null!=q&&(0!=q.x&&n.setAttribute("dx",Math.round(q.x)),0!=q.y&&n.setAttribute("dy",Math.round(q.y)))}for(q=
-0;q<k;q++)f=this.encodeCell(a,c,e.getChildAt(d,q)),null!=f&&n.appendChild(f)}}return n};return a}());
-var mxStylesheetCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxStylesheet);a.encode=function(a,c){var d=a.document.createElement(this.getName()),e;for(e in c.styles){var f=c.styles[e],g=a.document.createElement("add");if(null!=e){g.setAttribute("as",e);for(var k in f){var l=this.getStringValue(k,f[k]);if(null!=l){var m=a.document.createElement("add");m.setAttribute("value",l);m.setAttribute("as",k);g.appendChild(m)}}0<g.childNodes.length&&d.appendChild(g)}}return d};a.getStringValue=
+mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxGraphView);a.encode=function(a,c){return this.encodeCell(a,c,c.graph.getModel().getRoot())};a.encodeCell=function(a,c,d){var e=c.graph.getModel(),f=c.getState(d),g=e.getParent(d);if(null==g||null!=f){var k=e.getChildCount(d),l=c.graph.getCellGeometry(d),n=null;g==e.getRoot()?n="layer":null==g?n="graph":e.isEdge(d)?n="edge":0<k&&null!=l?n="group":e.isVertex(d)&&(n="vertex");if(null!=n){var m=a.document.createElement(n);null!=c.graph.getLabel(d)&&
+(m.setAttribute("label",c.graph.getLabel(d)),c.graph.isHtmlLabel(d)&&m.setAttribute("html",!0));if(null==g){var p=c.getGraphBounds();null!=p&&(m.setAttribute("x",Math.round(p.x)),m.setAttribute("y",Math.round(p.y)),m.setAttribute("width",Math.round(p.width)),m.setAttribute("height",Math.round(p.height)));m.setAttribute("scale",c.scale)}else if(null!=f&&null!=l){for(p in f.style)g=f.style[p],"function"==typeof g&&"object"==typeof g&&(g=mxStyleRegistry.getName(g)),null!=g&&"function"!=typeof g&&"object"!=
+typeof g&&m.setAttribute(p,g);g=f.absolutePoints;if(null!=g&&0<g.length){l=Math.round(g[0].x)+","+Math.round(g[0].y);for(p=1;p<g.length;p++)l+=" "+Math.round(g[p].x)+","+Math.round(g[p].y);m.setAttribute("points",l)}else m.setAttribute("x",Math.round(f.x)),m.setAttribute("y",Math.round(f.y)),m.setAttribute("width",Math.round(f.width)),m.setAttribute("height",Math.round(f.height));p=f.absoluteOffset;null!=p&&(0!=p.x&&m.setAttribute("dx",Math.round(p.x)),0!=p.y&&m.setAttribute("dy",Math.round(p.y)))}for(p=
+0;p<k;p++)f=this.encodeCell(a,c,e.getChildAt(d,p)),null!=f&&m.appendChild(f)}}return m};return a}());
+var mxStylesheetCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxStylesheet);a.encode=function(a,c){var d=a.document.createElement(this.getName()),e;for(e in c.styles){var f=c.styles[e],g=a.document.createElement("add");if(null!=e){g.setAttribute("as",e);for(var k in f){var l=this.getStringValue(k,f[k]);if(null!=l){var n=a.document.createElement("add");n.setAttribute("value",l);n.setAttribute("as",k);g.appendChild(n)}}0<g.childNodes.length&&d.appendChild(g)}}return d};a.getStringValue=
function(a,c){var d=typeof c;"function"==d?c=mxStyleRegistry.getName(style[j]):"object"==d&&(c=null);return c};a.decode=function(a,c,d){d=d||new this.template.constructor;var e=c.getAttribute("id");null!=e&&(a.objects[e]=d);for(c=c.firstChild;null!=c;){if(!this.processInclude(a,c,d)&&"add"==c.nodeName&&(e=c.getAttribute("as"),null!=e)){var f=c.getAttribute("extend"),g=null!=f?mxUtils.clone(d.styles[f]):null;null==g&&(null!=f&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+f+" not found to extend"),
-g={});for(f=c.firstChild;null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT){var k=f.getAttribute("as");if("add"==f.nodeName){var l=mxUtils.getTextContent(f),m=null;null!=l&&0<l.length&&mxStylesheetCodec.allowEval?m=mxUtils.eval(l):(m=f.getAttribute("value"),mxUtils.isNumeric(m)&&(m=parseFloat(m)));null!=m&&(g[k]=m)}else"remove"==f.nodeName&&delete g[k]}f=f.nextSibling}d.putCellStyle(e,g)}c=c.nextSibling}return d};return a}());mxStylesheetCodec.allowEval=!0;
+g={});for(f=c.firstChild;null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT){var k=f.getAttribute("as");if("add"==f.nodeName){var l=mxUtils.getTextContent(f),n=null;null!=l&&0<l.length&&mxStylesheetCodec.allowEval?n=mxUtils.eval(l):(n=f.getAttribute("value"),mxUtils.isNumeric(n)&&(n=parseFloat(n)));null!=n&&(g[k]=n)}else"remove"==f.nodeName&&delete g[k]}f=f.nextSibling}d.putCellStyle(e,g)}c=c.nextSibling}return d};return a}());mxStylesheetCodec.allowEval=!0;
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultKeyHandler);a.encode=function(a,c){return null};a.decode=function(a,c,d){if(null!=d)for(c=c.firstChild;null!=c;){if(!this.processInclude(a,c,d)&&"add"==c.nodeName){var e=c.getAttribute("as"),f=c.getAttribute("action"),g=c.getAttribute("control");d.bindAction(e,f,g)}c=c.nextSibling}return d};return a}());
var mxDefaultToolbarCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultToolbar);a.encode=function(a,c){return null};a.decode=function(a,c,d){if(null!=d){var e=d.editor;for(c=c.firstChild;null!=c;){if(c.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(a,c,d))if("separator"==c.nodeName)d.addSeparator();else if("br"==c.nodeName)d.toolbar.addBreak();else if("hr"==c.nodeName)d.toolbar.addLine();else if("add"==c.nodeName){var f=c.getAttribute("as"),f=mxResources.get(f)||
-f,g=c.getAttribute("icon"),k=c.getAttribute("pressedIcon"),l=c.getAttribute("action"),m=c.getAttribute("mode"),n=c.getAttribute("template"),q="0"!=c.getAttribute("toggle"),p=mxUtils.getTextContent(c),r=null;if(null!=l)r=d.addItem(f,g,l,k);else if(null!=m)var s=mxDefaultToolbarCodec.allowEval?mxUtils.eval(p):null,r=d.addMode(f,g,m,k,s);else if(null!=n||null!=p&&0<p.length)r=e.templates[n],n=c.getAttribute("style"),null!=r&&null!=n&&(r=e.graph.cloneCells([r])[0],r.setStyle(n)),n=null,null!=p&&0<p.length&&
-mxDefaultToolbarCodec.allowEval&&(n=mxUtils.eval(p)),r=d.addPrototype(f,g,r,k,n,q);else if(k=mxUtils.getChildNodes(c),0<k.length)if(null==g){n=d.addActionCombo(f);for(f=0;f<k.length;f++)q=k[f],"separator"==q.nodeName?d.addOption(n,"---"):"add"==q.nodeName&&(g=q.getAttribute("as"),q=q.getAttribute("action"),d.addActionOption(n,g,q))}else{var t=null,v=d.addPrototype(f,g,function(){var a=e.templates[t.value];if(null!=a){var a=a.clone(),b=t.options[t.selectedIndex].cellStyle;null!=b&&a.setStyle(b);return a}mxLog.warn("Template "+
-a+" not found");return null},null,null,q),t=d.addCombo();mxEvent.addListener(t,"change",function(){d.toolbar.selectMode(v,function(a){a=mxUtils.convertPoint(e.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a));return e.addVertex(null,s(),a.x,a.y)});d.toolbar.noReset=!1});for(f=0;f<k.length;f++)q=k[f],"separator"==q.nodeName?d.addOption(t,"---"):"add"==q.nodeName&&(g=q.getAttribute("as"),p=q.getAttribute("template"),d.addOption(t,g,p||n).cellStyle=q.getAttribute("style"))}null!=r&&(n=c.getAttribute("id"),
-null!=n&&0<n.length&&r.setAttribute("id",n))}c=c.nextSibling}}return d};return a}());mxDefaultToolbarCodec.allowEval=!0;mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultPopupMenu);a.encode=function(a,c){return null};a.decode=function(a,c,d){var e=c.getElementsByTagName("include")[0];null!=e?this.processInclude(a,e,d):null!=d&&(d.config=c);return d};return a}());
+f,g=c.getAttribute("icon"),k=c.getAttribute("pressedIcon"),l=c.getAttribute("action"),n=c.getAttribute("mode"),m=c.getAttribute("template"),p="0"!=c.getAttribute("toggle"),q=mxUtils.getTextContent(c),s=null;if(null!=l)s=d.addItem(f,g,l,k);else if(null!=n)var r=mxDefaultToolbarCodec.allowEval?mxUtils.eval(q):null,s=d.addMode(f,g,n,k,r);else if(null!=m||null!=q&&0<q.length)s=e.templates[m],m=c.getAttribute("style"),null!=s&&null!=m&&(s=e.graph.cloneCells([s])[0],s.setStyle(m)),m=null,null!=q&&0<q.length&&
+mxDefaultToolbarCodec.allowEval&&(m=mxUtils.eval(q)),s=d.addPrototype(f,g,s,k,m,p);else if(k=mxUtils.getChildNodes(c),0<k.length)if(null==g){m=d.addActionCombo(f);for(f=0;f<k.length;f++)p=k[f],"separator"==p.nodeName?d.addOption(m,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),p=p.getAttribute("action"),d.addActionOption(m,g,p))}else{var t=null,u=d.addPrototype(f,g,function(){var a=e.templates[t.value];if(null!=a){var a=a.clone(),b=t.options[t.selectedIndex].cellStyle;null!=b&&a.setStyle(b);return a}mxLog.warn("Template "+
+a+" not found");return null},null,null,p),t=d.addCombo();mxEvent.addListener(t,"change",function(){d.toolbar.selectMode(u,function(a){a=mxUtils.convertPoint(e.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a));return e.addVertex(null,r(),a.x,a.y)});d.toolbar.noReset=!1});for(f=0;f<k.length;f++)p=k[f],"separator"==p.nodeName?d.addOption(t,"---"):"add"==p.nodeName&&(g=p.getAttribute("as"),q=p.getAttribute("template"),d.addOption(t,g,q||m).cellStyle=p.getAttribute("style"))}null!=s&&(m=c.getAttribute("id"),
+null!=m&&0<m.length&&s.setAttribute("id",m))}c=c.nextSibling}}return d};return a}());mxDefaultToolbarCodec.allowEval=!0;mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxDefaultPopupMenu);a.encode=function(a,c){return null};a.decode=function(a,c,d){var e=c.getElementsByTagName("include")[0];null!=e?this.processInclude(a,e,d):null!=d&&(d.config=c);return d};return a}());
mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));a.afterDecode=function(a,c,d){a=c.getAttribute("defaultEdge");null!=a&&(c.removeAttribute("defaultEdge"),d.defaultEdge=d.templates[a]);a=c.getAttribute("defaultGroup");null!=a&&(c.removeAttribute("defaultGroup"),d.defaultGroup=d.templates[a]);return d};a.decodeChild=function(a,c,d){if("Array"==c.nodeName){if("templates"==c.getAttribute("as")){this.decodeTemplates(a,
-c,d);return}}else if("ui"==c.nodeName){this.decodeUi(a,c,d);return}mxObjectCodec.prototype.decodeChild.apply(this,arguments)};a.decodeUi=function(a,c,d){for(a=c.firstChild;null!=a;){if("add"==a.nodeName){c=a.getAttribute("as");var e=a.getAttribute("element"),f=a.getAttribute("style"),g=null;if(null!=e)g=document.getElementById(e),null!=g&&null!=f&&(g.style.cssText+=";"+f);else{var e=parseInt(a.getAttribute("x")),k=parseInt(a.getAttribute("y")),l=a.getAttribute("width"),m=a.getAttribute("height"),
-g=document.createElement("div");g.style.cssText=f;(new mxWindow(mxResources.get(c)||c,g,e,k,l,m,!1,!0)).setVisible(!0)}"graph"==c?d.setGraphContainer(g):"toolbar"==c?d.setToolbarContainer(g):"title"==c?d.setTitleContainer(g):"status"==c?d.setStatusContainer(g):"map"==c&&d.setMapContainer(g)}else"resource"==a.nodeName?mxResources.add(a.getAttribute("basename")):"stylesheet"==a.nodeName&&mxClient.link("stylesheet",a.getAttribute("name"));a=a.nextSibling}};a.decodeTemplates=function(a,c,d){null==d.templates&&
+c,d);return}}else if("ui"==c.nodeName){this.decodeUi(a,c,d);return}mxObjectCodec.prototype.decodeChild.apply(this,arguments)};a.decodeUi=function(a,c,d){for(a=c.firstChild;null!=a;){if("add"==a.nodeName){c=a.getAttribute("as");var e=a.getAttribute("element"),f=a.getAttribute("style"),g=null;if(null!=e)g=document.getElementById(e),null!=g&&null!=f&&(g.style.cssText+=";"+f);else{var e=parseInt(a.getAttribute("x")),k=parseInt(a.getAttribute("y")),l=a.getAttribute("width"),n=a.getAttribute("height"),
+g=document.createElement("div");g.style.cssText=f;(new mxWindow(mxResources.get(c)||c,g,e,k,l,n,!1,!0)).setVisible(!0)}"graph"==c?d.setGraphContainer(g):"toolbar"==c?d.setToolbarContainer(g):"title"==c?d.setTitleContainer(g):"status"==c?d.setStatusContainer(g):"map"==c&&d.setMapContainer(g)}else"resource"==a.nodeName?mxResources.add(a.getAttribute("basename")):"stylesheet"==a.nodeName&&mxClient.link("stylesheet",a.getAttribute("name"));a=a.nextSibling}};a.decodeTemplates=function(a,c,d){null==d.templates&&
(d.templates=[]);c=mxUtils.getChildNodes(c);for(var e=0;e<c.length;e++){for(var f=c[e].getAttribute("as"),g=c[e].firstChild;null!=g&&1!=g.nodeType;)g=g.nextSibling;null!=g&&(d.templates[f]=a.decodeCell(g))}};return a}());
Editor=function(a,b,c,d){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,c);this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=function(){return this.status};
this.graphChangeListener=function(){this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter);)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();
@@ -2030,12 +2030,12 @@ null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackground
"geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=e,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],e=1;e<this.gridSteps;e++){var f=e*b;d.push("M 0 "+f+" L "+c+" "+f+" M "+f+" 0 L "+f+" "+c)}return'\x3csvg width\x3d"'+c+'" height\x3d"'+
c+'" xmlns\x3d"'+mxConstants.NS_SVG+'"\x3e\x3cdefs\x3e\x3cpattern id\x3d"grid" width\x3d"'+c+'" height\x3d"'+c+'" patternUnits\x3d"userSpaceOnUse"\x3e\x3cpath d\x3d"'+d.join(" ")+'" fill\x3d"none" stroke\x3d"'+a+'" opacity\x3d"0.2" stroke-width\x3d"1"/\x3e\x3cpath d\x3d"M '+c+" 0 L 0 0 0 "+c+'" fill\x3d"none" stroke\x3d"'+a+'" stroke-width\x3d"1"/\x3e\x3c/pattern\x3e\x3c/defs\x3e\x3crect width\x3d"100%" height\x3d"100%" fill\x3d"url(#grid)"/\x3e\x3c/svg\x3e'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=
function(b,c){a.apply(this,arguments);if(null!=this.shiftPreview1){var d=this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var e=this.gridSize*this.view.scale*this.view.gridSteps,e=-Math.round(e-mxUtils.mod(this.view.translate.x*this.view.scale+b,e))+"px "+-Math.round(e-mxUtils.mod(this.view.translate.y*this.view.scale+c,e))+"px";d.style.backgroundPosition=e}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,e=this.view.translate,f=this.pageFormat,g=d*this.pageScale,
-s=this.view.getBackgroundPageBounds();b=s.width;c=s.height;var t=new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),v=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(c/t.height)-1:0,u=a?Math.ceil(b/t.width)-1:0,y=s.x+b,z=s.y+c;null==this.horizontalPageBreaks&&0<v&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<u&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?v:u,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?
-[new mxPoint(Math.round(s.x),Math.round(s.y+(c+1)*t.height)),new mxPoint(Math.round(y),Math.round(s.y+(c+1)*t.height))]:[new mxPoint(Math.round(s.x+(c+1)*t.width),Math.round(s.y)),new mxPoint(Math.round(s.x+(c+1)*t.width),Math.round(z))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-
+r=this.view.getBackgroundPageBounds();b=r.width;c=r.height;var t=new mxRectangle(d*e.x,d*e.y,f.width*g,f.height*g),u=(a=a&&Math.min(t.width,t.height)>this.minPageBreakDist)?Math.ceil(c/t.height)-1:0,v=a?Math.ceil(b/t.width)-1:0,z=r.x+b,y=r.y+c;null==this.horizontalPageBreaks&&0<u&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?u:v,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?
+[new mxPoint(Math.round(r.x),Math.round(r.y+(c+1)*t.height)),new mxPoint(Math.round(z),Math.round(r.y+(c+1)*t.height))]:[new mxPoint(Math.round(r.x+(c+1)*t.width),Math.round(r.y)),new mxPoint(Math.round(r.x+(c+1)*t.width),Math.round(y))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-
b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,c,d){for(var e=0;e<c.length;e++)if(this.graph.getModel().isVertex(c[e])){var f=this.graph.getCellGeometry(c[e]);if(null!=f&&f.relative)return!1}return b.apply(this,arguments)};var c=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=c.apply(this,arguments);a.intersects=
mxUtils.bind(this,function(b,c){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff","#cacaca")};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=a.width/this.scale,e=a.height/this.scale,f=this.graph.pageFormat,g=this.graph.pageScale,
-a=f.width*g,f=f.height*g,g=Math.floor(Math.min(0,b)/a),s=Math.floor(Math.min(0,c)/f),b=Math.ceil(Math.max(1,b+d)/a),c=Math.ceil(Math.max(1,c+e)/f);return new mxRectangle(this.scale*(this.translate.x+g*a),this.scale*(this.translate.y+s*f),this.scale*(b-g)*a,this.scale*(c-s)*f)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);if(this.dialect!=mxConstants.DIALECT_SVG&&null!=this.view.backgroundPageShape&&(!this.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.container)))this.view.backgroundPageShape.node.style.marginLeft=
-a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px"};var e=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,f,g){var r=e.apply(this,arguments);null!=g&&!g&&mxEvent.addListener(r,"mousedown",function(a){mxEvent.consume(a)});return r};var f=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=f.apply(this,arguments),e=b.getParent(d);
+a=f.width*g,f=f.height*g,g=Math.floor(Math.min(0,b)/a),r=Math.floor(Math.min(0,c)/f),b=Math.ceil(Math.max(1,b+d)/a),c=Math.ceil(Math.max(1,c+e)/f);return new mxRectangle(this.scale*(this.translate.x+g*a),this.scale*(this.translate.y+r*f),this.scale*(b-g)*a,this.scale*(c-r)*f)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);if(this.dialect!=mxConstants.DIALECT_SVG&&null!=this.view.backgroundPageShape&&(!this.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.container)))this.view.backgroundPageShape.node.style.marginLeft=
+a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px"};var e=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,f,g){var s=e.apply(this,arguments);null!=g&&!g&&mxEvent.addListener(s,"mousedown",function(a){mxEvent.consume(a)});return s};var f=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=f.apply(this,arguments),e=b.getParent(d);
if(null==c||c!=d&&c!=e)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(e)&&b.isVertex(e)&&!this.graph.isContainer(e);)d=e,e=this.graph.getModel().getParent(d);return d};var g=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=g.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),e=d.getParent(a);null!=e;){if(this.graph.isCellSelected(e)&&d.isVertex(e)){c=!0;break}e=d.getParent(e)}return c};mxGraphHandler.prototype.selectDelayed=
function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);var c=this.graph.view.getState(b);if(!(null!=c&&a.isSource(c.control)))for(var c=this.graph.getModel(),d=c.getParent(b);!this.graph.isCellSelected(d)&&c.isVertex(d);)b=d,d=c.getParent(b);this.graph.selectCellForEvent(b,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a);b.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&&
(a=c),c=b.getParent(c);return a}})();
@@ -2046,17 +2046,17 @@ b,this.toolbarContainer.onmousedown=b,this.diagramContainer.onselectstart=b,this
c.parentNode}})};this.hoverIcons=this.createHoverIcons();mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var b=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-b.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-b.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var e=!1,f=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=
function(a,b){return e||f.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(a){32==a.which?(e=!0,this.hoverIcons.reset(),d.container.style.cursor="move",!d.isEditing()&&mxEvent.getSource(a)==d.container&&mxEvent.consume(a)):!mxEvent.isConsumed(a)&&27==a.keyCode&&this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";e=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);
var g=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent=function(a){return g.apply(this,arguments)||e||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var k=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return k.apply(this,arguments)||13==a.keyCode&&(mxEvent.isControlDown(a)||
-mxClient.IS_MAC&&mxEvent.isMetaDown(a))};var l=!1,m=null,n=null,q=null,p=mxUtils.bind(this,function(){if(l!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var c=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=c}a=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==q)this.toolbar.createTextToolbar();else{for(var e=0;e<q.length;e++)this.toolbar.container.appendChild(q[e]);this.toolbar.fontMenu=
-m;this.toolbar.sizeMenu=n}l=d.cellEditor.isContentEditing();m=a;n=c;q=b}}),r=this,s=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){s.apply(this,arguments);p();if(d.cellEditor.isContentEditing()){var a=!1,b=function(){a||(a=!0,window.setTimeout(function(){for(var b=d.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;if(null!=b&&(b=mxUtils.getCurrentStyle(b),null!=b&&null!=r.toolbar)){var c=b.fontFamily;"'"==c.charAt(0)&&(c=c.substring(1));"'"==c.charAt(c.length-
-1)&&(c=c.substring(0,c.length-1));r.toolbar.setFontName(c);r.toolbar.setFontSize(parseInt(b.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",b);mxEvent.addListener(d.cellEditor.textarea,"touchend",b);mxEvent.addListener(d.cellEditor.textarea,"mouseup",b);mxEvent.addListener(d.cellEditor.textarea,"keyup",b);b()}};var t=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,b){t.apply(this,arguments);p()};d.container.setAttribute("tabindex","0");d.container.style.cursor=
-"default";window.self===window.top&&null!=d.container.parentNode&&d.container.focus();var v=d.fireMouseEvent;d.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
-this.getKeyHandler=function(){return keyHandler};var u="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(a){var b=d.view.getState(a);if(null!=b){a=a.clone();a.style="";a=d.getCellStyle(a);var c=[],e=[],f;for(f in b.style)a[f]!=b.style[f]&&(c.push(b.style[f]),e.push(f));f=d.getModel().getStyle(b.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],p=l.indexOf("\x3d");
-0<=p&&(f=l.substring(0,p),l=l.substring(p+1),null!=a[f]&&"none"==l&&(c.push(l),e.push(f)))}d.getModel().isEdge(b.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",c,"cells",[b.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=d.defaultEdgeStyle;d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var z=["fontFamily","fontSize","fontColor"],x="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),
-G=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],z,["align"],["html"]];for(a=0;a<G.length;a++)for(b=0;b<G[a].length;b++)u.push(G[a][b]);for(a=0;a<y.length;a++)u.push(y[a]);var D=function(a,b){d.getModel().beginUpdate();try{if(b)for(var c=d.getModel().isEdge(k),e=c?d.currentEdgeStyle:d.currentVertexStyle,c=["fontSize","fontFamily","fontColor"],f=0;f<c.length;f++){var g=e[c[f]];null!=g&&d.setCellStyles(c[f],
-g,a)}else for(g=0;g<a.length;g++){for(var k=a[g],l=d.getModel().getStyle(k),p=null!=l?l.split(";"):[],m=u.slice(),f=0;f<p.length;f++){var r=p[f],n=r.indexOf("\x3d");if(0<=n){var s=r.substring(0,n),q=mxUtils.indexOf(m,s);0<=q&&m.splice(q,1);for(var t=0;t<G.length;t++){var v=G[t];if(0<=mxUtils.indexOf(v,s))for(var z=0;z<v.length;z++){var x=mxUtils.indexOf(m,v[z]);0<=x&&m.splice(x,1)}}}}e=(c=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<m.length;f++){var s=m[f],D=e[s];if(null!=
-D&&("shape"!=s||c))(!c||0>mxUtils.indexOf(y,s))&&d.setCellStyles(s,D,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(a,b){D(b.getProperty("cells"))});d.addListener("textInserted",function(a,b){D(b.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));D(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),
-e=!1,f=!1;if(0<c.length)for(var g=0;g<c.length&&!(e=d.getModel().isVertex(c[g])||e,(f=d.getModel().isEdge(c[g])||f)&&e);g++);else f=e=!0;for(var c=b.getProperty("keys"),k=b.getProperty("values"),g=0;g<c.length;g++){var l=0<=mxUtils.indexOf(z,c[g]);if("strokeColor"!=c[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(y,c[g]))f||0<=mxUtils.indexOf(x,c[g])?null==k[g]?delete d.currentEdgeStyle[c[g]]:d.currentEdgeStyle[c[g]]=k[g]:e&&0<=mxUtils.indexOf(u,c[g])&&(null==k[g]?delete d.currentVertexStyle[c[g]]:
-d.currentVertexStyle[c[g]]=k[g]);else if(0<=mxUtils.indexOf(u,c[g])){if(e||l)null==k[g]?delete d.currentVertexStyle[c[g]]:d.currentVertexStyle[c[g]]=k[g];if(f||l||0<=mxUtils.indexOf(x,c[g]))null==k[g]?delete d.currentEdgeStyle[c[g]]:d.currentEdgeStyle[c[g]]=k[g]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
+mxClient.IS_MAC&&mxEvent.isMetaDown(a))};var l=!1,n=null,m=null,p=null,q=mxUtils.bind(this,function(){if(l!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var c=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=c}a=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==p)this.toolbar.createTextToolbar();else{for(var e=0;e<p.length;e++)this.toolbar.container.appendChild(p[e]);this.toolbar.fontMenu=
+n;this.toolbar.sizeMenu=m}l=d.cellEditor.isContentEditing();n=a;m=c;p=b}}),s=this,r=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){r.apply(this,arguments);q();if(d.cellEditor.isContentEditing()){var a=!1,b=function(){a||(a=!0,window.setTimeout(function(){for(var b=d.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;if(null!=b&&(b=mxUtils.getCurrentStyle(b),null!=b&&null!=s.toolbar)){var c=b.fontFamily;"'"==c.charAt(0)&&(c=c.substring(1));"'"==c.charAt(c.length-
+1)&&(c=c.substring(0,c.length-1));s.toolbar.setFontName(c);s.toolbar.setFontSize(parseInt(b.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",b);mxEvent.addListener(d.cellEditor.textarea,"touchend",b);mxEvent.addListener(d.cellEditor.textarea,"mouseup",b);mxEvent.addListener(d.cellEditor.textarea,"keyup",b);b()}};var t=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,b){t.apply(this,arguments);q()};d.container.setAttribute("tabindex","0");d.container.style.cursor=
+"default";window.self===window.top&&null!=d.container.parentNode&&d.container.focus();var u=d.fireMouseEvent;d.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();u.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);
+this.getKeyHandler=function(){return keyHandler};var v="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),z="shape edgeStyle curved rounded elbow comic".split(" ");this.setDefaultStyle=function(a){var b=d.view.getState(a);if(null!=b){a=a.clone();a.style="";a=d.getCellStyle(a);var c=[],e=[],f;for(f in b.style)a[f]!=b.style[f]&&(c.push(b.style[f]),e.push(f));f=d.getModel().getStyle(b.cell);for(var g=null!=f?f.split(";"):[],k=0;k<g.length;k++){var l=g[k],n=l.indexOf("\x3d");
+0<=n&&(f=l.substring(0,n),l=l.substring(n+1),null!=a[f]&&"none"==l&&(c.push(l),e.push(f)))}d.getModel().isEdge(b.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",e,"values",c,"cells",[b.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=d.defaultEdgeStyle;d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var y=["fontFamily","fontSize","fontColor"],x="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),
+E=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],y,["align"],["html"]];for(a=0;a<E.length;a++)for(b=0;b<E[a].length;b++)v.push(E[a][b]);for(a=0;a<z.length;a++)v.push(z[a]);var C=function(a,b){d.getModel().beginUpdate();try{if(b)for(var c=d.getModel().isEdge(k),e=c?d.currentEdgeStyle:d.currentVertexStyle,c=["fontSize","fontFamily","fontColor"],f=0;f<c.length;f++){var g=e[c[f]];null!=g&&d.setCellStyles(c[f],
+g,a)}else for(g=0;g<a.length;g++){for(var k=a[g],l=d.getModel().getStyle(k),n=null!=l?l.split(";"):[],m=v.slice(),f=0;f<n.length;f++){var p=n[f],q=p.indexOf("\x3d");if(0<=q){var s=p.substring(0,q),r=mxUtils.indexOf(m,s);0<=r&&m.splice(r,1);for(var t=0;t<E.length;t++){var u=E[t];if(0<=mxUtils.indexOf(u,s))for(var x=0;x<u.length;x++){var y=mxUtils.indexOf(m,u[x]);0<=y&&m.splice(y,1)}}}}e=(c=d.getModel().isEdge(k))?d.currentEdgeStyle:d.currentVertexStyle;for(f=0;f<m.length;f++){var s=m[f],C=e[s];if(null!=
+C&&("shape"!=s||c))(!c||0>mxUtils.indexOf(z,s))&&d.setCellStyles(s,C,[k])}}}finally{d.getModel().endUpdate()}};d.addListener("cellsInserted",function(a,b){C(b.getProperty("cells"))});d.addListener("textInserted",function(a,b){C(b.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT,function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&c.push(b.getProperty("terminal"));C(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),
+e=!1,f=!1;if(0<c.length)for(var g=0;g<c.length&&!(e=d.getModel().isVertex(c[g])||e,(f=d.getModel().isEdge(c[g])||f)&&e);g++);else f=e=!0;for(var c=b.getProperty("keys"),k=b.getProperty("values"),g=0;g<c.length;g++){var l=0<=mxUtils.indexOf(y,c[g]);if("strokeColor"!=c[g]||null!=k[g]&&"none"!=k[g])if(0<=mxUtils.indexOf(z,c[g]))f||0<=mxUtils.indexOf(x,c[g])?null==k[g]?delete d.currentEdgeStyle[c[g]]:d.currentEdgeStyle[c[g]]=k[g]:e&&0<=mxUtils.indexOf(v,c[g])&&(null==k[g]?delete d.currentVertexStyle[c[g]]:
+d.currentVertexStyle[c[g]]=k[g]);else if(0<=mxUtils.indexOf(v,c[g])){if(e||l)null==k[g]?delete d.currentVertexStyle[c[g]]:d.currentVertexStyle[c[g]]=k[g];if(f||l||0<=mxUtils.indexOf(x,c[g]))null==k[g]?delete d.currentEdgeStyle[c[g]]:d.currentEdgeStyle[c[g]]=k[g]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
"orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
@@ -2082,18 +2082,18 @@ c);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",
"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out");var d=mxUtils.bind(this,function(){var b=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=b?parseInt(b["margin-bottom"]||0):0)+(null!=this.tabContainer?
20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",d);d();var e=0,d=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=c&&d.setAttribute("title",c);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);d.appendChild(a);this.chromelessToolbar.appendChild(d);return d}),f=d(mxUtils.bind(this,
function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")||"Previous Page"),g=document.createElement("div");g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontFamily="Helvetica,Arial";g.style.marginTop="8px";g.style.color="#ffffff";this.chromelessToolbar.appendChild(g);var k=d(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage,mxResources.get("nextPage")||
-"Next Page"),l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(g.innerHTML="",mxUtils.write(g,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});f.style.paddingLeft="0px";f.style.paddingRight="4px";k.style.paddingLeft="4px";k.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(k.style.display="",f.style.display="",g.style.display="inline-block"):(k.style.display=
-"none",f.style.display="none",g.style.display="none");l()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",l);d(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,(mxResources.get("zoomOut")||"Zoom Out")+" (Alt+Mousewheel)");d(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,(mxResources.get("zoomIn")||"Zoom In")+" (Alt+Mousewheel)");d(mxUtils.bind(this,
-function(c){a.lightbox?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),b(!1)):b(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit")||"Fit");var n=null,q=null,p=mxUtils.bind(this,function(a){null!=n&&(window.clearTimeout(n),fadeThead=null);null!=q&&(window.clearTimeout(q),fadeThead2=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;q=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";
-q=null}),600)}),a||200)}),r=mxUtils.bind(this,function(a){null!=n&&(window.clearTimeout(n),fadeThead=null);null!=q&&(window.clearTimeout(q),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var s=d(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
-"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=s.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
-mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")||"Layers"),t=a.getModel();t.addListener(mxEvent.CHANGE,function(){s.style.display=1<t.getChildCount(t.root)?
+"Next Page"),l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(g.innerHTML="",mxUtils.write(g,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});f.style.paddingLeft="0px";f.style.paddingRight="4px";k.style.paddingLeft="4px";k.style.paddingRight="0px";var n=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(k.style.display="",f.style.display="",g.style.display="inline-block"):(k.style.display=
+"none",f.style.display="none",g.style.display="none");l()});this.editor.addListener("resetGraphView",n);this.editor.addListener("pageSelected",l);d(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,(mxResources.get("zoomOut")||"Zoom Out")+" (Alt+Mousewheel)");d(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,(mxResources.get("zoomIn")||"Zoom In")+" (Alt+Mousewheel)");d(mxUtils.bind(this,
+function(c){a.lightbox?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),b(!1)):b(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit")||"Fit");var m=null,p=null,q=mxUtils.bind(this,function(a){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);m=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);m=null;p=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display="none";
+p=null}),600)}),a||200)}),s=mxUtils.bind(this,function(a){null!=m&&(window.clearTimeout(m),fadeThead=null);null!=p&&(window.clearTimeout(p),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var r=d(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog,
+"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var c=r.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff";
+mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=c.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(b)}),Editor.layersLargeImage,mxResources.get("layers")||"Layers"),t=a.getModel();t.addListener(mxEvent.CHANGE,function(){r.style.display=1<t.getChildCount(t.root)?
"":"none"})}null!=this.editor.editButtonLink&&d(mxUtils.bind(this,function(a){"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml(),null,!0):window.open(this.editor.editButtonLink,"editWindow");mxEvent.consume(a)}),Editor.editLargeImage,mxResources.get("openInNewWindow")||"Open in New Window");a.lightbox&&this.container!=document.body&&d(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,(mxResources.get("close")||
-"Close")+" (Escape)");this.chromelessToolbar.style.display="none";a.container.appendChild(this.chromelessToolbar);this.chromelessToolbar.style.marginLeft=-(24*e+10)+"px";this.addChromelessClickHandler();mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||r(30),p())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,
-"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?p():r(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?p():r(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||r(30)}));var v=a.getTolerance(),u=this;a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
-this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<v&&Math.abs(this.scrollTop-a.container.scrollTop)<v&&Math.abs(this.startX-c.getGraphX())<v&&Math.abs(this.startY-c.getGraphY())<v&&(0<parseFloat(u.chromelessToolbar.style.opacity||0)?p():r(30))}})}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&
-mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}y.apply(this,arguments)};var z=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),f=Math.ceil(2*c.y+b.height*d.height),g=a.minimumGraphSize;if(null==
-g||g.width!=e||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,e,f);e=c.x-b.x*d.width;c=c.y-b.y*d.height;!this.autoTranslate&&(this.view.translate.x!=e||this.view.translate.y!=c)?(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1):z.apply(this,arguments)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=
+"Close")+" (Escape)");this.chromelessToolbar.style.display="none";a.container.appendChild(this.chromelessToolbar);this.chromelessToolbar.style.marginLeft=-(24*e+10)+"px";this.addChromelessClickHandler();mxEvent.addListener(a.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||s(30),q())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,
+"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?q():s(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?q():s(100);mxEvent.consume(a)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||s(30)}));var u=a.getTolerance(),v=this;a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
+this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<u&&Math.abs(this.scrollTop-a.container.scrollTop)<u&&Math.abs(this.startX-c.getGraphX())<u&&Math.abs(this.startY-c.getGraphY())<u&&(0<parseFloat(v.chromelessToolbar.style.opacity||0)?q():s(30))}})}else if(this.editor.extendCanvas){var z=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&
+mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}z.apply(this,arguments)};var y=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=this.getPageLayout(),c=this.getPagePadding(),d=this.getPageSize(),e=Math.ceil(2*c.x+b.width*d.width),f=Math.ceil(2*c.y+b.height*d.height),g=a.minimumGraphSize;if(null==
+g||g.width!=e||g.height!=f)a.minimumGraphSize=new mxRectangle(0,0,e,f);e=c.x-b.x*d.width;c=c.y-b.y*d.height;!this.autoTranslate&&(this.view.translate.x!=e||this.view.translate.y!=c)?(this.autoTranslate=!0,this.view.x0=b.x,this.view.y0=b.y,b=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(e,c),a.container.scrollLeft+=Math.round((e-b)*a.view.scale),a.container.scrollTop+=Math.round((c-d)*a.view.scale),this.autoTranslate=!1):y.apply(this,arguments)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=
1;var x=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?0.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale+0.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale):0.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale-0.01)/this.view.scale:(this.cumulativeZoomFactor/=
this.zoomFactor,this.cumulativeZoomFactor=Math.round(20*this.view.scale*this.cumulativeZoomFactor)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(0.01,Math.min(this.view.scale*this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){this.zoom(this.cumulativeZoomFactor);null!=b&&b(!1);if(null!=x&&mxUtils.hasScrollbars(a.container)){var c=mxUtils.getOffset(a.container),d=a.container.offsetHeight/2-x.y+c.y;a.container.scrollLeft-=(a.container.offsetWidth/
2-x.x+c.x)*(this.cumulativeZoomFactor-1);a.container.scrollTop-=d*(this.cumulativeZoomFactor-1)}this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),20)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(b,c){if((mxEvent.isAltDown(b)||mxEvent.isControlDown(b)&&!mxClient.IS_MAC||a.panningHandler.isActive())&&(null==this.dialogs||0==this.dialogs.length))for(var d=mxEvent.getSource(b);null!=d;){if(d==a.container){x=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));a.lazyZoom(c);mxEvent.consume(b);
@@ -2118,7 +2118,7 @@ EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this
EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),c=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});c.addListener(mxEvent.ADD,d);c.addListener(mxEvent.UNDO,d);c.addListener(mxEvent.REDO,d);c.addListener(mxEvent.CLEAR,d);var e=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){e.apply(this,arguments);d()};var f=this.editor.graph.cellEditor.stopEditing;
this.editor.graph.cellEditor.stopEditing=function(a,b){f.apply(this,arguments);d()};d()};
-EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),c=!1,d=!1,e=a.getSelectionCells();if(null!=e)for(var f=0;f<e.length;f++){var g=e[f];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(c=!0);if(d&&c)break}e="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(f=
+EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),c=!1,d=!1,e=a.getSelectionCells();if(null!=e)for(var f=0;f<e.length;f++){var g=e[f];a.getModel().isEdge(g)&&(d=!0);a.getModel().isVertex(g)&&(c=!0);if(d&&c)break}e="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(f=
0;f<e.length;f++)this.actions.get(e[f]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("clearWaypoints").setEnabled(d);this.actions.get("rotation").setEnabled(c);this.actions.get("wordWrap").setEnabled(c);this.actions.get("autosize").setEnabled(c);this.actions.get("collapsible").setEnabled(c);d=c&&1==a.getSelectionCount();this.actions.get("group").setEnabled(1<
a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot);this.actions.get("collapsible").setEnabled(c&&1==a.getSelectionCount()&&
(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b);this.actions.get("editLink").setEnabled(1==
@@ -2139,8 +2139,8 @@ this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContaine
this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
!0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)};EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};
EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b};
-EditorUi.prototype.addSplitHandler=function(a,b,c,d){function e(a){if(null!=g){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,k+(b?e.x-g.x:g.y-e.y)-c));mxEvent.consume(a);k!=n()&&(l=!0,m=null)}}function f(a){e(a);g=k=null}var g=null,k=null,l=!0,m=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var n=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+c-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){g=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));k=n();l=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!l){var b=null!=m?m-c:0;m=n();d(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,e,f);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,e,f)})};EditorUi.prototype.showDialog=function(a,b,c,d,e,f){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,c,d,e,f);this.dialogs.push(this.dialog)};
+EditorUi.prototype.addSplitHandler=function(a,b,c,d){function e(a){if(null!=g){var e=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,k+(b?e.x-g.x:g.y-e.y)-c));mxEvent.consume(a);k!=m()&&(l=!0,n=null)}}function f(a){e(a);g=k=null}var g=null,k=null,l=!0,n=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+c-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){g=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));k=m();l=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",function(a){if(!l){var b=null!=n?n-c:0;n=m();d(b);mxEvent.consume(a)}});mxEvent.addGestureListeners(document,null,e,f);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,e,f)})};EditorUi.prototype.showDialog=function(a,b,c,d,e,f){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,c,d,e,f);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),this.editor.fireEvent(new mxEventObject("hideDialog")))};
EditorUi.prototype.pickColor=function(a,b){var c=this.editor.graph,d=c.cellEditor.saveSelection(),e=new ColorDialog(this,a||"none",function(a){c.cellEditor.restoreSelection(d);b(a)},function(){c.cellEditor.restoreSelection(d)});this.showDialog(e.container,220,430,!0,!1);e.init()};
EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
@@ -2157,9 +2157,9 @@ EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.gra
EditorUi.prototype.createKeyHandler=function(a){function b(a,b,c){g.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(b=null!=b?b:1,c){d.getModel().beginUpdate();try{for(var e=d.getSelectionCells(),f=0;f<e.length;f++)if(d.getModel().isVertex(e[f])&&d.isCellResizable(e[f])){var g=d.getCellGeometry(e[f]);null!=g&&(g=g.clone(),37==a?g.width=Math.max(0,g.width-b):38==a?g.height=Math.max(0,g.height-b):39==a?g.width+=b:40==a&&(g.height+=b),d.getModel().setGeometry(e[f],g))}}finally{d.getModel().endUpdate()}}else e=
d.getSelectionCell(),f=d.model.getParent(e),g=null,1==d.getSelectionCount()&&d.model.isVertex(e)&&(null!=d.layoutManager&&!d.isCellLocked(e))&&(g=d.layoutManager.getLayout(f)),null!=g&&g.constructor==mxStackLayout?(g=f.getIndex(e),37==a||38==a?d.model.add(f,e,Math.max(0,g-1)):(39==a||40==a)&&d.model.add(f,e,Math.min(d.model.getChildCount(f),g+1))):(f=e=0,37==a?e=-b:38==a?f=-b:39==a?e=b:40==a&&(f=b),d.moveCells(d.getMovableCells(d.getSelectionCells()),e,f))});null!=k&&window.clearTimeout(k);k=window.setTimeout(function(){if(0<
g.length){d.getModel().beginUpdate();try{for(var a=0;a<g.length;a++)g[a]();g=[]}finally{d.getModel().endUpdate()}d.scrollCellToVisible(d.getSelectionCell())}},200)}var c=this,d=this.editor.graph,e=new mxKeyHandler(d),f=e.isEventIgnored;e.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&
-!mxClient.IS_SF)&&f.apply(this,arguments)};e.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};e.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var g=[],k=null,l={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},m=e.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?
+!mxClient.IS_SF)&&f.apply(this,arguments)};e.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};e.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var g=[],k=null,l={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},n=e.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?
function(){d.selectParentCell()}:function(){d.selectChildCell()};if(null!=l[a.keyCode]&&!d.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var b=d.connectVertex(d.getSelectionCell(),l[a.keyCode],d.defaultEdgeLength,a,!0);null!=b&&0<b.length&&(1==b.length&&d.model.isEdge(b[0])?d.setSelectionCell(d.model.getTerminal(b[0],!1)):d.setSelectionCell(b[b.length-1]),null!=c.hoverIcons&&c.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?
-function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return m.apply(this,arguments)};e.bindAction=mxUtils.bind(this,function(a,b,c,d){var f=this.actions.get(c);null!=f&&(c=function(){f.isEnabled()&&f.funct()},b?d?e.bindControlShiftKey(a,c):e.bindControlKey(a,c):d?e.bindShiftKey(a,c):e.bindKey(a,c))});var n=e.escape;e.escape=function(a){n.apply(this,arguments)};e.enter=function(){};e.bindControlShiftKey(36,function(){d.exitGroup()});
+function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return n.apply(this,arguments)};e.bindAction=mxUtils.bind(this,function(a,b,c,d){var f=this.actions.get(c);null!=f&&(c=function(){f.isEnabled()&&f.funct()},b?d?e.bindControlShiftKey(a,c):e.bindControlKey(a,c):d?e.bindShiftKey(a,c):e.bindKey(a,c))});var m=e.escape;e.escape=function(a){m.apply(this,arguments)};e.enter=function(){};e.bindControlShiftKey(36,function(){d.exitGroup()});
e.bindControlShiftKey(35,function(){d.enterGroup()});e.bindKey(36,function(){d.home()});e.bindKey(35,function(){d.refresh()});e.bindAction(107,!0,"zoomIn");e.bindAction(109,!0,"zoomOut");e.bindAction(80,!0,"print");e.bindAction(79,!0,"outline",!0);e.bindAction(112,!1,"about");this.editor.chromeless||(e.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),e.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),e.bindControlKey(13,function(){d.isEnabled()&&d.setSelectionCells(d.duplicateCells(d.getSelectionCells(),
!1))}),e.bindAction(8,!1,"delete"),e.bindAction(8,!0,"deleteAll"),e.bindAction(46,!1,"delete"),e.bindAction(46,!0,"deleteAll"),e.bindAction(72,!0,"resetView"),e.bindAction(72,!0,"fitWindow",!0),e.bindAction(74,!0,"fitPage"),e.bindAction(74,!0,"fitTwoPages",!0),e.bindAction(48,!0,"customZoom"),e.bindAction(82,!0,"turn"),e.bindAction(82,!0,"clearDefaultStyle",!0),e.bindAction(83,!0,"save"),e.bindAction(83,!0,"saveAs",!0),e.bindAction(65,!0,"selectAll"),e.bindAction(65,!0,"selectNone",!0),e.bindAction(73,
!0,"selectVertices",!0),e.bindAction(69,!0,"selectEdges",!0),e.bindAction(69,!0,"editStyle"),e.bindAction(66,!0,"bold"),e.bindAction(66,!0,"toBack",!0),e.bindAction(70,!0,"toFront",!0),e.bindAction(68,!0,"duplicate"),e.bindAction(68,!0,"setAsDefaultStyle",!0),e.bindAction(90,!0,"undo"),e.bindAction(89,!0,"autosize",!0),e.bindAction(88,!0,"cut"),e.bindAction(67,!0,"copy"),e.bindAction(81,!0,"connectionArrows"),e.bindAction(81,!0,"connectionPoints",!0),e.bindAction(86,!0,"paste"),e.bindAction(71,!0,
@@ -2170,26 +2170,26 @@ EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),
"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};
"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0);mxConstants.SHADOW_OPACITY=0.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();
mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs\x3d":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";
-Graph=function(a,b,c,d,e){mxGraph.call(this,a,b,c,d);this.themes=e||this.defaultThemes;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var f=null,g=null,k=null,l=null,m=!1;
-this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var c=b.getProperty("event");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(f=new mxPoint(c.getGraphX(),c.getGraphY()),m=this.isCellSelected(d.cell),k=d,g=c,null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY())?l=mxEvent.LABEL_HANDLE:
+Graph=function(a,b,c,d,e){mxGraph.call(this,a,b,c,d);this.themes=e||this.defaultThemes;a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){var b=this.view.getState(a);a=null!=b?b.style:this.getCellStyle(a);return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var f=null,g=null,k=null,l=null,n=!1;
+this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var c=b.getProperty("event");if(!mxEvent.isControlDown(c.getEvent())&&!mxEvent.isShiftDown(c.getEvent())){var d=c.getState();null!=d&&this.model.isEdge(d.cell)&&(f=new mxPoint(c.getGraphX(),c.getGraphY()),n=this.isCellSelected(d.cell),k=d,g=c,null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY())?l=mxEvent.LABEL_HANDLE:
(d=this.selectionCellsHandler.getHandler(d.cell),null!=d&&null!=d.bends&&0<d.bends.length&&(l=d.getHandleForEvent(c))))}}}));this.addMouseListener({mouseDown:function(a,b){},mouseMove:mxUtils.bind(this,function(a,b){if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(b.getEvent())&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent())){var c=this.tolerance;if(null!=f&&null!=k&&null!=g){var d=k;if(Math.abs(f.x-b.getGraphX())>c*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&&0<e.bends.length){var p=e.getHandleForEvent(g),r=this.view.getEdgeStyle(d),c=r==mxEdgeStyle.EntityRelation;!m&&l==mxEvent.LABEL_HANDLE&&(p=l);if(!c||0==p||p==e.bends.length-1||p==mxEvent.LABEL_HANDLE){if(p==mxEvent.LABEL_HANDLE||0==p||null!=d.visibleSourceState||p==e.bends.length-1||null!=d.visibleTargetState){if(!c&&p!=mxEvent.LABEL_HANDLE){c=
-d.absolutePoints;if(null!=c&&(null==r&&null==p||r==mxEdgeStyle.OrthConnector))p=l,null==p&&(p=new mxRectangle(f.x,f.y),p.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(p,c[0].x,c[0].y)?p=0:mxUtils.contains(p,c[c.length-1].x,c[c.length-1].y)?p=e.bends.length-1:null!=r&&(2==c.length||3==c.length&&(0==Math.round(c[0].x-c[1].x)&&0==Math.round(c[1].x-c[2].x)||0==Math.round(c[0].y-c[1].y)&&0==Math.round(c[1].y-c[2].y)))?p=2:(p=mxUtils.findNearestSegment(d,f.x,f.y),p=null==r?mxEvent.VIRTUAL_HANDLE-
-p:p+1));null==p&&(p=mxEvent.VIRTUAL_HANDLE)}e.start(b.getGraphX(),b.getGraphX(),p);l=f=g=k=null;m=!1;b.consume();this.graphHandler.reset()}}else if(c&&(null!=d.visibleSourceState||null!=d.visibleTargetState))this.graphHandler.reset(),b.consume()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){e=null;c=d.absolutePoints;if(null!=c)if(p=new mxRectangle(b.getGraphX(),b.getGraphY()),p.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
-b.getGraphX(),b.getGraphY()))e="move";else if(mxUtils.contains(p,c[0].x,c[0].y)||mxUtils.contains(p,c[c.length-1].x,c[c.length-1].y))e="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)r=this.view.getEdgeStyle(d),e="crosshair",r!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(r=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),r<c.length-1&&0<=r&&(e=0==Math.round(c[r].x-c[r+1].x)?"col-resize":"row-resize"));null!=e&&d.setCursor(e)}}}),mouseUp:mxUtils.bind(this,function(a,
+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&&0<e.bends.length){var m=e.getHandleForEvent(g),p=this.view.getEdgeStyle(d),c=p==mxEdgeStyle.EntityRelation;!n&&l==mxEvent.LABEL_HANDLE&&(m=l);if(!c||0==m||m==e.bends.length-1||m==mxEvent.LABEL_HANDLE){if(m==mxEvent.LABEL_HANDLE||0==m||null!=d.visibleSourceState||m==e.bends.length-1||null!=d.visibleTargetState){if(!c&&m!=mxEvent.LABEL_HANDLE){c=
+d.absolutePoints;if(null!=c&&(null==p&&null==m||p==mxEdgeStyle.OrthConnector))m=l,null==m&&(m=new mxRectangle(f.x,f.y),m.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(m,c[0].x,c[0].y)?m=0:mxUtils.contains(m,c[c.length-1].x,c[c.length-1].y)?m=e.bends.length-1:null!=p&&(2==c.length||3==c.length&&(0==Math.round(c[0].x-c[1].x)&&0==Math.round(c[1].x-c[2].x)||0==Math.round(c[0].y-c[1].y)&&0==Math.round(c[1].y-c[2].y)))?m=2:(m=mxUtils.findNearestSegment(d,f.x,f.y),m=null==p?mxEvent.VIRTUAL_HANDLE-
+m:m+1));null==m&&(m=mxEvent.VIRTUAL_HANDLE)}e.start(b.getGraphX(),b.getGraphX(),m);l=f=g=k=null;n=!1;b.consume();this.graphHandler.reset()}}else if(c&&(null!=d.visibleSourceState||null!=d.visibleTargetState))this.graphHandler.reset(),b.consume()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){e=null;c=d.absolutePoints;if(null!=c)if(m=new mxRectangle(b.getGraphX(),b.getGraphY()),m.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,
+b.getGraphX(),b.getGraphY()))e="move";else if(mxUtils.contains(m,c[0].x,c[0].y)||mxUtils.contains(m,c[c.length-1].x,c[c.length-1].y))e="pointer";else if(null!=d.visibleSourceState||null!=d.visibleTargetState)p=this.view.getEdgeStyle(d),e="crosshair",p!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(p=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()),p<c.length-1&&0<=p&&(e=0==Math.round(c[p].x-c[p+1].x)?"col-resize":"row-resize"));null!=e&&d.setCursor(e)}}}),mouseUp:mxUtils.bind(this,function(a,
b){l=f=g=k=null})})}this.cellRenderer.getLabelValue=function(a){var b=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(b=1!=a.style.html?mxUtils.htmlEntities(b,!1):a.view.graph.sanitizeHtml(b));return b};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=
-!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var n=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=n.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*
+!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,b){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var a=m.apply(this,arguments);if(this.graph.pageVisible){for(var b=[],c=this.graph.pageFormat,d=this.graph.pageScale,e=c.width*d,c=c.height*
d,d=this.graph.view.translate,f=this.graph.view.scale,g=this.graph.getPageLayout(),k=0;k<g.width;k++)b.push(new mxRectangle(((g.x+k)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(k=0;k<g.height;k++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+k)*c+d.y)*f,e*f,c*f));a=b.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(a,b){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor=
"#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var b=mxGraphHandler.prototype.getCells.apply(this,arguments),c=[],d=0;d<b.length;d++){var e=this.graph.view.getState(b[d]),e=null!=e?e.style:this.graph.getCellStyle(b[d]);"1"==mxUtils.getValue(e,"part","0")?(e=this.graph.model.getParent(b[d]),this.graph.model.isVertex(e)&&0>mxUtils.indexOf(b,e)&&c.push(e)):
-c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var q=new mxRubberband(this);this.getRubberband=function(){return q};var p=(new Date).getTime(),r=0,s=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=
-function(){var a=this.currentState;s.apply(this,arguments);a!=this.currentState?(p=(new Date).getTime(),r=0):r=(new Date).getTime()-p};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var v=this.isToggleEvent;this.isToggleEvent=function(a){return v.apply(this,
-arguments)||mxEvent.isShiftDown(a)};var u=q.isForceRubberbandEvent;q.isForceRubberbandEvent=function(a){return u.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var y=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(y=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
-function(){this.isEnabled()&&(this.container.style.cursor=y)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var z=this.click;this.click=function(a){if(!this.isEnabled()&&!a.isConsumed()){var b=a.getCell();null!=b&&(b=this.getLinkForCell(b),null!=b&&window.open(b))}else return z.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(a){if(this.isEnabled())return x.apply(this,arguments);if(null!=
-this.getLinkForCell(a))return"pointer"};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var p=g.getChildCount(e),m=0;m<p;m++){var r=g.getChildAt(e,m),n=this.view.getState(r);if(null!=n&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(n.style,"locked","0")){var s=
-mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(n=mxUtils.getBoundingBox(n,s));(g.isEdge(r)||g.isVertex(r))&&n.x>=a&&(n.y+n.height<=l&&n.y>=b&&n.x+n.width<=k)&&f.push(r);this.getAllCells(a,b,c,d,r,f)}}}return f};var G=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:G.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 D=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();D=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)),q.start(c.x,c.y)):null!=D?this.addSelectionCells(D):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);D=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){return b&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
-function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var E=this.updateMouseEvent;this.updateMouseEvent=function(a){a=E.apply(this,arguments);this.isCellLocked(a.getCell())&&(a.state=null);return a}}};
+c.push(b[d])}return c};this.connectionHandler.createTargetVertex=function(a,b){var c=this.graph.view.getState(b),c=null!=c?c.style:this.graph.getCellStyle(b);mxUtils.getValue(c,"part",!1)&&(c=this.graph.model.getParent(b),this.graph.model.isVertex(c)&&(b=c));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var p=new mxRubberband(this);this.getRubberband=function(){return p};var q=(new Date).getTime(),s=0,r=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=
+function(){var a=this.currentState;r.apply(this,arguments);a!=this.currentState?(q=(new Date).getTime(),s=0):s=(new Date).getTime()-q};var t=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<s||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&t.apply(this,arguments)};var u=this.isToggleEvent;this.isToggleEvent=function(a){return u.apply(this,
+arguments)||mxEvent.isShiftDown(a)};var v=p.isForceRubberbandEvent;p.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var z=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(z=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,
+function(){this.isEnabled()&&(this.container.style.cursor=z)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){if(!this.isEnabled()&&!a.isConsumed()){var b=a.getCell();null!=b&&(b=this.getLinkForCell(b),null!=b&&window.open(b))}else return y.apply(this,arguments)};var x=this.getCursorForCell;this.getCursorForCell=function(a){if(this.isEnabled())return x.apply(this,arguments);if(null!=
+this.getLinkForCell(a))return"pointer"};this.selectRegion=function(a,b){var c=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};this.getAllCells=function(a,b,c,d,e,f){f=null!=f?f:[];if(0<c||0<d){var g=this.getModel(),k=a+c,l=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=g.getRoot()));if(null!=e)for(var n=g.getChildCount(e),m=0;m<n;m++){var p=g.getChildAt(e,m),q=this.view.getState(p);if(null!=q&&this.isCellVisible(p)&&"1"!=mxUtils.getValue(q.style,"locked","0")){var s=
+mxUtils.getValue(q.style,mxConstants.STYLE_ROTATION)||0;0!=s&&(q=mxUtils.getBoundingBox(q,s));(g.isEdge(p)||g.isVertex(p))&&q.x>=a&&(q.y+q.height<=l&&q.y>=b&&q.x+q.width<=k)&&f.push(p);this.getAllCells(a,b,c,d,p,f)}}}return f};var E=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:E.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 C=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();C=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)),p.start(c.x,c.y)):null!=C?this.addSelectionCells(C):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);C=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){return b&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,
+function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var F=this.updateMouseEvent;this.updateMouseEvent=function(a){a=F.apply(this,arguments);this.isCellLocked(a.getCell())&&(a.state=null);return a}}};
Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkTarget="_blank";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;
Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultGraphBackground="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};
Graph.prototype.baseUrl=window.location!=window.parent.location?document.referrer:document.location.toString();Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.initLayoutManager()};
@@ -2204,8 +2204,8 @@ Graph.prototype.isLabelMovable=function(a){var b=this.view.getState(a),b=null!=b
Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b};
Graph.prototype.formatDate=function(a,b,c){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,e=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,f=/[^-+\dA-Z]/g,g=function(a,b){a=String(a);for(b=b||2;a.length<b;)a="0"+a;return a};1==arguments.length&&"[object String]"==Object.prototype.toString.call(a)&&
-!/\d/.test(a)&&(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),c=!0);var k=c?"getUTC":"get",l=a[k+"Date"](),m=a[k+"Day"](),n=a[k+"Month"](),q=a[k+"FullYear"](),p=a[k+"Hours"](),r=a[k+"Minutes"](),s=a[k+"Seconds"](),k=a[k+"Milliseconds"](),t=c?0:a.getTimezoneOffset(),v={d:l,dd:g(l),ddd:d.i18n.dayNames[m],dddd:d.i18n.dayNames[m+7],m:n+1,mm:g(n+1),mmm:d.i18n.monthNames[n],mmmm:d.i18n.monthNames[n+
-12],yy:String(q).slice(2),yyyy:q,h:p%12||12,hh:g(p%12||12),H:p,HH:g(p),M:r,MM:g(r),s:s,ss:g(s),l:g(k,3),L:g(99<k?Math.round(k/10):k),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:c?"UTC":(String(a).match(e)||[""]).pop().replace(f,""),o:(0<t?"-":"+")+g(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in v?v[a]:a.slice(1,
+!/\d/.test(a)&&(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),c=!0);var k=c?"getUTC":"get",l=a[k+"Date"](),n=a[k+"Day"](),m=a[k+"Month"](),p=a[k+"FullYear"](),q=a[k+"Hours"](),s=a[k+"Minutes"](),r=a[k+"Seconds"](),k=a[k+"Milliseconds"](),t=c?0:a.getTimezoneOffset(),u={d:l,dd:g(l),ddd:d.i18n.dayNames[n],dddd:d.i18n.dayNames[n+7],m:m+1,mm:g(m+1),mmm:d.i18n.monthNames[m],mmmm:d.i18n.monthNames[m+
+12],yy:String(p).slice(2),yyyy:p,h:q%12||12,hh:g(q%12||12),H:q,HH:g(q),M:s,MM:g(s),s:r,ss:g(r),l:g(k,3),L:g(99<k?Math.round(k/10):k),t:12>q?"a":"p",tt:12>q?"am":"pm",T:12>q?"A":"P",TT:12>q?"AM":"PM",Z:c?"UTC":(String(a).match(e)||[""]).pop().replace(f,""),o:(0<t?"-":"+")+g(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in u?u[a]:a.slice(1,
a.length-1)})};
Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),c=b.getChildCount(b.root),d=0;d<c;d++)(function(c){var d=document.createElement("div");d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.style.padding="2px";d.style.whiteSpace="nowrap";var g=document.createElement("input");g.setAttribute("type","checkbox");b.isVisible(c)&&(g.setAttribute("checked","checked"),g.defaultChecked=!0);d.appendChild(g);var k=c.value||
mxResources.get("background")||"Background";d.setAttribute("title",k);mxUtils.write(d,k);a.appendChild(d);mxEvent.addListener(g,"click",function(){null!=g.getAttribute("checked")?g.removeAttribute("checked"):g.setAttribute("checked","checked");b.setVisible(c,g.checked)})})(b.getChildAt(b.root,d));return a};
@@ -2213,17 +2213,17 @@ Graph.prototype.replacePlaceholders=function(a,b){for(var c=[],d=0;match=this.pl
match.index)+(null!=f?f:e));d=match.index+e.length}}c.push(b.substring(d));return c.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,c){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=c&&(mxEvent.isTouchEvent(b)?c.update(c.getState(this.view.getState(a[1]))):c.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)};
Graph.prototype.connectVertex=function(a,b,c,d,e){var f=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(f.x+=a.geometry.width/2,f.y-=c):b==mxConstants.DIRECTION_SOUTH?(f.x+=a.geometry.width/2,f.y+=a.geometry.height+c):(f.x=b==mxConstants.DIRECTION_WEST?f.x-c:f.x+(a.geometry.width+c),f.y+=a.geometry.height/2);c=this.view.getState(this.model.getParent(a));
var g=this.view.scale,k=this.view.translate,l=k.x*g,k=k.y*g;this.model.isVertex(c.cell)&&(l=c.x,k=c.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(f.x+=a.parent.geometry.x,f.y+=a.parent.geometry.y);c=mxEvent.isControlDown(d)&&!e?null:this.getCellAt(l+f.x*g,k+f.y*g);this.model.isAncestor(c,a)&&(c=null);for(g=c;null!=g;){if(this.isCellLocked(g)){c=null;break}g=this.model.getParent(g)}null!=c&&(g=this.view.getState(a),l=this.view.getState(c),null!=g&&null!=l&&mxUtils.intersects(g,l)&&(c=null));
-if(e=!mxEvent.isShiftDown(d)||e)b==mxConstants.DIRECTION_NORTH?f.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?f.y+=a.geometry.height/2:f.x=b==mxConstants.DIRECTION_WEST?f.x-a.geometry.width/2:f.x+a.geometry.width/2;null!=c&&!this.isCellConnectable(c)&&(g=this.getModel().getParent(c),this.getModel().isVertex(g)&&this.isCellConnectable(g)&&(c=g));if(c==a||this.model.isEdge(c)||!this.isCellConnectable(c))c=null;g=[];this.model.beginUpdate();try{l=c;if(null==l&&e){for(var k=a,m=this.getCellGeometry(a);null!=
-m&&m.relative;)k=this.getModel().getParent(k),m=this.getCellGeometry(k);var n=this.view.getState(k),q=null!=n?n.style:this.getCellStyle(k);if(mxUtils.getValue(q,"part",!1)){var p=this.model.getParent(k);this.model.isVertex(p)&&(k=p)}l=this.duplicateCells([k],!1)[0];m=this.getCellGeometry(l);null!=m&&(m.x=f.x-m.width/2,m.y=f.y-m.height/2)}m=null;null!=this.layoutManager&&(m=this.layoutManager.getLayout(this.model.getParent(a)));var r=mxEvent.isControlDown(d)&&e||null==c&&null!=m&&m.constructor==mxStackLayout?
-null:this.insertEdge(this.model.getParent(a),null,"",a,l,this.createCurrentEdgeStyle());if(null!=r&&this.connectionHandler.insertBeforeSource){var s=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=r.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==r.parent&&(s=d.parent.getIndex(d),d.parent.insert(r,s))}null==c&&null!=l&&(null!=m&&null!=a.parent&&m.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST)&&(s=a.parent.getIndex(a),a.parent.insert(l,
-s));null!=r&&g.push(r);null==c&&null!=l&&g.push(l);null==l&&null!=r&&r.geometry.setTerminalPoint(f,!1);null!=r&&this.fireEvent(new mxEventObject("cellsInserted","cells",[r]))}finally{this.model.endUpdate()}return g};
+if(e=!mxEvent.isShiftDown(d)||e)b==mxConstants.DIRECTION_NORTH?f.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?f.y+=a.geometry.height/2:f.x=b==mxConstants.DIRECTION_WEST?f.x-a.geometry.width/2:f.x+a.geometry.width/2;null!=c&&!this.isCellConnectable(c)&&(g=this.getModel().getParent(c),this.getModel().isVertex(g)&&this.isCellConnectable(g)&&(c=g));if(c==a||this.model.isEdge(c)||!this.isCellConnectable(c))c=null;g=[];this.model.beginUpdate();try{l=c;if(null==l&&e){for(var k=a,n=this.getCellGeometry(a);null!=
+n&&n.relative;)k=this.getModel().getParent(k),n=this.getCellGeometry(k);var m=this.view.getState(k),p=null!=m?m.style:this.getCellStyle(k);if(mxUtils.getValue(p,"part",!1)){var q=this.model.getParent(k);this.model.isVertex(q)&&(k=q)}l=this.duplicateCells([k],!1)[0];n=this.getCellGeometry(l);null!=n&&(n.x=f.x-n.width/2,n.y=f.y-n.height/2)}n=null;null!=this.layoutManager&&(n=this.layoutManager.getLayout(this.model.getParent(a)));var s=mxEvent.isControlDown(d)&&e||null==c&&null!=n&&n.constructor==mxStackLayout?
+null:this.insertEdge(this.model.getParent(a),null,"",a,l,this.createCurrentEdgeStyle());if(null!=s&&this.connectionHandler.insertBeforeSource){var r=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=s.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==s.parent&&(r=d.parent.getIndex(d),d.parent.insert(s,r))}null==c&&null!=l&&(null!=n&&null!=a.parent&&n.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST)&&(r=a.parent.getIndex(a),a.parent.insert(l,
+r));null!=s&&g.push(s);null==c&&null!=l&&g.push(l);null==l&&null!=s&&s.geometry.setTerminalPoint(f,!1);null!=s&&this.fireEvent(new mxEventObject("cellsInserted","cells",[s]))}finally{this.model.endUpdate()}return g};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],c="",d;for(d in this.model.cells)if(c=this.model.cells[d],this.model.isVertex(c)||this.model.isEdge(c))this.isHtmlLabel(c)?(a.innerHTML=this.getLabel(c),c=mxUtils.extractTextWithWhitespace([a])):c=this.getLabel(c),c=mxUtils.trim(c.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<c.length&&b.push(c);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var b=a.getAttribute("placeholder"),c=a,d=null;null==d&&null!=c;)null!=c.value&&"object"==typeof c.value&&(d=c.hasAttribute(b)?null!=c.getAttribute(b)?c.getAttribute(b):"":null),c=this.model.getParent(c);return d||""}return a.value.getAttribute("label")}return mxGraph.prototype.convertValueToString.apply(this,arguments)};
Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null};
Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);this.model.isVertex(c)&&this.isCellCollapsed(a)&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!c.horizontal))}return b};
Graph.prototype.updateAlternateBounds=function(a,b,c){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)};
-Graph.prototype.foldCells=function(a,b,c,d,e){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));if(null!=c){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var f=0;f<c.length;f++){var g=this.view.getState(c[f]),k=this.getCellGeometry(c[f]);if(null!=g&&null!=k){var l=Math.round(k.width-g.width/this.view.scale),m=Math.round(k.height-g.height/this.view.scale);if(0!=m||0!=l){var n=this.model.getParent(c[f]),q=this.layoutManager.getLayout(n);
-null==q?null!=e&&this.isMoveCellsEvent(e)&&this.moveSiblings(g,n,l,m):(null==e||!mxEvent.isAltDown(e))&&q.constructor==mxStackLayout&&!q.resizeLast&&this.resizeParentStacks(n,q,l,m)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(c)}};
+Graph.prototype.foldCells=function(a,b,c,d,e){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));if(null!=c){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var f=0;f<c.length;f++){var g=this.view.getState(c[f]),k=this.getCellGeometry(c[f]);if(null!=g&&null!=k){var l=Math.round(k.width-g.width/this.view.scale),n=Math.round(k.height-g.height/this.view.scale);if(0!=n||0!=l){var m=this.model.getParent(c[f]),p=this.layoutManager.getLayout(m);
+null==p?null!=e&&this.isMoveCellsEvent(e)&&this.moveSiblings(g,m,l,n):(null==e||!mxEvent.isAltDown(e))&&p.constructor==mxStackLayout&&!p.resizeLast&&this.resizeParentStacks(m,p,l,n)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(c)}};
Graph.prototype.moveSiblings=function(a,b,c,d){this.model.beginUpdate();try{var e=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<e.length;b++)if(e[b]!=a.cell){var f=this.view.getState(e[b]),g=this.getCellGeometry(e[b]);null!=f&&null!=g&&(g=g.clone(),g.translate(Math.round(c*Math.max(0,Math.min(1,(f.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(f.y-a.y)/a.height)))),this.model.setGeometry(e[b],g))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,b,c,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var e=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==e&&!b.resizeLast;){var f=this.getCellGeometry(a),g=this.view.getState(a);null!=g&&null!=f&&(f=f.clone(),b.horizontal?f.width+=c+Math.min(0,g.width/this.view.scale-f.width):f.height+=d+Math.min(0,g.height/this.view.scale-f.height),this.model.setGeometry(a,
f));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
@@ -2272,8 +2272,8 @@ HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.get
HoverIcons.prototype.update=function(a,b,c){if(this.graph.connectionArrowsEnabled){var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){!this.isActive()&&!this.graph.isMouseDown&&!this.graph.panningHandler.isActive()&&(this.prev=a,this.update(a,b,c))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-
this.startTime);this.setDisplay("");if(null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,c))this.reset(!1);else if(null!=this.currentState||d>this.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 k=this.getNextPoint(b,f,g),l=this.graph.isOrthogonal(b),m=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=m)var q=Math.cos(-m),p=Math.sin(-m),k=mxUtils.getRotatedPoint(k,q,p,n);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);q+=parseFloat(b.style[g?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==m&&l,q);0!=m&&(q=Math.cos(m),p=Math.sin(m),k=mxUtils.getRotatedPoint(k,q,p,n));if(null!=c){m=this.graph.getAllConnectionConstraints(c);l=n=null;for(q=0;q<m.length;q++)if(p=this.graph.getConnectionPoint(c,m[q]),null!=p){var r=(p.x-k.x)*(p.x-k.x)+(p.y-k.y)*(p.y-k.y);if(null==l||r<l)n=p,l=r}null!=n&&(k=n)}b.setAbsoluteTerminalPoint(k,g)}else a.apply(this,
+(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 k=this.getNextPoint(b,f,g),l=this.graph.isOrthogonal(b),n=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=n)var p=Math.cos(-n),q=Math.sin(-n),k=mxUtils.getRotatedPoint(k,p,q,m);p=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);p+=parseFloat(b.style[g?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);k=this.getPerimeterPoint(c,k,0==n&&l,p);0!=n&&(p=Math.cos(n),q=Math.sin(n),k=mxUtils.getRotatedPoint(k,p,q,m));if(null!=c){n=this.graph.getAllConnectionConstraints(c);l=m=null;for(p=0;p<n.length;p++)if(q=this.graph.getConnectionPoint(c,n[p]),null!=q){var s=(q.x-k.x)*(q.x-k.x)+(q.y-k.y)*(q.y-k.y);if(null==l||s<l)m=q,l=s}null!=m&&(k=m)}b.setAbsoluteTerminalPoint(k,g)}else a.apply(this,
arguments)};var b=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,f){var g=b.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=f.state&&(g=f.state.view.graph.replacePlaceholders(f.state.cell,g));return g};var c=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var b=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=b&&"stencil("==b.substring(0,
8))try{var f=b.substring(8,b.length-1),g=mxUtils.parseXml(a.view.graph.decompress(f));return new mxShape(new mxStencil(g.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return c.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.prototype.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var c=mxStencilRegistry.getBasenameForStencil(a);if(null!=c){b=mxStencilRegistry.libraries[c];if(null!=b){if(null==mxStencilRegistry.packages[c]){mxStencilRegistry.packages[c]=1;for(c=0;c<b.length;c++){var d=b[c];if(".xml"==d.toLowerCase().substring(d.length-4,d.length))mxStencilRegistry.loadStencilSet(d,null);else if(".js"==d.toLowerCase().substring(d.length-
@@ -2293,34 +2293,34 @@ f[1]),2<f.length?"0"!=f[2]:!0))}}catch(g){}return d}if(null!=a.shape)if(null!=a.
this.setCellStyles(mxConstants.STYLE_ELBOW,b,[a]))}};Graph.prototype.isValidRoot=function(a){for(var b=this.model.getChildCount(a),c=0,d=0;d<b;d++){var e=this.model.getChildAt(a,d);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null!=e&&!e.relative&&c++)}return 0<c||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(b,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this,
arguments)&&"0"!=mxUtils.getValue(b,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var b=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(b&&null!=a&&null!=this.layoutManager){var c=this.model.getParent(a);null!=c&&(c=this.layoutManager.getLayout(c),null!=c&&c.constructor==mxStackLayout&&(b=!1))}return b};Graph.prototype.getPreferredSizeForCell=
function(a){var b=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=b&&(b.width+=10,b.height+=4,this.gridEnabled&&(b.width=this.snap(b.width),b.height=this.snap(b.height)));return b};Graph.prototype.turnShapes=function(a){var b=this.getModel(),c=[];b.beginUpdate();try{for(var d=0;d<a.length;d++){var e=a[d];if(b.isEdge(e)){var f=b.getTerminal(e,!0),g=b.getTerminal(e,!1);b.setTerminal(e,g,!0);b.setTerminal(e,f,!1);var k=b.getGeometry(e);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();
-var l=k.getTerminalPoint(!0),p=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(p,!0);b.setGeometry(e,k);var m=this.view.getState(e),r=this.view.getState(f),n=this.view.getState(g);if(null!=m){var s=null!=r?this.getConnectionConstraint(m,r,!0):null,q=null!=n?this.getConnectionConstraint(m,n,!1):null;this.setConnectionConstraint(e,f,!0,q);this.setConnectionConstraint(e,g,!1,s)}c.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
-2;k.y+=k.height/2-k.width/2;var t=k.width;k.width=k.height;k.height=t;b.setGeometry(e,k);var u=this.view.getState(e);if(null!=u){var v=u.style[mxConstants.STYLE_DIRECTION]||"east";"east"==v?v="south":"south"==v?v="west":"west"==v?v="north":"north"==v&&(v="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,v,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell.value&&
+var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);b.setGeometry(e,k);var m=this.view.getState(e),p=this.view.getState(f),q=this.view.getState(g);if(null!=m){var s=null!=p?this.getConnectionConstraint(m,p,!0):null,r=null!=q?this.getConnectionConstraint(m,q,!1):null;this.setConnectionConstraint(e,f,!0,r);this.setConnectionConstraint(e,g,!1,s)}c.push(e)}}else if(b.isVertex(e)&&(k=this.getCellGeometry(e),null!=k)){k=k.clone();k.x+=k.width/2-k.height/
+2;k.y+=k.height/2-k.width/2;var t=k.width;k.width=k.height;k.height=t;b.setGeometry(e,k);var v=this.view.getState(e);if(null!=v){var u=v.style[mxConstants.STYLE_DIRECTION]||"east";"east"==u?u="south":"south"==u?u="west":"west"==u?u="north":"north"==u&&(u="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,u,[e])}c.push(e)}}}finally{b.endUpdate()}return c};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell.value&&
"object"==typeof a.cell.value){var b=this.model.getDescendants(a.cell);if(0<b.length)for(var c=0;c<b.length;c++)this.isReplacePlaceholders(b[c])&&this.view.invalidate(b[c],!1,!1)}};Graph.prototype.cellLabelChanged=function(a,b,c){b=this.zapGremlins(b);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),e=a;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==
typeof e.value&&e.hasAttribute(d)){this.setAttributeForCell(e,d,b);break}e=this.model.getParent(e)}var f=a.value.cloneNode(!0);f.setAttribute("label",b);b=f}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.removeCellsAfterUngroup=function(a){for(var b=[],c=0;c<a.length;c++)if(this.isCellDeletable(a[c])){var d=this.view.getState(a[c]);if(null!=d){var e=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(d.style,
mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);e==mxConstants.NONE&&d==mxConstants.NONE&&b.push(a[c])}}a=b;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,b){this.setAttributeForCell(a,"link",b)};Graph.prototype.setTooltipForCell=function(a,b){this.setAttributeForCell(a,"tooltip",b)};Graph.prototype.setAttributeForCell=function(a,b,c){var d=null;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),
d.setAttribute("label",a.value||""));null!=c&&0<c.length?d.setAttribute(b,c):d.removeAttribute(b);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,b,c,d){this.getModel();if(mxEvent.isAltDown(b))return null;for(var e=0;e<a.length;e++)if(this.model.isEdge(this.model.getParent(a[e])))return null;return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=
a.getSource()};Graph.prototype.dblClick=function(a,b){if(this.isEnabled()){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(b)){var d=this.model.isEdge(b)?this.view.getState(b):null,e=mxEvent.getSource(a);if(this.firstClickState==d&&this.firstClickSource==e&&(null==d||null==d.text||null==d.text.node||!mxUtils.contains(d.text.boundingBox,c.x,c.y)&&!mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a))))if(null==d&&!this.isCellLocked(this.getDefaultParent())||
null!=d&&!this.isCellLocked(d.cell))if(null!=d||mxClient.IS_VML&&e==this.view.getCanvas()||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)b=this.addText(c.x,c.y,d)}mxGraph.prototype.dblClick.call(this,a,b)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),b=this.container.scrollLeft/this.view.scale-this.view.translate.x,c=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),e=this.getPageSize(),b=Math.max(b,d.x*
-e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0))),a=this.snap(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,b,c){var d=
-new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-
-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=function(a){return a};
-Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=function(a,b,
-c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],"click",
-b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,b){this.startX=
-b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&(b.getState()==
-this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),k=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=b&&b(d.getEvent()),"#"==k.charAt(0)?window!=window.top?window.open(g.baseUrl+
-k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),d.consume()):null!=c&&!d.isConsumed()&&(Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor="pointer",
-null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
-try{for(var f=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=c.getParent(a[g]),l=this.moveCells([f[g]],d,d,!1,k)[0];e.push(l);if(b)c.add(k,f[g]);else{var p=k.getIndex(a[g]);c.add(k,f[g],p+1)}}}finally{c.endUpdate()}return e};Graph.prototype.insertImage=function(a,b,c){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=
+e.width),c=Math.max(c,d.y*e.height);return new mxPoint(this.snap(b+a),this.snap(c+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,b=this.getGraphBounds(),c=this.getInsertPoint(),d=this.snap(Math.round(Math.max(c.x,b.x/a.scale-a.translate.x+(0==b.width?this.gridSize:0)))),a=this.snap(Math.round(Math.max(c.y,(b.y+b.height)/a.scale-a.translate.y+(0==b.height?1:2)*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=
+function(a,b,c){var d=new mxCell;d.value="Text";d.style="text;html\x3d1;resizable\x3d0;points\x3d[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=c){d.style+="align\x3dcenter;verticalAlign\x3dmiddle;labelBackgroundColor\x3d#ffffff;";d.geometry.relative=!0;d.connectable=!1;var e=this.view.getRelativePoint(c,a,b);d.geometry.x=Math.round(1E4*e.x)/1E4;d.geometry.y=Math.round(e.y);d.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(c,d.geometry),f=this.view.scale;d.geometry.offset=
+new mxPoint(Math.round((a-e.x)/f),Math.round((b-e.y)/f))}else d.style+="autosize\x3d1;align\x3dleft;verticalAlign\x3dtop;spacingTop\x3d-4;",e=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-e.x,d.geometry.y=Math.round(b/this.view.scale)-e.y;this.getModel().beginUpdate();try{this.addCells([d],null!=c?c.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getLinkUrl=
+function(a){return a};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.isBlankLink=function(a){var b=this.domainUrl;return"self"!=urlParams.target&&null!=a&&"#"!=a.charAt(0)&&a.substring(0,b.length)!=b&&!this.isRelativeUrl(a)};Graph.prototype.isRelativeUrl=function(a){return!/^(?:[a-z]+:)?\/\//i.test(a)&&"data:image"!=a.substring(0,10)&&"mailto:"!=a.substring(0,7)};Graph.prototype.addClickHandler=
+function(a,b,c){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var c=0;c<a.length;c++){var d=this.getLinkUrl(a[c].getAttribute("href"));a[c].setAttribute("href",d);null!=d&&!this.isBlankLink(d)&&(window!=window.top?(a[c].setAttribute("target","_top"),d.charAt("#")?a[c].setAttribute("href",this.baseUrl+d):a[c].setAttribute("href",this.getAbsoluteUrl(d))):"_blank"==a[c].getAttribute("target")&&a[c].removeAttribute("target"),null!=b&&mxEvent.addListener(a[c],
+"click",b))}});this.model.addListener(mxEvent.CHANGE,d);d();var e=this.container.style.cursor,f=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){a=g.view.getState(a.getCell());a!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=a,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,
+b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor="move");this.updateCurrentState(b)},mouseMove:function(a,b){if(g.isMouseDown){if(null!=this.currentLink){var c=Math.abs(this.startX-b.getGraphX()),d=Math.abs(this.startY-b.getGraphY());(c>f||d>f)&&this.clear()}}else"a"==b.getSource().nodeName.toLowerCase()?this.clear():null!=this.currentState&&
+(b.getState()==this.currentState||null==b.getState())&&g.intersects(this.currentState,b.getGraphX(),b.getGraphY())||this.updateCurrentState(b)},mouseUp:function(a,d){var e=d.getSource(),k=this.currentLink;this.clear();if("a"!=e.nodeName.toLowerCase()&&!d.isConsumed()&&(null==d.getState()||!d.isSource(d.getState().control))&&(mxEvent.isLeftMouseButton(d.getEvent())||mxEvent.isTouchEvent(d.getEvent())))null!=k?(g.isBlankLink(k)?window.open(k):(null!=b&&b(d.getEvent()),"#"==k.charAt(0)?window!=window.top?
+window.open(g.baseUrl+k,"_top"):window.location.hash=k:window!=window.top?window.open(g.getAbsoluteUrl(k),"_top"):window.location=k),d.consume()):null!=c&&!d.isConsumed()&&(Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f)&&c(d.getEvent())},activate:function(a){var b=g.getLinkForCell(a.cell);this.currentLink=null!=b?g.getLinkUrl(b):null;null!=this.currentLink&&(g.container.style.cursor=
+"pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;a=this.model.getTopmostCells(a);var c=this.getModel(),d=this.gridSize,e=[];c.beginUpdate();
+try{for(var f=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=c.getParent(a[g]),l=this.moveCells([f[g]],d,d,!1,k)[0];e.push(l);if(b)c.add(k,f[g]);else{var n=k.getIndex(a[g]);c.add(k,f[g],n+1)}}}finally{c.endUpdate()}return e};Graph.prototype.insertImage=function(a,b,c){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=
a.length-1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.isCellResizable=function(a){var b=mxGraph.prototype.isCellResizable.apply(this,arguments),c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return b||"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==c[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,b){null==b&&(b=this.getSelectionCells());if(null!=b&&1<b.length){for(var c=
-[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var p=this.getCellGeometry(c[f].cell),d=d+l;null!=p&&(p=p.clone(),
-a?p.x=Math.round(d-p.width/2):p.y=Math.round(d-p.height/2),this.getModel().setGeometry(c[f].cell,p))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,
+[],d=null,e=null,f=0;f<b.length;f++)if(this.getModel().isVertex(b[f])){var g=this.view.getState(b[f]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,k):k,e=null!=e?Math.min(e,k):k;c.push(g)}}if(2<c.length){c.sort(function(b,c){return a?b.x-c.x:b.y-c.y});g=this.view.translate;k=this.view.scale;e=e/k-(a?g.x:g.y);d=d/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var n=this.getCellGeometry(c[f].cell),d=d+l;null!=n&&(n=n.clone(),
+a?n.x=Math.round(d-n.width/2):n.y=Math.round(d-n.height/2),this.getModel().setGeometry(c[f].cell,n))}}finally{this.getModel().endUpdate()}}}return b};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var b=this.cloneCells(a),c=0;c<b.length;c++){var d=this.view.getState(a[c]);if(null!=d){var e=this.getCellGeometry(b[c]);null!=e&&e.relative&&(e.relative=!1,e.x=d.x/d.view.scale-d.view.translate.x,
e.y=d.y/d.view.scale-d.view.translate.y)}}for(var d=new mxCodec,e=new mxGraphModel,f=e.getChildAt(e.getRoot(),0),c=0;c<a.length;c++)e.add(f,b[c]);return d.encode(e)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,b){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g){b=null!=b?b:1;c=null!=c?c:1;e=null!=e?e:!0;f=null!=f?f:!0;g=null!=g?g:!0;d=d?this.view.getBackgroundPageBounds():f?
-this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&l.apply(this,arguments)};var p=this.view.scale,m=mxUtils.createXmlDocument(),r=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=r.style?r.style.backgroundColor=a:r.setAttribute("style","background-color:"+
-a));null==m.createElementNS?(r.setAttribute("xmlns",mxConstants.NS_SVG),r.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/p;r.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");r.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");r.setAttribute("version","1.1");var n=r;e&&(n=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),n.setAttribute("transform","translate(0.5,0.5)"),
-r.appendChild(n));m.appendChild(r);m=new mxSvgCanvas2D(n);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/p),Math.floor((c/b-d.y)/p));var s=m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,k,l,p,m,r,n){var q=this.state;if(null!=this.foAltText&&(0==d||0!=q.fontSize&&f.length<5*d/q.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",Math.round((e+q.fontSize)/2));t.setAttribute("fill",q.fontColor||"black");
-t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(q.fontSize)+"px");t.setAttribute("font-family",q.fontFamily);(q.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(q.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(q.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration","underline");mxUtils.write(t,f);return t}return s.apply(this,
-arguments)};c=this.backgroundImage;null!=c&&(e=p/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&m.image(b.x,b.y,c.width,c.height,c.src,!0));m.scale(a);m.textEnabled=g;k.drawState(this.getView().getState(this.model.root),m);return r};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());
+this.getGraphBounds():this.getBoundingBox(this.getSelectionCells());if(null==d)throw Error(mxResources.get("drawingEmpty"));var k=this.createSvgImageExport(),l=k.drawCellState;k.drawCellState=function(a,b){(f||a.view.graph.isCellSelected(a.cell))&&l.apply(this,arguments)};var n=this.view.scale,m=mxUtils.createXmlDocument(),p=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"svg"):m.createElement("svg");null!=a&&(null!=p.style?p.style.backgroundColor=a:p.setAttribute("style","background-color:"+
+a));null==m.createElementNS?(p.setAttribute("xmlns",mxConstants.NS_SVG),p.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):p.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);a=b/n;p.setAttribute("width",Math.ceil(d.width*a)+2*c+"px");p.setAttribute("height",Math.ceil(d.height*a)+2*c+"px");p.setAttribute("version","1.1");var q=p;e&&(q=null!=m.createElementNS?m.createElementNS(mxConstants.NS_SVG,"g"):m.createElement("g"),q.setAttribute("transform","translate(0.5,0.5)"),
+p.appendChild(q));m.appendChild(p);m=new mxSvgCanvas2D(q);m.foOffset=e?-0.5:0;m.textOffset=e?-0.5:0;m.translate(Math.floor((c/b-d.x)/n),Math.floor((c/b-d.y)/n));var s=m.createAlternateContent;m.createAlternateContent=function(a,b,c,d,e,f,g,k,l,n,m,p,q){var r=this.state;if(null!=this.foAltText&&(0==d||0!=r.fontSize&&f.length<5*d/r.fontSize)){var t=this.createElement("text");t.setAttribute("x",Math.round(d/2));t.setAttribute("y",Math.round((e+r.fontSize)/2));t.setAttribute("fill",r.fontColor||"black");
+t.setAttribute("text-anchor","middle");t.setAttribute("font-size",Math.round(r.fontSize)+"px");t.setAttribute("font-family",r.fontFamily);(r.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&t.setAttribute("font-weight","bold");(r.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&t.setAttribute("font-style","italic");(r.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&t.setAttribute("text-decoration","underline");mxUtils.write(t,f);return t}return s.apply(this,
+arguments)};c=this.backgroundImage;null!=c&&(e=n/b,b=this.view.translate,e=new mxRectangle(b.x*e,b.y*e,c.width*e,c.height*e),mxUtils.intersects(d,e)&&m.image(b.x,b.y,c.width,c.height,c.src,!0));m.scale(a);m.textEnabled=g;k.drawState(this.getView().getState(this.model.root),m);return p};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var b=window.getSelection();b.getRangeAt&&b.rangeCount&&(a=b.getRangeAt(0).commonAncestorContainer)}else document.selection&&(a=document.selection.createRange().parentElement());
return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var b=null;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){var c=document.createRange();c.selectNode(a);b.removeAllRanges();b.addRange(c)}}else if((b=document.selection)&&"Control"!=b.type)a=b.createRange(),a.collapse(!0),c=b.createRange(),c.setEndPoint("StartToStart",a),c.select()};Graph.prototype.insertRow=
function(a,b){for(var c=a.tBodies[0],d=0<c.rows.length?c.rows[0].cells.length:1,c=c.insertRow(b),e=0;e<d;e++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(a,b){a.tBodies[0].deleteRow(b)};Graph.prototype.insertColumn=function(a,b){var c=a.tHead;if(null!=c)for(var d=0;d<c.rows.length;d++){var e=document.createElement("th");c.rows[d].appendChild(e);mxUtils.br(e)}c=a.tBodies[0];for(d=0;d<c.rows.length;d++)e=c.rows[d].insertCell(b),mxUtils.br(e);return c.rows[0].cells[0<=
b?b:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,b){if(0<=b)for(var c=a.tBodies[0].rows,d=0;d<c.length;d++)c[d].cells.length>b&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&
@@ -2343,12 +2343,12 @@ if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bou
Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=
parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=c:mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",l.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,b){if("0"==mxUtils.getValue(a.style,
"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"\x3cbr/\x3e"));return this.graph.sanitizeHtml(c)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML);
-return"1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"\x3cbr/\x3e").replace(/\n/g,"\x3cbr/\x3e"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var m=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();m.apply(this,arguments);try{this.graph.container.focus()}catch(b){}};var n=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(n.apply(this,arguments),
+return"1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"\x3cbr/\x3e").replace(/\n/g,"\x3cbr/\x3e"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var n=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();n.apply(this,arguments);try{this.graph.container.focus()}catch(b){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),
this.graph.isCellDeletable(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==mxUtils.trim(b||"")&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=
mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/
d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&
!mxEvent.isControlDown(b.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};
-var q=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=q.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
+var p=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b):a=p.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(b){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)),
this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"\x26deg;":(b=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/b)+" x "+this.roundLength(this.bounds.height/b)),b=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==b&&(b=this.bounds),this.hint.style.left=b.x+Math.round((b.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=b.y+b.height+12+"px")};mxVertexHandler.prototype.removeHint=
mxGraphHandler.prototype.removeHint;mxEdgeHandler.prototype.updateHint=function(b,c){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,e=this.graph.view.scale,f=this.roundLength(c.x/e-d.x),d=this.roundLength(c.y/e-d.y);this.hint.innerHTML=f+", "+d;this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(f=this.constraintHandler.currentConstraint.point,
this.hint.innerHTML="["+Math.round(100*f.x)+"%, "+Math.round(100*f.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(b.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(b.getGraphY(),c.y)+this.state.view.graph.gridSize+"px";null!=this.hideEdgeHintThread&&window.clearTimeout(this.hideEdgeHintThread);this.hideEdgeHintThread=window.setTimeout(mxUtils.bind(this,function(){null!=this.hint&&(this.hint.style.visibility="hidden")}),
@@ -2363,40 +2363,40 @@ HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangl
HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxVertexHandler.prototype.rotationHandleVSpacing=-20;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=
!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=
18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-24,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(b)||mxEvent.isPopupTrigger(b)&&(null==a.getState()||mxEvent.isControlDown(b)||mxEvent.isShiftDown(b))};
-var p=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){p.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
+var q=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,b){q.apply(this,arguments);mxEvent.isTouchEvent(b.getEvent())&&this.graph.isCellSelected(b.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return mxEvent.isLeftMouseButton(b)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,b){var c=null!=this.div&&"none"!=this.div.style.display,d=null,e=null,f=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,e=this.first.y,f=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-e)/this.graph.view.scale,
mxEvent.isAltDown(b.getEvent())||(f=this.graph.snap(f),g=this.graph.snap(g)));this.reset();if(c){if(mxEvent.isAltDown(b.getEvent())&&this.graph.isToggleEvent(b.getEvent())){var f=new mxRectangle(this.x,this.y,this.width,this.height),k=this.graph.getCells(f.x,f.y,f.width,f.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(b)){this.graph.model.beginUpdate();try{k=this.graph.getCellsBeyond(d,e,this.graph.getDefaultParent(),!0,!0);for(c=0;c<k.length;c++)if(this.graph.isCellMovable(k[c])){var l=
-this.graph.view.getState(k[c]),p=this.graph.getCellGeometry(k[c]);null!=l&&null!=p&&(p=p.clone(),p.translate(f,g),this.graph.model.setGeometry(k[c],p))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;
+this.graph.view.getState(k[c]),n=this.graph.getCellGeometry(k[c]);null!=l&&null!=n&&(n=n.clone(),n.translate(f,g),this.graph.model.setGeometry(k[c],n))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;
var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,f=this.first.y-c,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=
0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=c-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=
this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),
-this.secondDiv=null)),b.consume()}};var r=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);r.apply(this,arguments)};var s=(new Date).getTime(),t=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){v.apply(this,arguments);c!=this.currentTerminalState?(s=(new Date).getTime(),t=0):t=(new Date).getTime()-s;this.currentTerminalState=
-c};var u=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<t||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&u.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=
+this.secondDiv=null)),b.consume()}};var s=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);s.apply(this,arguments)};var r=(new Date).getTime(),t=0,u=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d){u.apply(this,arguments);c!=this.currentTerminalState?(r=(new Date).getTime(),t=0):t=(new Date).getTime()-r;this.currentTerminalState=
+c};var v=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3<t||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&v.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,b){var c=null!=
a&&0==a,d=this.state.getVisibleTerminalState(c),e=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,d,c):null,c=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(c),e):null)?this.fixedHandleImage:null!=e&&null!=d?this.terminalHandleImage:this.handleImage;if(null!=c)return c=new mxImageShape(new mxRectangle(0,0,c.width,c.height),c.src),c.preserveImageAspect=!1,c;c=mxConstants.HANDLE_SIZE;
-this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var z=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 z.apply(this,arguments)};var x=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))):x.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()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};
-var D=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){D.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var E=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){E.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":
-"none")};var A=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){A.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var b=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
+this.preferHtml&&(c-=1);return new mxRectangleShape(new mxRectangle(0,0,c,c),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var z=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,b,c){this.handleImage=b==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:b==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return z.apply(this,arguments)};var y=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 y.apply(this,arguments)};var x=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))):x.apply(this,arguments)};var E=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)&&E.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};
+var C=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,b){C.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var F=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,b){F.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":
+"none")};var D=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){D.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));var b=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<
this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,c){b()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));b()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,b){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,
this.editingHandler);var c=this.graph.getLinkForCell(this.state.cell);this.updateLinkHint(c);null!=c&&(a=!0);a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(b){if(null==b||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=b){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="4px 10px 6px 10px",this.linkHint.style.fontSize="90%",this.linkHint.style.opacity="1",this.linkHint.style.filter=
"",this.updateLinkHint(b),this.graph.container.appendChild(this.linkHint));var c=b;60<c.length&&(c=c.substring(0,36)+"..."+c.substring(c.length-20));var d=document.createElement("a");d.setAttribute("href",this.graph.getLinkUrl(b));d.setAttribute("title",b);null!=this.graph.linkTarget&&d.setAttribute("target",this.graph.linkTarget);mxUtils.write(d,c);this.linkHint.innerHTML="";this.linkHint.appendChild(d);this.graph.isEnabled()&&"function"===typeof this.graph.editLink&&(b=document.createElement("img"),
-b.setAttribute("src",IMAGE_PATH+"/edit.gif"),b.setAttribute("title",mxResources.get("editLink")),b.setAttribute("width","11"),b.setAttribute("height","11"),b.style.marginLeft="10px",b.style.marginBottom="-1px",b.style.cursor="pointer",this.linkHint.appendChild(b),mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)})))}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var F=
-mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){F.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});
+b.setAttribute("src",IMAGE_PATH+"/edit.gif"),b.setAttribute("title",mxResources.get("editLink")),b.setAttribute("width","11"),b.setAttribute("height","11"),b.style.marginLeft="10px",b.style.marginBottom="-1px",b.style.cursor="pointer",this.linkHint.appendChild(b),mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)})))}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var G=
+mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){G.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});
this.selectionHandler=mxUtils.bind(this,function(b,c){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(b,c){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var b=this.graph.getLinkForCell(this.state.cell);null!=b&&(this.updateLinkHint(b),this.redrawHandles())};var H=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=
function(){H.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var I=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){I.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),b=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),a=mxUtils.getBoundingBox(b,this.state.style[mxConstants.STYLE_ROTATION]||
-"0",a),b=null!=a?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state;null==a&&(a=this.state);this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+a.height+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var M=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){M.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
+"0",a),b=null!=a?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state;null==a&&(a=this.state);this.linkHint.style.left=Math.round(b.x+(b.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+a.height+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var N=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset=function(){N.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=
1==this.graph.getSelectionCount()?"":"none")};var L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){L.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&
-(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var R=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(R.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.round(a.x+(a.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+
+(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var S=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(S.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height),a.add(this.state.text.bounds));this.linkHint.style.left=Math.round(a.x+(a.width-this.linkHint.clientWidth)/2)+"px";this.linkHint.style.top=Math.round(a.y+
a.height+6+this.state.view.graph.tolerance)+"px"}};var W=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){W.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var da=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){da.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),
this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();
-(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function f(){mxActor.call(this)}function g(){mxCylinder.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function m(){mxActor.call(this)}function n(){mxActor.call(this)}function q(){mxActor.call(this)}function p(){mxActor.call(this)}function r(){mxActor.call(this)}function s(a,b){this.canvas=
-a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,s.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,s.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,s.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,s.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
-this.canvas.curveTo=mxUtils.bind(this,s.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,s.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function u(){mxActor.call(this)}function y(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function G(){mxShape.call(this)}function D(){mxShape.call(this)}function E(){mxEllipse.call(this)}function A(){mxShape.call(this)}
-function F(){mxShape.call(this)}function H(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function M(){mxShape.call(this)}function L(){mxShape.call(this)}function R(){mxCylinder.call(this)}function W(){mxDoubleEllipse.call(this)}function da(){mxDoubleEllipse.call(this)}function B(){mxArrowConnector.call(this);this.spacing=0}function C(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function Z(){mxRectangleShape.call(this)}function J(){mxActor.call(this)}
-function aa(){mxActor.call(this)}function N(){mxActor.call(this)}function K(){mxActor.call(this)}function O(){mxActor.call(this)}function S(){mxActor.call(this)}function ca(){mxActor.call(this)}function $(){mxActor.call(this)}function P(){mxActor.call(this)}function X(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function T(){mxEllipse.call(this)}function Q(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function V(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}
-function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function na(){mxActor.call(this)}function va(a,b,c,d,e,f,g,k,l,p){g+=l;var m=d.clone();d.x-=e*(2*g+l);d.y-=f*(2*g+l);e*=g+l;f*=g+l;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);p?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),
+(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function c(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function f(){mxActor.call(this)}function g(){mxCylinder.call(this)}function k(){mxActor.call(this)}function l(){mxActor.call(this)}function n(){mxActor.call(this)}function m(){mxActor.call(this)}function p(){mxActor.call(this)}function q(){mxActor.call(this)}function s(){mxActor.call(this)}function r(a,b){this.canvas=
+a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=b;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,r.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,r.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,r.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,r.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;
+this.canvas.curveTo=mxUtils.bind(this,r.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,r.prototype.arcTo)}function t(){mxRectangleShape.call(this)}function u(){mxActor.call(this)}function v(){mxActor.call(this)}function z(){mxRectangleShape.call(this)}function y(){mxRectangleShape.call(this)}function x(){mxCylinder.call(this)}function E(){mxShape.call(this)}function C(){mxShape.call(this)}function F(){mxEllipse.call(this)}function D(){mxShape.call(this)}
+function G(){mxShape.call(this)}function H(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function N(){mxShape.call(this)}function L(){mxShape.call(this)}function S(){mxCylinder.call(this)}function W(){mxDoubleEllipse.call(this)}function da(){mxDoubleEllipse.call(this)}function B(){mxArrowConnector.call(this);this.spacing=0}function A(){mxArrowConnector.call(this);this.spacing=0}function U(){mxActor.call(this)}function Z(){mxRectangleShape.call(this)}function J(){mxActor.call(this)}
+function aa(){mxActor.call(this)}function M(){mxActor.call(this)}function K(){mxActor.call(this)}function O(){mxActor.call(this)}function R(){mxActor.call(this)}function ca(){mxActor.call(this)}function $(){mxActor.call(this)}function P(){mxActor.call(this)}function X(){mxEllipse.call(this)}function Y(){mxEllipse.call(this)}function T(){mxEllipse.call(this)}function Q(){mxRhombus.call(this)}function ha(){mxEllipse.call(this)}function ea(){mxEllipse.call(this)}function V(){mxEllipse.call(this)}function ga(){mxEllipse.call(this)}
+function ka(){mxActor.call(this)}function ba(){mxActor.call(this)}function na(){mxActor.call(this)}function va(a,b,c,d,e,f,g,k,l,n){g+=l;var m=d.clone();d.x-=e*(2*g+l);d.y-=f*(2*g+l);e*=g+l;f*=g+l;return function(){a.ellipse(m.x-e-g,m.y-f-g,2*g,2*g);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f?(a.moveTo(b,e),a.lineTo(b,b),
a.lineTo(0,0),a.moveTo(b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(b,e),a.lineTo(0,e-b),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.cube=a;var sa=Math.tan(mxUtils.toRadians(30)),ma=(0.5-sa)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/sa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,0.25*b);a.lineTo(0.5*b,b*ma);a.lineTo(b,0.25*b);a.lineTo(0.5*b,(0.5-ma)*b);a.lineTo(0,
0.25*b);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.isoRectangle=b;mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(d,e/(0.5+sa));f?(a.moveTo(0,0.25*b),a.lineTo(0.5*b,(0.5-ma)*b),a.lineTo(b,0.25*b),a.moveTo(0.5*b,(0.5-ma)*b),a.lineTo(0.5*b,(1-ma)*b)):(a.translate((d-b)/2,(e-b)/2),a.moveTo(0,0.25*b),a.lineTo(0.5*b,b*ma),a.lineTo(b,0.25*b),a.lineTo(b,0.75*b),a.lineTo(0.5*b,(1-ma)*b),a.lineTo(0,0.75*b),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.isoCube=
c;mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,-b);f||(a.moveTo(0,b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,
@@ -2405,51 +2405,51 @@ this.flipV&&(null==this.direction||this.direction==mxConstants.DIRECTION_EAST))a
a.lineTo(d-b,b),a.lineTo(d,b)):(a.moveTo(0,0),a.lineTo(d-b,0),a.lineTo(d,b),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.note=e;mxUtils.extend(f,mxActor);f.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d/2,0.5*e,d,0);a.quadTo(0.5*d,e/2,d,e);a.quadTo(d/2,0.5*e,0,e);a.quadTo(0.5*d,e/2,0,0);a.end()};mxCellRenderer.prototype.defaultShapes["switch"]=f;mxUtils.extend(g,mxCylinder);g.prototype.tabWidth=60;g.prototype.tabHeight=20;
g.prototype.tabPosition="right";g.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);f?"left"==g?(a.moveTo(0,c),a.lineTo(b,c)):(a.moveTo(d-b,c),a.lineTo(d,c)):("left"==g?(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(d,c)):(a.moveTo(0,c),a.lineTo(d-b,c),
a.lineTo(d-b,0),a.lineTo(d,0)),a.lineTo(d,e),a.lineTo(0,e),a.lineTo(0,c),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.folder=g;mxUtils.extend(k,mxActor);k.prototype.size=30;k.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,
-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.card=k;mxUtils.extend(l,mxActor);l.prototype.size=0.4;l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.tape=l;mxUtils.extend(m,
-mxActor);m.prototype.size=0.3;m.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.document=m;mxUtils.extend(n,mxActor);n.prototype.size=0.2;n.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.parallelogram=n;mxUtils.extend(q,mxActor);q.prototype.size=0.2;q.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(0.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
-mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.trapezoid=q;mxUtils.extend(p,mxActor);p.prototype.size=0.5;p.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,
-0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=p;mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=r;s.prototype.moveTo=
-function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};s.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};s.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};s.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,
-arguments);this.lastX=e;this.lastY=f};s.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};s.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=Math.abs(a-this.lastX),d=Math.abs(b-this.lastY),e=Math.sqrt(c*c+d*d);if(2>e)this.originalLineTo.apply(this.canvas,arguments);else{var f=Math.round(e/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},
-l=k(a-this.lastX)*c/f,k=k(b-this.lastY)*d/f,c=c/e,d=d/e,e=0;e<f;e++){var p=l*e+this.lastX,m=k*e+this.lastY,r=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,p-r*d,m-r*c)}this.originalLineTo.call(this.canvas,a,b)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};s.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
-this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var za=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new s(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));za.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Aa=mxRectangleShape.prototype.isHtmlAllowed;
+b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.card=k;mxUtils.extend(l,mxActor);l.prototype.size=0.4;l.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,b/2);a.quadTo(d/4,1.4*b,d/2,b/2);a.quadTo(3*d/4,b*(1-1.4),d,b/2);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.tape=l;mxUtils.extend(n,
+mxActor);n.prototype.size=0.3;n.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e-b/2);a.quadTo(3*d/4,e-1.4*b,d/2,e-b/2);a.quadTo(d/4,e-b*(1-1.4),0,e-b/2);a.lineTo(0,b/2);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.document=n;mxUtils.extend(m,mxActor);m.prototype.size=0.2;m.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
+"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d,0),new mxPoint(d-b,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.parallelogram=m;mxUtils.extend(p,mxActor);p.prototype.size=0.2;p.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(0.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,
+mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.trapezoid=p;mxUtils.extend(q,mxActor);q.prototype.size=0.5;q.prototype.redrawPath=function(a,b,c,d,e){a.setFillColor(null);b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,
+0),new mxPoint(b,0),new mxPoint(b,e/2),new mxPoint(0,e/2),new mxPoint(b,e/2),new mxPoint(b,e),new mxPoint(d,e)],this.isRounded,c,!1);a.end()};mxCellRenderer.prototype.defaultShapes.curlyBracket=q;mxUtils.extend(s,mxActor);s.prototype.redrawPath=function(a,b,c,d,e){a.setStrokeWidth(1);a.setFillColor(this.stroke);b=d/5;a.rect(0,0,b,e);a.fillAndStroke();a.rect(2*b,0,b,e);a.fillAndStroke();a.rect(4*b,0,b,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.parallelMarker=s;r.prototype.moveTo=
+function(a,b){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;this.firstX=a;this.firstY=b};r.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};r.prototype.quadTo=function(a,b,c,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=d};r.prototype.curveTo=function(a,b,c,d,e,f){this.originalCurveTo.apply(this.canvas,
+arguments);this.lastX=e;this.lastY=f};r.prototype.arcTo=function(a,b,c,d,e,f,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=g};r.prototype.lineTo=function(a,b){if(null!=this.lastX&&null!=this.lastY){var c=Math.abs(a-this.lastX),d=Math.abs(b-this.lastY),e=Math.sqrt(c*c+d*d);if(2>e)this.originalLineTo.apply(this.canvas,arguments);else{var f=Math.round(e/10),g=this.defaultVariation;5>f&&(f=5,g/=3);for(var k=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},
+l=k(a-this.lastX)*c/f,k=k(b-this.lastY)*d/f,c=c/e,d=d/e,e=0;e<f;e++){var n=l*e+this.lastX,m=k*e+this.lastY,p=(Math.random()-0.5)*g;this.originalLineTo.call(this.canvas,n-p*d,m-p*c)}this.originalLineTo.call(this.canvas,a,b)}}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b};r.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=
+this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var za=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!=this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new r(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));za.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Aa=mxRectangleShape.prototype.isHtmlAllowed;
mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Aa.apply(this,arguments)};var Ba=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(null==a.handJiggle)Ba.apply(this,arguments);else{var f=!0;null!=this.style&&(f="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(f||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=
mxConstants.NONE){if(!f&&(null==this.fill||this.fill==mxConstants.NONE))a.pointerEvents=!1;a.begin();this.isRounded?(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadTo(b,c,b+f,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,
c));a.close();a.end();a.fillAndStroke()}}};var Ca=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){null==a.handJiggle&&Ca.apply(this,arguments)};mxUtils.extend(t,mxRectangleShape);t.prototype.size=0.1;t.prototype.isHtmlAllowed=function(){return!1};t.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var b=
a.width,c=a.height;a=new mxRectangle(a.x,a.y,b,c);var d=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(b*e,c*e));a.x+=d;a.width-=2*d}return a};t.prototype.paintForeground=function(a,b,c,d,e){var f=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.process=t;mxUtils.extend(v,mxActor);v.prototype.size=0.2;v.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
-mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.step=v;mxUtils.extend(u,mxHexagon);u.prototype.size=0.25;u.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
-2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,0.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,0.5*e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=u;mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.prototype.defaultShapes.plus=y;var wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){wa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
-1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),wa.apply(this,[a,b,c,d,e]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};z.prototype.paintForeground=function(a,b,c,
-d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g=null;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var k=this.style["symbol"+f+"Align"],l=this.style["symbol"+f+"VerticalAlign"],p=this.style["symbol"+f+"Width"],m=this.style["symbol"+
-f+"Height"],r=this.style["symbol"+f+"Spacing"]||0,n=this.style["symbol"+f+"ArcSpacing"];null!=n&&(r+=this.getArcSize(d+this.strokewidth,e+this.strokewidth)*n);var n=b,s=c,n=k==mxConstants.ALIGN_CENTER?n+(d-p)/2:k==mxConstants.ALIGN_RIGHT?n+(d-p-r):n+r,s=l==mxConstants.ALIGN_MIDDLE?s+(e-m)/2:l==mxConstants.ALIGN_BOTTOM?s+(e-m-r):s+r;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,n,s,p,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
-arguments)};mxCellRenderer.prototype.defaultShapes.ext=z;mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.prototype.defaultShapes.message=x;mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,
-e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=G;mxUtils.extend(D,mxShape);D.prototype.getLabelBounds=function(a){return new mxRectangle(a.x+a.width/6,a.y,5*a.width/6,a.height)};D.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();
-a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=D;mxUtils.extend(E,mxEllipse);E.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=E;mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,
-0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=A;mxUtils.extend(F,mxShape);F.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};F.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};F.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,e/
-4);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlControl=F;mxUtils.extend(H,mxRectangleShape);H.prototype.size=40;H.prototype.isHtmlAllowed=function(){return!1};H.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};H.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),
+mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));a.begin();a.moveTo(b+f,c);a.lineTo(b+f,c+e);a.moveTo(b+d-f,c);a.lineTo(b+d-f,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.prototype.defaultShapes.process=t;mxUtils.extend(u,mxActor);u.prototype.size=0.2;u.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,
+mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(0,e),new mxPoint(b,e/2)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.step=u;mxUtils.extend(v,mxHexagon);v.prototype.size=0.25;v.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/
+2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,0.5*e),new mxPoint(d-b,e),new mxPoint(b,e),new mxPoint(0,0.5*e)],this.isRounded,c,!0)};mxCellRenderer.prototype.defaultShapes.hexagon=v;mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.paintForeground=function(a,b,c,d,e){var f=Math.min(d/5,e/5)+1;a.begin();a.moveTo(b+d/2,c+f);a.lineTo(b+d/2,c+e-f);a.moveTo(b+f,c+e/2);a.lineTo(b+d-f,c+e/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.prototype.defaultShapes.plus=z;var wa=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){wa.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+
+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&(a.setShadow(!1),wa.apply(this,[a,b,c,d,e]))}};mxUtils.extend(y,mxRectangleShape);y.prototype.isHtmlAllowed=function(){return!1};y.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)}return a};y.prototype.paintForeground=function(a,b,c,
+d,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);b+=f;c+=f;d-=2*f;e-=2*f;0<d&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var f=0,g=null;do{g=mxCellRenderer.prototype.defaultShapes[this.style["symbol"+f]];if(null!=g){var k=this.style["symbol"+f+"Align"],l=this.style["symbol"+f+"VerticalAlign"],n=this.style["symbol"+f+"Width"],m=this.style["symbol"+
+f+"Height"],p=this.style["symbol"+f+"Spacing"]||0,q=this.style["symbol"+f+"ArcSpacing"];null!=q&&(p+=this.getArcSize(d+this.strokewidth,e+this.strokewidth)*q);var q=b,s=c,q=k==mxConstants.ALIGN_CENTER?q+(d-n)/2:k==mxConstants.ALIGN_RIGHT?q+(d-n-p):q+p,s=l==mxConstants.ALIGN_MIDDLE?s+(e-m)/2:l==mxConstants.ALIGN_BOTTOM?s+(e-m-p):s+p;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,q,s,n,m);a.restore()}f++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this,
+arguments)};mxCellRenderer.prototype.defaultShapes.ext=y;mxUtils.extend(x,mxCylinder);x.prototype.redrawPath=function(a,b,c,d,e,f){f?(a.moveTo(0,0),a.lineTo(d/2,e/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(0,e),a.close())};mxCellRenderer.prototype.defaultShapes.message=x;mxUtils.extend(E,mxShape);E.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.ellipse(d/4,0,d/2,e/4);a.fillAndStroke();a.begin();a.moveTo(d/2,e/4);a.lineTo(d/2,2*e/3);a.moveTo(d/2,
+e/3);a.lineTo(0,e/3);a.moveTo(d/2,e/3);a.lineTo(d,e/3);a.moveTo(d/2,2*e/3);a.lineTo(0,e);a.moveTo(d/2,2*e/3);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlActor=E;mxUtils.extend(C,mxShape);C.prototype.getLabelBounds=function(a){return new mxRectangle(a.x+a.width/6,a.y,5*a.width/6,a.height)};C.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(0,e/4);a.lineTo(0,3*e/4);a.end();a.stroke();a.begin();a.moveTo(0,e/2);a.lineTo(d/6,e/2);a.end();
+a.stroke();a.ellipse(d/6,0,5*d/6,e);a.fillAndStroke()};mxCellRenderer.prototype.defaultShapes.umlBoundary=C;mxUtils.extend(F,mxEllipse);F.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(b+d/8,c+e);a.lineTo(b+7*d/8,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlEntity=F;mxUtils.extend(D,mxShape);D.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(d,0);a.lineTo(0,e);a.moveTo(0,
+0);a.lineTo(d,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlDestroy=D;mxUtils.extend(G,mxShape);G.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};G.prototype.paintBackground=function(a,b,c,d,e){a.translate(b,c);a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,e/8,d,7*e/8);a.fillAndStroke()};G.prototype.paintForeground=function(a,b,c,d,e){a.begin();a.moveTo(3*d/8,1.1*(e/8));a.lineTo(5*d/8,e/
+4);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.umlControl=G;mxUtils.extend(H,mxRectangleShape);H.prototype.size=40;H.prototype.isHtmlAllowed=function(){return!1};H.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,b)};H.prototype.paintBackground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),
g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,a,b,c,d,f):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=H&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,b,c,d,f),a.restore()));f<e&&(a.setDashed(!0),a.begin(),a.moveTo(b+d/2,c+f),a.lineTo(b+d/2,c+e),a.end(),a.stroke())};H.prototype.paintForeground=function(a,b,c,d,e){var f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));
mxRectangleShape.prototype.paintForeground.call(this,a,b,c,d,Math.min(e,f))};mxCellRenderer.prototype.defaultShapes.umlLifeline=H;mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.prototype.getLabelBounds=function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.style,"width",this.width))*this.scale)),c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"height",this.height))*this.scale));return new mxRectangle(a.x,a.y,
b,c)};I.prototype.paintBackground=function(a,b,c,d,e){var f=this.corner,g=Math.min(d,Math.max(f,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),k=Math.min(e,Math.max(1.5*f,parseFloat(mxUtils.getValue(this.style,"height",this.height))));a.begin();a.moveTo(b,c);a.lineTo(b+g,c);a.lineTo(b+g,c+Math.max(0,k-1.5*f));a.lineTo(b+Math.max(0,g-f),c+k);a.lineTo(b,c+k);a.close();a.fillAndStroke();a.begin();a.moveTo(b+g,c);a.lineTo(b+d,c);a.lineTo(b+d,c+e);a.lineTo(b,c+e);a.lineTo(b,c+k);a.stroke()};
mxCellRenderer.prototype.defaultShapes.umlFrame=I;mxPerimeter.LifelinePerimeter=function(a,b,c,d){d=H.prototype.size;null!=b&&(d=mxUtils.getValue(b.style,"size",d)*b.view.scale);b=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;c.x<a.getCenterX()&&(b=-1*(b+1));return new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y+d,c.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,b,c,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,
arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,b,c,d){d=parseFloat(b.style[mxConstants.STYLE_STROKEWIDTH]||1)*b.view.scale/2-1;null!=b.style.backboneSize&&(d+=parseFloat(b.style.backboneSize)*b.view.scale/2-1);if("south"==b.style[mxConstants.STYLE_DIRECTION]||"north"==b.style[mxConstants.STYLE_DIRECTION])return c.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,c.y)));
-c.y<a.getCenterY()&&(d+=1,d*=-1);return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxUtils.extend(M,mxShape);M.prototype.size=10;M.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.lollipop=
-M;mxUtils.extend(L,mxShape);L.prototype.size=10;L.prototype.inset=2;L.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
-L;mxUtils.extend(R,mxCylinder);R.prototype.jettyWidth=32;R.prototype.jettyHeight=12;R.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,k=0.3*e-b/2,l=0.7*e-b/2;f?(a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b),a.moveTo(c,l),a.lineTo(g,l),a.lineTo(g,l+b),a.lineTo(c,l+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),
-a.lineTo(c,l+b),a.lineTo(0,l+b),a.lineTo(0,l),a.lineTo(c,l),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=R;mxUtils.extend(W,mxDoubleEllipse);W.prototype.outerStroke=!0;W.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
-W;mxUtils.extend(da,W);da.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=da;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=B;mxUtils.extend(C,mxArrowConnector);C.prototype.defaultWidth=
-10;C.prototype.defaultArrowWidth=20;C.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};C.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};C.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=C;mxUtils.extend(U,
+c.y<a.getCenterY()&&(d+=1,d*=-1);return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,c.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxUtils.extend(N,mxShape);N.prototype.size=10;N.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke();a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.lollipop=
+N;mxUtils.extend(L,mxShape);L.prototype.size=10;L.prototype.inset=2;L.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.requires=
+L;mxUtils.extend(S,mxCylinder);S.prototype.jettyWidth=32;S.prototype.jettyHeight=12;S.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,k=0.3*e-b/2,l=0.7*e-b/2;f?(a.moveTo(c,k),a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b),a.moveTo(c,l),a.lineTo(g,l),a.lineTo(g,l+b),a.lineTo(c,l+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),
+a.lineTo(c,l+b),a.lineTo(0,l+b),a.lineTo(0,l),a.lineTo(c,l),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.close());a.end()};mxCellRenderer.prototype.defaultShapes.component=S;mxUtils.extend(W,mxDoubleEllipse);W.prototype.outerStroke=!0;W.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0<d&&0<e&&(a.ellipse(b+f,c+f,d-2*f,e-2*f),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(b,c,d,e),a.stroke())};mxCellRenderer.prototype.defaultShapes.endState=
+W;mxUtils.extend(da,W);da.prototype.outerStroke=!1;mxCellRenderer.prototype.defaultShapes.startState=da;mxUtils.extend(B,mxArrowConnector);B.prototype.defaultWidth=4;B.prototype.isOpenEnded=function(){return!0};B.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};B.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.prototype.defaultShapes.link=B;mxUtils.extend(A,mxArrowConnector);A.prototype.defaultWidth=
+10;A.prototype.defaultArrowWidth=20;A.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};A.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};A.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.prototype.defaultShapes.flexArrow=A;mxUtils.extend(U,
mxActor);U.prototype.size=30;U.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,e),new mxPoint(0,b),new mxPoint(d,0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.manualInput=U;mxUtils.extend(Z,mxRectangleShape);Z.prototype.dx=20;Z.prototype.dy=20;Z.prototype.isHtmlAllowed=function(){return!1};
Z.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));g=Math.max(f,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(f,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(b,c+f);a.lineTo(b+d,c+f);a.end();a.stroke();
a.begin();a.moveTo(b+g,c);a.lineTo(b+g,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.internalStorage=Z;mxUtils.extend(J,mxActor);J.prototype.dx=20;J.prototype.dy=20;J.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,
mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint(b,c),new mxPoint(b,e),new mxPoint(0,e)],this.isRounded,f,!0);a.end()};mxCellRenderer.prototype.defaultShapes.corner=J;mxUtils.extend(aa,mxActor);aa.prototype.dx=20;aa.prototype.dy=20;aa.prototype.redrawPath=function(a,b,c,d,e){b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));Math.abs(d-b);Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,f,!0);a.end()};mxCellRenderer.prototype.defaultShapes.tee=aa;mxUtils.extend(N,mxActor);N.prototype.arrowWidth=
-0.3;N.prototype.arrowSize=0.2;N.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,
-f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=N;mxUtils.extend(K,mxActor);K.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",N.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",N.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
+"dy",this.dy))));Math.abs(d-b);Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,c),new mxPoint((d+b)/2,c),new mxPoint((d+b)/2,e),new mxPoint((d-b)/2,e),new mxPoint((d-b)/2,c),new mxPoint(0,c)],this.isRounded,f,!0);a.end()};mxCellRenderer.prototype.defaultShapes.tee=aa;mxUtils.extend(M,mxActor);M.prototype.arrowWidth=
+0.3;M.prototype.arrowSize=0.2;M.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,
+f),new mxPoint(0,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.prototype.defaultShapes.singleArrow=M;mxUtils.extend(K,mxActor);K.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",M.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",M.prototype.arrowSize))));c=(e-f)/2;var f=c+f,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,
[new mxPoint(0,e/2),new mxPoint(b,0),new mxPoint(b,c),new mxPoint(d-b,c),new mxPoint(d-b,0),new mxPoint(d,e/2),new mxPoint(d-b,e),new mxPoint(d-b,f),new mxPoint(b,f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.prototype.defaultShapes.doubleArrow=K;mxUtils.extend(O,mxActor);O.prototype.size=0.1;O.prototype.redrawPath=function(a,b,c,d,e){b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(b,0);a.lineTo(d,0);a.quadTo(d-2*b,e/2,d,e);a.lineTo(b,
-e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.dataStorage=O;mxUtils.extend(S,mxActor);S.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=S;mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.xor=ca;mxUtils.extend($,
+e);a.quadTo(b-2*b,e/2,b,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.dataStorage=O;mxUtils.extend(R,mxActor);R.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.or=R;mxUtils.extend(ca,mxActor);ca.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(0,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,0,e);a.quadTo(d/2,e/2,0,0);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.xor=ca;mxUtils.extend($,
mxActor);$.prototype.size=20;$.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(d-b,0),new mxPoint(d,0.8*b),new mxPoint(d,e),new mxPoint(0,e),new mxPoint(0,0.8*b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.loopLimit=$;mxUtils.extend(P,mxActor);P.prototype.size=0.375;
P.prototype.redrawPath=function(a,b,c,d,e){b=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,e-b),new mxPoint(d/2,e),new mxPoint(0,e-b)],this.isRounded,c,!0);a.end()};mxCellRenderer.prototype.defaultShapes.offPageConnector=P;mxUtils.extend(X,mxEllipse);X.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,
arguments);a.begin();a.moveTo(b+d/2,c+e);a.lineTo(b+d,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.tapeData=X;mxUtils.extend(Y,mxEllipse);Y.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(b,c+e/2);a.lineTo(b+d,c+e/2);a.end();a.stroke();a.begin();a.moveTo(b+d/2,c);a.lineTo(b+d/2,c+e);a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.orEllipse=Y;mxUtils.extend(T,mxEllipse);T.prototype.paintVertexShape=
@@ -2460,15 +2460,15 @@ this.style&&(a.setStrokeColor(this.stroke),a.rect(b,c,d,e),a.fill(),"1"==mxUtils
mxCellRenderer.prototype.defaultShapes.partialRectangle=V;mxUtils.extend(ga,mxEllipse);ga.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();a.stroke()};mxCellRenderer.prototype.defaultShapes.lineEllipse=ga;mxUtils.extend(ka,mxActor);ka.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,
e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.delay=ka;mxUtils.extend(ba,mxActor);ba.prototype.size=0.2;ba.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-f)/2;c=b+f;var g=(d-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);
a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.cross=ba;mxUtils.extend(na,mxActor);na.prototype.size=0.25;na.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.prototype.defaultShapes.display=na;mxMarker.addMarker("dash",
-function(a,b,c,d,e,f,g,k,l,p){var m=e*(g+l+1),r=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-r/2,d.y-r/2+m/2);a.lineTo(d.x+r/2-3*m/2,d.y-3*r/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,k,l,p){var m=e*(g+l+1),r=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-r/2,d.y-r/2+m/2);a.lineTo(d.x+r/2-3*m/2,d.y-3*r/2-m/2);a.moveTo(d.x-m/2+r/2,d.y-r/2-m/2);a.lineTo(d.x-r/2-3*m/2,d.y-3*r/2+m/2);a.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",
-function(a,b,c,d,e,f,g,k,l,p){var m=d.clone(),r=va.apply(this,arguments),n=e*(g+2*l),s=f*(g+2*l);return function(){r.apply(this,arguments);a.begin();a.moveTo(m.x-e*l,m.y-f*l);a.lineTo(m.x-2*n+e*l,m.y-2*s+f*l);a.moveTo(m.x-n-s+f*l,m.y-s+n-e*l);a.lineTo(m.x+s-n-f*l,m.y-s-n+e*l);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,k,l,p){b=1.118*e*l;c=1.118*f*l;e*=g+l;f*=g+l;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);k?a.lineTo(m.x-
-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();p?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,k,l,p,m){f*=k+p;g*=k+p;var r=e.clone();return function(){b.begin();b.moveTo(r.x,r.y);l?b.lineTo(r.x-f-g/a,r.y-g+f/a):b.lineTo(r.x+g/a-f,r.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var fa=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);
+function(a,b,c,d,e,f,g,k,l,n){var m=e*(g+l+1),p=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,k,l,n){var m=e*(g+l+1),p=f*(g+l+1);return function(){a.begin();a.moveTo(d.x-m/2-p/2,d.y-p/2+m/2);a.lineTo(d.x+p/2-3*m/2,d.y-3*p/2-m/2);a.moveTo(d.x-m/2+p/2,d.y-p/2-m/2);a.lineTo(d.x-p/2-3*m/2,d.y-3*p/2+m/2);a.stroke()}});mxMarker.addMarker("circle",va);mxMarker.addMarker("circlePlus",
+function(a,b,c,d,e,f,g,k,l,n){var m=d.clone(),p=va.apply(this,arguments),q=e*(g+2*l),s=f*(g+2*l);return function(){p.apply(this,arguments);a.begin();a.moveTo(m.x-e*l,m.y-f*l);a.lineTo(m.x-2*q+e*l,m.y-2*s+f*l);a.moveTo(m.x-q-s+f*l,m.y-s+q-e*l);a.lineTo(m.x+s-q-f*l,m.y-s-q+e*l);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,k,l,n){b=1.118*e*l;c=1.118*f*l;e*=g+l;f*=g+l;var m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);k?a.lineTo(m.x-
+e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.y-f);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,k,l,n,m){f*=k+n;g*=k+n;var p=e.clone();return function(){b.begin();b.moveTo(p.x,p.y);l?b.lineTo(p.x-f-g/a,p.y-g+f/a):b.lineTo(p.x+g/a-f,p.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var fa=function(a,b,c,d,e){a=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);
a.execute=function(){for(var a=0;a<b.length;a++)this.copyStyle(b[a])};a.getPosition=c;a.setPosition=d;a.ignoreGrid=null!=e?e:!0;return a},la=function(a,b){return fa(a,[mxConstants.STYLE_ARCSIZE],function(c){var d=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100,e=null!=b?b:c.height/8;return new mxPoint(c.x+c.width-Math.min(Math.max(c.width/2,c.height/2),Math.min(c.width,c.height)*d),c.y+e)},function(a,b,c){a=Math.min(50,Math.max(0,
-100*(a.width-b.x+a.x)/Math.min(a.width,a.height)));this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(a)})},ja=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b}},ia=function(a){return function(b){var c=[fa(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",q.prototype.size))));return new mxPoint(b.x+0.75*c*b.width,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,
+100*(a.width-b.x+a.x)/Math.min(a.width,a.height)));this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(a)})},ja=function(){return function(a){var b=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b}},ia=function(a){return function(b){var c=[fa(b,["size"],function(b){var c=Math.max(0,Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",p.prototype.size))));return new mxPoint(b.x+0.75*c*b.width,b.y+b.height/4)},function(b,c){this.state.style.size=Math.max(0,
Math.min(a,(c.x-b.x)/(0.75*b.width)))})];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(la(b));return c}},pa=function(a,b,c){c=null!=c?c:1;return function(d){var e=[fa(d,["size"],function(b){var c=parseFloat(mxUtils.getValue(this.state.style,"size",a));return new mxPoint(b.x+c*b.width,b.getCenterY())},function(a,b){this.state.style.size=Math.max(0,Math.min(c,(b.x-a.x)/a.width))})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(la(d));return e}},ta=function(a,b,c){return function(d){var e=
[fa(d,["size"],function(c){var d=Math.max(0,Math.min(c.width,Math.min(c.height,parseFloat(mxUtils.getValue(this.state.style,"size",b)))))*a;return new mxPoint(c.x+d,c.y+d)},function(b,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,c.x-b.x),Math.min(b.height,c.y-b.y)))/a)})];c&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(la(d));return e}},xa=function(a){return function(b){return[fa(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"arrowWidth",N.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",N.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(b.y+b.height/2-c.y)/b.height)));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},oa=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,k=a.view.translate,l=a.view.scale,p=c?f[0]:f[g],m=c?f[1]:f[g-
-1],r=m.x-p.x,n=m.y-p.y,s=Math.sqrt(r*r+n*n);return fa(a,b,function(a){a=d.call(this,s,r/s,n/s,p,m);return new mxPoint(a.x/l-k.x,a.y/l-k.y)},function(a,b,c){a=Math.sqrt(r*r+n*n);b.x=(b.x+k.x)*l;b.y=(b.y+k.y)*l;e.call(this,a,r/a,n/a,p,m,b,c)})},ya=function(a,b,c){return oa(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,k){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*
+"arrowWidth",M.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",M.prototype.arrowSize)));return new mxPoint(b.x+(1-d)*b.width,b.y+(1-c)*b.height/2)},function(b,c){this.state.style.arrowWidth=Math.max(0,Math.min(1,2*(Math.abs(b.y+b.height/2-c.y)/b.height)));this.state.style.arrowSize=Math.max(0,Math.min(a,(b.x+b.width-c.x)/b.width))})]}},oa=function(a,b,c,d,e){var f=a.absolutePoints,g=f.length-1,k=a.view.translate,l=a.view.scale,n=c?f[0]:f[g],m=c?f[1]:f[g-
+1],p=m.x-n.x,q=m.y-n.y,s=Math.sqrt(p*p+q*q);return fa(a,b,function(a){a=d.call(this,s,p/s,q/s,n,m);return new mxPoint(a.x/l-k.x,a.y/l-k.y)},function(a,b,c){a=Math.sqrt(p*p+q*q);b.x=(b.x+k.x)*l;b.y=(b.y+k.y)*l;e.call(this,a,p/a,q/a,n,m,b,c)})},ya=function(a,b,c){return oa(a,["width"],b,function(b,d,e,f,g){g=a.shape.getEdgeWidth()*a.view.scale+c;return new mxPoint(f.x+d*b/4+e*g/2,f.y+e*b/4-d*g/2)},function(b,d,e,f,g,k){b=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*
b)/a.view.scale-c})},ua={link:function(a){return[ya(a,!0,10),ya(a,!1,10)]},flexArrow:function(a){var b=a.view.graph.gridSize/a.view.scale,c=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(oa(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+
c*(f+a.shape.strokewidth*a.view.scale)+d*b/2,e.y+d*(f+a.shape.strokewidth*a.view.scale)-c*b/2)},function(c,d,e,f,g,k,l){c=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||
Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<b/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),c.push(oa(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;f=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(e.x+c*(f+a.shape.strokewidth*
@@ -2489,80 +2489,80 @@ Math.min(1,(a.x+a.width-b.x)/a.width))})]},internalStorage:function(a){var b=[fa
mxConstants.STYLE_ROUNDED,!1)&&b.push(la(a));return b},corner:function(a){return[fa(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",J.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",J.prototype.dy)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,Math.min(a.width,b.x-a.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},tee:function(a){return[fa(a,
["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",aa.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",aa.prototype.dy)));return new mxPoint(a.x+(a.width+b)/2,a.y+c)},function(a,b){this.state.style.dx=Math.round(Math.max(0,2*Math.min(a.width/2,b.x-a.x-a.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},singleArrow:xa(1),doubleArrow:xa(0.5),folder:function(a){return[fa(a,["tabWidth",
"tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",g.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",g.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(b=a.width-b);return new mxPoint(a.x+b,a.y+c)},function(a,b){var c=Math.max(0,Math.min(a.width,b.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",g.prototype.tabPosition)==
-mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[fa(a,["size"],
+mxConstants.ALIGN_RIGHT&&(c=a.width-c);this.state.style.tabWidth=Math.round(c);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,b.y-a.y)))})]},document:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},tape:function(a){return[fa(a,["size"],
function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",l.prototype.size))));return new mxPoint(a.getCenterX(),a.y+b*a.height/2)},function(a,b){this.state.style.size=Math.max(0,Math.min(1,2*((b.y-a.y)/a.height)))})]},offPageConnector:function(a){return[fa(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",P.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-b)*a.height)},function(a,b){this.state.style.size=
-Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:pa(v.prototype.size,!0),hexagon:pa(u.prototype.size,!0,0.5),curlyBracket:pa(p.prototype.size,!1),display:pa(na.prototype.size,!1),cube:ta(1,a.prototype.size,!1),card:ta(0.5,k.prototype.size,!0),loopLimit:ta(0.5,$.prototype.size,!0),trapezoid:ia(0.5),parallelogram:ia(1)};Graph.createHandle=fa;Graph.handleFactory=ua;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
+Math.max(0,Math.min(1,(a.y+a.height-b.y)/a.height))})]},step:pa(u.prototype.size,!0),hexagon:pa(v.prototype.size,!0,0.5),curlyBracket:pa(q.prototype.size,!1),display:pa(na.prototype.size,!1),cube:ta(1,a.prototype.size,!1),card:ta(0.5,k.prototype.size,!0),loopLimit:ta(0.5,$.prototype.size,!0),trapezoid:ia(0.5),parallelogram:ia(1)};Graph.createHandle=fa;Graph.handleFactory=ua;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a=
ua[this.state.style.shape];if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=ua[this.state.style.shape];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var qa=new mxPoint(1,0),ra=new mxPoint(1,0),ia=mxUtils.toRadians(-30),ja=Math.cos(ia),ia=Math.sin(ia),qa=mxUtils.getRotatedPoint(qa,ja,ia),ia=mxUtils.toRadians(-150),ja=Math.cos(ia),ia=Math.sin(ia),
-ra=mxUtils.getRotatedPoint(ra,ja,ia);mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==k&&null!=b&&(k=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var l=qa.x,p=qa.y,m=ra.x,r=ra.y,n="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){var s=k;a=function(a,b,c){a-=s.x;var d=
-b-s.y;b=(r*a-m*d)/(l*r-p*m);a=(p*a-l*d)/(p*m-l*r);n?(c&&(s=new mxPoint(s.x+l*b,s.y+p*b),e.push(s)),s=new mxPoint(s.x+m*a,s.y+r*a)):(c&&(s=new mxPoint(s.x+m*a,s.y+r*a),e.push(s)),s=new mxPoint(s.x+l*b,s.y+p*b));e.push(s)};null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Da=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=
+ra=mxUtils.getRotatedPoint(ra,ja,ia);mxEdgeStyle.IsometricConnector=function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null==k&&null!=b&&(k=new mxPoint(b.getCenterX(),b.getCenterY()));null==g&&null!=c&&(g=new mxPoint(c.getCenterX(),c.getCenterY()));var l=qa.x,n=qa.y,m=ra.x,p=ra.y,q="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){var s=k;a=function(a,b,c){a-=s.x;var d=
+b-s.y;b=(p*a-m*d)/(l*p-n*m);a=(n*a-l*d)/(n*m-l*p);q?(c&&(s=new mxPoint(s.x+l*b,s.y+n*b),e.push(s)),s=new mxPoint(s.x+m*a,s.y+p*a)):(c&&(s=new mxPoint(s.x+m*a,s.y+p*a),e.push(s)),s=new mxPoint(s.x+l*b,s.y+n*b));e.push(s)};null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var Da=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=
new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return Da.apply(this,arguments)};b.prototype.constraints=[];c.prototype.constraints=[];mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,
0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0.5,
-0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;y.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
+0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;e.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=
mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;g.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;X.prototype.constraints=mxEllipse.prototype.constraints;Y.prototype.constraints=mxEllipse.prototype.constraints;T.prototype.constraints=mxEllipse.prototype.constraints;ga.prototype.constraints=mxEllipse.prototype.constraints;
U.prototype.constraints=mxRectangleShape.prototype.constraints;ka.prototype.constraints=mxRectangleShape.prototype.constraints;na.prototype.constraints=mxRectangleShape.prototype.constraints;$.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.15,0.05),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.85,0.05),
-!1),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.3),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.7),!0),new mxConnectionConstraint(new mxPoint(0.15,0.95),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.85,0.95),!1)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,
-0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
+!1),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.3),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.7),!0),new mxConnectionConstraint(new mxPoint(0.15,0.95),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.85,0.95),!1)];E.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,
+0.1),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.75,0.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.5),!1)];S.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,
0),!0),new mxConnectionConstraint(new mxPoint(0,0.3),!0),new mxConnectionConstraint(new mxPoint(0,0.7),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.25,
0.2),!1),new mxConnectionConstraint(new mxPoint(0.1,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(0.75,0.25),!1),new mxConnectionConstraint(new mxPoint(0.9,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.75),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,1),!0)];f.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0.5,
0.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.75,0.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(0.5,0.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];l.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.35),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.65),!1),new mxConnectionConstraint(new mxPoint(1,
-0.35),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.65),!1),new mxConnectionConstraint(new mxPoint(0.25,1),!1),new mxConnectionConstraint(new mxPoint(0.75,0),!1)];v.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,
+0.35),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.65),!1),new mxConnectionConstraint(new mxPoint(0.25,1),!1),new mxConnectionConstraint(new mxPoint(0.75,0),!1)];u.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0.25,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.75,
1),!0),new mxConnectionConstraint(new mxPoint(0.1,0.25),!1),new mxConnectionConstraint(new mxPoint(0.2,0.5),!1),new mxConnectionConstraint(new mxPoint(0.1,0.75),!1),new mxConnectionConstraint(new mxPoint(0.9,0.25),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.9,0.75),!1)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.75,0.5),
-!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),
+!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),
new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.375,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.625,0),!0),new mxConnectionConstraint(new mxPoint(0.125,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0.125,0.75),!1),new mxConnectionConstraint(new mxPoint(0.875,
0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.5),!0),new mxConnectionConstraint(new mxPoint(0.875,0.75),!1),new mxConnectionConstraint(new mxPoint(0.375,1),!0),new mxConnectionConstraint(new mxPoint(0.5,1),!0),new mxConnectionConstraint(new mxPoint(0.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0.25),!1),new mxConnectionConstraint(new mxPoint(0.4,0.1),!1),new mxConnectionConstraint(new mxPoint(0.16,
-0.55),!1),new mxConnectionConstraint(new mxPoint(0.07,0.4),!1),new mxConnectionConstraint(new mxPoint(0.31,0.8),!1),new mxConnectionConstraint(new mxPoint(0.13,0.77),!1),new mxConnectionConstraint(new mxPoint(0.8,0.8),!1),new mxConnectionConstraint(new mxPoint(0.55,0.95),!1),new mxConnectionConstraint(new mxPoint(0.875,0.5),!1),new mxConnectionConstraint(new mxPoint(0.96,0.7),!1),new mxConnectionConstraint(new mxPoint(0.625,0.2),!1),new mxConnectionConstraint(new mxPoint(0.88,0.25),!1)];n.prototype.constraints=
-mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,
-0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;aa.prototype.constraints=null;J.prototype.constraints=null;N.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
-0.5),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];H.prototype.constraints=null;S.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.175,
+0.55),!1),new mxConnectionConstraint(new mxPoint(0.07,0.4),!1),new mxConnectionConstraint(new mxPoint(0.31,0.8),!1),new mxConnectionConstraint(new mxPoint(0.13,0.77),!1),new mxConnectionConstraint(new mxPoint(0.8,0.8),!1),new mxConnectionConstraint(new mxPoint(0.55,0.95),!1),new mxConnectionConstraint(new mxPoint(0.875,0.5),!1),new mxConnectionConstraint(new mxPoint(0.96,0.7),!1),new mxConnectionConstraint(new mxPoint(0.625,0.2),!1),new mxConnectionConstraint(new mxPoint(0.88,0.25),!1)];m.prototype.constraints=
+mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints;n.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.25,0),!0),new mxConnectionConstraint(new mxPoint(0.5,0),!0),new mxConnectionConstraint(new mxPoint(0.75,0),!0),new mxConnectionConstraint(new mxPoint(0,0.25),!0),new mxConnectionConstraint(new mxPoint(0,0.5),!0),new mxConnectionConstraint(new mxPoint(0,0.75),!0),new mxConnectionConstraint(new mxPoint(1,0.25),!0),new mxConnectionConstraint(new mxPoint(1,
+0.5),!0),new mxConnectionConstraint(new mxPoint(1,0.75),!0)];mxArrow.prototype.constraints=null;aa.prototype.constraints=null;J.prototype.constraints=null;M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];K.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1)];ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(1,
+0.5),!1),new mxConnectionConstraint(new mxPoint(0.5,0),!1),new mxConnectionConstraint(new mxPoint(0.5,1),!1)];H.prototype.constraints=null;R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0.25),!1),new mxConnectionConstraint(new mxPoint(0,0.5),!1),new mxConnectionConstraint(new mxPoint(0,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0.175,
0.25),!1),new mxConnectionConstraint(new mxPoint(0.25,0.5),!1),new mxConnectionConstraint(new mxPoint(0.175,0.75),!1),new mxConnectionConstraint(new mxPoint(1,0.5),!1),new mxConnectionConstraint(new mxPoint(0.7,0.1),!1),new mxConnectionConstraint(new mxPoint(0.7,0.9),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()}
Actions.prototype.init=function(){function a(a){d.escape();var b=d.getDeletableCells(d.getSelectionCells());if(null!=b&&0<b.length){var c=d.model.getParents(b);d.removeCells(b,a);if(null!=c){a=[];for(b=0;b<c.length;b++)(d.model.isVertex(c[b])||d.model.isEdge(c[b]))&&a.push(c[b]);d.setSelectionCells(a)}}}var b=this.editorUi,c=b.editor,d=c.graph,e=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){window.open(b.getUrl())});this.addAction("open...",
-function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var d=mxUtils.parseXml(a),e=new mxGraphModel;(new mxCodec(d)).decode(d.documentElement,e);var f=e.getChildren(e.getChildAt(e.getRoot(),0));c.graph.setSelectionCells(c.graph.importCells(f))}catch(q){mxUtils.alert(mxResources.get("invalidOrMissingFile")+
-": "+q.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=e;this.addAction("save",function(){b.saveFile(!1)},null,null,"Ctrl+S").isEnabled=e;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,"Ctrl+Shift+S").isEnabled=e;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,210,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,
+function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var d=mxUtils.parseXml(a),e=new mxGraphModel;(new mxCodec(d)).decode(d.documentElement,e);var f=e.getChildren(e.getChildAt(e.getRoot(),0));c.graph.setSelectionCells(c.graph.importCells(f))}catch(p){mxUtils.alert(mxResources.get("invalidOrMissingFile")+
+": "+p.message)}}));b.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=null})}).isEnabled=e;this.addAction("save",function(){b.saveFile(!1)},null,null,"Ctrl+S").isEnabled=e;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,"Ctrl+Shift+S").isEnabled=e;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,210,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,
420,!0,!0);a.init()});this.addAction("pageSetup...",function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=e;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print","Ctrl+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo","Ctrl+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",!mxClient.IS_WIN?"Ctrl+Shift+Z":"Ctrl+Y");
this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X");this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C");this.addAction("paste",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V");this.addAction("pasteHere",function(a){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){d.getModel().beginUpdate();try{var b=mxClipboard.paste(d);if(null!=b){var c=d.getBoundingBoxFromGeometry(b);
-if(null!=c){var e=d.view.translate,f=d.view.scale,q=e.y,p=Math.round(d.snap(d.popupMenuHandler.triggerX/f-e.x)),r=Math.round(d.snap(d.popupMenuHandler.triggerY/f-q));d.cellsMoved(b,p-c.x,r-c.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,"Ctrl+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,"Ctrl+D");this.addAction("turn",
+if(null!=c){var e=d.view.translate,f=d.view.scale,p=e.y,q=Math.round(d.snap(d.popupMenuHandler.triggerX/f-e.x)),s=Math.round(d.snap(d.popupMenuHandler.triggerY/f-p));d.cellsMoved(b,q-c.x,s-c.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,"Ctrl+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,"Ctrl+D");this.addAction("turn",
function(){d.setSelectionCells(d.turnShapes(d.getSelectionCells()))},null,null,"Ctrl+R");this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,"Ctrl+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,"Ctrl+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();
try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE,a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},
null,null,"Ctrl+Shift+Page Up");this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Ctrl+Shift+Page Down");this.addAction("expand",function(){d.foldCells(!1)},null,null,"Ctrl+Page Down");this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Ctrl+Page Up");this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container",
-"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("editData...",function(){var a=d.getSelectionCell()||d.getModel().getRoot();null!=a&&(a=new EditDataDialog(b,a),b.showDialog(a.container,
-320,320,!0,!1),a.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d="";if(mxUtils.isNode(c.value)){var e=c.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(b,mxResources.get("editTooltip")+":",d,function(b){a.setTooltipForCell(c,b)});b.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell());null!=
-a&&window.open(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d=a.getLinkForCell(c)||"";b.showLinkDialog(d,mxResources.get("apply"),function(b){b=mxUtils.trim(b);a.setLinkForCell(c,0<b.length?b:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=new LinkDialog(b,"",mxResources.get("insert"),function(a,b){a=mxUtils.trim(a);if(0<a.length){var c=a.substring(a.lastIndexOf("/")+
-1),e=null;null!=b&&0<b.length&&(e=b[0].iconUrl,c=b[0].name||b[0].type,c=c.charAt(0).toUpperCase()+c.substring(1),30<c.length&&(c=c.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),c=new mxCell(c,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=e?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+e:"spacing\x3d10;"));c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.setSelectionCell(d.addCell(c));
-d.scrollCellToVisible(d.getSelectionCell())}});b.showDialog(a.container,420,90,!0,!0);a.init()}}).isEnabled=e;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var c=a.getParentByName(a.getSelectedElement(),"A",a.cellEditor.textarea),d="";null!=c&&(d=c.getAttribute("href")||"");var e=a.cellEditor.saveSelection();b.showLinkDialog(d,mxResources.get("apply"),mxUtils.bind(this,function(b){a.cellEditor.restoreSelection(e);if(null!=
-b)if(0==b.length)document.execCommand("unlink",!1);else{for(var c=a.cellEditor.textarea.getElementsByTagName("a"),d=[],f=0;f<c.length;f++)d.push(c[f]);document.execCommand("createlink",!1,mxUtils.trim(b));b=a.cellEditor.textarea.getElementsByTagName("a");if(b.length==d.length+1)for(f=b.length-1;0<=f;f--)if(0==f||b[f]!=d[f-1]){b[f].setAttribute("target","_blank");break}}}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=e;this.addAction("autosize",
-function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var e=d.view.getState(c),f=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=e&&null!=e.text&&null!=f&&d.isWrapping(c)?(f=f.clone(),f.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,f)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+Shift+Y");this.addAction("formattedText",
-function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var c="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==a.style.html)c=null,"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&d.cellLabelChanged(a.cell,d.convertValueToString(a.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(a.cell,d.sanitizeHtml(e))}d.setCellStyles("html",c);b.fireEvent(new mxEventObject("styleChanged",
-"keys",["html"],"values",[null!=c?c:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",c=d.getView().getState(d.getSelectionCell());null!=c&&(a=c.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,
-a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,300,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",function(a){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",
-function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=a.y*d.view.scale,d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),
-null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/
-2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,
-parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+
-" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var f=null,f=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.isGridEnabled()});f.setEnabled(!1);f=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});f.setToggleAction(!0);
-f.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});f.setEnabled(!1);f=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});f=this.addAction("collapseExpand",function(){b.setFoldingEnabled(!d.foldingEnabled)});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.foldingEnabled});f.isEnabled=e;f=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});
-f.setToggleAction(!0);f.setSelectedCallback(function(){return d.scrollbars});f=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){b.pickColor(d.background||"none",function(a){b.setBackgroundColor(a)})}));f=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;
-b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionArrowsEnabled});f=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});f=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());
-b.fireEvent(new mxEventObject("copyConnectChanged"))});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});f.isEnabled=e;f=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.editor.autosave});f.isEnabled=e;f.visible=!1;this.addAction("help",function(){var a="";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);window.open(RESOURCES_PATH+
-"/help"+a+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){b.showDialog((new AboutDialog(b)).container,320,280,!0,!0)},null,null,"F1"));f=mxUtils.bind(this,function(a,b,c,e){return this.addAction(a,function(){null!=c&&d.cellEditor.isContentEditing()?c():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,b))},null,null,e)});f("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");f("italic",mxConstants.FONT_ITALIC,
-function(){document.execCommand("italic",!1,null)},"Ctrl+I");f("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});
-this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,
-null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,
-mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",
-function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged",
-"keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),c=d.view.getState(a[0]),e=null!=c?c.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,
-null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});
-this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),c="1";null!=a&&null!=d.getFoldingImage(a)&&(c="0");d.setCellStyles("collapsible",c);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[c],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",
-function(b){null!=b&&d.setCellStyle(mxUtils.trim(b),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=
-c.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var e=d.view.translate,f=d.view.scale,n=e.x,e=e.y,a=d.getModel().getParent(a),q=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=q;)n+=q.x,e+=q.y,a=d.getModel().getParent(a),q=d.getCellGeometry(a);n=Math.round(d.snap(d.popupMenuHandler.triggerX/f-n));f=Math.round(d.snap(d.popupMenuHandler.triggerY/f-e));b.addPointAt(b.state,n,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=
-a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var e=d.getCellGeometry(c);null!=e&&(e=e.clone(),e.points=null,d.getModel().setGeometry(c,e))}}}finally{d.getModel().endUpdate()}}});f=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),
-null,null,"Ctrl+,");f=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),e="";null!=c&&(e=c.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,
-b,c){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,b,c);else{var e=d.getSelectionCells();if(null!=a){var g=null;d.getModel().beginUpdate();try{if(0==e.length)var k=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,b,c,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,a,e);var l=d.view.getState(e[0]),u=null!=l?l.style:d.getCellStyle(e[0]);"image"!=u[mxConstants.STYLE_SHAPE]&&
-"label"!=u[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e);if(1==d.getSelectionCount()&&null!=b&&null!=c){var y=e[0],z=d.getModel().getGeometry(y);null!=z&&(z=z.clone(),z.width=b,z.height=c,d.getModel().setGeometry(y,z))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=e;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&
-(d.clearSelection(),b.actions.get("image").funct())}).isEnabled=e;f=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):
-this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));f=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));f=this.addAction("outline",mxUtils.bind(this,
-function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());b.fireEvent(new mxEventObject("outline"))}),
-null,null,"Ctrl+Shift+O");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,c,d,e){var f;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),f=mxResources.get(a)+"..."):f=mxResources.get(a);return this.put(a,new Action(f,b,c,d,e))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]};
-function Action(a,b,c,d,e){mxEventSource.call(this);this.label=a;this.funct=b;this.enabled=null!=c?c:!0;this.iconCls=d;this.shortcut=e;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
+"1"):d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=d.getSelectionCell()||
+d.getModel().getRoot();null!=a&&(a=new EditDataDialog(b,a),b.showDialog(a.container,320,320,!0,!1),a.init())},null,null,"Ctrl+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d="";if(mxUtils.isNode(c.value)){var e=c.value.getAttribute("tooltip");null!=e&&(d=e)}d=new TextareaDialog(b,mxResources.get("editTooltip")+":",d,function(b){a.setTooltipForCell(c,b)});b.showDialog(d.container,320,200,!0,!0);d.init()}});this.addAction("openLink",
+function(){var a=d.getLinkForCell(d.getSelectionCell());null!=a&&window.open(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var c=a.getSelectionCell(),d=a.getLinkForCell(c)||"";b.showLinkDialog(d,mxResources.get("apply"),function(b){b=mxUtils.trim(b);a.setLinkForCell(c,0<b.length?b:null)})}});this.addAction("insertLink",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=new LinkDialog(b,"",mxResources.get("insert"),
+function(a,b){a=mxUtils.trim(a);if(0<a.length){var c=a.substring(a.lastIndexOf("/")+1),e=null;null!=b&&0<b.length&&(e=b[0].iconUrl,c=b[0].name||b[0].type,c=c.charAt(0).toUpperCase()+c.substring(1),30<c.length&&(c=c.substring(0,30)+"..."));var f=d.getFreeInsertPoint(),c=new mxCell(c,new mxGeometry(f.x,f.y,100,40),"fontColor\x3d#0000EE;fontStyle\x3d4;rounded\x3d1;overflow\x3dhidden;"+(null!=e?"shape\x3dlabel;imageWidth\x3d16;imageHeight\x3d16;spacingLeft\x3d26;align\x3dleft;image\x3d"+e:"spacing\x3d10;"));
+c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.setSelectionCell(d.addCell(c));d.scrollCellToVisible(d.getSelectionCell())}});b.showDialog(a.container,420,90,!0,!0);a.init()}}).isEnabled=e;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var c=a.getParentByName(a.getSelectedElement(),"A",a.cellEditor.textarea),d="";null!=c&&(d=c.getAttribute("href")||"");var e=a.cellEditor.saveSelection();b.showLinkDialog(d,
+mxResources.get("apply"),mxUtils.bind(this,function(b){a.cellEditor.restoreSelection(e);if(null!=b)if(0==b.length)document.execCommand("unlink",!1);else{for(var c=a.cellEditor.textarea.getElementsByTagName("a"),d=[],f=0;f<c.length;f++)d.push(c[f]);document.execCommand("createlink",!1,mxUtils.trim(b));b=a.cellEditor.textarea.getElementsByTagName("a");if(b.length==d.length+1)for(f=b.length-1;0<=f;f--)if(0==f||b[f]!=d[f-1]){b[f].setAttribute("target","_blank");break}}}))}else a.isSelectionEmpty()?this.get("insertLink").funct():
+this.get("editLink").funct()})).isEnabled=e;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var e=d.view.getState(c),f=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=e&&null!=e.text&&null!=f&&d.isWrapping(c)?(f=f.clone(),f.height=e.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,f)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},
+null,null,"Ctrl+Shift+Y");this.addAction("formattedText",function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var c="1";d.stopEditing();d.getModel().beginUpdate();try{if("1"==a.style.html)c=null,"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&d.cellLabelChanged(a.cell,d.convertValueToString(a.cell).replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));else{var e=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(e=e.replace(/\n/g,"\x3cbr/\x3e"));d.cellLabelChanged(a.cell,
+d.sanitizeHtml(e))}d.setCellStyles("html",c);b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=c?c:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",c=d.getView().getState(d.getSelectionCell());
+null!=c&&(a=c.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,300,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,"Ctrl+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,"Ctrl + / Alt+Mousewheel");this.addAction("zoomOut",
+function(a){d.zoomOut()},null,null,"Ctrl - / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,"Ctrl+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=a.y*d.view.scale,d.container.scrollLeft=
+Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale,a=Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20;d.zoomTo(a);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y,(d.container.scrollHeight-d.container.clientHeight)/
+2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,"Ctrl+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)}}));this.put("customZoom",
+new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,"Ctrl+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.pageScale),mxResources.get("apply"),
+mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var f=null,f=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,"Ctrl+Shift+G");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.isGridEnabled()});f.setEnabled(!1);f=this.addAction("guides",function(){d.graphHandler.guidesEnabled=
+!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});f.setEnabled(!1);f=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});f=this.addAction("collapseExpand",function(){b.setFoldingEnabled(!d.foldingEnabled)});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.foldingEnabled});
+f.isEnabled=e;f=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.scrollbars});f=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.pageVisible});this.put("pageBackgroundColor",new Action(mxResources.get("backgroundColor")+"...",function(){b.pickColor(d.background||"none",function(a){b.setBackgroundColor(a)})}));
+f=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Ctrl+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionArrowsEnabled});f=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Ctrl+Shift+Q");f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isEnabled()});
+f=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});f.setToggleAction(!0);f.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});f.isEnabled=e;f=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});f.setToggleAction(!0);f.setSelectedCallback(function(){return b.editor.autosave});f.isEnabled=e;f.visible=!1;this.addAction("help",function(){var a=
+"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);window.open(RESOURCES_PATH+"/help"+a+".html")});this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){b.showDialog((new AboutDialog(b)).container,320,280,!0,!0)},null,null,"F1"));f=mxUtils.bind(this,function(a,b,c,e){return this.addAction(a,function(){null!=c&&d.cellEditor.isContentEditing()?c():(d.stopEditing(!1),d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,b))},null,null,e)});f("bold",
+mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},"Ctrl+B");f("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},"Ctrl+I");f("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},"Ctrl+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",
+function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});
+this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,
+null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],
+"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,
+"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),c=d.view.getState(a[0]),e=null!=c?c.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(e,mxConstants.STYLE_ROUNDED,"0")?
+"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"1"),b.fireEvent(new mxEventObject("styleChanged","keys",
+[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),c="1";null!=a&&null!=d.getFoldingImage(a)&&(c="0");d.setCellStyles("collapsible",c);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[c],"cells",d.getSelectionCells()))});this.addAction("editStyle...",mxUtils.bind(this,function(){var a=d.getSelectionCells();
+if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(b){null!=b&&d.setCellStyle(mxUtils.trim(b),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,"Ctrl+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,"Ctrl+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&
+b.clearDefaultStyle()},null,null,"Ctrl+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=c.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var e=d.view.translate,f=d.view.scale,m=e.x,e=e.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=p;)m+=p.x,e+=p.y,a=d.getModel().getParent(a),p=d.getCellGeometry(a);m=Math.round(d.snap(d.popupMenuHandler.triggerX/f-m));f=Math.round(d.snap(d.popupMenuHandler.triggerY/
+f-e));b.addPointAt(b.state,m,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var e=d.getCellGeometry(c);null!=e&&(e=e.clone(),e.points=null,d.getModel().setGeometry(c,e))}}}finally{d.getModel().endUpdate()}}});f=this.addAction("subscript",
+mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,"Ctrl+,");f=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,"Ctrl+.");this.addAction("image...",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",c=d.getView().getState(d.getSelectionCell()),e="";null!=c&&
+(e=c.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();b.showImageDialog(a,e,function(a,b,c){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,b,c);else{var e=d.getSelectionCells();if(null!=a){var g=null;d.getModel().beginUpdate();try{if(0==e.length)var k=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",k.x,k.y,b,c,"shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;")];d.setCellStyles(mxConstants.STYLE_IMAGE,
+a,e);var l=d.view.getState(e[0]),v=null!=l?l.style:d.getCellStyle(e[0]);"image"!=v[mxConstants.STYLE_SHAPE]&&"label"!=v[mxConstants.STYLE_SHAPE]&&d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e);if(1==d.getSelectionCount()&&null!=b&&null!=c){var z=e[0],y=d.getModel().getGeometry(z);null!=y&&(y=y.clone(),y.width=b,y.height=c,d.getModel().setGeometry(z,y))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=
+e;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&(d.clearSelection(),b.actions.get("image").funct())}).isEnabled=e;f=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),
+this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,"Ctrl+Shift+L");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));f=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,"Ctrl+Shift+P");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,
+function(){return 0<b.formatWidth}));f=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible());
+b.fireEvent(new mxEventObject("outline"))}),null,null,"Ctrl+Shift+O");f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,c,d,e){var f;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),f=mxResources.get(a)+"..."):f=mxResources.get(a);return this.put(a,new Action(f,b,c,d,e))};Actions.prototype.put=function(a,b){return this.actions[a]=b};
+Actions.prototype.get=function(a){return this.actions[a]};function Action(a,b,c,d,e){mxEventSource.call(this);this.label=a;this.funct=b;this.enabled=null!=c?c:!0;this.iconCls=d;this.shortcut=e;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(a){this.toggleAction=a};
Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.data=b||""};mxUtils.extend(DrawioFile,mxEventSource);DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.modified=!1;
DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=18E5;DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,b,c,d){this.updateFileData();this.clearAutosave()};DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData())};
DrawioFile.prototype.saveAs=function(a,b,c){};DrawioFile.prototype.saveFile=function(a,b,c,d){};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};
@@ -2580,134 +2580,189 @@ DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeLi
LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,c){this.saveAs(this.title,b,c)};LocalFile.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};
LocalFile.prototype.saveFile=function(a,b,c,d){this.title=a;this.updateFileData();var e=this.getData();this.ui.isOfflineApp()||this.ui.isLocalFileSave()?this.ui.doSaveLocalFile(e,a,"text/xml"):e.length<MAX_REQUEST_SIZE?(b=a.lastIndexOf("."),b=0<b?a.substring(b+1):"xml",(new mxXmlRequest(SAVE_URL,"format\x3d"+b+"\x26filename\x3d"+encodeURIComponent(a)+"\x26xml\x3d"+encodeURIComponent(e))).simulate(document,"_blank")):this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),
mxUtils.bind(this,function(){mxUtils.popup(e)}));this.setModified(!1);this.contentChanged();null!=c&&c()};LocalFile.prototype.rename=function(a,b,c){this.title=a;this.descriptorChanged();null!=b&&b()};LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};
-(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=
-null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";
-Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});
-MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};
-var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
-IMAGE_PATH+"/delete.png";Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?
-d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in","blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2","offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),g=null;0==f.length?(g=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,
-"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(g,a.firstChild):a.appendChild(g)):g=f[0];g.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var a=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=
-function(){a.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();
-this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+
-encodeURIComponent(a.getFileData(!0))}});Editor.prototype.appName="draw.io";EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;
-d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight="10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),
-mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));
-this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,
-4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),
-a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"\x3c"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};
-null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=
-c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var b=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(a){var c=b.apply(this,arguments);if(null==c)try{var d=a.indexOf("\x26lt;mxfile ");if(0<=d){var e=a.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(c=a.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(a),g=this.editor.extractGraphModel(f.documentElement),
-c=null!=g?mxUtils.getXml(g):""}catch(k){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;
-b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=
-a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.setFileData=
-function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",
-[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};
-var c=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(a){a=null!=a&&"mxlibrary"!=a.nodeName?this.extractGraphModel(a):null;if(null!=a){var b=a.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b=b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==a.nodeName){b=a.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==b||""==b)){if(d=null!=this.graph.themes?this.graph.themes["default-old"]:
-mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}}else b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==a.getAttribute("math");b=a.getAttribute("backgroundImage");
-null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==a.getAttribute("shadow"),!1)}c.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var b=d.apply(this,
-arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&b.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));b.setAttribute("math",this.graph.mathEnabled?"1":"0");b.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return b};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=
-null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;e.apply(this,arguments)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=
-38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");
-b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display=
-"none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=
-function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
-EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);
-return a};EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,
-0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));
-return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";
-f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),
-null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);
-var k=document.createElement("input");k.style.marginTop="16px";k.style.marginRight="8px";k.setAttribute("type","checkbox");e.isSelectionEmpty()&&k.setAttribute("disabled","disabled");f.appendChild(k);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var l=document.createElement("input");l.style.marginTop="16px";l.style.marginRight="8px";l.setAttribute("type","checkbox");f.appendChild(l);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(l.setAttribute("checked",
-"checked"),l.defaultChecked=!0);var m=document.createElement("input");m.style.marginTop="16px";m.style.marginRight="8px";m.setAttribute("type","checkbox");(this.isOffline()||!this.canvasSupported)&&m.setAttribute("disabled","disabled");a&&(f.appendChild(m),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight="8px";n.setAttribute("type","checkbox");n.style.marginBottom="8px";n.setAttribute("checked","checked");
-n.defaultChecked=!0;f.appendChild(n);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,!k.checked,l.checked,n.checked,m.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";
-var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),k=document.createElement("td"),l=document.createElement("input");l.setAttribute("type","text");mxUtils.write(k,"Username:");g.appendChild(k);k=k.cloneNode(!1);k.appendChild(l);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),m=document.createElement("input");m.setAttribute("type","password");mxUtils.write(k,"Password:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(m);
-g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),n=document.createElement("input");n.setAttribute("type","text");mxUtils.write(k,"Organisation:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(n);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),q=document.createElement("input");q.setAttribute("type","text");mxUtils.write(k,"Repository:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(q);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),A=
-document.createElement("input");A.setAttribute("type","text");mxUtils.write(k,"Path:");g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(A);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var F=a.lastIndexOf(".");0<F&&(a=a.substring(0,F));A.value=a+".png";var H=document.createElement("input");H.setAttribute("type","text");mxUtils.write(k,"Branch/Tag:");H.value="master";g=g.cloneNode(!1);g.appendChild(k);
-k=k.cloneNode(!1);k.appendChild(H);g.appendChild(k);f.appendChild(g);var k=k.cloneNode(!1),I=document.createElement("input");I.setAttribute("type","text");mxUtils.write(k,"Message:");I.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(k);k=k.cloneNode(!1);k.appendChild(I);g.appendChild(k);f.appendChild(g);k=k.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+n.value+"/"+
-q.value+"/contents/"+A.value+"?ref\x3d"+encodeURIComponent(H.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());var e={path:A.value,message:I.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+n.value+"/"+q.value+"/blob/"+H.value+"/"+A.value;var b=
-new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(l.value+
-":"+m.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+
-b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),k=f;0<g&&(k=f=k.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:k+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),l=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};
-try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();
-var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),
-function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var m=new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");m.send(mxUtils.bind(this,function(){200==m.getStatus()?k():l(m)}),mxUtils.bind(this,function(){l(m)}))}else k()}catch(p){this.handleError(p)}else l(a)}),mxUtils.bind(this,function(a){l(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,
-b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,k){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var l=this.editor.graph.isSelectionEmpty();f=null!=f?f:l;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=k?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,
-e);a(c,g.substring(g.lastIndexOf(",")+1),k,b)}catch(l){this.handleError(l)}}),null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(m){this.handleError(m)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*
-f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var k=new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));k.send(mxUtils.bind(this,function(){200==k.getStatus()?a(c,k.getText(),e,b):this.handleError(k)}))}catch(l){this.handleError(l)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);
-if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&
-(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':
-"")+mxUtils.getXml(b)};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,k,l,m,n,q){f=null!=f?f:!0;q=null!=q?q:this.editor.graph;var A=l?null:q.background;A==mxConstants.NONE&&(A=null);null==A&&(A=d);null==A&&!1==l&&(A="#ffffff");this.convertImages(q.getSvg(A,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height"));k=null!=
-k?k:1;null!=b&&(k=!f?b/g:Math.min(1,Math.min(3*b/(4*l),b/g)));e.setAttribute("width",Math.ceil(k*g));e.setAttribute("height",Math.ceil(k*l));g=e.getContext("2d");g.scale(k,k);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{m&&this.editor.addSvgShadow(c),this.convertMath(q,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,n)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();
-var b=a.convert;a.convert=function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var k=a.getElementsByTagName(c),l=0;l<k.length;l++)mxUtils.bind(this,
-function(c){var k=d.convert(c.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var l=f[k];null==l?(e++,this.convertImageToDataUri(k,function(d){null!=d&&(f[k]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,l)}})(k[l])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=
-document.createElement("canvas"),d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var k=mxUtils.parseXml(a),l=this.editor.extractGraphModel(k.documentElement,null!=this.pages);if(null!=l&&"mxfile"==l.nodeName&&null!=this.pages){var m=l.getElementsByTagName("diagram");if(1==m.length)l=
-mxUtils.parseXml(g.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){g.model.beginUpdate();try{for(var n=0;n<m.length;n++){var q=this.updatePageRoot(new DiagramPage(m[n])),A=this.pages.length;null==q.getName()&&q.setName(mxResources.get("pageWithNumber",[A+1]));g.model.execute(new ChangePage(this,q,q,A))}}finally{g.model.endUpdate()}}}if(null!=l&&"mxGraphModel"===l.nodeName){var F=new mxGraphModel;(new mxCodec(l.ownerDocument)).decode(l,F);var H=F.getChildCount(F.getRoot());
-g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};for(n=0;n<H;n++){var I=F.getChildAt(F.getRoot(),n);if(1==H&&!g.isCellLocked(g.getDefaultParent()))var M=F.getChildren(I),f=f.concat(g.importCells(M,b,c,g.getDefaultParent(),null,a));else I=g.importCells([I],0,0,g.model.getRoot(),null,a)[0],M=g.model.getChildren(I),g.moveCells(M,b,c),f=f.concat(M)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var L=g.getBoundingBoxFromGeometry(f,!0);null!=L&&g.moveCells(f,b-L.x,c-L.y)}}finally{g.model.endUpdate()}}}}catch(R){throw e||
-this.handleError(R,mxResources.get("invalidOrMissingFile")),R;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&
-(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var k=this.extractGraphModelFromPng(a),l=this.importXml(k,b,c,f,!0);if(0<l.length)return l}if("data:image/svg+xml;"==a.substring(0,19))try{if(k=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(k=a.substring(a.indexOf(",")+1),k=window.atob&&!mxClient.IS_SF?atob(k):Base64.decode(k,!0)):k=decodeURIComponent(a.substring(a.indexOf(",")+1)),l=this.importXml(k,
-b,c,f,!0),0<l.length)return l}catch(m){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),
-f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",
-[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
+(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC":
+IMAGE_PATH+"/delete.png";Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;"1"==urlParams.dev&&(Editor.prototype.editBlankUrl+="\x26dev\x3d1",Editor.prototype.editBlankFallbackUrl+="\x26dev\x3d1");var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(b){b=null!=b&&"mxlibrary"!=b.nodeName?this.extractGraphModel(b):null;if(null!=b){var c=b.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],d=c.getElementsByTagName("div");
+null!=d&&0<d.length&&(c=d[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==b.nodeName){c=b.getAttribute("style")||"default-style2";if("1"!=urlParams.embed&&(null==c||""==c)){if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}}else c!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+
+"/"+c+".xml").getDocumentElement(),null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==b.getAttribute("math");c=b.getAttribute("backgroundImage");null!=c?(c=JSON.parse(c),this.graph.setBackgroundImage(new mxImage(c.src,c.width,c.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;this.graph.setShadowVisible("1"==b.getAttribute("shadow"),
+!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",
+this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return c};var c=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled?!0:this.originalNoForeignObject;c.apply(this,arguments)};Editor.prototype.originalNoForeignObject=mxClient.NO_FO;var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,
+arguments);mxClient.NO_FO=this.graph.mathEnabled&&null!=Editor.MathJaxRender?!0:this.originalNoForeignObject};Editor.initMath=function(a,b){a=null!=a?a:"https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config\x3dTeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b||{jax:["input/TeX","input/MathML","input/AsciiMath",
+"output/HTML-CSS"],extensions:["tex2jax.js","mml2jax.js","asciimath2jax.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}};Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):
+Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};Editor.prototype.init=function(){this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var d=document.createElement("script");d.type="text/javascript";d.src=a;c[0].parentNode.appendChild(d)}};Editor.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,
+e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");e.setAttribute("id",this.graph.shadowId);var f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");f.setAttribute("in","SourceAlpha");f.setAttribute("stdDeviation","1.7");f.setAttribute("result","blur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");f.setAttribute("in",
+"blur");f.setAttribute("dx","3");f.setAttribute("dy","3");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");f.setAttribute("flood-color","#3D4574");f.setAttribute("flood-opacity","0.4");f.setAttribute("result","offsetColor");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feComposite"):d.createElement("feComposite");f.setAttribute("in","offsetColor");f.setAttribute("in2",
+"offsetBlur");f.setAttribute("operator","in");f.setAttribute("result","offsetBlur");e.appendChild(f);f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");f.setAttribute("in","SourceGraphic");f.setAttribute("in2","offsetBlur");e.appendChild(f);var f=a.getElementsByTagName("defs"),g=null;0==f.length?(g=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=a.firstChild?a.insertBefore(g,a.firstChild):a.appendChild(g)):
+g=f[0];g.appendChild(e);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.graph.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return e};if(window.ColorDialog){var e=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var f=ColorDialog.resetRecentColors;
+ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.getExportParameter=function(a,b){return function(){return"xml\x3d"+encodeURIComponent(a.getFileData(!0))}});if(null!=window.StyleFormatPanel){var g=Format.prototype.init;Format.prototype.init=function(){g.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",
+this.update)};var k=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?k.apply(this,arguments):this.clear()};var l=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=l.apply(this,arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},
+{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var n=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));n.apply(this,arguments)};var m=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=
+function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+
+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return m.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),g=0;g<f.length;g++)e=mxUtils.removeStylename(e,f[g]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,
+a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&
+(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(e),
+c(a[g])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace="normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",
+null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",
+stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
+a.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,g.length);b(g[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
+a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,g.length);b(g[this.editorUi.currentScheme])}));c(k);c(l);b(g[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),
+c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),b.setAttribute("title",mxResources.get("editShape")),
+b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName=
+"default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.edgeMode="move"!=urlParams.edge;var p=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}p.apply(this,arguments);var b=null;mxEvent.addListener(this.container,
+"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&
+"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var q=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=
+function(){q.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,
+c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=
+[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=
+[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=
+[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=
+[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=
+[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=
+[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var s=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,g,k,l,n){if(null!=c&&null==mxMarker.markers[c]){var m=this.getPackageForType(c);null!=m&&mxStencilRegistry.getStencil(m)}return s.apply(this,arguments)}})();
+(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.isElectronApp=window&&window.process&&window.process.type;EditorUi.plusImage=!mxClient.IS_SVG?IMAGE_PATH+"/plus.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII\x3d";
+EditorUi.spinImage=!mxClient.IS_SVG?IMAGE_PATH+"/spin.gif":"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw\x3d\x3d";
+EditorUi.prototype.emptyLibraryXml="\x3cmxlibrary\x3e[]\x3c/mxlibrary\x3e";EditorUi.prototype.mode=null;(function(){EditorUi.prototype.useCanvasForExport=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b,0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6<c.length}catch(d){}};b.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('\x3csvg xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"1px" height\x3d"1px" version\x3d"1.1"\x3e\x3cforeignObject pointer-events\x3d"all" width\x3d"1" height\x3d"1"\x3e\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e\x3c/div\x3e\x3c/foreignObject\x3e\x3c/svg\x3e')))}catch(c){}})();
+EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh();this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};
+EditorUi.prototype.movePickersToTop=function(){for(var a=document.getElementsByTagName("div"),b=0;b<a.length;b++)"picker modal-dialog picker-dialog"==a[b].className&&(a[b].style.zIndex=mxPopupMenu.prototype.zIndex+1)};EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape\x3dstencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE\x3d);whiteSpace\x3dwrap;html\x3d1;";
+EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return mxClient.IS_FF&&this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=
+new Spinner({lines:12,length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),e=d.spin;d.spin=function(c,f){var g=!1;if(!this.active){e.call(this,c);this.active=!0;if(null!=f&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight=
+"10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),g.innerHTML=f+"...",c.appendChild(g),d.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)))g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0,
+b+70-g.offsetHeight/2))+"px";this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,f)}));this.stop();return a});g=!0}return g};var f=d.stop;d.stop=function(){f.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=f;f+=b;return a.substring(c,f)}function e(a){a=d(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<
+16)+(a.charCodeAt(0)<<24)}var f=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=e(a);var g=d(a,4);if(null!=b&&b(f-8,g,c))break;value=d(a,c);d(a,4);if("IEND"==g)break}while(c)}};Editor.prototype.extractGraphModel=function(a,b){if(null!=a&&"undefined"!==typeof pako){var c=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=c&&0<c.length)for(var e=0;e<c.length;e++)if("mxgraph"==c[e].getAttribute("class")){d.push(c[e]);
+break}0<d.length&&(c=d[0].getAttribute("data-mxgraph"),null!=c?(d=JSON.parse(c),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(c=mxUtils.getTextContent(d[0]),c=this.graph.decompress(c),0<c.length&&(d=mxUtils.parseXml(c),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(c=a.getAttribute("content"),null!=c&&"\x3c"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&
+(c=decodeURIComponent(c)),null!=c&&0<c.length)a=mxUtils.parseXml(c).documentElement;else throw{message:mxResources.get("notADiagramFile")};null!=a&&!b&&(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(c=a.getElementsByTagName("diagram"),0<c.length&&(d=c[Math.max(0,Math.min(c.length-1,urlParams.page||0))])),null!=d&&(a=mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(d))).documentElement));if(null!=a&&"mxGraphModel"!=a.nodeName&&(!b||"mxfile"!=a.nodeName))a=null;return a};EditorUi.prototype.isCompatibleString=
+function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(d){}return!1};var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("\x26lt;mxfile ");if(0<=d){var e=b.lastIndexOf("\x26lt;/mxfile\x26gt;");e>d&&(c=b.substring(d,e+15).replace(/&gt;/g,"\x3e").replace(/&lt;/g,"\x3c").replace(/\\&quot;/g,
+'"').replace(/\n/g,""))}else var f=mxUtils.parseXml(b),g=this.editor.extractGraphModel(f.documentElement),c=null!=g?mxUtils.getXml(g):""}catch(s){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('\x3cmeta charset\x3d"utf-8"\x3e');0<=b&&(a=a.slice(0,b)+'\x3cmeta charset\x3d"utf-8"/\x3e'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:
+null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var f=this.updatePageRoot(new DiagramPage(d[e]));null==f.getName()&&f.setName(mxResources.get("pageWithNumber",[e+1]));
+b.model.execute(new ChangePage(this,f,0==e?f:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)b.model.execute(new ChangePage(this,
+c[e],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,f,g,r,t){b=null!=b?b:this.editor.graph;e=null!=e?e:!1;t=null!=t?t:!0;var u=null,v=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?u="_blank":v=u=d;if(null==a)return"";var z=a;if("mxfile"!=z.nodeName.toLowerCase()){var y=b.zapGremlins(mxUtils.getXml(a)),z=b.compress(y);if(b.decompress(z)!=y)return y;y=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(y,z);z=a.ownerDocument.createElement("mxfile");
+z.appendChild(y)}z.setAttribute("userAgent",navigator.userAgent);z.setAttribute("version",EditorUi.VERSION);z.setAttribute("editor","www.draw.io");a=null!=c?c.getMode():this.mode;null!=a&&z.setAttribute("type",a);a=mxUtils.getXml(z);if(!f&&!e&&(g||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(z),b,null!=c?c.getTitle():null,u,v);else if(f||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle())){if(null!=c&&(c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER))d=null;a=this.getEmbeddedSvg(a,
+b,d,null,r,t,v)}return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var e=0;e<this.pages.length;e++){var f=this.pages[e].mapping;this.currentPage!=this.pages[e]&&null!=f&&
+f.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel),f.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[e].node,d),f.needsUpdate=!1);c.appendChild(this.pages[e].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,f,g){e=null!=e?e:!0;g=null!=g?g:this.getXmlFileData(e,null!=f?f:!1);f=this.editor.graph;var r=this.getCurrentFile();if(null!=this.pages&&this.currentPage!=this.pages[0]&&
+(b||!a&&null!=r&&/(\.svg)$/i.test(r.getTitle()))){f=this.createTemporaryGraph(f.getStylesheet());var t=f.getGlobalVariable,u=this.pages[0];f.getGlobalVariable=function(a){return"page"==a?u.getName():"pagenumber"==a?1:t.apply(this,arguments)};document.body.appendChild(f.container);f.model.setRoot(u.root)}a=this.createFileData(g,f,r,window.location.href,a,b,c,d,e);f!=this.editor.graph&&f.container.parentNode.removeChild(f.container);return a};EditorUi.prototype.getHtml=function(a,b,c,d,e,f){f=null!=
+f?f:!0;var g=null,r="https://www.draw.io/js/embed-static.min.js";if(null!=b){var g=f?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),t=b.view.scale;f=Math.floor(g.x/t-b.view.translate.x);t=Math.floor(g.y/t-b.view.translate.y);g=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(r="https://www.draw.io/embed.js?s\x3d"+b));a.setAttribute("x0",f);a.setAttribute("y0",t)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize","0"),a.setAttribute("fit",
+"0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':
+"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+"\x3c/head\x3e\n\x3cbody"+(null==e&&null!=g&&g!=mxConstants.NONE?' style\x3d"background-color:'+g+';"\x3e':"\x3e")+'\n\x3cdiv class\x3d"mxgraph" style\x3d"position:relative;overflow:auto;width:100%;"\x3e\n\x3cdiv style\x3d"width:1px;height:1px;overflow:hidden;"\x3e'+
+d+"\x3c/div\x3e\n\x3c/div\x3e\n"+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+r+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){d="https://www.draw.io/js/viewer.min.js";var f="";null!=b&&null==e&&(f=this.getBasenames().join(";"),
+0<f.length&&(d="https://www.draw.io/embed2.js?s\x3d"+f));null!=e&&(e=e.replace(/&/g,"\x26amp;"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==e?'\x3c!--[if IE]\x3e\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d5,IE\x3d9" \x3e\x3c![endif]--\x3e\n':"")+"\x3c!DOCTYPE html\x3e\n\x3chtml"+
+(null!=e?' xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e':"\x3e")+"\n\x3chead\x3e\n"+(null==e?null!=c?"\x3ctitle\x3e"+mxUtils.htmlEntities(c)+"\x3c/title\x3e\n":"":"\x3ctitle\x3eDraw.io Diagram\x3c/title\x3e\n")+(null!=e?'\x3cmeta http-equiv\x3d"refresh" content\x3d"0;URL\x3d\''+e+"'\"/\x3e\n":"")+'\x3cmeta charset\x3d"utf-8"/\x3e\n\x3c/head\x3e\n\x3cbody\x3e\n\x3cdiv class\x3d"mxgraph" style\x3d"max-width:100%;border:1px solid transparent;" data-mxgraph\x3d"'+mxUtils.htmlEntities(JSON.stringify(a))+
+'"\x3e\x3c/div\x3e\n'+(null==e?'\x3cscript type\x3d"text/javascript" src\x3d"'+d+'"\x3e\x3c/script\x3e':'\x3ca style\x3d"position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href\x3d"'+e+'" target\x3d"_blank"\x3e\x3cimg border\x3d"0" src\x3d"https://www.draw.io/images/drawlogo128.png"/\x3e\x3c/a\x3e')+"\n\x3c/body\x3e\n\x3c/html\x3e\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length?
+mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||
+0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.downloadFile=function(a,b,c,d,e){try{var f=this.getCurrentFile();d=null!=d?d:this.editor.graph.isSelectionEmpty();
+var g=null!=f&&null!=f.getTitle()?f.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(g)||/(\.html)$/i.test(g)||/(\.svg)$/i.test(g))g=g.substring(0,g.lastIndexOf("."));var r=g+"."+a;if("xml"==a){var t='\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(r,a,t,"text/xml")}else if("html"==a)t=this.getHtml2(this.getFileData(!0),this.editor.graph,g),this.saveData(r,a,t,"text/html");else if(("svg"==
+a||"xmlsvg"==a)&&this.spinner.spin(document.body,mxResources.get("export"))){var u=null,v=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(r,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(u)}))});if("svg"==a){var z=this.editor.graph.background;z==mxConstants.NONE&&(z=null);var y=this.editor.graph.getSvg(z,null,null,!1,null,d);c&&this.editor.addSvgShadow(y);this.convertImages(y,
+mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();v('\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n'+mxUtils.getXml(a))})))}else r=g+".svg",u=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();v(a)}),d)}else{var x=this.editor.graph.getGraphBounds(),t=this.getFileData(!0,null,null,null,d,"xmlpng"!=a),E="";if(x.width*x.height<=MAX_AREA&&t.length<=
+MAX_REQUEST_SIZE){var C="0";if("xmlpng"==a&&(C="1",a="png",r=g+"."+a,null!=this.pages&&null!=this.currentPage))for(b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){E="\x26from\x3d"+b;break}this.saveRequest(t,r,a,function(b,c){return new mxXmlRequest(EXPORT_URL,"format\x3d"+a+E+"\x26base64\x3d"+c+"\x26embedXml\x3d"+C+"\x26xml\x3d"+encodeURIComponent(t)+(null!=b?"\x26filename\x3d"+encodeURIComponent(b):""))})}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}}catch(F){this.handleError(F)}};
+EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.fileLoaded=function(a){this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var c=mxUtils.bind(this,function(){this.diagramContainer.style.visibility="hidden";this.formatContainer.style.visibility="hidden";this.hsplit.style.display="none";this.sidebarContainer.style.display=
+"none";this.sidebarFooterContainer.style.display="none";this.editor.graph.setEnabled(!1);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.updateUi();this.showSplash()});if(null!=a)try{if(this.setCurrentFile(a),a.addListener("descriptorChanged",
+this.descriptorChangedListener),a.addListener("contentChanged",this.descriptorChangedListener),this.setMode(a.getMode()),this.descriptorChanged(),a.open(),this.diagramContainer.style.visibility="",this.formatContainer.style.visibility="",this.hsplit.style.display="",this.sidebarContainer.style.display="",this.sidebarFooterContainer.style.display="",this.editor.undoManager.clear(),this.updateUi(),null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus(mxResources.get("readOnly"))),
+this.editor.chromeless?this.editor.graph.lightbox&&this.lightboxFit():(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries()),this.chromelessResize&&this.chromelessResize(),this.editor.fireEvent(new mxEventObject("fileLoaded")),this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE)try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(d){}}catch(e){null!=window.console&&console.log("error in fileLoaded:",a,e),this.handleError(e,mxResources.get("errorLoadingFile"),
+mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?this.fileLoaded(b):c()}))}else c()};EditorUi.prototype.toggleScratchpad=function(){if(isLocalStorage||mxClient.IS_CHROMEAPP)null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad)};
+EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];
+if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName)b=JSON.parse(mxUtils.getTextContent(b.documentElement)),this.libraryLoaded(a,
+b);else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.libraryLoaded=function(a,b){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var d=null,e=mxUtils.bind(this,function(b,c){if(0==b.length&&a.isEditable())null==d&&(d=document.createElement("div"),mxUtils.setPrefixedStyle(d.style,"borderRadius",
+"6px"),d.style.border="3px dotted lightGray",d.style.textAlign="center",d.style.padding="8px",d.style.color="#B3B3B3",mxUtils.write(d,mxResources.get("dragElementsHere"))),c.appendChild(d);else for(var e=0;e<b.length;e++){var f=b[e],g=f.data;if(null!=g){var g=this.convertDataUri(g),l="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;",l="fixed"==f.aspect?l+"aspect\x3dfixed;":l+"imageAspect\x3d0;";c.appendChild(this.sidebar.createVertexTemplate(l+"image\x3d"+g,f.w,f.h,"",f.title||
+"",!1,!1,!1))}else null!=f.xml&&(g=this.stringToCells(this.editor.graph.decompress(f.xml)),0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,f.w,f.h,f.title||"",!0,!1,!1)))}}),f=this.sidebar.addPalette(a.getHash(),a.getTitle(),!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var c=f.parentNode.previousSibling,g=c.getAttribute("title");null!=g&&0<g.length&&".scratchpad"!=a.title&&c.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+g);var r=document.createElement("div");
+r.style.position="absolute";r.style.right="0px";r.style.top="5px";c.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Dialog.prototype.closeImage);t.setAttribute("title",mxResources.get("close"));t.setAttribute("align","top");t.setAttribute("border","0");t.style.cursor="pointer";t.style.marginRight="8px";t.style.marginTop="3px";r.appendChild(t);var u=null;mxEvent.addListener(t,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,
+function(){this.closeLibrary(a)});null!=u?this.confirm(mxResources.get("allChangesLost"),c):c();mxEvent.consume(b)}}));mxEvent.addListener(f,"mousemove",mxUtils.bind(this,function(a){mxEvent.getSource(a)==f?f.setAttribute("title",mxResources.get("libraryTooltip")):f.removeAttribute("title")}));if(a.isEditable()){var v=this.editor.graph,z=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),f,b,a,a.getMode());mxEvent.consume(c)}),y=mxUtils.bind(this,function(c){a.constructor!=LocalLibrary||
+a.isAutosave()?(null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C),C=t.cloneNode(!1),C.setAttribute("src",EditorUi.spinImage),C.setAttribute("title",mxResources.get("saving")),C.style.cursor="default",C.style.marginRight="6px",C.style.marginTop="2px",r.insertBefore(C,r.firstChild),this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C)})):null==u&&(u=t.cloneNode(!1),u.setAttribute("src",IMAGE_PATH+"/download.png"),u.setAttribute("title",
+mxResources.get("save")),r.insertBefore(u,r.firstChild),mxEvent.addListener(u,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0);u.parentNode.removeChild(u);u=null;mxEvent.consume(c)})))}),x=mxUtils.bind(this,function(a,c,e,g){a=v.cloneCells(v.model.getTopmostCells(a));for(var k=0;k<a.length;k++){var n=v.getCellGeometry(a[k]);null!=n&&n.translate(-c.x,-c.y)}f.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,g||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),
+w:c.width,h:c.height};null!=g&&(a.title=g);b.push(a);y(e);null!=d&&null!=d.parentNode&&0<b.length&&(d.parentNode.removeChild(d),d=null)}),E=mxUtils.bind(this,function(a){if(v.isSelectionEmpty())v.getRubberband().isActive()?(v.getRubberband().execute(a),v.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=v.getSelectionCells(),c=v.view.getBounds(b),d=v.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=v.view.translate.x;
+c.y-=v.view.translate.y;x(b,c)}mxEvent.consume(a)});f.style.border="3px solid transparent";mxEvent.addGestureListeners(f,function(){},mxUtils.bind(this,function(a){v.isMouseDown&&null!=v.panningManager&&null!=v.graphHandler.shape&&(v.graphHandler.shape.node.style.visibility="hidden",null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)",f.style.cursor="copy",v.panningManager.stop(),v.autoScroll=!1,null!=v.graphHandler.guide&&v.graphHandler.guide.setVisible(!1),
+null!=v.graphHandler.hint&&(v.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){v.isMouseDown&&null!=v.panningManager&&null!=v.graphHandler&&(f.style.border="3px solid transparent",null!=d&&(d.style.border="3px dotted lightGray"),f.style.cursor="default",this.sidebar.showTooltips=!0,v.panningManager.stop(),v.graphHandler.reset(),v.isMouseDown=!1,v.autoScroll=!0,E(a),mxEvent.consume(a))}));mxEvent.addListener(f,"mouseleave",mxUtils.bind(this,function(a){v.isMouseDown&&
+null!=v.graphHandler.shape&&(v.graphHandler.shape.node.style.visibility="visible",f.style.border="3px solid transparent",f.style.cursor="",v.autoScroll=!0,null!=v.graphHandler.guide&&v.graphHandler.guide.setVisible(!0),null!=v.graphHandler.hint&&(v.graphHandler.hint.style.visibility="visible"),null!=d&&(d.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(f,"dragover",mxUtils.bind(this,function(a){null!=d?d.style.border="3px dotted rgb(254, 137, 12)":f.style.border="3px dotted rgb(254, 137, 12)";
+a.dataTransfer.dropEffect="copy";f.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"drop",mxUtils.bind(this,function(a){f.style.border="3px solid transparent";f.style.cursor="";null!=d&&(d.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,g,k,n,s,r,t){if(null!=c&&"image/"==g.substring(0,6)){var v="shape\x3dimage;verticalLabelPosition\x3dbottom;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+
+this.convertDataUri(c),v=[new mxCell("",new mxGeometry(0,0,s,r),v)];v[0].vertex=!0;x(v,new mxRectangle(0,0,s,r),a,mxEvent.isAltDown(a)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," "))}else{t=!1;if(null!=c&&"text/xml"==g)if(c=mxUtils.parseXml(c),"mxlibrary"==c.documentElement.nodeName)try{var u=JSON.parse(mxUtils.getTextContent(c.documentElement));e(u,f);b=b.concat(u);y(a);this.spinner.stop();t=!0}catch(z){}else if("mxfile"==c.documentElement.nodeName)try{u=mxUtils.getTextContent(c.documentElement.getElementsByTagName("diagram")[0]),
+v=this.stringToCells(this.editor.graph.decompress(u)),x(v,new mxRectangle(0,0,s,r),a),t=!0}catch(A){}t||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}))}null!=d&&null!=d.parentNode&&0<b.length&&(d.parentNode.removeChild(d),d=null)}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(f,"dragleave",function(a){null!=d?d.style.border="3px dotted lightGray":(f.style.border="3px solid transparent",f.style.cursor="");a.stopPropagation();a.preventDefault()}));
+t=t.cloneNode(!1);t.setAttribute("src",IMAGE_PATH+"/edit.gif");t.setAttribute("title",mxResources.get("edit"));r.insertBefore(t,r.firstChild);mxEvent.addListener(t,"click",z);mxEvent.addListener(f,"dblclick",function(a){mxEvent.getSource(a)==f&&z(a)});t=t.cloneNode(!1);t.setAttribute("src",EditorUi.plusImage);t.setAttribute("title",mxResources.get("add"));r.insertBefore(t,r.firstChild);this.isOffline()||(g=document.createElement("span"),g.setAttribute("title",mxResources.get("help")),g.style.cssText=
+"color:gray;text-decoration:none;margin-right:8px;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(a){window.open("https://support.draw.io/questions/10420280");mxEvent.consume(a)})),r.insertBefore(g,r.firstChild));var C=null;mxEvent.addListener(t,"click",E)}c.appendChild(r)};"1"==urlParams.offline?EditorUi.prototype.footerHeight=4:("atlas"==uiTheme?("undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",
+Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition=188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight=740>=screen.height?
+5:46,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b,"click",mxUtils.bind(this,
+function(){this.hideFooter()}))}return a});EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display="none",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,c,d,e){a=new ImageDialog(this,a,b,c,d,e);this.showDialog(a.container,Graph.fileSupport?420:340,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.setBackgroundImage(a)});
+var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer");a.style.position="absolute";a.style.overflow=
+"hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=this.spinner.pause(),e=null!=a&&null!=a.error?a.error:a;if(null!=e||
+null!=b){a=mxResources.get("unknownError");var f=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=e)if("undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxResources.get("forbidden");else if(404==e.code||404==e.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&e.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxResources.get("fileNotFoundOrDenied");
+var r=window.location.hash;null!=r&&"#G"==r.substring(0,2)&&(r=r.substring(2),a+=' \x3ca href\x3d"https://drive.google.com/open?id\x3d'+r+'" target\x3d"_blank"\x3e'+mxResources.get("tryOpeningViaThisPage")+"\x3c/a\x3e")}else e.code==App.ERROR_TIMEOUT?(a=mxResources.get("timeout"),null!=e.retry&&(f=mxResources.get("cancel"),g=function(){d();e.retry()})):e.code==App.ERROR_BUSY?a=mxResources.get("busy"):null!=e.message?a=e.message:null!=e.response&&null!=e.response.error&&(a=e.response.error);this.showError(b,
+a,f,c,g)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c){var d=null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){d();null!=b&&b()},
+function(){d();null!=c&&c()})).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=
+function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createPngDataUri=function(a,b){var c=a.toDataURL("image/png");if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/png"))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return c};EditorUi.prototype.saveCanvas=function(a,b){var c=this.getCurrentFile(),c=null!=c&&null!=c.getTitle()?c.getTitle():this.defaultFilename,
+d=c.lastIndexOf(".");0<d&&(c=c.substring(0,d));c+=".png";d=this.createPngDataUri(a,b);this.saveLocalFile(d.substring(d.lastIndexOf(",")+1),c,"image/png",!0)};EditorUi.prototype.showRemoteExportDialog=function(a,b,c){var d=this.editor.graph,e=document.createElement("div");e.style.padding="6px";var f=document.createElement("input");f.style.marginRight="8px";f.setAttribute("type","checkbox");d.isSelectionEmpty()&&f.setAttribute("disabled","disabled");e.appendChild(f);mxUtils.write(e,mxResources.get("selectionOnly"));
+mxUtils.br(e);var g=document.createElement("input");g.setAttribute("type","checkbox");g.setAttribute("checked","checked");g.defaultChecked=!0;g.style.marginRight="8px";g.style.marginTop="16px";e.appendChild(g);mxUtils.write(e,mxResources.get("includeCopyOfMyDiagram"));a=new CustomDialog(this,e,mxUtils.bind(this,function(){c(!f.checked,g.checked)}),null,a,b);this.showDialog(a.container,300,120,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d){var e=this.editor.graph,f=document.createElement("div");
+f.style.paddingTop="20px";f.style.paddingRight="8px";var g=document.createElement("input");g.style.marginRight="8px";g.setAttribute("type","checkbox");if(e.background==mxConstants.NONE||null==e.background)g.setAttribute("checked","checked"),g.defaultChecked=!0;f.appendChild(g);mxUtils.write(f,mxResources.get("transparentBackground"));mxUtils.br(f);var r=document.createElement("input");r.style.marginTop="16px";r.style.marginRight="8px";r.setAttribute("type","checkbox");e.isSelectionEmpty()&&r.setAttribute("disabled",
+"disabled");f.appendChild(r);mxUtils.write(f,mxResources.get("selectionOnly"));mxUtils.br(f);var t=document.createElement("input");t.style.marginTop="16px";t.style.marginRight="8px";t.setAttribute("type","checkbox");f.appendChild(t);mxUtils.write(f,mxResources.get("shadow"));mxUtils.br(f);e.shadowVisible&&(t.setAttribute("checked","checked"),t.defaultChecked=!0);var u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight="8px";u.setAttribute("type","checkbox");(this.isOffline()||
+!this.canvasSupported)&&u.setAttribute("disabled","disabled");a&&(f.appendChild(u),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f));var v=document.createElement("input");v.style.marginTop="16px";v.style.marginRight="8px";v.setAttribute("type","checkbox");v.style.marginBottom="8px";v.setAttribute("checked","checked");v.defaultChecked=!0;f.appendChild(v);mxUtils.write(f,mxResources.get("includeCopyOfMyDiagram"));b=new FilenameDialog(this,100,b,mxUtils.bind(this,function(a){d(a,g.checked,
+!r.checked,t.checked,v.checked,u.checked)}),mxResources.get("zoom")+" (%)",null,f,!this.isOffline()?c:null);this.showDialog(b.container,320,a?266:240,!0,!0);b.init()};EditorUi.prototype.uploadToGithub=function(a,b,c){var d=this.spinner.pause();c=document.createElement("div");c.style.paddingTop="20px";c.style.paddingRight="8px";var e=document.createElement("table"),f=document.createElement("tbody"),g=document.createElement("tr"),r=document.createElement("td"),t=document.createElement("input");t.setAttribute("type",
+"text");mxUtils.write(r,"Username:");g.appendChild(r);r=r.cloneNode(!1);r.appendChild(t);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),u=document.createElement("input");u.setAttribute("type","password");mxUtils.write(r,"Password:");g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(u);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),v=document.createElement("input");v.setAttribute("type","text");mxUtils.write(r,"Organisation:");g=g.cloneNode(!1);g.appendChild(r);r=
+r.cloneNode(!1);r.appendChild(v);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),z=document.createElement("input");z.setAttribute("type","text");mxUtils.write(r,"Repository:");g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(z);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),y=document.createElement("input");y.setAttribute("type","text");mxUtils.write(r,"Path:");g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(y);g.appendChild(r);f.appendChild(g);
+r=r.cloneNode(!1);a=this.getCurrentFile();a=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;var x=a.lastIndexOf(".");0<x&&(a=a.substring(0,x));y.value=a+".png";var E=document.createElement("input");E.setAttribute("type","text");mxUtils.write(r,"Branch/Tag:");E.value="master";g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(E);g.appendChild(r);f.appendChild(g);var r=r.cloneNode(!1),C=document.createElement("input");C.setAttribute("type","text");mxUtils.write(r,"Message:");
+C.value="Updated "+a+".png";g=g.cloneNode(!1);g.appendChild(r);r=r.cloneNode(!1);r.appendChild(C);g.appendChild(r);f.appendChild(g);r=r.cloneNode(!1);e.appendChild(f);c.appendChild(e);c=new FilenameDialog(this,null,mxResources.get("publish"),mxUtils.bind(this,function(){var a="https://api.github.com/repos/"+v.value+"/"+z.value+"/contents/"+y.value+"?ref\x3d"+encodeURIComponent(E.value);d();mxUtils.get(a,mxUtils.bind(this,function(c){if(200==c.getStatus()||404==c.getStatus()){c=JSON.parse(c.getText());
+var e={path:y.value,message:C.value,content:b};null!=c.sha&&(e.sha=c.sha);var f=new XMLHttpRequest;f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&300>f.status){this.spinner.stop();this.hideDialog();a="https://github.com/"+v.value+"/"+z.value+"/blob/"+E.value+"/"+y.value;var b=new ErrorDialog(this,mxResources.get("published"),mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"]),mxResources.get("close"),mxUtils.bind(this,
+function(){this.hideDialog()}),null,mxResources.get("openInNewWindow"),mxUtils.bind(this,function(){window.open(a)}),!1);this.showDialog(b.container,340,170,!0,!1);b.init()}else d=this.spinner.pause(),this.handleError(JSON.parse(f.responseText))});f.open("PUT",a,!0);f.setRequestHeader("Authorization","Basic "+btoa(t.value+":"+u.value));f.send(JSON.stringify(e))}else this.hideDialog(),this.spinner.stop(),this.handleError(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){this.hideDialog();this.spinner.stop();
+this.handleError({message:mxResources.get("unknownError")})}))}),null,null,c,null,!1);this.showDialog(c.container,260,260,!0,!1);c.init()};EditorUi.prototype.uploadToImgur=function(a,b,c,d){var e=this.spinner.pause(),f=new ErrorDialog(this,mxResources.get("warning"),'\x3cimg style\x3d"max-width:300px;max-height:80px;margin-bottom:20px;padding:6px;border:1px solid gray;" src\x3d"data:image/png;base64,'+b+'"/\x3e\x3cbr\x3e'+mxResources.get("publishConfirmation"),mxResources.get("cancel"),mxUtils.bind(this,
+function(){}),null,mxResources.get("publish"),mxUtils.bind(this,function(){e();var f=null!=a.getTitle()?a.getTitle():this.defaultFilename,g=f.lastIndexOf("."),q=f;0<g&&(q=f=q.substring(0,g));var g=new mxXmlRequest("/imgur",JSON.stringify({type:"base64",image:b,name:q+".png",title:f,description:"Made with https://www.draw.io"}),"POST"),u=mxUtils.bind(this,function(a){var b={message:mxResources.get("unknownError")};try{var c=JSON.parse(a.getText()),b={message:c.message||c.data.error}}catch(d){}this.handleError(b)});
+g.send(mxUtils.bind(this,function(a){if(200==a.getStatus())try{var b=JSON.parse(a.getText()),e="https://www.draw.io/i/"+b.data.id;try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity\x3dCONFIG\x26msg\x3dimgur-published:"+b.data.id+"\x26v\x3d"+encodeURIComponent(EditorUi.VERSION)+"\x26ts\x3d"+(new Date).getTime()}catch(g){}var k=mxUtils.bind(this,function(){this.spinner.stop();var a="https://imgur.com/"+b.data.id,f="https://www.draw.io/imgur?delete\x3d"+b.data.deletehash,
+a=new ErrorDialog(this,mxResources.get("published"),(c?mxResources.get("viewUrl",['\x3ca href\x3d"'+e+'" target\x3d"_blank"\x3e'+e+"\x3c/a\x3e"])+"\x3cbr\x3e":"")+mxResources.get("publishedAt",['\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"])+"\x3cbr\x3e"+mxResources.get("deleteUrl",[f]),mxResources.get("close"),mxUtils.bind(this,function(){this.hideDialog()}),null,mxResources.get("share"),function(){d(b.data.id,c)},!1);this.showDialog(a.container,340,180,!0,!1);a.init()});if(c){var l=
+new mxXmlRequest("/imgur?"+b.data.deletehash,JSON.stringify({title:f,description:mxResources.get("viewUrl",[e])}),"POST");l.send(mxUtils.bind(this,function(){200==l.getStatus()?k():u(l)}),mxUtils.bind(this,function(){u(l)}))}else k()}catch(p){this.handleError(p)}else u(a)}),mxUtils.bind(this,function(a){u(a)}))}));this.showDialog(f.container,320,250,!0,!1);f.init()};EditorUi.prototype.publishImage=function(a,b){var c=this.getCurrentFile();null!=c&&(this.isExportToCanvas()?this.showExportDialog(!1,
+mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e,f,g,r){d=parseInt(d);if(!isNaN(d)&&0<d){d/=100;var t=this.editor.graph.isSelectionEmpty();f=null!=f?f:t;if(this.spinner.spin(document.body,mxResources.get("publishing")))try{this.exportToCanvas(mxUtils.bind(this,function(d){try{var e=r?this.getFileData(!0,null,null,null,f):null,g=this.createPngDataUri(d,e);a(c,g.substring(g.lastIndexOf(",")+1),r,b)}catch(m){this.handleError(m)}}),
+null,null,null,mxUtils.bind(this,function(a){this.handleError(a)}),null,f,d||1,e,g)}catch(u){this.handleError(u)}}})):this.showRemoteExportDialog(mxResources.get("publish"),"https://support.draw.io/pages/viewpage.action?pageId\x3d12222625",mxUtils.bind(this,function(d,e){if(this.spinner.spin(document.body,mxResources.get("publishing"))){var f=this.editor.graph.getGraphBounds(),g=this.getFileData(!0,null,null,null,d);if(f.width*f.height<=MAX_AREA&&g.length<=MAX_REQUEST_SIZE)try{var r=new mxXmlRequest(EXPORT_URL,
+"format\x3dpng\x26base64\x3d1\x26embedXml\x3d"+(e?"1":"0")+"\x26xml\x3d"+encodeURIComponent(g));r.send(mxUtils.bind(this,function(){200==r.getStatus()?a(c,r.getText(),e,b):this.handleError(r)}))}catch(t){this.handleError(t)}else this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"))}})))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+
+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){d()};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,f,g){g=null;null!=b&&(g=b.background,g==mxConstants.NONE&&(g=null));b=b.getSvg(g,null,null,null,null,f);null!=a&&b.setAttribute("content",
+encodeURIComponent(a));null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(a))}));else return(!d?'\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8"?\x3e\n\x3c!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"\x3e\n':"")+mxUtils.getXml(b)};
+EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,r,t,u,v,z){f=null!=f?f:!0;z=null!=z?z:this.editor.graph;var y=t?null:z.background;y==mxConstants.NONE&&(y=null);null==y&&(y=d);null==y&&!1==t&&(y="#ffffff");this.convertImages(z.getSvg(y,null,null,null,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"),g=parseInt(c.getAttribute("width")),m=parseInt(c.getAttribute("height"));r=null!=r?r:1;null!=b&&(r=!f?
+b/g:Math.min(1,Math.min(3*b/(4*m),b/g)));e.setAttribute("width",Math.ceil(r*g));e.setAttribute("height",Math.ceil(r*m));g=e.getContext("2d");g.scale(r,r);g.drawImage(d,0,0);a(e)});d.onerror=function(a){null!=e&&e(a)};try{u&&this.editor.addSvgShadow(c),this.convertMath(z,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(g){null!=e&&e(g)}}),c,v)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=
+function(c){null!=c&&(("http://"==c.substring(0,7)||"https://"==c.substring(0,8))&&c.substring(0,a.baseUrl.length)!=a.baseUrl?c=PROXY_URL+"?url\x3d"+encodeURIComponent(c):"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var n=a.getElementsByTagName(c),u=0;u<n.length;u++)mxUtils.bind(this,function(c){var n=d.convert(c.getAttribute(g));
+if(null!=n&&"data:"!=n.substring(0,5)){var s=f[n];null==s?(e++,this.convertImageToDataUri(n,function(d){null!=d&&(f[n]=d,c.setAttribute(g,d));e--;0==e&&b(a)})):c.setAttribute(g,s)}})(n[u])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.convertImageToDataUri=function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b()});else{var c=new Image;c.onload=function(){var a=document.createElement("canvas"),
+d=a.getContext("2d");a.height=c.height;a.width=c.width;d.drawImage(c,0,0);b(a.toDataURL())};c.onerror=function(){b()};c.src=a}};EditorUi.prototype.importXml=function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var r=mxUtils.parseXml(a),t=this.editor.extractGraphModel(r.documentElement,null!=this.pages);if(null!=t&&"mxfile"==t.nodeName&&null!=this.pages){var u=t.getElementsByTagName("diagram");if(1==u.length)t=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(u[0]))).documentElement;
+else if(1<u.length){g.model.beginUpdate();try{for(var v=0;v<u.length;v++){var z=this.updatePageRoot(new DiagramPage(u[v])),y=this.pages.length;null==z.getName()&&z.setName(mxResources.get("pageWithNumber",[y+1]));g.model.execute(new ChangePage(this,z,z,y))}}finally{g.model.endUpdate()}}}if(null!=t&&"mxGraphModel"===t.nodeName){var x=new mxGraphModel;(new mxCodec(t.ownerDocument)).decode(t,x);var E=x.getChildCount(x.getRoot());g.model.getChildCount(g.model.getRoot());g.model.beginUpdate();try{a={};
+for(v=0;v<E;v++){var C=x.getChildAt(x.getRoot(),v);if(1==E&&!g.isCellLocked(g.getDefaultParent()))var F=x.getChildren(C),f=f.concat(g.importCells(F,b,c,g.getDefaultParent(),null,a));else C=g.importCells([C],0,0,g.model.getRoot(),null,a)[0],F=g.model.getChildren(C),g.moveCells(F,b,c),f=f.concat(F)}if(d){g.isGridEnabled()&&(b=g.snap(b),c=g.snap(c));var D=g.getBoundingBoxFromGeometry(f,!0);null!=D&&g.moveCells(f,b-D.x,c-D.y)}}finally{g.model.endUpdate()}}}}catch(G){throw e||this.handleError(G,mxResources.get("invalidOrMissingFile")),
+G;}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,f){f=null!=f?f:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200==a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if(!this.isOffline()&&(e||"data:"==a.substring(0,5)||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var g=
+this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var r=this.extractGraphModelFromPng(a),t=this.importXml(r,b,c,f,!0);if(0<t.length)return t}if("data:image/svg+xml;"==a.substring(0,19))try{if(r=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(r=a.substring(a.indexOf(",")+1),r=window.atob&&!mxClient.IS_SF?atob(r):Base64.decode(r,!0)):r=decodeURIComponent(a.substring(a.indexOf(",")+1)),t=this.importXml(r,b,c,f,!0),0<t.length)return t}catch(u){}this.loadImage(a,mxUtils.bind(this,
+function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){g.setSelectionCell(g.insertVertex(null,null,"",g.snap(b),g.snap(c),d,e,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+this.convertDataUri(a)+";"))}),!0,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),f=Math.round(d.width*e);d=Math.round(d.height*e);g.setSelectionCell(g.insertVertex(null,
+null,"",g.snap(b),g.snap(c),f,d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";"))}}),mxUtils.bind(this,function(){var e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,a,g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.updateCellSize(e),g.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{g.getModel().endUpdate()}g.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));
+if(this.isCompatibleString(a))return this.importXml(a,b,c,f);if(0<a.length){g=this.editor.graph;e=null;g.getModel().beginUpdate();try{e=g.insertVertex(g.getDefaultParent(),null,"",g.snap(b),g.snap(c),1,1,"text;"+(d?"html\x3d1;":"")),g.fireEvent(new mxEventObject("textInserted","cells",[e])),e.value=a,g.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/i.test(e.value)&&
g.setLinkForCell(e,e.value),e.geometry.width+=g.gridSize,e.geometry.height+=g.gridSize}finally{g.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,0.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat=
-function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,k,l,m){m=null!=m?m:!0;var n=!1,q=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(q=this.importXml(b,c,d,m),g=!0)),g||(q=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),m&&
-q.isGridEnabled()&&(c=q.snap(c),d=q.snap(d)),q=[q.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(n=!0,this.parseFile(null!=l?l:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,m));null!=
-k&&k(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(l):q=this.insertTextAt(this.validateFileData(a),c,d,!0);!n&&null!=k&&k(q);return q};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+function(a,b){return/(\.*<graphml xmlns=\".*)/.test(a)||/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)||null!=b&&/(\.vsdx)($|\?)/i.test(b)};EditorUi.prototype.importFile=function(a,b,c,d,e,f,g,r,t,u){u=null!=u?u:!0;var v=!1,z=null;"image"==b.substring(0,5)?(g=!1,"image/png"==b.substring(0,9)&&(b=this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(z=this.importXml(b,c,d,u),g=!0)),g||(z=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),u&&
+z.isGridEnabled()&&(c=z.snap(c),d=z.snap(d)),z=[z.insertVertex(null,null,"",c,d,e,f,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+a+";")])):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,g)?(v=!0,this.parseFile(null!=t?t:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){if(4==a.readyState){var b=null;200==a.status&&(b=this.importXml(a.responseText,c,d,u));null!=
+r&&r(b)}}),g)):/(\.vsdx)($|\?)/i.test(g)?(new mxVsdxModel).decode(t):z=this.insertTextAt(this.validateFileData(a),c,d,!0);!v&&null!=r&&r(z);return z};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);b+="\x3d\x3d";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="\x3d";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>
-6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,k,l,m,n){var q=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;m=null!=m?m:this.maxImageBytes;l=null!=l?l:!0;var A=this.editor.graph,F=A.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
-this.importFile(a,b,c,d,e,f,g,k,l,q)});f=null!=f?f:mxUtils.bind(this,function(a){A.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var H=a.length,I=H,M=[],L=mxUtils.bind(this,function(a,b){M[a]=b;if(0==--I){this.spinner.stop();if(null!=k)k(M);else{var c=[];A.getModel().beginUpdate();try{for(var d=0;d<M.length;d++){var e=M[d]();null!=e&&(c=c.concat(e))}}finally{A.getModel().endUpdate()}}f(c)}}),R=0;R<H;R++)mxUtils.bind(this,function(f){var k=a[f],q=new FileReader;
-q.onload=mxUtils.bind(this,function(a){if(null==g||g(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var p=a.target.result,q=p.indexOf(","),u=atob(p.substring(q+1)),z=mxUtils.parseXml(u),u=z.getElementsByTagName("svg");if(0<u.length){var A=u[0].getAttribute("content");null!=A&&"\x3c"!=A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null!=A&&("\x3cmxfile "===A.substring(0,8)||"\x3cmxGraphModel "===
-A.substring(0,14))?L(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*F,c+f*F,0,0,k.name)})):L(f,mxUtils.bind(this,function(){try{if(p.substring(0,q+1),null!=z){var a=z.getElementsByTagName("svg");if(0<a.length){var g=a[0],l=parseFloat(g.getAttribute("width")),m=parseFloat(g.getAttribute("height")),n=g.getAttribute("viewBox");if(null==n||0==n.length)g.setAttribute("viewBox","0 0 "+l+" "+m);else if(isNaN(l)||isNaN(m)){var u=n.split(" ");3<u.length&&(l=parseFloat(u[2]),m=parseFloat(u[3]))}p=
-this.createSvgDataUri(mxUtils.getXml(a[0]));var y=Math.min(1,Math.min(d/Math.max(1,l)),d/Math.max(1,m));return e(p,k.type,b+f*F,c+f*F,Math.max(1,Math.round(l*y)),Math.max(1,Math.round(m*y)),k.name)}}}catch(x){}return null}))}}else{u=!1;if("image/png"==k.type){var B=this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var E=new Image;E.src=a.target.result;L(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*F,c+f*F,E.width,E.height,k.name)}));u=!0}}u||(null!=window.chrome&&
-null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,p,n){L(f,mxUtils.bind(this,function(){if(null!=g&&g.length<m){var q=!l||!this.isResampleImage(a.target.result)?
-1:Math.min(1,Math.min(d/p,d/n));return e(g,k.type,b+f*F,c+f*F,Math.round(p*q),Math.round(n*q),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),l,d,n)})))}else e(a.target.result,k.type,b+f*F,c+f*F,240,160,k.name,function(a){L(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(k.name)?e(null,k.type,b+f*F,c+f*F,240,160,k.name,function(a){L(f,function(){return a})},k):"image"==k.type.substring(0,5)?q.readAsDataURL(k):q.readAsText(k)})(R)};EditorUi.prototype.parseFile=
-function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),k=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var l=Math.max(g/e,k/e);if(1<l){var m=
-Math.round(g/l),n=Math.round(k/l),q=document.createElement("canvas");q.width=m;q.height=n;q.getContext("2d").drawImage(a,0,0,m,n);var A=q.toDataURL();if(A.length<b.length){var F=document.createElement("canvas");F.width=m;F.height=n;var H=F.toDataURL();A!==H&&(b=A,g=m,k=n)}}}catch(I){}c(b,g,k)};(function(){EditorUi.prototype.crcTable=[];for(var a=0;256>a;a++)for(var b=a,c=0;8>c;c++)b=1==(b&1)?3988292384^b>>>1:b>>>1,EditorUi.prototype.crcTable[a]=b;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=
-0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a}})();EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=k;k+=b;return a.substring(c,k)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=
-e&&e();else{f(a,17);e=a.substring(0,k);do{var l=g(a);if("IDAT"==f(a,4)){e=a.substring(0,k-8);l=4294967295;l=this.updateCRC(l,b,0,4);l=this.updateCRC(l,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((l^4294967295)>>24&255,(l^4294967295)>>16&255,(l^4294967295)>>
-8&255,(l^4294967295)&255);e+=a.substring(k-8,a.length);break}e+=a.substring(k-8,k-4+l);d=f(a,l);f(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,
-e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var f=EditorUi.prototype.init;
-EditorUi.prototype.init=function(){f.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
+6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,f,g,r,t,u,v){var z=null!=b&&null!=c;b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;u=null!=u?u:this.maxImageBytes;t=null!=t?t:!0;var y=this.editor.graph,x=y.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,f,g,k,l){return null!=a&&"\x3cmxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,g)),null):
+this.importFile(a,b,c,d,e,f,g,k,l,z)});f=null!=f?f:mxUtils.bind(this,function(a){y.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var E=a.length,C=E,F=[],D=mxUtils.bind(this,function(a,b){F[a]=b;if(0==--C){this.spinner.stop();if(null!=r)r(F);else{var c=[];y.getModel().beginUpdate();try{for(var d=0;d<F.length;d++){var e=F[d]();null!=e&&(c=c.concat(e))}}finally{y.getModel().endUpdate()}}f(c)}}),G=0;G<E;G++)mxUtils.bind(this,function(f){var q=a[f],r=new FileReader;
+r.onload=mxUtils.bind(this,function(a){if(null==g||g(q))if("image/"==q.type.substring(0,6))if("image/svg"==q.type.substring(0,9)){var k=a.target.result,r=k.indexOf(","),y=atob(k.substring(r+1)),z=mxUtils.parseXml(y),y=z.getElementsByTagName("svg");if(0<y.length){var A=y[0].getAttribute("content");null!=A&&"\x3c"!=A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null!=A&&("\x3cmxfile "===A.substring(0,8)||"\x3cmxGraphModel "===
+A.substring(0,14))?D(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*x,c+f*x,0,0,q.name)})):D(f,mxUtils.bind(this,function(){try{if(k.substring(0,r+1),null!=z){var a=z.getElementsByTagName("svg");if(0<a.length){var g=a[0],s=parseFloat(g.getAttribute("width")),t=parseFloat(g.getAttribute("height")),v=g.getAttribute("viewBox");if(null==v||0==v.length)g.setAttribute("viewBox","0 0 "+s+" "+t);else if(isNaN(s)||isNaN(t)){var u=v.split(" ");3<u.length&&(s=parseFloat(u[2]),t=parseFloat(u[3]))}k=
+this.createSvgDataUri(mxUtils.getXml(a[0]));var y=Math.min(1,Math.min(d/Math.max(1,s)),d/Math.max(1,t));return e(k,q.type,b+f*x,c+f*x,Math.max(1,Math.round(s*y)),Math.max(1,Math.round(t*y)),q.name)}}}catch(A){}return null}))}}else{y=!1;if("image/png"==q.type){var C=this.extractGraphModelFromPng(a.target.result);if(null!=C&&0<C.length){var E=new Image;E.src=a.target.result;D(f,mxUtils.bind(this,function(){return e(C,"text/xml",b+f*x,c+f*x,E.width,E.height,q.name)}));y=!0}}y||(null!=window.chrome&&
+null!=chrome.app&&null!=chrome.app.runtime?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,k,r){D(f,mxUtils.bind(this,function(){if(null!=g&&g.length<u){var s=!t||!this.isResampleImage(a.target.result)?
+1:Math.min(1,Math.min(d/k,d/r));return e(g,q.type,b+f*x,c+f*x,Math.round(k*s),Math.round(r*s),q.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),t,d,v)})))}else e(a.target.result,q.type,b+f*x,c+f*x,240,160,q.name,function(a){D(f,function(){return a})})});/(\.vsdx)($|\?)/i.test(q.name)?e(null,q.type,b+f*x,c+f*x,240,160,q.name,function(a){D(f,function(){return a})},q):"image"==q.type.substring(0,5)?r.readAsDataURL(q):r.readAsText(q)})(G)};EditorUi.prototype.parseFile=
+function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,f){e=null!=e?e:this.maxImageSize;var g=Math.max(1,a.width),r=Math.max(1,a.height);if(d&&this.isResampleImage(b,f))try{var t=Math.max(g/e,r/e);if(1<t){var u=
+Math.round(g/t),v=Math.round(r/t),z=document.createElement("canvas");z.width=u;z.height=v;z.getContext("2d").drawImage(a,0,0,u,v);var y=z.toDataURL();if(y.length<b.length){var x=document.createElement("canvas");x.width=u;x.height=v;var E=x.toDataURL();y!==E&&(b=y,g=u,r=v)}}}catch(C){}c(b,g,r)};EditorUi.prototype.crcTable=[];for(var b=0;256>b;b++)for(var c=b,d=0;8>d;d++)c=1==(c&1)?3988292384^c>>>1:c>>>1,EditorUi.prototype.crcTable[b]=c;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=
+EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=r;r+=b;return a.substring(c,r)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var r=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,
+17);e=a.substring(0,r);do{var t=g(a);if("IDAT"==f(a,4)){e=a.substring(0,r-8);t=4294967295;t=this.updateCRC(t,b,0,4);t=this.updateCRC(t,d,0,d.length);e+=String.fromCharCode(c.length+d.length+1+("zTXt"==b?1:0)>>24&255,c.length+d.length+1+("zTXt"==b?1:0)>>16&255,c.length+d.length+1+("zTXt"==b?1:0)>>8&255,c.length+d.length+1+("zTXt"==b?1:0)&255)+b+c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d+String.fromCharCode((t^4294967295)>>24&255,(t^4294967295)>>16&255,(t^4294967295)>>8&255,(t^
+4294967295)&255);e+=a.substring(r-8,a.length);break}e+=a.substring(r-8,r-4+t);d=f(a,t);f(a,4)}while(t);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&
+(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(e){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d=new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var e=EditorUi.prototype.init;
+EditorUi.prototype.init=function(){e.apply(this,arguments);var a=this.editor.graph,b=this;mxClient.IS_SVG&&this.editor.addSvgShadow(a.view.canvas.ownerSVGElement,null,!0);this.defaultFilename=mxResources.get("untitledDiagram");var c=a.getGlobalVariable;a.getGlobalVariable=function(a){return"page"==a&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==a?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:c.apply(this,arguments)};this.editor.getOrCreateFilename=function(){var a=
b.defaultFilename,c=b.getCurrentFile();null!=c&&(a=null!=c.getTitle()?c.getTitle():a);return a};var d=this.actions.get("print");d.setEnabled(!mxClient.IS_IOS||!navigator.standalone);d.visible=d.isEnabled();if(!this.editor.chromeless){this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,
!0,"insertEllipse",!0);mxClient.IS_IE||a.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a)&&!b.isEditing())try{for(var c=a.clipboardData||a.originalEvent.clipboardData,b=!1,d=0;d<c.types.length;d++)if("text/"===c.types[d].substring(0,5)){b=!0;break}if(!b){var e=c.items;for(index in e){var f=e[index];if("file"===f.kind){var g=this.editor.graph.getInsertPoint();this.importFiles([f.getAsFile()],g.x,g.y,this.maxImageSize);mxEvent.consume(a);
-break}}}}catch(k){}}),!1);var e=document.createElement("div");e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.display="block";e.contentEditable=!0;mxUtils.setOpacity(e,0);e.style.width="1px";e.style.height="1px";e.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);
-if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)e.style.left=a.container.scrollLeft+10+"px",e.style.top=a.container.scrollTop+10+"px",a.container.appendChild(e),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){e.focus();document.execCommand("selectAll",!1,null)},0):(e.focus(),document.execCommand("selectAll",!1,null))}));var k=
-function(){window.setTimeout(function(){e.innerHTML="\x26nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&null==this.dialog&&null!=a.container&&a.container.focus(),e.parentNode.removeChild(e)}),0)}));mxEvent.addListener(e,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(e),
-k())}));mxEvent.addListener(e,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(e,!0),k())}));mxEvent.addListener(e,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(e.innerHTML="\x26nbsp;",e.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,e);e.innerHTML="\x26nbsp;"}),0))}),!0);var l=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==e?!0:l.apply(this,arguments)}}d=Math.max(document.body.clientHeight||
+break}}}}catch(k){}}),!1);var f=document.createElement("div");f.style.position="absolute";f.style.whiteSpace="nowrap";f.style.overflow="hidden";f.style.display="block";f.contentEditable=!0;mxUtils.setOpacity(f,0);f.style.width="1px";f.style.height="1px";f.innerHTML="\x26nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);
+if(null!=a.container&&a.isEnabled()&&!a.isMouseDown&&!a.isEditing()&&null==this.dialog&&"INPUT"!=c.nodeName&&"TEXTAREA"!=c.nodeName&&(224==b.keyCode||!mxClient.IS_MAC&&17==b.keyCode||mxClient.IS_MAC&&91==b.keyCode)&&!g)f.style.left=a.container.scrollLeft+10+"px",f.style.top=a.container.scrollTop+10+"px",a.container.appendChild(f),g=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){f.focus();document.execCommand("selectAll",!1,null)},0):(f.focus(),document.execCommand("selectAll",!1,null))}));var s=
+function(){window.setTimeout(function(){f.innerHTML="\x26nbsp;";f.focus();document.execCommand("selectAll",!1,null)},0)};mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var c=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){if(g&&(224==c||17==c||91==c))g=!1,!a.isEditing()&&null==this.dialog&&null!=a.container&&a.container.focus(),f.parentNode.removeChild(f)}),0)}));mxEvent.addListener(f,"copy",mxUtils.bind(this,function(b){a.isEnabled()&&(mxClipboard.copy(a),this.copyCells(f),
+s())}));mxEvent.addListener(f,"cut",mxUtils.bind(this,function(b){a.isEnabled()&&(this.copyCells(f,!0),s())}));mxEvent.addListener(f,"paste",mxUtils.bind(this,function(b){a.isEnabled()&&!a.isCellLocked(a.getDefaultParent())&&(f.innerHTML="\x26nbsp;",f.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,f);f.innerHTML="\x26nbsp;"}),0))}),!0);var r=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==f?!0:r.apply(this,arguments)}}d=Math.max(document.body.clientHeight||
0,document.documentElement.clientHeight||0)/2;this.spinner=this.createSpinner(document.body.clientWidth/2-2,d,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){if(null==d&&(!mxClient.IS_IE||
10<document.documentMode))d=this.highlightElement(c);a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,
"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",
!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.test){d=document.getElementById("geFooter");null!=d&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width=
"98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),d.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);
-this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var m=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:m.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var n=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=n&&(n.parentNode.removeChild(n),n=null),b.stopPropagation(),
-b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==n&&(!mxClient.IS_IE||10<document.documentMode))n=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=n&&(n.parentNode.removeChild(n),n=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
-e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
-b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,l=e.getElementsByTagName("img");null!=l&&1==l.length?(c=l[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
-b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+k+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(k,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
+this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var t=this.isSelectionAllowed;this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:t.apply(this,arguments)}}d=document.getElementById("geInfo");null!=d&&d.parentNode.removeChild(d);if(Graph.fileSupport){var u=null;mxEvent.addListener(a.container,"dragleave",function(b){a.isEnabled()&&(null!=u&&(u.parentNode.removeChild(u),u=null),b.stopPropagation(),
+b.preventDefault())});mxEvent.addListener(a.container,"dragover",mxUtils.bind(this,function(b){if(null==u&&(!mxClient.IS_IE||10<document.documentMode))u=this.highlightElement(a.container);null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(a.container,"drop",mxUtils.bind(this,function(b){null!=u&&(u.parentNode.removeChild(u),u=null);if(a.isEnabled()){var c=mxUtils.convertPoint(a.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=a.view.translate,
+e=a.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(b)&&(g=f=0);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,f,g,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b));else{var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(b);if(null!=c)a.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){c=
+b.dataTransfer.getData("text/html");e=document.createElement("div");e.innerHTML=c;var d=null,m=e.getElementsByTagName("img");null!=m&&1==m.length?(c=m[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)||(d=!0)):(e=e.getElementsByTagName("a"),null!=e&&1==e.length&&(c=e[0].getAttribute("href")));a.setSelectionCells(this.insertTextAt(c,f,g,!0,d))}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var c=Math.max(1,b.width);
+b=Math.max(1,b.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,b));a.setSelectionCell(a.insertVertex(null,null,"",f,g,c*d,b*d,"shape\x3dimage;verticalLabelPosition\x3dbottom;labelBackgroundColor\x3d#ffffff;verticalAlign\x3dtop;aspect\x3dfixed;image\x3d"+l+";"))}),mxUtils.bind(this,function(b){a.setSelectionCells(this.insertTextAt(l,f,g,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&a.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
f,g,!0))}}b.stopPropagation();b.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode()};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML="";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",
-!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var k=b.getElementsByTagName("span"),l=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(d);this.isCompatibleString(l)&&(e=!0,d=l)}catch(m){}c.lastPasteXml==d?c.pasteCounter++:
-(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(n){}}}};
-var g=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(a){var b=Format.prototype.init;Format.prototype.init=function(){b.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var c=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed?c.apply(this,arguments):this.clear()};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=d.apply(this,
-arguments);var b=this.editorUi;if(b.editor.graph.isEnabled()){var c=b.getCurrentFile();null!=c&&c.isAutosaveOptional()&&(c=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(c))}return a};var e=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=
-function(){"image"!=this.format.createSelectionState().style.shape&&this.container.appendChild(this.addStyles(this.createPanel()));e.apply(this,arguments)};var f=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom=
-"2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return f.apply(this,arguments)};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function c(a){var b=
-mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var e=d.getModel().getStyle(c[b]),g=0;g<f.length;g++)e=mxUtils.removeStylename(e,f[g]);null!=a?(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,a.fill),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,a.stroke),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,a.gradient)):(e=mxUtils.setStyle(e,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.setStyle(e,mxConstants.STYLE_STROKECOLOR,
-"#000000"),e=mxUtils.setStyle(e,mxConstants.STYLE_GRADIENTCOLOR,null));d.getModel().setStyle(c[b],e)}}finally{d.getModel().endUpdate()}});b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";null!=a?(null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr\x3d'"+a.fill+"', EndColorStr\x3d'"+a.gradient+"', GradientType\x3d0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+
-a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var g=0;g<a.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(e),c(a[g])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,e=document.createElement("div");e.style.whiteSpace=
-"normal";e.style.paddingLeft="24px";e.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(e);var f=["plain-gray","plain-blue","plain-green","plain-orange","plain-yellow","plain-red","plain-purple",null];null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=[[null,{fill:"#f5f5f5",stroke:"#666666"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",
-stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[null,{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},
-{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]],k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII\x3d);";
-a.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,g.length);b(g[this.editorUi.currentScheme])}));var l=document.createElement("div");l.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg\x3d\x3d);";
-a.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,g.length);b(g[this.editorUi.currentScheme])}));c(k);c(l);b(g[this.editorUi.currentScheme]);return a};return g.apply(this,arguments)};null!=window.StyleFormatPanel&&(StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&&(c=mxUtils.button(mxResources.get("editStyle"),
-mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,e=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=e&&null!=e.shape&&null!=e.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editShape").funct()})),
-b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft=
-"2px"),a.appendChild(b));return a});EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],
-"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?
-c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&
-this.openLocalFile(d)),!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=
-function(a){var b=0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=
-Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
+!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=this.editor.graph,d=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),e=!1;try{var f=d.lastIndexOf("%3E");0<=f&&f<d.length-3&&(d=d.substring(0,f+3))}catch(g){}try{var r=b.getElementsByTagName("span"),t=null!=r&&0<r.length?mxUtils.trim(decodeURIComponent(r[0].textContent)):decodeURIComponent(d);this.isCompatibleString(t)&&(e=!0,d=t)}catch(u){}c.lastPasteXml==d?c.pasteCounter++:
+(c.lastPasteXml=d,c.pasteCounter=0);f=c.pasteCounter*c.gridSize;if(null!=d&&0<d.length&&(e||this.isCompatibleString(d)?c.setSelectionCells(this.importXml(d,f,f)):(e=c.getInsertPoint(),c.isMouseInsertPoint()&&(f=0,c.lastPasteXml==d&&0<c.pasteCounter&&c.pasteCounter--),c.setSelectionCells(this.insertTextAt(d,e.x+f,e.y+f,!0))),!c.isSelectionEmpty())){c.scrollCellToVisible(c.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(c.view.getState(c.getSelectionCell()));try{mxEvent.consume(a)}catch(v){}}}};
+EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){if(null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode))b=this.highlightElement();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,
+function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=
+null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"),0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)&&(d=this.extractGraphModelFromPng(c),null!=d&&0<d.length&&this.openLocalFile(d)),
+!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format\x3dxml\x26data\x3d"+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200==a.getStatus()&&this.openLocalFile(a.getText())})):/^https?:\/\//.test(c)&&(c=this.getUrl(window.location.pathname+"?url\x3d"+encodeURIComponent(c)),null==this.getCurrentFile()?window.location.href=c:window.openWindow(c))))}else this.openLocalFile(c)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=
+0,c=0,d=0,e=0;if(null==a)var e=document.body,f=document.documentElement,d=(e.clientWidth||f.clientWidth)-3,e=Math.max(e.clientHeight||0,f.clientHeight)-3;else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;f=document.createElement("div");f.style.zIndex=mxPopupMenu.prototype.zIndex+2;f.style.border="3px dotted rgb(254, 137, 12)";f.style.pointerEvents="none";f.style.position="absolute";f.style.top=b+"px";f.style.left=c+"px";f.style.width=Math.max(0,d-3)+"px";f.style.height=Math.max(0,
+e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(f):document.body.appendChild(f);return f};EditorUi.prototype.stringToCells=function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a){if(this.spinner.spin(document.body,
mxResources.get("loading")))for(var b=0;b<a.length;b++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){var c=b.target.result,d=a.name;if(null!=d&&0<d.length)if(/(\.png)$/i.test(d)&&(d=d.substring(0,d.length-4)+".xml"),Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,d))d=0<=d.lastIndexOf(".")?d.substring(0,d.lastIndexOf("."))+".xml":d+".xml",this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),
200==a.status?this.openLocalFile(a.responseText,d):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if("\x3cmxlibrary"==b.target.result.substring(0,10)){this.spinner.stop();try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(c=this.extractGraphModelFromPng(c)),this.spinner.stop(),this.openLocalFile(c,
d)});b.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?b.readAsDataURL(a):b.readAsText(a)})(a[b])};EditorUi.prototype.openLocalFile=function(a,b){var c=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,
@@ -2718,47 +2773,37 @@ var b=[],c;for(c in a)b.push(c);return b};EditorUi.prototype.addBasenamesForCell
this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.createLoadMessage=function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,scale:b.view.scale,page:b.view.getBackgroundPageBounds(),bounds:b.getGraphBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=!1,c=mxUtils.bind(this,function(a,b){null!=urlParams.modified&&("0"==urlParams.modified?this.editor.setStatus(""):
this.editor.setStatus(mxResources.get(urlParams.modified)))});this.editor.graph.model.addListener(mxEvent.CHANGE,c);mxEvent.addListener(window,"message",mxUtils.bind(this,function(c){var e=c.data;if("json"==urlParams.proto){e=JSON.parse(e);if("dialog"==e.action){this.showError(null!=e.titleKey?mxResources.get(e.titleKey):e.title,null!=e.messageKey?mxResources.get(e.messageKey):e.message,null!=e.buttonKey?mxResources.get(e.buttonKey):e.button);null!=e.modified&&(this.editor.modified=e.modified);return}if("template"==
e.action){this.spinner.stop();var f=new NewDialog(this,!1,!1,mxUtils.bind(this,function(b){a(b||"",c,null!=b)}));this.showDialog(f.container,620,440,!0,!0,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));f.init();return}if("status"==e.action){null!=e.messageKey?this.editor.setStatus(mxResources.get(e.messageKey)):null!=e.message&&this.editor.setStatus(e.message);null!=e.modified&&(this.editor.modified=e.modified);return}if("spinner"==e.action){var g=null!=e.messageKey?mxResources.get(e.messageKey):
-e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var k=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(k);b.data="data:image/png;base64,"+
-a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var m=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var m=this.createTemporaryGraph(m.getStylesheet()),n=m.getGlobalVariable,q=this.pages[0];m.getGlobalVariable=function(a){return"page"==a?q.getName():"pagenumber"==a?1:n.apply(this,arguments)};document.body.appendChild(m.container);m.model.setRoot(q.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
-"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(k))));m!=this.editor.graph&&m.container.parentNode.removeChild(m.container);l(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,m)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(k)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
-this.spinner.stop();200==a.getStatus()&&l(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)k=this.editor.getGraphXml(),g.data=this.getHtml(k,
-this.editor.graph),g.xml=mxUtils.getXml(k),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+e.message;null!=e.show&&!e.show?this.spinner.stop():this.spinner.spin(document.body,g);return}if("export"==e.action){if("png"==e.format||"xmlpng"==e.format){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin)){var n=null!=e.xml?e.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var u=mxUtils.bind(this,function(a){var b=this.createLoadMessage("export");b.format=e.format;b.xml=encodeURIComponent(n);b.data="data:image/png;base64,"+
+a;d.postMessage(JSON.stringify(b),"*");this.editor.graph.setEnabled(!0)});if(this.isExportToCanvas()){var v=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var v=this.createTemporaryGraph(v.getStylesheet()),z=v.getGlobalVariable,y=this.pages[0];v.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?1:z.apply(this,arguments)};document.body.appendChild(v.container);v.model.setRoot(y.root)}this.exportToCanvas(mxUtils.bind(this,function(a){a=a.toDataURL("image/png");
+"xmlpng"==e.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(n))));v!=this.editor.graph&&v.container.parentNode.removeChild(v.container);u(a.substring(a.lastIndexOf(",")+1))}),null,null,null,null,null,null,null,null,null,null,v)}else(new mxXmlRequest(EXPORT_URL,"format\x3dpng\x26embedXml\x3d"+("xmlpng"==e.format?"1":"0")+"\x26base64\x3d1\x26xml\x3d"+encodeURIComponent(encodeURIComponent(n)))).send(mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
+this.spinner.stop();200==a.getStatus()&&u(a.getText())}),mxUtils.bind(this,function(){this.spinner.stop()}))}}else{null!=e.xml&&0<e.xml.length&&this.setFileData(e.xml);g=this.createLoadMessage("export");if("html2"==e.format||"html"==e.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))f=this.getXmlFileData(),g.xml=mxUtils.getXml(f),g.data=this.getFileData(null,null,!0,null,null,null,f),g.format=e.format;else if("html"==e.format)n=this.editor.getGraphXml(),g.data=this.getHtml(n,
+this.editor.graph),g.xml=mxUtils.getXml(n),g.format=e.format;else{mxSvgCanvas2D.prototype.foAltText=null;f=this.editor.graph.background;f==mxConstants.NONE&&(f=null);g.xml=this.getFileData(!0);g.format="svg";if(e.embedImages||null==e.embedImages){if(null==e.spin&&null==e.spinKey||this.spinner.spin(document.body,null!=e.spinKey?mxResources.get(e.spinKey):e.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==e.format?this.getEmbeddedSvg(g.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);
this.spinner.stop();g.data=this.createSvgDataUri(a);d.postMessage(JSON.stringify(g),"*")})):this.convertImages(this.editor.graph.getSvg(f),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();g.data=this.createSvgDataUri(mxUtils.getXml(a));d.postMessage(JSON.stringify(g),"*")}));return}f="xmlsvg"==e.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(f));g.data=this.createSvgDataUri(f)}d.postMessage(JSON.stringify(g),
"*")}return}"load"==e.action?(b=1==e.autosave,null!=e.modified&&null==urlParams.modified&&(urlParams.modified=e.modified),null!=e.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=e.saveAndExit),null!=e.title&&null!=this.buttonContainer&&(f=document.createElement("span"),mxUtils.write(f,e.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop=
-"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(s){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
+"6px"),this.buttonContainer.appendChild(f)),e=null!=e.xmlpng?this.extractGraphModelFromPng(e.xmlpng):e.xml):e=null}if(null!=e&&"function"===typeof e.charAt&&"\x3c"!=e.charAt(0))try{"data:image/svg+xml;base64,"==e.substring(0,26)?e=atob(e.substring(26)):"data:image/svg+xml;utf8,"==e.substring(0,24)&&(e=e.substring(24)),null!=e&&("%"==e.charAt(0)?e=decodeURIComponent(e):"\x3c"!=e.charAt(0)&&(e=this.editor.graph.decompress(e)))}catch(x){}a(e,c);null!=urlParams.modified&&this.editor.setStatus("");b&&
(f=mxUtils.bind(this,function(a,b){var c="0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml()),d=this.createLoadMessage("autosave");d.xml=c;c=JSON.stringify(d);(window.opener||window.parent).postMessage(c,"*")}),this.editor.graph.model.addListener(mxEvent.CHANGE,f),this.addListener("pageFormatChanged",f),this.addListener("backgroundColorChanged",f),this.addListener("backgroundImageChanged",f),this.addListener("foldingEnabledChanged",
f),this.addListener("mathEnabledChanged",f),this.addListener("gridEnabledChanged",f),this.addListener("guidesEnabledChanged",f),this.addListener("pageViewChanged",f));("1"==urlParams.returnbounds||"json"==urlParams.proto)&&d.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")}));var d=window.opener||window.parent,c="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";d.postMessage(c,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a=
document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&
(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,
"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c="?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"\x3d"+urlParams[d],c="\x26")}else b=window.location.search;return b};
-EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var k=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=k.apply(this,arguments),
+EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"\x26",null!=urlParams[d]&&(a+=d+"\x3d"+urlParams[d],b++))}return a};var f=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=f.apply(this,arguments),
c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&
null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2*a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding(),e=Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2),
-f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var f=b.init;b.init=function(){f.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
+f=Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2);return new mxPoint(Math.round(e-d.x),Math.round(f-d.y-5/a))}return new mxPoint(8/a,8/a)};var g=b.init;b.init=function(){g.apply(this,arguments);b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};
this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible;f.background=e.background;var g=mxUtils.getCurrentStyle(e.container);f.container.style.backgroundColor=g.backgroundColor;null!=e.view.backgroundPageShape&&null!=f.view.backgroundPageShape&&(f.view.backgroundPageShape.fill=e.view.backgroundPageShape.fill);b.outline.view.clear(d.previousPage.root,
-!0);b.outline.view.validate()});return b};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);
-this.actions.get("connectionPoints").setEnabled(c);this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==
-urlParams.embed||null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
-null!=a&&null!=a.shape&&null!=a.shape.stencil)};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.edgeMode="move"!=urlParams.edge;var m=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){m.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.setShadowVisible=
-function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b=null,c=0;do b=this.model.getChildAt(this.model.root,c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked",
-"0"));null!=b&&1<c&&this.setDefaultParent(b)}};var n=Graph.prototype.init;Graph.prototype.init=function(){function a(c){b=c;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(c)}n.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint;this.getInsertPoint=
-function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a,b)};c.fill=
-!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+
-"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];
-mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries.eeLogicGates=[STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeResistors=[STENCIL_PATH+"/electrical/resistors.xml"];mxStencilRegistry.libraries.eeCapacitors=[STENCIL_PATH+"/electrical/capacitors.xml"];mxStencilRegistry.libraries.eeInductors=[STENCIL_PATH+
-"/electrical/inductors.xml"];mxStencilRegistry.libraries.eeSwitchesRelays=[STENCIL_PATH+"/electrical/switchesRelays.xml",STENCIL_PATH+"/electrical/electro-mechanical.xml"];mxStencilRegistry.libraries.eeDiodes=[STENCIL_PATH+"/electrical/diodes.xml"];mxStencilRegistry.libraries.eeSources=[STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries.eeTransistors=[STENCIL_PATH+"/electrical/mosfets1.xml",STENCIL_PATH+"/electrical/mosfets2.xml",STENCIL_PATH+"/electrical/transistors.xml"];
-mxStencilRegistry.libraries.eeMisc=[STENCIL_PATH+"/electrical/electro-mechanical.xml",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries.eeAudio=[STENCIL_PATH+"/electrical/radio.xml"];mxStencilRegistry.libraries.eePlcLadder=[STENCIL_PATH+"/electrical/plc_ladder.xml"];mxStencilRegistry.libraries.eeAbstract=[STENCIL_PATH+"/electrical/abstract.xml",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries.eeOptical=[STENCIL_PATH+"/electrical/opto_electronics.xml"];
-mxStencilRegistry.libraries.eeVacuumTubes=[STENCIL_PATH+"/electrical/vacuum_tubes.xml"];mxStencilRegistry.libraries.eeWaveforms=[STENCIL_PATH+"/electrical/waveforms.xml"];mxStencilRegistry.libraries.eeInstruments=[STENCIL_PATH+"/electrical/instruments.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];
-mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+
-"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
-[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",
-STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var q=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,e,f,g,k,l,m){if(null!=c&&null==mxMarker.markers[c]){var n=this.getPackageForType(c);
-null!=n&&mxStencilRegistry.getStencil(n)}return q.apply(this,arguments)}})();function DiagramPage(a){this.node=a}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,c){this.ui=a;this.page=b;this.previous=c}
+!0);b.outline.view.validate()});return b};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var a=this.getCurrentFile(),b=null!=a||"1"==urlParams.embed;this.menus.get("viewPanels").setEnabled(b);this.menus.get("viewZoom").setEnabled(b);var c="1"!=urlParams.embed&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!c);this.actions.get("print").setEnabled(!c);this.menus.get("exportAs").setEnabled(!c);this.menus.get("embed").setEnabled(!c);
+a="1"==urlParams.embed||null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&
+this.toolbar.edgeStyleMenu.setEnabled(a));if(this.isOfflineApp()){if((mxClient.IS_GC||mxClient.IS_IOS&&mxClient.IS_SF)&&null!=applicationCache){var d=applicationCache;if(null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin=
+"4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML="";this.menubarContainer.appendChild(this.offlineStatus);var e=window.setTimeout(mxUtils.bind(this,function(){d.status==d.IDLE&&(this.offlineStatus.innerHTML='[\x3cimg title\x3d"Cached" border\x3d"0" src\x3d"'+IMAGE_PATH+'/checkmark.gif"/\x3e]',window.clearTimeout(e))}),5E3)}}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=
+function(){};var g=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){g.apply(this,arguments);var a=this.editor.graph,b=this.getCurrentFile(),c=null!=b&&b.isEditable()||"1"==urlParams.embed;this.actions.get("pageSetup").setEnabled(c);this.actions.get("autosave").setEnabled(null!=b&&b.isEditable()&&b.isAutosaveOptional());this.actions.get("guides").setEnabled(c);this.actions.get("shadowVisible").setEnabled(c);this.actions.get("connectionArrows").setEnabled(c);this.actions.get("connectionPoints").setEnabled(c);
+this.actions.get("copyStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(c&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(c);this.actions.get("createRevision").setEnabled(c);this.actions.get("moveToFolder").setEnabled(null!=b);this.actions.get("makeCopy").setEnabled(null!=b&&!b.isRestricted());this.actions.get("editDiagram").setEnabled("1"==urlParams.embed||
+null!=b&&!b.isRestricted());this.actions.get("imgur").setEnabled(null!=b&&!b.isRestricted());this.actions.get("twitter").setEnabled(null!=b&&!b.isRestricted());this.actions.get("facebook").setEnabled(null!=b&&!b.isRestricted());this.actions.get("github").setEnabled(null!=b&&!b.isRestricted());this.actions.get("publishLink").setEnabled(null!=b&&!b.isRestricted());this.menus.get("publish").setEnabled(null!=b&&!b.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(c&&
+null!=a&&null!=a.shape&&null!=a.shape.stencil)}})();function DiagramPage(a){this.node=a}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,c){this.ui=a;this.page=b;this.previous=c}
RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};function MovePage(a,b,c){this.ui=a;this.oldIndex=b;this.newIndex=c}
MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};function SelectPage(a,b){this.ui=a;this.previousPage=this.page=b;this.neverShown=null==this.page.viewState;null!=b&&this.ui.updatePageRoot(b)}
-SelectPage.prototype.execute=function(){if(null!=this.page&&0<=mxUtils.indexOf(this.ui.pages,this.previousPage)){var a=this.ui.currentPage,b=this.ui.editor,c=b.graph,d=b.graph.compress(c.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=c.getViewState();a.root=c.model.root;c.view.clear(a.root,!0);c.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;c.model.rootChanged(a.root);c.setViewState(a.viewState);b.fireEvent(new mxEventObject("setViewState",
-"change",this));c.gridEnabled=c.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);b.updateGraphComponents();c.view.validate();c.sizeDidChange();this.neverShown&&(this.neverShown=!1,c.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,b,c,d){SelectPage.call(this,a,c);this.relatedPage=b;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage);
-ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
+SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,c=b.graph,d=b.graph.compress(c.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=c.getViewState();a.root=c.model.root;c.view.clear(a.root,!0);c.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;c.model.rootChanged(a.root);c.setViewState(a.viewState);
+b.fireEvent(new mxEventObject("setViewState","change",this));c.gridEnabled=c.gridEnabled&&(!this.ui.editor.chromeless||"1"==urlParams.grid);b.updateGraphComponents();c.view.validate();c.sizeDidChange();this.neverShown&&(this.neverShown=!1,c.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}};function ChangePage(a,b,c,d){SelectPage.call(this,a,c);this.relatedPage=b;this.index=d;this.previousIndex=null}
+mxUtils.extend(ChangePage,SelectPage);ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)};
EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var c=this.tabContainer.style.height;this.tabContainer.style.height=
null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";c!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var c=!1,d=null,e=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=d&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.lightbox&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft=
a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),d=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?c||(1==MathJax.Hub.queue.pending&&!this.editor.graph.mathEnabled&&MathJax.Hub.Queue(mxUtils.bind(this,function(){this.editor.graph.refresh()})),MathJax.Hub.Queue(mxUtils.bind(this,function(){c=!0}))):"undefined"!==typeof Editor.MathJaxClear&&
@@ -2814,20 +2859,20 @@ d.left,top:b.top-d.top,bottom:b.bottom-d.top,right:b.right-d.left};this.toolbar.
b.x)/this.graph.view.scale),Math.floor((this.graph.border-b.y)/this.graph.view.scale)),e=a.offsetWidth;a.style.minWidth=c});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(k,0):k();this.positionGraph=function(){b=this.graph.getGraphBounds();e=null;k()}};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=b+"px"};
GraphViewer.prototype.showLayers=function(a,b){var c=this.graphConfig.layers;if(null!=c||null!=b)if(c=null!=c?c.split(" "):null,null!=b||0<c.length){var d=null!=b?b.getModel():null,e=a.getModel();e.beginUpdate();try{for(var f=e.getChildCount(e.root),g=0;g<f;g++)e.setVisible(e.getChildAt(e.root,g),null!=b?d.isVisible(d.getChildAt(d.root,g)):!1);if(null==d)for(g=0;g<c.length;g++)e.setVisible(e.getChildAt(e.root,parseInt(c[g])),!0)}finally{e.endUpdate()}}};
GraphViewer.prototype.addToolbar=function(){function a(a,b,d,e){var f=document.createElement("div");f.style.borderRight="1px solid #d0d0d0";f.style.padding="3px 6px 3px 6px";mxEvent.addListener(f,"click",a);null!=d&&f.setAttribute("title",d);f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==e||e?(mxEvent.addListener(f,"mouseenter",function(){f.style.backgroundColor="#ddd"}),mxEvent.addListener(f,"mouseleave",
-function(){f.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);c.appendChild(f);n++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var c=b.ownerDocument.createElement("div");c.style.position="absolute";c.style.overflow="hidden";c.style.boxSizing="border-box";
+function(){f.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),f.style.cursor="pointer"):mxUtils.setOpacity(f,30);f.appendChild(a);c.appendChild(f);m++;return f}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var c=b.ownerDocument.createElement("div");c.style.position="absolute";c.style.overflow="hidden";c.style.boxSizing="border-box";
c.style.whiteSpace="nowrap";c.style.zIndex=this.toolbarZIndex;c.style.backgroundColor="#eee";c.style.height=this.toolbarHeight+"px";this.toolbar=c;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(c.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(c,30);var d=null,e=null,f=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=e&&(window.clearTimeout(e),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(c,
0);d=null;e=window.setTimeout(mxUtils.bind(this,function(){c.style.display="none";e=null}),100)}),a||200)}),g=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=e&&(window.clearTimeout(e),fadeThead2=null);c.style.display="";mxUtils.setOpacity(c,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(g(30),f())}));mxEvent.addListener(c,mxClient.IS_POINTER?"pointermove":
"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(c,"mouseenter",mxUtils.bind(this,function(a){g(100)}));mxEvent.addListener(c,"mousemove",mxUtils.bind(this,function(a){g(100);mxEvent.consume(a)}));mxEvent.addListener(c,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||g(30)}));var k=this.graph,l=k.getTolerance();k.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=
-k.container.scrollLeft;this.scrollTop=k.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-k.container.scrollLeft)<l&&Math.abs(this.scrollTop-k.container.scrollTop)<l&&Math.abs(this.startX-b.getGraphX())<l&&Math.abs(this.startY-b.getGraphY())<l&&(0<parseFloat(c.style.opacity||0)?f():g(30))}})}var m=this.toolbarItems,n=0,q=[];"mxfile"==this.xmlNode.nodeName&&(q=this.xmlNode.getElementsByTagName("diagram"));for(var p=null,
-r=null,s=0;s<m.length;s++){var t=m[s];if("pages"==t&&1<q.length)r=b.ownerDocument.createElement("div"),r.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",mxUtils.write(r,this.currentPage+1+" / "+q.length),mxUtils.setOpacity(r,70),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage-1,q.length);r.innerHTML="";mxUtils.write(r,this.currentPage+1+" / "+q.length);
-this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(q[this.currentPage]))).documentElement)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page"),t.style.borderRightStyle="none",t.style.paddingLeft="0px",t.style.paddingRight="0px",c.appendChild(r),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage+1,q.length);r.innerHTML="";mxUtils.write(r,this.currentPage+1+" / "+q.length);this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(q[this.currentPage]))).documentElement)}),
+k.container.scrollLeft;this.scrollTop=k.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-k.container.scrollLeft)<l&&Math.abs(this.scrollTop-k.container.scrollTop)<l&&Math.abs(this.startX-b.getGraphX())<l&&Math.abs(this.startY-b.getGraphY())<l&&(0<parseFloat(c.style.opacity||0)?f():g(30))}})}var n=this.toolbarItems,m=0,p=[];"mxfile"==this.xmlNode.nodeName&&(p=this.xmlNode.getElementsByTagName("diagram"));for(var q=null,
+s=null,r=0;r<n.length;r++){var t=n[r];if("pages"==t&&1<p.length)s=b.ownerDocument.createElement("div"),s.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",mxUtils.write(s,this.currentPage+1+" / "+p.length),mxUtils.setOpacity(s,70),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage-1,p.length);s.innerHTML="";mxUtils.write(s,this.currentPage+1+" / "+p.length);
+this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(p[this.currentPage]))).documentElement)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page"),t.style.borderRightStyle="none",t.style.paddingLeft="0px",t.style.paddingRight="0px",c.appendChild(s),t=a(mxUtils.bind(this,function(){this.currentPage=mxUtils.mod(this.currentPage+1,p.length);s.innerHTML="";mxUtils.write(s,this.currentPage+1+" / "+p.length);this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(p[this.currentPage]))).documentElement)}),
Editor.nextImage,mxResources.get("nextPage")||"Next Page"),t.style.paddingLeft="0px",t.style.paddingRight="0px";else if("zoom"==t)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,
-this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==t){if(this.layersEnabled){var v=this.graph.getModel(),u=a(mxUtils.bind(this,function(a){if(null!=p)p.parentNode.removeChild(p),p=null;else{p=this.graph.createLayersDialog();mxEvent.addListener(p,"mouseleave",function(){p.parentNode.removeChild(p);p=null});a=u.getBoundingClientRect();p.style.width="140px";p.style.padding="2px 0px 2px 0px";p.style.border="1px solid #d0d0d0";p.style.backgroundColor=
-"#eee";p.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";p.style.fontSize="11px";mxUtils.setOpacity(p,80);var b=mxUtils.getDocumentScrollOrigin(document);p.style.left=b.x+a.left+"px";p.style.top=b.y+a.bottom+"px";document.body.appendChild(p)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){u.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});u.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==
-t?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(t=this.graphConfig["toolbar-buttons"][t],null!=t&&a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*n);null!=this.graphConfig.title&&(m=b.ownerDocument.createElement("div"),m.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",
-m.setAttribute("title",this.graphConfig.title),mxUtils.write(m,this.graphConfig.title),mxUtils.setOpacity(m,70),c.appendChild(m));this.minToolbarWidth=34*n;var y=b.style.border,m=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},a={left:a.left-d.left,top:a.top-d.top,bottom:a.bottom-d.top,right:a.right-d.left};c.style.left=a.left+"px";c.style.width=
-"inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";c.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?c.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(c.style.marginTop=-this.toolbarHeight+"px",c.style.top=a.top+1+"px"):c.style.top=a.top+"px";"1px solid transparent"==y&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(c);var e=mxUtils.bind(this,function(){!0!=this.graphConfig["toolbar-nohide"]&&
-(null!=c.parentNode&&c.parentNode.removeChild(c),null!=p&&(p.parentNode.removeChild(p),p=null),b.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==c||a==p)return;a=a.parentNode}e()});mxEvent.addListener(document,"mouseleave",function(a){e()})});mxEvent.addListener(b,"mouseenter",m)};
+this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==t){if(this.layersEnabled){var u=this.graph.getModel(),v=a(mxUtils.bind(this,function(a){if(null!=q)q.parentNode.removeChild(q),q=null;else{q=this.graph.createLayersDialog();mxEvent.addListener(q,"mouseleave",function(){q.parentNode.removeChild(q);q=null});a=v.getBoundingClientRect();q.style.width="140px";q.style.padding="2px 0px 2px 0px";q.style.border="1px solid #d0d0d0";q.style.backgroundColor=
+"#eee";q.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";q.style.fontSize="11px";mxUtils.setOpacity(q,80);var b=mxUtils.getDocumentScrollOrigin(document);q.style.left=b.x+a.left+"px";q.style.top=b.y+a.bottom+"px";document.body.appendChild(q)}}),Editor.layersImage,mxResources.get("layers")||"Layers");u.addListener(mxEvent.CHANGE,function(){v.style.display=1<u.getChildCount(u.root)?"inline-block":"none"});v.style.display=1<u.getChildCount(u.root)?"inline-block":"none"}}else"lightbox"==
+t?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(t=this.graphConfig["toolbar-buttons"][t],null!=t&&a(null==t.enabled||t.enabled?t.handler:function(){},t.image,t.title,t.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*m);null!=this.graphConfig.title&&(n=b.ownerDocument.createElement("div"),n.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",
+n.setAttribute("title",this.graphConfig.title),mxUtils.write(n,this.graphConfig.title),mxUtils.setOpacity(n,70),c.appendChild(n));this.minToolbarWidth=34*m;var z=b.style.border,n=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},a={left:a.left-d.left,top:a.top-d.top,bottom:a.bottom-d.top,right:a.right-d.left};c.style.left=a.left+"px";c.style.width=
+"inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px";c.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?c.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(c.style.marginTop=-this.toolbarHeight+"px",c.style.top=a.top+1+"px"):c.style.top=a.top+"px";"1px solid transparent"==z&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(c);var e=mxUtils.bind(this,function(){!0!=this.graphConfig["toolbar-nohide"]&&
+(null!=c.parentNode&&c.parentNode.removeChild(c),null!=q&&(q.parentNode.removeChild(q),q=null),b.style.border=z)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==c||a==q)return;a=a.parentNode}e()});mxEvent.addListener(document,"mouseleave",function(a){e()})});mxEvent.addListener(b,"mouseenter",n)};
GraphViewer.prototype.addClickHandler=function(a,b){var c=a.isBlankLink,d=this.graphConfig;a.isBlankLink=function(a){return"self"!=d.target&&c.apply(this,arguments)};a.addClickHandler(this.graphConfig.highlight,function(a){null!=b&&b.destroy()},mxUtils.bind(this,function(a){null==b&&this.lightboxClickEnabled&&(!mxEvent.isTouchEvent(a)||0==this.toolbarItems.length)&&this.showLightbox()}))};
GraphViewer.prototype.showLightbox=function(){if("open"==this.graphConfig.lightbox||window.self!==window.top){var a=this.layersEnabled?"\x26layers\x3d1":"";if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var b=null,c=mxUtils.bind(this,function(a){"ready"==a.data&&a.source==b&&(b.postMessage(this.xml,"*"),mxEvent.removeListener(window,"message",c))});mxEvent.addListener(window,"message",c);b=window.open("https://test.draw.io/?dev\x3d1\x26client\x3d1\x26chrome\x3d0\x26lightbox\x3d1\x26close\x3d1\x26edit\x3d_blank"+
a)}else window.drawdata=this.xml,window.open("https://test.draw.io/?dev\x3d1\x26client\x3d1\x26chrome\x3d0\x26lightbox\x3d1\x26edit\x3d_blank"+a)}else this.showLocalLightbox()};
@@ -2835,7 +2880,7 @@ GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScro
var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(c.style.position="absolute",c.style.right="32px",c.style.top=a.y+32+"px"):c.style.cssText="position:fixed;top:32px;right:32px;";c.style.cursor="pointer";mxEvent.addListener(c,"click",function(){d.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=!1!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode||
10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);Graph.prototype.shadowId="dropShadow";d.refresh=function(){};mxEvent.addListener(b,"click",function(){d.destroy()});d.editor.editBlankUrl=this.editBlankUrl;
d.editor.editBlankFallbackUrl=this.editBlankFallbackUrl;var e=d.editor.getEditBlankUrl;d.editor.getEditBlankUrl=function(a,b){var c="";null!=d.pages&&null!=d.currentPage&&(c="\x26page\x3d"+mxUtils.indexOf(d.pages,d.currentPage));return e.apply(this,arguments)+c};var f=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),g=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",f);document.body.removeChild(b);document.body.removeChild(c);document.body.style.overflow=
-"auto";GraphViewer.resizeSensorEnabled=!0;g.apply(this,arguments)};var k=d.editor.graph,l=k.container;l.style.overflow="hidden";this.lightboxChrome?(l.style.border="1px solid #c0c0c0",l.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",f)):(b.style.display="none",c.style.display="none");var m=this;k.getImageFromBundles=function(a){return m.getImageUrl(a)};this.graphConfig.move&&(k.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(l.style,
+"auto";GraphViewer.resizeSensorEnabled=!0;g.apply(this,arguments)};var k=d.editor.graph,l=k.container;l.style.overflow="hidden";this.lightboxChrome?(l.style.border="1px solid #c0c0c0",l.style.margin="40px",mxEvent.addListener(document.documentElement,"keydown",f)):(b.style.display="none",c.style.display="none");var n=this;k.getImageFromBundles=function(a){return n.getImageUrl(a)};this.graphConfig.move&&(k.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(l.style,
"border-radius","4px"),l.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow="hidden";mxClient.IS_SF||(mxUtils.setPrefixedStyle(l.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(l.style,"transition","all .25s ease-in-out"));this.addClickHandler(k,d);window.setTimeout(mxUtils.bind(this,function(){l.style.outline="none";l.style.zIndex=this.lightboxZIndex;c.style.zIndex=this.lightboxZIndex;document.body.appendChild(l);document.body.appendChild(c);console.log("xml",
this.xml);d.setFileData(this.xml);mxUtils.setPrefixedStyle(l.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom="60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(l.style.position="absolute",l.style.display="block",l.style.left=a.x+"px",l.style.top=a.y+"px",l.style.width=document.body.clientWidth-80+"px",l.style.height=document.body.clientHeight-
80+"px",l.style.backgroundColor="white",d.chromelessToolbar.style.display="block",d.chromelessToolbar.style.position="absolute",d.chromelessToolbar.style.bottom="",d.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");d.lightboxFit();d.chromelessResize();this.showLayers(k,this.graph)}),0);return d};
@@ -2846,6 +2891,6 @@ GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type=
GraphViewer.getUrl=function(a,b,c){var d=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=c;d.send()};GraphViewer.resizeSensorEnabled=!0;
(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(c,d){function e(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function f(b,c){if(b.resizedAttached){if(b.resizedAttached){b.resizedAttached.add(c);return}}else b.resizedAttached=new e,b.resizedAttached.add(c);b.resizeSensor=document.createElement("div");
b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='\x3cdiv class\x3d"resize-sensor-expand" style\x3d"position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"\x3e\x3cdiv style\x3d"position: absolute; left: 0; top: 0; transition: 0s;"\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"resize-sensor-shrink" style\x3d"position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"\x3e\x3cdiv style\x3d"position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"\x3e\x3c/div\x3e\x3c/div\x3e';
-b.appendChild(b.resizeSensor);if("static"==(b.currentStyle?b.currentStyle.position:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue("position"):b.style.position))b.style.position="relative";var d=b.resizeSensor.childNodes[0],f=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){f.style.width="100000px";f.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,m=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),
-l=!1),a(m))};a(m);var y,z,x,G,D=function(){if((x=b.offsetWidth)!=y||(G=b.offsetHeight)!=z)l=!0,y=x,z=G;k()},E=function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener(b,c)};E(d,"scroll",D);E(g,"scroll",D)}var g=function(){GraphViewer.resizeSensorEnabled&&d()},k=Object.prototype.toString.call(c),l="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&c instanceof jQuery||"undefined"!==typeof Elements&&c instanceof Elements;if(l)for(var k=
-0,m=c.length;k<m;k++)f(c[k],g);else f(c,g);this.detach=function(){if(l)for(var a=0,d=c.length;a<d;a++)b.detach(c[a]);else b.detach(c)}};b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();(function(){Editor.initMath();GraphViewer.initCss();mxStencilRegistry.dynamicLoading=!1;if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})(); \ No newline at end of file
+b.appendChild(b.resizeSensor);if("static"==(b.currentStyle?b.currentStyle.position:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue("position"):b.style.position))b.style.position="relative";var d=b.resizeSensor.childNodes[0],f=d.childNodes[0],g=b.resizeSensor.childNodes[1],k=function(){f.style.width="100000px";f.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;g.scrollLeft=1E5;g.scrollTop=1E5};k();var l=!1,n=function(){b.resizedAttached&&(l&&(b.resizedAttached.call(),
+l=!1),a(n))};a(n);var z,y,x,E,C=function(){if((x=b.offsetWidth)!=z||(E=b.offsetHeight)!=y)l=!0,z=x,y=E;k()},F=function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener(b,c)};F(d,"scroll",C);F(g,"scroll",C)}var g=function(){GraphViewer.resizeSensorEnabled&&d()},k=Object.prototype.toString.call(c),l="[object Array]"===k||"[object NodeList]"===k||"[object HTMLCollection]"===k||"undefined"!==typeof jQuery&&c instanceof jQuery||"undefined"!==typeof Elements&&c instanceof Elements;if(l)for(var k=
+0,n=c.length;k<n;k++)f(c[k],g);else f(c,g);this.detach=function(){if(l)for(var a=0,d=c.length;a<d;a++)b.detach(c[a]);else b.detach(c)}};b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})();(function(){Editor.initMath();GraphViewer.initCss();mxStencilRegistry.dynamicLoading=!1;if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})(); \ No newline at end of file
diff --git a/war/plugins/find.js b/war/plugins/find.js
index 0c6501bc..1675bf80 100644
--- a/war/plugins/find.js
+++ b/war/plugins/find.js
@@ -4,6 +4,7 @@
Draw.loadPlugin(function(ui)
{
var graph = ui.editor.graph;
+ var lastSearch = null;
var lastFound = null;
var div = document.createElement('div');
@@ -32,7 +33,7 @@ Draw.loadPlugin(function(ui)
for (var i = 0; i < attrs.length; i++)
{
- if (re.test(attrs[i].nodeValue))
+ if (attrs[i].nodeName != 'label' && re.test(attrs[i].nodeValue.toLowerCase()))
{
return true;
}
@@ -42,14 +43,21 @@ Draw.loadPlugin(function(ui)
return false;
};
- function search(next)
+ function search()
{
var cells = graph.model.getDescendants(graph.model.getRoot());
var search = searchInput.value.toLowerCase();
var re = new RegExp(search);
- var active = !next || lastFound == null;
var firstMatch = null;
+ if (lastSearch != search)
+ {
+ lastSearch = search;
+ lastFound = null;
+ }
+
+ var active = lastFound == null;
+
if (graph.isEnabled() && search.length > 0)
{
for (var i = 0; i < cells.length; i++)
@@ -111,6 +119,7 @@ Draw.loadPlugin(function(ui)
searchInput.value = '';
searchInput.style.backgroundColor = '';
lastFound = null;
+ lastSearch = null;
searchInput.focus();
});
@@ -125,7 +134,7 @@ Draw.loadPlugin(function(ui)
var btn = mxUtils.button('Find Again', function()
{
- searchInput.style.backgroundColor = search(true) ? '' : '#ffcfcf';
+ searchInput.style.backgroundColor = search() ? '' : '#ffcfcf';
});
btn.setAttribute('title', 'Find Again (Enter)');
@@ -144,9 +153,13 @@ Draw.loadPlugin(function(ui)
// Workaround for lost focus on show
mxEvent.consume(evt);
}
- else
+ else if (evt.keyCode == 27)
+ {
+ findAction.funct();
+ }
+ else if (lastSearch != searchInput.value.toLowerCase() || evt.keyCode == 13)
{
- searchInput.style.backgroundColor = search(evt.keyCode == 13) ? '' : '#ffcfcf';
+ searchInput.style.backgroundColor = search() ? '' : '#ffcfcf';
}
});
diff --git a/war/shapes/mxElectrical.js b/war/shapes/mxElectrical.js
new file mode 100644
index 00000000..751a483b
--- /dev/null
+++ b/war/shapes/mxElectrical.js
@@ -0,0 +1,467 @@
+/**
+ * $Id: mxElectrical.js,v 1.0 2016/10/25 17:05:39 mate Exp $
+ * Copyright (c) 2006-2016, JGraph Ltd
+ */
+
+//**********************************************************************************************************************************************************
+//Test Point
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalTestPoint(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalTestPoint, mxShape);
+
+mxShapeElectricalTestPoint.prototype.cst = {
+ SHAPE_TEST_POINT : 'mxgraph.electrical.transmission.testPoint'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeElectricalTestPoint.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+ var strokeColor = mxUtils.getValue(this.style, mxConstants.STYLE_STROKECOLOR, '#000000');
+
+ var size = Math.min(w, h);
+
+ c.setFillColor(strokeColor);
+ c.begin();
+ c.ellipse(w * 0.5 - size / 2, 0, size, size);
+ c.fillAndStroke();
+
+ if (h > w)
+ {
+ c.begin();
+ c.moveTo(w * 0.5, size);
+ c.lineTo(w * 0.5, h);
+ c.stroke();
+ }
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalTestPoint.prototype.cst.SHAPE_TEST_POINT] = mxShapeElectricalTestPoint;
+
+mxShapeElectricalTestPoint.prototype.constraints = [
+ new mxConnectionConstraint(new mxPoint(0.5, 0), true),
+ new mxConnectionConstraint(new mxPoint(0.5, 1), true)
+ ];
+
+//**********************************************************************************************************************************************************
+//Straight Bus
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalStraightBus(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalStraightBus, mxShape);
+
+mxShapeElectricalStraightBus.prototype.cst = {
+ SHAPE_STRAIGHT_BUS : 'mxgraph.electrical.transmission.straightBus'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeElectricalStraightBus.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var size = Math.min(w, h);
+ var x1 = w * 0.2;
+ var y1 = 0;
+
+ if (w > h)
+ {
+ y1 = h * 0.5;
+ }
+ else
+ {
+ y1 = w / 2;
+ }
+
+ c.begin();
+ c.moveTo(w - x1, 0);
+ c.lineTo(w - x1, h - y1);
+ c.lineTo(w, h - y1);
+ c.lineTo(w * 0.5, h);
+ c.lineTo(0, h - y1);
+ c.lineTo(x1, h - y1);
+ c.lineTo(x1, 0);
+ c.fillAndStroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalStraightBus.prototype.cst.SHAPE_STRAIGHT_BUS] = mxShapeElectricalStraightBus;
+
+mxShapeElectricalStraightBus.prototype.constraints = [
+ new mxConnectionConstraint(new mxPoint(0.5, 0), true),
+ new mxConnectionConstraint(new mxPoint(0.5, 1), true)
+ ];
+
+//**********************************************************************************************************************************************************
+//Two-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalTwoLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+ this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalTwoLineBusElbow, mxShape);
+
+mxShapeElectricalTwoLineBusElbow.prototype.cst = {
+ SHAPE_TWO_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.twoLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeElectricalTwoLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+ c.translate(x, y);
+
+ c.begin();
+ c.moveTo(0, h);
+ c.lineTo(w, h);
+ c.lineTo(w, 0);
+ c.stroke();
+
+ var wn = Math.min(w, notch);
+ var hn = Math.min(h, notch);
+
+ c.begin();
+ c.moveTo(0, h - hn);
+ c.lineTo(w - wn, h - hn);
+ c.lineTo(w - wn, 0);
+ c.stroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW] = mxShapeElectricalTwoLineBusElbow;
+
+mxShapeElectricalTwoLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW] = function(state)
+{
+ var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+ {
+ var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+ return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+ }, function(bounds, pt)
+ {
+ this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+ })];
+
+ return handles;
+
+}
+
+//**********************************************************************************************************************************************************
+//Three-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalThreeLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+ this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalThreeLineBusElbow, mxShape);
+
+mxShapeElectricalThreeLineBusElbow.prototype.cst = {
+ SHAPE_THREE_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.threeLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeElectricalThreeLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+ c.translate(x, y);
+
+ c.begin();
+ c.moveTo(0, h);
+ c.lineTo(w, h);
+ c.lineTo(w, 0);
+ c.stroke();
+
+ var wn = Math.min(w, notch);
+ var hn = Math.min(h, notch);
+
+ c.begin();
+ c.moveTo(0, h - hn);
+ c.lineTo(w - wn, h - hn);
+ c.lineTo(w - wn, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn / 2);
+ c.lineTo(w - wn / 2, h - hn / 2);
+ c.lineTo(w - wn / 2, 0);
+ c.stroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW] = mxShapeElectricalThreeLineBusElbow;
+
+mxShapeElectricalThreeLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW] = function(state)
+{
+ var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+ {
+ var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+ return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+ }, function(bounds, pt)
+ {
+ this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+ })];
+
+ return handles;
+
+}
+
+//**********************************************************************************************************************************************************
+//Four-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalFourLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+ this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalFourLineBusElbow, mxShape);
+
+mxShapeElectricalFourLineBusElbow.prototype.cst = {
+ SHAPE_FOUR_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.fourLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeElectricalFourLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+ c.translate(x, y);
+
+ c.begin();
+ c.moveTo(0, h);
+ c.lineTo(w, h);
+ c.lineTo(w, 0);
+ c.stroke();
+
+ var wn = Math.min(w, notch);
+ var hn = Math.min(h, notch);
+
+ c.begin();
+ c.moveTo(0, h - hn);
+ c.lineTo(w - wn, h - hn);
+ c.lineTo(w - wn, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn / 3);
+ c.lineTo(w - wn / 3, h - hn / 3);
+ c.lineTo(w - wn / 3, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn * 2 / 3);
+ c.lineTo(w - wn * 2 / 3, h - hn * 2 / 3);
+ c.lineTo(w - wn * 2 / 3, 0);
+ c.stroke();
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW] = mxShapeElectricalFourLineBusElbow;
+
+mxShapeElectricalFourLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW] = function(state)
+{
+ var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+ {
+ var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+ return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+ }, function(bounds, pt)
+ {
+ this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+ })];
+
+ return handles;
+}
+
+//**********************************************************************************************************************************************************
+//Four-Line Bus Elbow
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxShapeElectricalEightLineBusElbow(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+ this.notch = 0;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxShapeElectricalEightLineBusElbow, mxShape);
+
+mxShapeElectricalEightLineBusElbow.prototype.cst = {
+ SHAPE_EIGHT_LINE_BUS_ELBOW : 'mxgraph.electrical.transmission.eightLineBusElbow'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxShapeElectricalEightLineBusElbow.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ var notch = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'notch', this.notch))));
+
+ c.translate(x, y);
+
+ c.begin();
+ c.moveTo(0, h);
+ c.lineTo(w, h);
+ c.lineTo(w, 0);
+ c.stroke();
+
+ var wn = Math.min(w, notch);
+ var hn = Math.min(h, notch);
+
+ c.begin();
+ c.moveTo(0, h - hn);
+ c.lineTo(w - wn, h - hn);
+ c.lineTo(w - wn, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn / 7);
+ c.lineTo(w - wn / 7, h - hn / 7);
+ c.lineTo(w - wn / 7, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn * 2 / 7);
+ c.lineTo(w - wn * 2 / 7, h - hn * 2 / 7);
+ c.lineTo(w - wn * 2 / 7, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn * 3 / 7);
+ c.lineTo(w - wn * 3 / 7, h - hn * 3 / 7);
+ c.lineTo(w - wn * 3 / 7, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn * 4 / 7);
+ c.lineTo(w - wn * 4 / 7, h - hn * 4 / 7);
+ c.lineTo(w - wn * 4 / 7, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn * 5 / 7);
+ c.lineTo(w - wn * 5 / 7, h - hn * 5 / 7);
+ c.lineTo(w - wn * 5 / 7, 0);
+ c.stroke();
+
+ c.begin();
+ c.moveTo(0, h - hn * 6 / 7);
+ c.lineTo(w - wn * 6 / 7, h - hn * 6 / 7);
+ c.lineTo(w - wn * 6 / 7, 0);
+ c.stroke();
+
+};
+
+mxCellRenderer.prototype.defaultShapes[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW] = mxShapeElectricalEightLineBusElbow;
+
+mxShapeElectricalEightLineBusElbow.prototype.constraints = null;
+
+Graph.handleFactory[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW] = function(state)
+{
+ var handles = [Graph.createHandle(state, ['notch'], function(bounds)
+ {
+ var notch = Math.max(Math.min(bounds.height, parseFloat(mxUtils.getValue(this.state.style, 'notch', this.notch))), 0);
+
+ return new mxPoint(bounds.x + bounds.width / 4, bounds.y + bounds.height - notch);
+ }, function(bounds, pt)
+ {
+ this.state.style['notch'] = Math.round(0.2 * Math.max(0, bounds.width - pt.y + bounds.y)) / 0.2;
+ })];
+
+ return handles;
+}
+
diff --git a/war/stencils.xml b/war/stencils.xml
index 07e33450..09d5afd1 100644
--- a/war/stencils.xml
+++ b/war/stencils.xml
@@ -116285,7 +116285,7 @@
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.abstract">
+<shapes name="mxgraph.electrical.abstract">
<shape aspect="variable" h="90" name="Amplifier" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -116304,67 +116304,58 @@
<path>
<move x="0" y="45"/>
<line x="5" y="45"/>
- </path>
- <fillstroke/>
- <path>
<move x="95" y="45"/>
<line x="100" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Controlled Amplifier" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="Controlled Amplifier" strokewidth="inherit" w="100">
<connections>
<constraint name="control" perimeter="0" x="0.6" y="0.95"/>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="5.0" y="0.0"/>
- <line x="95.0" y="45.0"/>
- <line x="5.0" y="90.0"/>
+ <move x="5" y="0"/>
+ <line x="95" y="45"/>
+ <line x="5" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="5.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="95.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="85.0"/>
- <line x="60.0" y="68.0"/>
+ <move x="0" y="45"/>
+ <line x="5" y="45"/>
+ <move x="95" y="45"/>
+ <line x="100" y="45"/>
+ <move x="60" y="85"/>
+ <line x="60" y="68"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="57.0" y="68.0"/>
- <line x="60.0" y="63.0"/>
- <line x="63.0" y="68.0"/>
+ <move x="57" y="68"/>
+ <line x="60" y="63"/>
+ <line x="63" y="68"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="DAC" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="46" name="DAC" strokewidth="inherit" w="70">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- <line x="70.0" y="23.0"/>
- <line x="45.0" y="46.0"/>
- <line x="0.0" y="46.0"/>
+ <move x="0" y="0"/>
+ <line x="45" y="0"/>
+ <line x="70" y="23"/>
+ <line x="45" y="46"/>
+ <line x="0" y="46"/>
<close/>
</path>
</background>
@@ -116372,427 +116363,306 @@
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Delta" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Delta" strokewidth="inherit" w="50">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="35.0"/>
- <line x="25.0" y="15.0"/>
- <line x="35.0" y="35.0"/>
+ <move x="15" y="35"/>
+ <line x="25" y="15"/>
+ <line x="35" y="35"/>
<close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Demux" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="90" name="Demux" strokewidth="inherit" w="60">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.333"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.445"/>
- <constraint name="out3" perimeter="0" x="1.0" y="0.555"/>
- <constraint name="out4" perimeter="0" x="1.0" y="0.667"/>
- <constraint name="control1" perimeter="0" x="0.415" y="1.0"/>
- <constraint name="control2" perimeter="0" x="0.585" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.333"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.445"/>
+ <constraint name="out3" perimeter="0" x="1" y="0.555"/>
+ <constraint name="out4" perimeter="0" x="1" y="0.667"/>
+ <constraint name="control1" perimeter="0" x="0.415" y="1"/>
+ <constraint name="control2" perimeter="0" x="0.585" y="1"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="70.0"/>
- <line x="10.0" y="90.0"/>
+ <move x="10" y="0"/>
+ <line x="50" y="20"/>
+ <line x="50" y="70"/>
+ <line x="10" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="25.0" y="82.5"/>
- <line x="25.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="50.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="60.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="10.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="40.0"/>
- <line x="60.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="30.0"/>
- <line x="60.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="77.5"/>
- <line x="35.0" y="90.0"/>
+ <move x="25" y="82.5"/>
+ <line x="25" y="90"/>
+ <move x="50" y="50"/>
+ <line x="60" y="50"/>
+ <move x="50" y="60"/>
+ <line x="60" y="60"/>
+ <move x="0" y="45"/>
+ <line x="10" y="45"/>
+ <move x="50" y="40"/>
+ <line x="60" y="40"/>
+ <move x="50" y="30"/>
+ <line x="60" y="30"/>
+ <move x="35" y="77.5"/>
+ <line x="35" y="90"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="6.0" y="23.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="1" x="26.0" x-axis-rotation="0.0" y="23.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="23.0"/>
- </path>
- <stroke/>
<path>
- <move x="6.0" y="13.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="1" x="26.0" x-axis-rotation="0.0" y="13.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="13.0"/>
+ <move x="6" y="23"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="26" x-axis-rotation="0" y="23"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="46" x-axis-rotation="0" y="23"/>
+ <move x="6" y="13"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="26" x-axis-rotation="0" y="13"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="46" x-axis-rotation="0" y="13"/>
+ <move x="6" y="33"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="26" x-axis-rotation="0" y="33"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="46" x-axis-rotation="0" y="33"/>
+ <move x="22" y="35"/>
+ <line x="28" y="29"/>
+ <move x="22" y="15"/>
+ <line x="28" y="9"/>
</path>
<stroke/>
- <path>
- <move x="6.0" y="33.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="1" x="26.0" x-axis-rotation="0.0" y="33.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="33.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="22.0" y="35.0"/>
- <line x="28.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="22.0" y="15.0"/>
- <line x="28.0" y="9.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Function" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Function" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Integrator" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Integrator" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="20.0" y="35.0"/>
- <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="0" x="25.0" x-axis-rotation="0.0" y="35.0"/>
- <line x="25.0" y="15.0"/>
- <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="15.0"/>
+ <move x="20" y="35"/>
+ <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="0" x="25" x-axis-rotation="0" y="35"/>
+ <line x="25" y="15"/>
+ <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="1" x="30" x-axis-rotation="0" y="15"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Multiplier" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Multiplier" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
<move x="7.2" y="7.2"/>
<line x="42.8" y="42.8"/>
- </path>
- <fillstroke/>
- <path>
<move x="42.8" y="7.2"/>
<line x="7.2" y="42.8"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Mux-Demux" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="90" name="Mux-Demux" strokewidth="inherit" w="60">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.055"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in3" perimeter="0" x="0.0" y="0.275"/>
- <constraint name="in4" perimeter="0" x="0.0" y="0.39"/>
- <constraint name="in5" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="in6" perimeter="0" x="0.0" y="0.61"/>
- <constraint name="in7" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="in8" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="in9" perimeter="0" x="0.0" y="0.945"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.055"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in3" perimeter="0" x="0" y="0.275"/>
+ <constraint name="in4" perimeter="0" x="0" y="0.39"/>
+ <constraint name="in5" perimeter="0" x="0" y="0.5"/>
+ <constraint name="in6" perimeter="0" x="0" y="0.61"/>
+ <constraint name="in7" perimeter="0" x="0" y="0.72"/>
+ <constraint name="in8" perimeter="0" x="0" y="0.835"/>
+ <constraint name="in9" perimeter="0" x="0" y="0.945"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="70.0"/>
- <line x="10.0" y="90.0"/>
+ <move x="10" y="0"/>
+ <line x="50" y="20"/>
+ <line x="50" y="70"/>
+ <line x="10" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="30.0" y="80.0"/>
- <line x="30.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="45.0"/>
- <line x="60.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="85.0"/>
- <line x="10.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="10.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="65.0"/>
- <line x="10.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="55.0"/>
- <line x="10.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="10.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="10.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="10.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="15.0"/>
- <line x="10.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="10.0" y="5.0"/>
+ <move x="30" y="80"/>
+ <line x="30" y="90"/>
+ <move x="50" y="45"/>
+ <line x="60" y="45"/>
+ <move x="0" y="85"/>
+ <line x="10" y="85"/>
+ <move x="0" y="75"/>
+ <line x="10" y="75"/>
+ <move x="0" y="65"/>
+ <line x="10" y="65"/>
+ <move x="0" y="55"/>
+ <line x="10" y="55"/>
+ <move x="0" y="45"/>
+ <line x="10" y="45"/>
+ <move x="0" y="35"/>
+ <line x="10" y="35"/>
+ <move x="0" y="25"/>
+ <line x="10" y="25"/>
+ <move x="0" y="15"/>
+ <line x="10" y="15"/>
+ <move x="0" y="5"/>
+ <line x="10" y="5"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Mux" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="90" name="Mux" strokewidth="inherit" w="60">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.055"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in3" perimeter="0" x="0.0" y="0.275"/>
- <constraint name="in4" perimeter="0" x="0.0" y="0.39"/>
- <constraint name="in5" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="in6" perimeter="0" x="0.0" y="0.61"/>
- <constraint name="in7" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="in8" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="in9" perimeter="0" x="0.0" y="0.945"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="control1" perimeter="0" x="0.415" y="1.0"/>
- <constraint name="control2" perimeter="0" x="0.585" y="1.0"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.055"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in3" perimeter="0" x="0" y="0.275"/>
+ <constraint name="in4" perimeter="0" x="0" y="0.39"/>
+ <constraint name="in5" perimeter="0" x="0" y="0.5"/>
+ <constraint name="in6" perimeter="0" x="0" y="0.61"/>
+ <constraint name="in7" perimeter="0" x="0" y="0.72"/>
+ <constraint name="in8" perimeter="0" x="0" y="0.835"/>
+ <constraint name="in9" perimeter="0" x="0" y="0.945"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ <constraint name="control1" perimeter="0" x="0.415" y="1"/>
+ <constraint name="control2" perimeter="0" x="0.585" y="1"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="70.0"/>
- <line x="10.0" y="90.0"/>
+ <move x="10" y="0"/>
+ <line x="50" y="20"/>
+ <line x="50" y="70"/>
+ <line x="10" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="25.0" y="82.5"/>
- <line x="25.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="45.0"/>
- <line x="60.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="85.0"/>
- <line x="10.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="10.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="65.0"/>
- <line x="10.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="55.0"/>
- <line x="10.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="10.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="10.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="10.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="15.0"/>
- <line x="10.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="10.0" y="5.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="77.5"/>
- <line x="35.0" y="90.0"/>
+ <move x="25" y="82.5"/>
+ <line x="25" y="90"/>
+ <move x="50" y="45"/>
+ <line x="60" y="45"/>
+ <move x="0" y="85"/>
+ <line x="10" y="85"/>
+ <move x="0" y="75"/>
+ <line x="10" y="75"/>
+ <move x="0" y="65"/>
+ <line x="10" y="65"/>
+ <move x="0" y="55"/>
+ <line x="10" y="55"/>
+ <move x="0" y="45"/>
+ <line x="10" y="45"/>
+ <move x="0" y="35"/>
+ <line x="10" y="35"/>
+ <move x="0" y="25"/>
+ <line x="10" y="25"/>
+ <move x="0" y="15"/>
+ <line x="10" y="15"/>
+ <move x="0" y="5"/>
+ <line x="10" y="5"/>
+ <move x="35" y="77.5"/>
+ <line x="35" y="90"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Operational Amp 1" strokewidth="inherit" w="98.0">
+ <shape aspect="variable" h="90" name="Operational Amp 1" strokewidth="inherit" w="98">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.612" y="0.11"/>
<constraint name="control2" perimeter="0" x="0.612" y="0.89"/>
</connections>
<background>
<path>
- <move x="5.0" y="0.0"/>
- <line x="98.0" y="45.0"/>
- <line x="5.0" y="90.0"/>
+ <move x="5" y="0"/>
+ <line x="98" y="45"/>
+ <line x="5" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="60" y="10"/>
+ <line x="60" y="26.5"/>
+ <move x="60" y="63.5"/>
+ <line x="60" y="80"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
</path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="26.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="63.5"/>
- <line x="60.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Operational Amp 2" strokewidth="inherit" w="98.0">
+ <shape aspect="variable" h="90" name="Operational Amp 2" strokewidth="inherit" w="98">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.408" y="0.05"/>
<constraint name="control2" perimeter="0" x="0.408" y="0.95"/>
<constraint name="out+" perimeter="0" x="0.815" y="0.292"/>
@@ -116800,142 +116670,88 @@
</connections>
<background>
<path>
- <move x="5.0" y="0.0"/>
- <line x="98.0" y="45.0"/>
- <line x="5.0" y="90.0"/>
+ <move x="5" y="0"/>
+ <line x="98" y="45"/>
+ <line x="5" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="26.5"/>
- <line x="60.0" y="26.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="63.5"/>
- <line x="80.0" y="63.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="5.0"/>
- <line x="40.0" y="17.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="73.0"/>
- <line x="40.0" y="85.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="80" y="26.5"/>
+ <line x="60" y="26.5"/>
+ <move x="60" y="63.5"/>
+ <line x="80" y="63.5"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
+ <move x="40" y="5"/>
+ <line x="40" y="17"/>
+ <move x="40" y="73"/>
+ <line x="40" y="85"/>
+ <move x="45" y="28"/>
+ <line x="51" y="28"/>
+ <move x="48" y="25"/>
+ <line x="48" y="31"/>
+ <move x="45" y="62"/>
+ <line x="51" y="62"/>
</path>
- <fillstroke/>
- <path>
- <move x="45.0" y="28.0"/>
- <line x="51.0" y="28.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.0" y="25.0"/>
- <line x="48.0" y="31.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="62.0"/>
- <line x="51.0" y="62.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="OTA 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="OTA 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.4" y="0.05"/>
<constraint name="control2" perimeter="0" x="0.4" y="0.95"/>
</connections>
<background>
<path>
- <move x="5.0" y="90.0"/>
- <line x="5.0" y="0.0"/>
- <line x="68.0" y="30.5"/>
- <line x="68.0" y="59.5"/>
+ <move x="5" y="90"/>
+ <line x="5" y="0"/>
+ <line x="68" y="30.5"/>
+ <line x="68" y="59.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="73.0"/>
- <line x="40.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="5.0"/>
- <line x="40.0" y="17.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="68" y="45"/>
+ <line x="100" y="45"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="40" y="73"/>
+ <line x="40" y="85"/>
+ <move x="40" y="5"/>
+ <line x="40" y="17"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="OTA 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="OTA 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.4" y="0.05"/>
<constraint name="control2" perimeter="0" x="0.4" y="0.95"/>
<constraint name="out+" perimeter="0" x="0.8" y="0.292"/>
@@ -116943,257 +116759,200 @@
</connections>
<background>
<path>
- <move x="5.0" y="90.0"/>
- <line x="5.0" y="0.0"/>
- <line x="68.0" y="30.5"/>
- <line x="68.0" y="59.5"/>
+ <move x="5" y="90"/>
+ <line x="5" y="0"/>
+ <line x="68" y="30.5"/>
+ <line x="68" y="59.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="62.0"/>
- <line x="51.0" y="62.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="28.0"/>
- <line x="51.0" y="28.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.0" y="25.0"/>
- <line x="48.0" y="31.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="63.5"/>
- <line x="80.0" y="63.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="26.5"/>
- <line x="60.0" y="26.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="73.0"/>
- <line x="40.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="5.0"/>
- <line x="40.0" y="17.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="68" y="45"/>
+ <line x="100" y="45"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="45" y="62"/>
+ <line x="51" y="62"/>
+ <move x="45" y="28"/>
+ <line x="51" y="28"/>
+ <move x="48" y="25"/>
+ <line x="48" y="31"/>
+ <move x="60" y="63.5"/>
+ <line x="80" y="63.5"/>
+ <move x="80" y="26.5"/>
+ <line x="60" y="26.5"/>
+ <move x="40" y="73"/>
+ <line x="40" y="85"/>
+ <move x="40" y="5"/>
+ <line x="40" y="17"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="OTA 3" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="OTA 3" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="5.0" y="90.0"/>
- <line x="5.0" y="0.0"/>
- <line x="68.0" y="30.5"/>
- <line x="68.0" y="59.5"/>
+ <move x="5" y="90"/>
+ <line x="5" y="0"/>
+ <line x="68" y="30.5"/>
+ <line x="68" y="59.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="5.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
+ <move x="0" y="45"/>
+ <line x="5" y="45"/>
+ <move x="68" y="45"/>
+ <line x="100" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Quantizer" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Quantizer" strokewidth="inherit" w="52">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="21.0" y="33.0"/>
- <line x="26.0" y="33.0"/>
- <line x="26.0" y="13.0"/>
- <line x="31.0" y="13.0"/>
+ <move x="21" y="33"/>
+ <line x="26" y="33"/>
+ <line x="26" y="13"/>
+ <line x="31" y="13"/>
+ <move x="21" y="23"/>
+ <line x="31" y="23"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="21.0" y="23.0"/>
- <line x="31.0" y="23.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Sum" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Sum" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="32.0" y="35.0"/>
- <line x="18.0" y="35.0"/>
- <line x="28.0" y="25.0"/>
- <line x="18.0" y="15.0"/>
- <line x="32.0" y="15.0"/>
+ <move x="32" y="35"/>
+ <line x="18" y="35"/>
+ <line x="28" y="25"/>
+ <line x="18" y="15"/>
+ <line x="32" y="15"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Summation Point" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Summation Point" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="25.0" y="10.0"/>
- <line x="25.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="25.0"/>
- <line x="40.0" y="25.0"/>
+ <move x="25" y="10"/>
+ <line x="25" y="40"/>
+ <move x="10" y="25"/>
+ <line x="40" y="25"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="94.25" name="Thermistor With Independent Integral Heater" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="94.25" name="Thermistor With Independent Integral Heater" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.48"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.48"/>
- <constraint name="v-" perimeter="0" x="0.435" y="1.0"/>
- <constraint name="v+" perimeter="0" x="0.625" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.48"/>
+ <constraint name="out" perimeter="0" x="1" y="0.48"/>
+ <constraint name="v-" perimeter="0" x="0.435" y="1"/>
+ <constraint name="v+" perimeter="0" x="0.625" y="1"/>
</connections>
<background>
- <ellipse h="80.0" w="80.0" x="10.0" y="5.0"/>
+ <ellipse h="80" w="80" x="10" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="18.0" y="45.0"/>
- <line x="22.0" y="35.0"/>
- <line x="30.0" y="55.0"/>
- <line x="38.0" y="35.0"/>
- <line x="46.0" y="55.0"/>
- <line x="54.0" y="35.0"/>
- <line x="62.0" y="55.0"/>
- <line x="70.0" y="35.0"/>
- <line x="78.0" y="55.0"/>
- <line x="82.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- <move x="0.0" y="85.0"/>
- <line x="15.0" y="85.0"/>
- <line x="23.5" y="75.0"/>
+ <move x="0" y="45"/>
+ <line x="18" y="45"/>
+ <line x="22" y="35"/>
+ <line x="30" y="55"/>
+ <line x="38" y="35"/>
+ <line x="46" y="55"/>
+ <line x="54" y="35"/>
+ <line x="62" y="55"/>
+ <line x="70" y="35"/>
+ <line x="78" y="55"/>
+ <line x="82" y="45"/>
+ <line x="100" y="45"/>
+ <move x="0" y="85"/>
+ <line x="15" y="85"/>
+ <line x="23.5" y="75"/>
<move x="43.5" y="93.5"/>
- <line x="44.0" y="84.75"/>
- <line x="53.75" y="73.0"/>
+ <line x="44" y="84.75"/>
+ <line x="53.75" y="73"/>
<line x="62.5" y="82.75"/>
<line x="62.75" y="94.25"/>
- <move x="87.0" y="0.0"/>
- <line x="75.3" y="14.0"/>
+ <move x="87" y="0"/>
+ <line x="75.3" y="14"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="58.0" name="Voltage Regulator" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="58" name="Voltage Regulator" strokewidth="inherit" w="70">
<connections>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in" perimeter="0" x="0.0" y="0.395"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.395"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in" perimeter="0" x="0" y="0.395"/>
+ <constraint name="out" perimeter="0" x="1" y="0.395"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="9.0" y="0.0"/>
+ <rect h="46" w="52" x="9" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="23.0"/>
- <line x="9.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="58.0"/>
- <line x="35.0" y="46.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="23.0"/>
- <line x="70.0" y="23.0"/>
+ <move x="0" y="23"/>
+ <line x="9" y="23"/>
+ <move x="35" y="58"/>
+ <line x="35" y="46"/>
+ <move x="61" y="23"/>
+ <line x="70" y="23"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.capacitors">
+<shapes name="mxgraph.electrical.capacitors">
<shape aspect="variable" h="60" name="Capacitor 1" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -117203,785 +116962,436 @@
<path>
<move x="0" y="30"/>
<line x="45" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="55" y="0"/>
<line x="55" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="45" y="0"/>
<line x="45" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="55" y="30"/>
<line x="100" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 3" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 3" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="60"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 4" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 4" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="42.0" y="30.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="58.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="0" y="30"/>
+ <line x="42" y="30"/>
+ <move x="58" y="30"/>
+ <line x="100" y="30"/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <rect h="60.0" w="3.0" x="42.0" y="0.0"/>
<stroke/>
- <restore/>
- <rect/>
+ <rect h="60" w="3" x="42" y="0"/>
<stroke/>
- <rect h="60.0" w="3.0" x="55.0" y="0.0"/>
+ <rect h="60" w="3" x="55" y="0"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 5" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 5" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 6" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 6" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="5.0"/>
- <line x="50.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="10.0"/>
- <line x="55.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="15.0"/>
- <line x="55.0" y="5.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="20.0"/>
- <line x="55.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="25.0"/>
- <line x="55.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="55.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="40.0"/>
- <line x="55.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="45.0"/>
- <line x="55.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="50.0"/>
- <line x="55.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="55.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="60.0"/>
- <line x="55.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="60.0"/>
- <line x="55.0" y="55.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
+ <move x="45" y="5"/>
+ <line x="50" y="0"/>
+ <move x="45" y="10"/>
+ <line x="55" y="0"/>
+ <move x="45" y="15"/>
+ <line x="55" y="5"/>
+ <move x="45" y="20"/>
+ <line x="55" y="10"/>
+ <move x="45" y="25"/>
+ <line x="55" y="15"/>
+ <move x="45" y="30"/>
+ <line x="55" y="20"/>
+ <move x="45" y="35"/>
+ <line x="55" y="25"/>
+ <move x="45" y="40"/>
+ <line x="55" y="30"/>
+ <move x="45" y="45"/>
+ <line x="55" y="35"/>
+ <move x="45" y="50"/>
+ <line x="55" y="40"/>
+ <move x="45" y="55"/>
+ <line x="55" y="45"/>
+ <move x="45" y="60"/>
+ <line x="55" y="50"/>
+ <move x="50" y="60"/>
+ <line x="55" y="55"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Differential Capacitor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Differential Capacitor" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.625"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.625"/>
- <constraint name="diff" perimeter="0" x="0.5" y="0.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.625"/>
+ <constraint name="out" perimeter="0" x="1" y="0.625"/>
+ <constraint name="diff" perimeter="0" x="0.5" y="0"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="50.0"/>
- <line x="45.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="20.0"/>
- <line x="55.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="20.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="50.0"/>
- <line x="100.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="80.0"/>
- <line x="70.0" y="20.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="30.0"/>
- <line x="70.0" y="20.0"/>
+ <move x="0" y="50"/>
+ <line x="45" y="50"/>
+ <move x="55" y="20"/>
+ <line x="55" y="80"/>
+ <move x="45" y="20"/>
+ <line x="45" y="80"/>
+ <move x="55" y="50"/>
+ <line x="100" y="50"/>
+ <move x="30" y="80"/>
+ <line x="70" y="20"/>
+ <move x="57" y="30"/>
+ <line x="70" y="20"/>
<line x="66.5" y="35.5"/>
- </path>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="80.0"/>
+ <move x="50" y="0"/>
+ <line x="50" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Feed Through Capacitor" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="100" name="Feed Through Capacitor" strokewidth="inherit" w="90">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="50.0"/>
- <line x="10.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="20.0"/>
- <line x="40.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="50.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="50.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="50.0"/>
- <line x="75.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="100.0"/>
+ <move x="0" y="50"/>
+ <line x="10" y="50"/>
+ <move x="50" y="20"/>
+ <line x="50" y="80"/>
+ <move x="40" y="20"/>
+ <line x="40" y="80"/>
+ <move x="50" y="50"/>
+ <line x="60" y="50"/>
+ <move x="15" y="50"/>
+ <line x="25" y="50"/>
+ <move x="30" y="50"/>
+ <line x="40" y="50"/>
+ <move x="65" y="50"/>
+ <line x="75" y="50"/>
+ <move x="80" y="50"/>
+ <line x="90" y="50"/>
+ <move x="45" y="0"/>
+ <line x="45" y="100"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Ganged Capacitor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Ganged Capacitor" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.23"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.77"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.23"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.77"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="0.0" y="100.0"/>
- <line x="45.0" y="100.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="70.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
+ <move x="0" y="100"/>
+ <line x="45" y="100"/>
+ <move x="45" y="70"/>
+ <line x="45" y="130"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
<line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- <path>
- <move x="57.0" y="80.0"/>
- <line x="70.0" y="70.0"/>
+ <move x="57" y="80"/>
+ <line x="70" y="70"/>
<line x="66.5" y="85.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="80.0"/>
- <line x="30.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="100.0"/>
- <line x="30.0" y="110.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="70.0"/>
- <line x="30.0" y="60.0"/>
- <line x="70.0" y="0.6"/>
- </path>
- <stroke/>
- <path>
- <move x="30.0" y="120.0"/>
- <line x="30.0" y="130.0"/>
- <line x="70.0" y="70.0"/>
+ <move x="30" y="80"/>
+ <line x="30" y="90"/>
+ <move x="30" y="100"/>
+ <line x="30" y="110"/>
+ <move x="30" y="70"/>
+ <line x="30" y="60"/>
+ <line x="70" y="0.6"/>
+ <move x="30" y="120"/>
+ <line x="30" y="130"/>
+ <line x="70" y="70"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Multiple Capacitor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Multiple Capacitor" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="65.0"/>
- <line x="45.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
+ <move x="0" y="65"/>
+ <line x="45" y="65"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="130"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Multiple Electrolytic Capacitor Comm Neg" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Multiple Electrolytic Capacitor Comm Neg" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="65.0"/>
- <line x="45.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="10.0"/>
- <line x="65.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="5.0"/>
- <line x="70.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="120.0"/>
- <line x="65.0" y="120.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="115.0"/>
- <line x="70.0" y="125.0"/>
+ <move x="0" y="65"/>
+ <line x="45" y="65"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="130"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
+ <move x="75" y="10"/>
+ <line x="65" y="10"/>
+ <move x="70" y="5"/>
+ <line x="70" y="15"/>
+ <move x="75" y="120"/>
+ <line x="65" y="120"/>
+ <move x="70" y="115"/>
+ <line x="70" y="125"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Multiple Electrolytic Capacitor Comm Pos" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Multiple Electrolytic Capacitor Comm Pos" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="65.0"/>
- <line x="45.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="120.0"/>
- <line x="65.0" y="120.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="10.0"/>
- <line x="65.0" y="10.0"/>
+ <move x="0" y="65"/>
+ <line x="45" y="65"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="130"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
+ <move x="75" y="120"/>
+ <line x="65" y="120"/>
+ <move x="75" y="10"/>
+ <line x="65" y="10"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="65.5" name="Trimmer Capacitor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="65.5" name="Trimmer Capacitor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="35.5"/>
- <line x="45.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="5.5"/>
- <line x="55.0" y="65.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="5.5"/>
- <line x="45.0" y="65.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.2" y="0.0"/>
+ <move x="0" y="35.5"/>
+ <line x="45" y="35.5"/>
+ <move x="55" y="5.5"/>
+ <line x="55" y="65.5"/>
+ <move x="45" y="5.5"/>
+ <line x="45" y="65.5"/>
+ <move x="55" y="35.5"/>
+ <line x="100" y="35.5"/>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
<line x="78.2" y="10.5"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="65.5" name="Trimmer Capacitor 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="65.5" name="Trimmer Capacitor 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="35.5"/>
- <line x="45.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="5.5"/>
- <line x="45.0" y="65.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="5.5"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="65.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.2" y="0.0"/>
+ <move x="0" y="35.5"/>
+ <line x="45" y="35.5"/>
+ <move x="45" y="5.5"/>
+ <line x="45" y="65.5"/>
+ <move x="55" y="35.5"/>
+ <line x="100" y="35.5"/>
+ <move x="65" y="5.5"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="65.5"/>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
<line x="78.2" y="10.5"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Variable Capacitor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Variable Capacitor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
<line x="66.5" y="15.5"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Variable Capacitor 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Variable Capacitor 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="60"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
<line x="66.5" y="15.5"/>
</path>
<stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.diodes">
+<shapes name="mxgraph.electrical.diodes">
<shape aspect="variable" h="60" name="Diode" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -117993,988 +117403,2016 @@
<line x="70" y="30"/>
<line x="30" y="60"/>
<close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
<move x="0" y="30"/>
<line x="30" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="70" y="0"/>
<line x="70" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="70" y="30"/>
<line x="100" y="30"/>
</path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Field Effect Diode" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <close/>
- </path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="0.0"/>
- <line x="70.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="65.0" y="60.0"/>
- <line x="75.0" y="60.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Four Layer Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Field Effect Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="80.0" w="80.0" x="10.0" y="0.0"/>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Gunn Diode" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="90.0" y="60.0"/>
- <line x="90.0" y="0.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
+ <move x="70" y="0"/>
+ <line x="70" y="60"/>
+ <move x="70" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <line x="75" y="0"/>
+ <move x="65" y="60"/>
+ <line x="75" y="60"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Schottky Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Four Layer Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="40"/>
<close/>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="30" y="40"/>
+ <line x="30" y="70"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="60.0" y="5.0"/>
- <line x="60.0" y="0.0"/>
- <line x="70.0" y="0.0"/>
- <line x="70.0" y="60.0"/>
- <line x="80.0" y="60.0"/>
- <line x="80.0" y="55.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
+ <ellipse h="80" w="80" x="10" y="0"/>
<stroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Transorb 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Gunn Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="90.0" y="60.0"/>
- <line x="90.0" y="0.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="10" y="0"/>
+ <line x="90" y="60"/>
+ <line x="90" y="0"/>
+ <line x="10" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="90" y="30"/>
+ <line x="100" y="30"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Transorb 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Schottky Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="10.0" y="0.0"/>
- <line x="90.0" y="60.0"/>
- <line x="90.0" y="0.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="40.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- <line x="50.0" y="50.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
+ <move x="60" y="5"/>
+ <line x="60" y="0"/>
+ <line x="70" y="0"/>
+ <line x="70" y="60"/>
+ <line x="80" y="60"/>
+ <line x="80" y="55"/>
+ <move x="70" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Tunnel Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Transorb 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
+ <move x="10" y="0"/>
+ <line x="90" y="60"/>
+ <line x="90" y="0"/>
+ <line x="10" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="60.0" y="0.0"/>
- <line x="70.0" y="0.0"/>
- <line x="70.0" y="60.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="50" y="0"/>
+ <line x="50" y="60"/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="90" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Tunnel Diode 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Transorb 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
+ <move x="10" y="0"/>
+ <line x="90" y="60"/>
+ <line x="90" y="0"/>
+ <line x="10" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
+ <move x="40" y="0"/>
+ <line x="50" y="10"/>
+ <line x="50" y="50"/>
+ <line x="60" y="60"/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="90" y="30"/>
+ <line x="100" y="30"/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="80.0" w="80.0" x="10.0" y="0.0"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Varactor - Varicap" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="75.0" y="0.0"/>
- <line x="75.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Zener Diode 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Tunnel Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="25.0" y="0.0"/>
- <line x="75.0" y="25.0"/>
- <line x="25.0" y="50.0"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- <line x="75.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
+ <move x="60" y="0"/>
+ <line x="70" y="0"/>
+ <line x="70" y="60"/>
+ <line x="60" y="60"/>
+ <move x="70" y="30"/>
+ <line x="100" y="30"/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="25.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Zener Diode 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Tunnel Diode 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="25.0" y="0.0"/>
- <line x="75.0" y="25.0"/>
- <line x="25.0" y="50.0"/>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- <line x="75.0" y="50.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="25.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Zener Diode 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <save/>
- <path>
- <move x="25.0" y="0.0"/>
- <line x="75.0" y="25.0"/>
- <line x="25.0" y="50.0"/>
- <close/>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
</path>
- </background>
- <foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="10.0"/>
- <line x="75.0" y="40.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
+ <ellipse h="80" w="80" x="10" y="0"/>
<stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="25.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
-</shapes>
-<shapes name="mxGraph.electrical.electro-mechanical">
- <shape aspect="variable" h="26" name="2-Way Switch" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.885"/>
- <constraint name="out1" perimeter="0" x="1" y="0.115"/>
- <constraint name="out2" perimeter="0" x="1" y="0.885"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="23"/>
- <line x="15" y="23"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60" y="23"/>
- <line x="75" y="23"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="20"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="15" y="20"/>
- <fillstroke/>
- <path>
- <move x="21" y="22"/>
- <line x="57" y="7"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60" y="3"/>
- <line x="75" y="3"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60" name="Buzzer" strokewidth="inherit" w="45">
+ <shape aspect="variable" h="60" name="Varactor - Varicap" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1" y="0.335"/>
- <constraint name="out2" perimeter="0" x="1" y="0.665"/>
- </connections>
- <background>
- <path>
- <move x="0" y="0"/>
- <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="0" x-axis-rotation="0" y="60"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="28" y="20"/>
- <line x="45" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="28" y="40"/>
- <line x="45" y="40"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50" name="Loudspeaker" strokewidth="inherit" w="25">
- <connections>
- <constraint name="in1" perimeter="0" x="0" y="0.4"/>
- <constraint name="in2" perimeter="0" x="0" y="0.6"/>
<constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="25" y="50"/>
- <line x="25" y="0"/>
- <line x="15" y="15"/>
- <line x="10" y="15"/>
- <line x="10" y="35"/>
- <line x="15" y="35"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0" y="30"/>
- <line x="10" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0" y="20"/>
- <line x="10" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15" y="15"/>
- <line x="15" y="35"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60" name="Motor 1" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <ellipse h="60" w="60" x="20" y="0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0" y="30"/>
- <line x="20" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80" y="30"/>
+ <move x="75" y="0"/>
+ <line x="75" y="60"/>
+ <move x="70" y="60"/>
+ <line x="70" y="0"/>
+ <move x="70" y="30"/>
<line x="100" y="30"/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.09" name="Motor 2" strokewidth="inherit" w="100">
+ <shape aspect="variable" h="50" name="Zener Diode 1" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
<constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="15" y="20.04"/>
- <line x="21.7" y="20.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="20.04"/>
- <line x="85" y="20.04"/>
- <line x="85" y="40.04"/>
- <line x="78.3" y="40.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="21.7" x-axis-rotation="0" y="40.04"/>
- <line x="15" y="40.04"/>
+ <move x="25" y="0"/>
+ <line x="75" y="25"/>
+ <line x="25" y="50"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0" y="30.04"/>
- <line x="15" y="30.04"/>
- </path>
- <fillstroke/>
- <path>
- <move x="85" y="30.04"/>
- <line x="100" y="30.04"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="21.7" y="20.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="0" x="21.7" x-axis-rotation="0" y="40.04"/>
- </path>
- <stroke/>
- <path>
- <move x="78.3" y="20.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="40.04"/>
+ <move x="65" y="0"/>
+ <line x="75" y="0"/>
+ <line x="75" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="75" y="25"/>
+ <line x="100" y="25"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="40" name="Piezo Sounder" strokewidth="inherit" w="100">
+ <shape aspect="variable" h="50" name="Zener Diode 2" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
<constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="40" w="14" x="43" y="0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0" y="20"/>
- <line x="39" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="20"/>
- <line x="100" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39" y="0"/>
- <line x="39" y="40"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="0"/>
- <line x="61" y="40"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="10" name="Push Switch NC" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.6"/>
- <constraint name="out" perimeter="0" x="1" y="0.6"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="6"/>
- <line x="17" y="6"/>
- </path>
- <fillstroke/>
- <path>
- <move x="58" y="6"/>
- <line x="75" y="6"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="3"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="17" y="3"/>
- <fillstroke/>
- <path>
- <move x="18" y="10"/>
- <line x="59" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="37.5" y="0"/>
- <line x="37.5" y="10"/>
- </path>
- <stroke/>
- <path>
- <move x="35" y="0"/>
- <line x="40" y="0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="19" name="Push Switch NO" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.84"/>
- <constraint name="out" perimeter="0" x="1" y="0.84"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="16"/>
- <line x="17" y="16"/>
- </path>
- <fillstroke/>
<path>
- <move x="58" y="16"/>
- <line x="75" y="16"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="13"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="17" y="13"/>
- <fillstroke/>
- <path>
- <move x="18" y="10"/>
- <line x="59" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="37.5" y="0"/>
- <line x="37.5" y="10"/>
- </path>
- <stroke/>
- <path>
- <move x="35" y="0"/>
- <line x="40" y="0"/>
+ <move x="25" y="0"/>
+ <line x="75" y="25"/>
+ <line x="25" y="50"/>
+ <close/>
</path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20" name="Reed Switch" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <roundrect arcsize="50" h="20" w="48" x="13.5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="49" y="10"/>
- <line x="75" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0" y="10"/>
- <line x="26" y="10"/>
- <line x="49" y="5"/>
+ <move x="65" y="0"/>
+ <line x="75" y="0"/>
+ <line x="75" y="50"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="75" y="25"/>
+ <line x="100" y="25"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100" name="Relay Changeover Contact" strokewidth="inherit" w="50">
- <connections>
- <constraint name="in" perimeter="0" x="0.5" y="1"/>
- <constraint name="out1" perimeter="0" x="0.1" y="0"/>
- <constraint name="out2" perimeter="0" x="0.9" y="0"/>
- </connections>
- <foreground>
- <path>
- <move x="45" y="0"/>
- <line x="45" y="17"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25" y="83"/>
- <line x="25" y="100"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="20" y="73"/>
- <fillstroke/>
- <ellipse h="10" w="10" x="40" y="17"/>
- <fillstroke/>
- <path>
- <move x="5" y="0"/>
- <line x="5" y="17"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="17"/>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="40" y="25"/>
- <line x="27" y="73.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50" name="Relay Coil" strokewidth="inherit" w="99">
- <connections>
- <constraint name="in" perimeter="0" x="0.5" y="0"/>
- <constraint name="out" perimeter="0" x="0.5" y="1"/>
- </connections>
- <background>
- <rect h="30" w="99" x="0" y="10"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="49.5" y="0"/>
- <line x="49.5" y="10"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.5" y="40"/>
- <line x="49.5" y="50"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="100" name="Relay Contact NC" strokewidth="inherit" w="10">
- <connections>
- <constraint name="in" perimeter="0" x="0.5" y="0"/>
- <constraint name="out" perimeter="0" x="0.5" y="1"/>
- </connections>
- <foreground>
- <path>
- <move x="5" y="0"/>
- <line x="5" y="17"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5" y="83"/>
- <line x="5" y="100"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="73"/>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="17"/>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="10" y="24"/>
- <line x="7" y="73.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="100" name="Relay Contact NO" strokewidth="inherit" w="20">
- <connections>
- <constraint name="in" perimeter="0" x="0.25" y="0"/>
- <constraint name="out" perimeter="0" x="0.25" y="1"/>
- </connections>
- <foreground>
- <path>
- <move x="5" y="0"/>
- <line x="5" y="17"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5" y="83"/>
- <line x="5" y="100"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="73"/>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="17"/>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20" y="26.5"/>
- <line x="7" y="73.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="fixed" h="5" name="Relay Pole" strokewidth="inherit" w="100">
+ <shape aspect="variable" h="50" name="Zener Diode 3" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
<constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
- <foreground>
- <path>
- <move x="0" y="2.5"/>
- <line x="20" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40" y="2.5"/>
- <line x="60" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80" y="2.5"/>
- <line x="100" y="2.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50" name="Resonator" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.6"/>
- <constraint name="out" perimeter="0" x="1" y="0.6"/>
- <constraint name="control" perimeter="0" x="0.5" y="0"/>
- </connections>
<background>
<path>
- <move x="50" y="0"/>
- <line x="50" y="10"/>
+ <move x="25" y="0"/>
+ <line x="75" y="25"/>
+ <line x="25" y="50"/>
+ <close/>
</path>
</background>
<foreground>
<fillstroke/>
- <rect h="40" w="14" x="43" y="10"/>
- <fillstroke/>
- <path>
- <move x="0" y="30"/>
- <line x="39" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="30"/>
- <line x="100" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39" y="10"/>
- <line x="39" y="50"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="10"/>
- <line x="61" y="50"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="32" name="Simple Switch" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="16"/>
- <line x="15" y="16"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60" y="16"/>
- <line x="75" y="16"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="13"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="15" y="13"/>
- <fillstroke/>
<path>
- <move x="21" y="15"/>
- <line x="57" y="0"/>
+ <move x="65" y="0"/>
+ <line x="75" y="10"/>
+ <line x="75" y="40"/>
+ <line x="85" y="50"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="75" y="25"/>
+ <line x="100" y="25"/>
</path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="fixed" h="16" name="Switch Contact" strokewidth="inherit" w="16">
- <connections>
- <constraint name="W" perimeter="0" x="0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <ellipse h="16" w="16" x="0" y="0"/>
- </background>
- <foreground>
- <strokewidth width="2"/>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.iec417">
+<shapes name="mxgraph.electrical.electro-mechanical">
+<shape aspect="variable" h="26" name="2-Way Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.885"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.115"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.885"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="23"/>
+ <line x="15" y="23"/>
+ <move x="60" y="23"/>
+ <line x="75" y="23"/>
+ <move x="21" y="22"/>
+ <line x="57" y="7"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="2 Position Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="35"/>
+ <line x="15" y="35"/>
+ <move x="60" y="35"/>
+ <line x="75" y="35"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="12.5"/>
+ <move x="37.5" y="57.5"/>
+ <line x="37.5" y="70"/>
+ <move x="33.5" y="43"/>
+ <line x="45.5" y="31.2"/>
+ <move x="29.5" y="38.8"/>
+ <line x="41.5" y="26.8"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="12.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="51.5"/>
+ <fillstroke/>
+ <path>
+ <move x="18" y="35"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="1" x="37.5" x-axis-rotation="0" y="54.5"/>
+ <move x="37.5" y="15.5"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="0" x="57" x-axis-rotation="0" y="35"/>
+ <move x="47.5" y="10"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="62.5" x-axis-rotation="0" y="25"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="47.5" y="7"/>
+ <line x="42" y="10"/>
+ <line x="47.5" y="13"/>
+ <close/>
+ <move x="59.5" y="25"/>
+ <line x="65.5" y="25"/>
+ <line x="62.5" y="30.5"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="3 Position Switch" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="60"/>
+ <line x="12.7" y="49.5"/>
+ <move x="47.3" y="49.5"/>
+ <line x="60" y="60"/>
+ <move x="30" y="0"/>
+ <line x="30" y="12.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="42" y="44.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="12" y="44.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="27" y="12.5"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="15.5"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="1" x="15" x-axis-rotation="0" y="47.5"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="20.57" y="17.75"/>
+ <line x="23.3" y="12.12"/>
+ <line x="17.08" y="12.87"/>
+ <close/>
+ <move x="4.48" y="37.75"/>
+ <line x="10.4" y="36.77"/>
+ <line x="8.34" y="42.69"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <strokecolor color="#000000"/>
+ <path>
+ <move x="7.5" y="38"/>
+ <arc large-arc-flag="0" rx="22.5" ry="22.5" sweep-flag="1" x="19.5" x-axis-rotation="0" y="15"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="4 Position Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="35"/>
+ <line x="15" y="35"/>
+ <move x="60" y="35"/>
+ <line x="75" y="35"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="12.5"/>
+ <move x="37.5" y="57.5"/>
+ <line x="37.5" y="70"/>
+ <move x="23.82" y="48.9"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="1" x="51.4" x-axis-rotation="-45.47" y="48.68"/>
+ <move x="23.6" y="21.32"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="0" x="51.18" x-axis-rotation="-45.47" y="21.1"/>
+ <move x="27.5" y="10"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="12.5" x-axis-rotation="0" y="25"/>
+ <move x="40.4" y="43.46"/>
+ <line x="40.4" y="26.63"/>
+ <move x="34.6" y="43.37"/>
+ <line x="34.46" y="26.4"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="12.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="51.5"/>
+ <fillstroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="27.5" y="7"/>
+ <line x="33" y="10"/>
+ <line x="27.5" y="13"/>
+ <close/>
+ <move x="15.5" y="25"/>
+ <line x="9.5" y="25"/>
+ <line x="12.5" y="30.5"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="18" y="35"/>
+ <line x="57" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Bell" strokewidth="inherit" w="47">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="17" y="0"/>
+ <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="17" x-axis-rotation="0" y="60"/>
+ <close/>
+ <move x="0" y="30"/>
+ <line x="17" y="30"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Break Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18.5" y="10"/>
+ <line x="55" y="3"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <line x="75" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Buzzer" strokewidth="inherit" w="45">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.335"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.665"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="0" x-axis-rotation="0" y="60"/>
+ <close/>
+ <move x="28" y="20"/>
+ <line x="45" y="20"/>
+ <move x="28" y="40"/>
+ <line x="45" y="40"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Changeover Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="20"/>
+ <line x="75" y="20"/>
+ <move x="0" y="20"/>
+ <line x="18.5" y="20"/>
+ <line x="57" y="4"/>
+ <move x="75" y="0"/>
+ <line x="50" y="0"/>
+ <line x="50" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Circuit Breaker" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.8"/>
+ <constraint name="E" perimeter="0" x="1" y="0.8"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="56" y="12"/>
+ <line x="64" y="20"/>
+ <move x="64" y="12"/>
+ <line x="56" y="20"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="DPDT" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.28"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.28"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.905"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.905"/>
+ </connections>
+ <foreground>
+ <ellipse h="6" w="6" x="54" y="6"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="6"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="26"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="26"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="32.75" y="25.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="32.75" y="5.5"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="9"/>
+ <line x="15" y="9"/>
+ <move x="0" y="29"/>
+ <line x="15" y="29"/>
+ <move x="60" y="9"/>
+ <line x="75" y="9"/>
+ <move x="60" y="29"/>
+ <line x="75" y="29"/>
+ <move x="38" y="7"/>
+ <line x="57" y="0"/>
+ <move x="38" y="27"/>
+ <line x="57" y="20"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="47" y="4"/>
+ <line x="47" y="24"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="26" name="DPST" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.115"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.885"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.115"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.885"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="75" y="3"/>
+ <move x="0" y="23"/>
+ <line x="75" y="23"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="20"/>
+ <fillstroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="3"/>
+ <line x="37" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Flow Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.095"/>
+ <constraint name="E" perimeter="0" x="1" y="0.095"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="37" y="10.5"/>
+ <line x="37" y="31"/>
+ <line x="45" y="31"/>
+ <line x="37" y="20"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="16" name="Fuse" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="26" y="9"/>
+ <line x="29" y="15.5"/>
+ <line x="45.2" y="8.8"/>
+ <line x="42.2" y="2.4"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Gas Flow Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="32"/>
+ <line x="75" y="32"/>
+ <move x="0" y="32"/>
+ <line x="18.5" y="32"/>
+ <line x="57" y="16"/>
+ </path>
+ <stroke/>
+ <rect h="12" w="12" x="31" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="40" y="10"/>
+ <line x="40" y="3"/>
+ <line x="34" y="3"/>
+ <line x="34" y="8"/>
+ <line x="40" y="8"/>
+ </path>
+ <stroke/>
+ <ellipse h="2" w="2" x="35" y="5"/>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="24.5"/>
+ <line x="37" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Inertia Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.84"/>
+ <constraint name="E" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="15" y="16"/>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="21" y="15"/>
+ <line x="57" y="0"/>
+ <move x="32" y="5"/>
+ <line x="37" y="5"/>
+ <line x="37" y="8.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="26" y="2"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Isolator" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.8"/>
+ <constraint name="E" perimeter="0" x="1" y="0.8"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ <move x="60" y="12"/>
+ <line x="60" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="16" name="Limit Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="43" y="6"/>
+ <line x="41" y="1"/>
+ <line x="35" y="9.2"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="13" name="Limit Switch NC" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.31"/>
+ <constraint name="E" perimeter="0" x="1" y="0.31"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="57" y="0"/>
+ <line x="18" y="4"/>
+ <line x="46" y="13"/>
+ <line x="54" y="0.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24.3" name="Limit Switch NO" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.12"/>
+ <constraint name="E" perimeter="0" x="1" y="0.12"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="54.2" y="17.9"/>
+ <line x="18" y="3"/>
+ <line x="38.5" y="24.3"/>
+ <line x="51.5" y="17.1"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="28" name="Liquid Level Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.14"/>
+ <constraint name="E" perimeter="0" x="1" y="0.14"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="21" y="3"/>
+ <line x="57" y="0"/>
+ <move x="37" y="2"/>
+ <line x="37" y="20"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ <ellipse h="8" w="8" x="33" y="20"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Liquid Level Actuated 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="32"/>
+ <line x="75" y="32"/>
+ <move x="0" y="32"/>
+ <line x="18.5" y="32"/>
+ <line x="57" y="16"/>
+ </path>
+ <stroke/>
+ <rect h="12" w="12" x="31" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="34" y="8"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="40" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="34" x-axis-rotation="0" y="8"/>
+ <close/>
+ <move x="37" y="4"/>
+ <line x="37" y="6.5"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="24.5"/>
+ <line x="37" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Loudspeaker" strokewidth="inherit" w="25">
+ <connections>
+ <constraint name="W1" perimeter="0" x="0" y="0.4"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.6"/>
+ </connections>
+ <background>
+ <path>
+ <move x="25" y="50"/>
+ <line x="25" y="0"/>
+ <line x="15" y="15"/>
+ <line x="10" y="15"/>
+ <line x="10" y="35"/>
+ <line x="15" y="35"/>
+ <close/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="0" y="20"/>
+ <line x="10" y="20"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="15" y="15"/>
+ <line x="15" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="16" name="Make Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="18" name="Manual Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="18"/>
+ <line x="75" y="18"/>
+ <move x="31" y="0"/>
+ <line x="43" y="0"/>
+ <move x="0" y="18"/>
+ <line x="18.5" y="18"/>
+ <line x="57" y="2"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="10.5"/>
+ <line x="37" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="Mercury Switch" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="40" y="0"/>
+ <line x="40" y="80"/>
+ <move x="23" y="48"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="15" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="23" x-axis-rotation="0" y="32"/>
+ <line x="57" y="32"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="65" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="57" x-axis-rotation="0" y="48"/>
+ <close/>
+ </path>
+ <stroke/>
+ <ellipse h="8" w="8" x="0" y="0"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="72" y="0"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="72" y="72"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="0" y="72"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Mercury Switch 2" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0.1" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.9" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.1" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.9" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="25" y="5"/>
+ <line x="25" y="85"/>
+ <move x="8" y="53"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="0" x-axis-rotation="0" y="45"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="8" x-axis-rotation="0" y="37"/>
+ <line x="42" y="37"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="45"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="42" x-axis-rotation="0" y="53"/>
+ <close/>
+ <move x="5" y="0"/>
+ <line x="5" y="19"/>
+ <move x="45" y="0"/>
+ <line x="45" y="19"/>
+ <move x="45" y="71"/>
+ <line x="45" y="90"/>
+ <move x="5" y="71"/>
+ <line x="5" y="90"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Motor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="20" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ <fontsize size="30"/>
+ <fontstyle style="0"/>
+ <fontcolor color="#000000"/>
+ <text align="center" str="M" valign="bottom" x="50" y="45"/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60.09" name="Motor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="15" y="20.04"/>
+ <line x="21.7" y="20.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="20.04"/>
+ <line x="85" y="20.04"/>
+ <line x="85" y="40.04"/>
+ <line x="78.3" y="40.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="21.7" x-axis-rotation="0" y="40.04"/>
+ <line x="15" y="40.04"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30.04"/>
+ <line x="15" y="30.04"/>
+ <move x="85" y="30.04"/>
+ <line x="100" y="30.04"/>
+ <move x="21.7" y="20.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="0" x="21.7" x-axis-rotation="0" y="40.04"/>
+ <move x="78.3" y="20.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="40.04"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23" name="Passing Make Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.7"/>
+ <constraint name="E" perimeter="0" x="1" y="0.7"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ <move x="75" y="16"/>
+ <line x="58" y="16"/>
+ <line x="70" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Piezo Sounder" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="20"/>
+ <line x="39" y="20"/>
+ <move x="61" y="20"/>
+ <line x="100" y="20"/>
+ <move x="39" y="0"/>
+ <line x="39" y="40"/>
+ <move x="61" y="0"/>
+ <line x="61" y="40"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <rect h="40" w="14" x="43" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Pilot Light" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0.15"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0.85"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.18" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.82" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.18" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.82" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="100" y="50"/>
+ <move x="18" y="0"/>
+ <line x="82" y="100"/>
+ <move x="82" y="0"/>
+ <line x="18" y="100"/>
+ </path>
+ <stroke/>
+ <ellipse h="70" w="70" x="15" y="15"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Pressure Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ <move x="37" y="10.5"/>
+ <line x="37" y="23"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="29" y="31"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="31"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="55" name="Proximity Limit Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="27.5"/>
+ <line x="15" y="27.5"/>
+ <move x="60" y="27.5"/>
+ <line x="75" y="27.5"/>
+ <move x="57" y="23.5"/>
+ <line x="18" y="27.5"/>
+ <line x="46" y="36.5"/>
+ <line x="54" y="24"/>
+ <move x="10" y="27.5"/>
+ <line x="37.5" y="0"/>
+ <line x="65" y="27.5"/>
+ <line x="37.5" y="55"/>
+ <close/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="24.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="24.5"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="73" name="Pushbutton 2 Circuit" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.685"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.96"/>
+ <constraint name="E" perimeter="0" x="1" y="0.685"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.96"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="60" y="50"/>
+ <line x="75" y="50"/>
+ <move x="18" y="54"/>
+ <line x="57" y="54"/>
+ <move x="37" y="0"/>
+ <line x="37" y="54"/>
+ <move x="60" y="70"/>
+ <line x="75" y="70"/>
+ <move x="0" y="70"/>
+ <line x="15" y="70"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="67"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="67"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="54" name="Pushbutton Break" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.925"/>
+ <constraint name="E" perimeter="0" x="1" y="0.925"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="60" y="50"/>
+ <line x="75" y="50"/>
+ <move x="18" y="54"/>
+ <line x="57" y="54"/>
+ <move x="37" y="0"/>
+ <line x="37" y="54"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="47"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="53" name="Pushbutton Make" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.945"/>
+ <constraint name="E" perimeter="0" x="1" y="0.945"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="60" y="50"/>
+ <line x="75" y="50"/>
+ <move x="18" y="42"/>
+ <line x="57" y="42"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="42"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="47"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Push Switch NC" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.6"/>
+ <constraint name="E" perimeter="0" x="1" y="0.6"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="6"/>
+ <line x="17" y="6"/>
+ <move x="58" y="6"/>
+ <line x="75" y="6"/>
+ <move x="18" y="10"/>
+ <line x="59" y="10"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="10"/>
+ <move x="35" y="0"/>
+ <line x="40" y="0"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="3"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="17" y="3"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Push Switch NO" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.84"/>
+ <constraint name="out" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="17" y="16"/>
+ <move x="58" y="16"/>
+ <line x="75" y="16"/>
+ <move x="18" y="10"/>
+ <line x="59" y="10"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="10"/>
+ <move x="35" y="0"/>
+ <line x="40" y="0"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="17" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Reed Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <roundrect arcsize="50" h="20" w="48" x="13.5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="49" y="10"/>
+ <line x="75" y="10"/>
+ <move x="0" y="10"/>
+ <line x="26" y="10"/>
+ <line x="49" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Relay" strokewidth="inherit" w="99">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="30" w="99" x="0" y="10"/>
+ <fillstroke/>
+ <path>
+ <move x="49.5" y="0"/>
+ <line x="49.5" y="10"/>
+ <move x="49.5" y="40"/>
+ <line x="49.5" y="50"/>
+ <move x="25.5" y="10"/>
+ <line x="25.5" y="40"/>
+ <move x="5.5" y="22"/>
+ <arc large-arc-flag="0" rx="4" ry="9" sweep-flag="1" x="12.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="4" ry="9" sweep-flag="0" x="19.5" x-axis-rotation="0" y="28"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Relay Changeover Contact" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="1"/>
+ <constraint name="out1" perimeter="0" x="0.1" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.9" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="45" y="0"/>
+ <line x="45" y="17"/>
+ <move x="25" y="83"/>
+ <line x="25" y="100"/>
+ <move x="5" y="0"/>
+ <line x="5" y="17"/>
+ <move x="40" y="25"/>
+ <line x="27" y="73.5"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="20" y="73"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="40" y="17"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="17"/>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Relay Coil" strokewidth="inherit" w="99">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <rect h="30" w="99" x="0" y="10"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="49.5" y="0"/>
+ <line x="49.5" y="10"/>
+ <move x="49.5" y="40"/>
+ <line x="49.5" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Relay Coil 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="70" w="70" x="15" y="0"/>
+ <stroke/>
+ <path>
+ <move x="0" y="35"/>
+ <line x="15" y="35"/>
+ <move x="85" y="35"/>
+ <line x="100" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="Relay Contacts" strokewidth="inherit" w="30">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="24"/>
+ <move x="20" y="0"/>
+ <line x="20" y="24"/>
+ <move x="20" y="12"/>
+ <line x="30" y="12"/>
+ <move x="10" y="12"/>
+ <line x="0" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Relay Contact NC" strokewidth="inherit" w="10">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="5" y="0"/>
+ <line x="5" y="17"/>
+ <move x="5" y="83"/>
+ <line x="5" y="100"/>
+ <move x="10" y="24"/>
+ <line x="7" y="73.5"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="73"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="17"/>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Relay Contact NO" strokewidth="inherit" w="20">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.25" y="0"/>
+ <constraint name="out" perimeter="0" x="0.25" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="5" y="0"/>
+ <line x="5" y="17"/>
+ <move x="5" y="83"/>
+ <line x="5" y="100"/>
+ <move x="20" y="26.5"/>
+ <line x="7" y="73.5"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="73"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="17"/>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ </foreground>
+</shape>
+<shape aspect="fixed" h="5" name="Relay Pole" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="2.5"/>
+ <line x="20" y="2.5"/>
+ <move x="40" y="2.5"/>
+ <line x="60" y="2.5"/>
+ <move x="80" y="2.5"/>
+ <line x="100" y="2.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Resonator" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.6"/>
+ <constraint name="out" perimeter="0" x="1" y="0.6"/>
+ <constraint name="control" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="0" y="30"/>
+ <line x="39" y="30"/>
+ <move x="61" y="30"/>
+ <line x="100" y="30"/>
+ <move x="39" y="10"/>
+ <line x="39" y="50"/>
+ <move x="61" y="10"/>
+ <line x="61" y="50"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <rect h="40" w="14" x="43" y="10"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="37" name="Safety Interlock" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.405"/>
+ <constraint name="E" perimeter="0" x="1" y="0.405"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="15"/>
+ <line x="15" y="15"/>
+ <move x="60" y="15"/>
+ <line x="75" y="15"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="12"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="12"/>
+ <fillstroke/>
+ <path>
+ <move x="19" y="0"/>
+ <line x="56" y="0"/>
+ <line x="37.5" y="37"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="66" name="Selector Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.045"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.35"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.65"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.955"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="33"/>
+ <line x="15" y="33"/>
+ <move x="60" y="43"/>
+ <line x="75" y="43"/>
+ <move x="60" y="23"/>
+ <line x="75" y="23"/>
+ <move x="51" y="3"/>
+ <line x="75" y="3"/>
+ <move x="51" y="63"/>
+ <line x="75" y="63"/>
+ <move x="18" y="33"/>
+ <line x="47" y="4"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="40"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="60"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="30"/>
+ <fillstroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="40.67" y="6.33"/>
+ <line x="47" y="4"/>
+ <line x="45" y="10"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="66" name="Shorting Selector" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.85" y="0.045"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.35"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.65"/>
+ <constraint name="SE" perimeter="0" x="0.85" y="0.955"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="33"/>
+ <line x="15" y="33"/>
+ <move x="18" y="33"/>
+ <line x="43" y="8"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="40"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="60"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="30"/>
+ <fillstroke/>
+ <path>
+ <move x="37" y="6"/>
+ <line x="37" y="3"/>
+ <arc large-arc-flag="0" rx="12" ry="12" sweep-flag="1" x="49" x-axis-rotation="0" y="12"/>
+ <line x="46" y="13"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="37" x-axis-rotation="0" y="6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Simple Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.84"/>
+ <constraint name="out" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="15" y="16"/>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="21" y="15"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Spring Return" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="18.5" y="0"/>
+ <line x="57" y="10"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="75" y="0"/>
+ <line x="47" y="0"/>
+ <line x="52" y="8"/>
+ <line x="57" y="0"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Spring Return 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.845"/>
+ <constraint name="E" perimeter="0" x="1" y="0.845"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="75" y="16"/>
+ <line x="47" y="16"/>
+ <line x="52" y="8"/>
+ <line x="57" y="16"/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="15.5" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="7" name="Stay Put" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.43"/>
+ <constraint name="E" perimeter="0" x="1" y="0.43"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="7"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="fixed" h="16" name="Switch Contact" strokewidth="inherit" w="16">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="16" w="16" x="0" y="0"/>
+ </background>
+ <foreground>
+ <strokewidth width="2"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Switch Disconnector" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.845"/>
+ <constraint name="E" perimeter="0" x="1" y="0.845"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="60" y="13"/>
+ <line x="60" y="19"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Temperature Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ <move x="37" y="31"/>
+ <line x="37" y="25"/>
+ <line x="42" y="25"/>
+ <line x="42" y="20"/>
+ <line x="37" y="20"/>
+ <line x="37" y="10.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="18" name="Temperature Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="4" w="8" x="32" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="60" y="18"/>
+ <line x="75" y="18"/>
+ <move x="36" y="0"/>
+ <line x="36" y="4"/>
+ <move x="0" y="18"/>
+ <line x="18.5" y="18"/>
+ <line x="57" y="2"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="7" name="Thermostat" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.57"/>
+ <constraint name="E" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="21" y="3"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Time Delay Break" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.125"/>
+ <constraint name="E" perimeter="0" x="1" y="0.125"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="21" y="3"/>
+ <line x="57" y="0"/>
+ <move x="32" y="32"/>
+ <line x="37" y="26"/>
+ <line x="42" y="32"/>
+ <move x="37" y="26"/>
+ <line x="37" y="2"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Time Delay Break 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.33"/>
+ <constraint name="E" perimeter="0" x="1" y="0.33"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="30" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="30"/>
+ <move x="40" y="25"/>
+ <line x="40" y="6"/>
+ <move x="35" y="25"/>
+ <line x="35" y="7"/>
+ <move x="0" y="10"/>
+ <line x="18.5" y="10"/>
+ <line x="55" y="3"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <line x="75" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Time Delay Make" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ <move x="32" y="31"/>
+ <line x="37" y="25"/>
+ <line x="42" y="31"/>
+ <move x="37" y="25"/>
+ <line x="37" y="10.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="36" name="Time Delay Make 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.445"/>
+ <constraint name="E" perimeter="0" x="1" y="0.445"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ <move x="30" y="36"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="36"/>
+ <move x="40" y="31"/>
+ <line x="40" y="7"/>
+ <move x="35" y="31"/>
+ <line x="35" y="9"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Two Way Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="0"/>
+ <line x="75" y="0"/>
+ <move x="50" y="30"/>
+ <line x="75" y="30"/>
+ <move x="0" y="15"/>
+ <line x="50" y="15"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="15.5" y="12"/>
+ <fillstroke/>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.iec417">
<shape aspect="variable" h="85" name="AC-AC Converter" strokewidth="inherit" w="80">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -118988,22 +119426,12 @@
<path>
<move x="0" y="85"/>
<line x="80" y="5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="35" y="0"/>
<line x="40" y="5"/>
<line x="35" y="10"/>
- </path>
- <stroke/>
- <path>
<move x="10" y="20"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="15" x-axis-rotation="0" y="20"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="20" x-axis-rotation="0" y="20"/>
- </path>
- <stroke/>
- <path>
<move x="60" y="70"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="65" x-axis-rotation="0" y="70"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="70" x-axis-rotation="0" y="70"/>
@@ -119011,1513 +119439,1065 @@
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="AC-DC Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="AC-DC Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="10.0" y="20.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="15.0" x-axis-rotation="0.0" y="20.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="20.0" x-axis-rotation="0.0" y="20.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="10" y="20"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="15" x-axis-rotation="0" y="20"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="20" x-axis-rotation="0" y="20"/>
+ <move x="60" y="70"/>
+ <line x="70" y="70"/>
+ <move x="60" y="73"/>
+ <line x="62" y="73"/>
+ <move x="64" y="73"/>
+ <line x="66" y="73"/>
+ <move x="68" y="73"/>
+ <line x="70" y="73"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="73.0"/>
- <line x="62.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="64.0" y="73.0"/>
- <line x="66.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="73.0"/>
- <line x="70.0" y="73.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="AD Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="AD Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="5.0" y="20.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="15.0" x-axis-rotation="0.0" y="20.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="25.0" x-axis-rotation="0.0" y="20.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="75.0"/>
- <line x="40.0" y="75.0"/>
- <line x="40.0" y="68.0"/>
- <line x="47.0" y="68.0"/>
- <line x="47.0" y="75.0"/>
- <line x="52.0" y="75.0"/>
- <line x="52.0" y="68.0"/>
- <line x="59.0" y="68.0"/>
- <line x="59.0" y="75.0"/>
- <line x="66.0" y="75.0"/>
- <line x="66.0" y="68.0"/>
- <line x="73.0" y="68.0"/>
- <line x="73.0" y="75.0"/>
- <line x="76.0" y="75.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="5" y="20"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="15" x-axis-rotation="0" y="20"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="25" x-axis-rotation="0" y="20"/>
+ <move x="35" y="75"/>
+ <line x="40" y="75"/>
+ <line x="40" y="68"/>
+ <line x="47" y="68"/>
+ <line x="47" y="75"/>
+ <line x="52" y="75"/>
+ <line x="52" y="68"/>
+ <line x="59" y="68"/>
+ <line x="59" y="75"/>
+ <line x="66" y="75"/>
+ <line x="66" y="68"/>
+ <line x="73" y="68"/>
+ <line x="73" y="75"/>
+ <line x="76" y="75"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Amp" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Amp" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="5.0" y="5.0"/>
- <line x="75.0" y="40.0"/>
- <line x="5.0" y="75.0"/>
+ <move x="5" y="5"/>
+ <line x="75" y="40"/>
+ <line x="5" y="75"/>
<close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Amp Bidirectional" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Amp Bidirectional" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="31.5" y="15.0"/>
+ <move x="31.5" y="15"/>
<line x="48.5" y="23.5"/>
- <line x="31.5" y="32.0"/>
+ <line x="31.5" y="32"/>
<close/>
- </path>
- <stroke/>
- <path>
<move x="31.5" y="23.5"/>
- <line x="20.0" y="23.5"/>
- <line x="20.0" y="56.5"/>
+ <line x="20" y="23.5"/>
+ <line x="20" y="56.5"/>
<line x="31.5" y="56.5"/>
- </path>
- <stroke/>
- <path>
<move x="48.5" y="23.5"/>
- <line x="60.0" y="23.5"/>
- <line x="60.0" y="56.5"/>
+ <line x="60" y="23.5"/>
+ <line x="60" y="56.5"/>
<line x="48.5" y="56.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="48.5" y="48.0"/>
+ <move x="10" y="40"/>
+ <line x="20" y="40"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
+ <move x="48.5" y="48"/>
<line x="31.5" y="56.5"/>
- <line x="48.5" y="65.0"/>
+ <line x="48.5" y="65"/>
<close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Att" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Att" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="65.0"/>
- <line x="45.0" y="55.0"/>
- <line x="35.0" y="45.0"/>
- <line x="45.0" y="35.0"/>
- <line x="35.0" y="25.0"/>
- <line x="45.0" y="15.0"/>
+ <move x="35" y="65"/>
+ <line x="45" y="55"/>
+ <line x="35" y="45"/>
+ <line x="45" y="35"/>
+ <line x="35" y="25"/>
+ <line x="45" y="15"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Bandpass" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Bandpass" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="40.0"/>
- </path>
- <stroke/>
<path>
- <move x="15.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="25.0"/>
+ <move x="15" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="40"/>
+ <move x="15" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="25"/>
+ <move x="15" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="55"/>
+ <move x="36" y="57"/>
+ <line x="42" y="51"/>
+ <move x="36" y="27"/>
+ <line x="42" y="21"/>
</path>
<stroke/>
- <path>
- <move x="15.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="55.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="57.0"/>
- <line x="42.0" y="51.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="36.0" y="27.0"/>
- <line x="42.0" y="21.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Bandstop" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Bandstop" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="40.0"/>
- </path>
- <stroke/>
- <path>
- <move x="15.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="25.0"/>
- </path>
- <stroke/>
<path>
- <move x="15.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="55.0"/>
+ <move x="15" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="40"/>
+ <move x="15" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="25"/>
+ <move x="15" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="55"/>
+ <move x="36" y="43"/>
+ <line x="42" y="37"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="43.0"/>
- <line x="42.0" y="37.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Block" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Block" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Block Convert" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Block Convert" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Circulator" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Circulator" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="70.0"/>
- <arc large-arc-flag="1" rx="30.0" ry="30.0" sweep-flag="1" x="70.0" x-axis-rotation="0.0" y="40.0"/>
- </path>
- <stroke/>
<path>
- <move x="64.0" y="31.0"/>
- <line x="70.0" y="40.0"/>
- <line x="74.0" y="29.0"/>
+ <move x="40" y="70"/>
+ <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="1" x="70" x-axis-rotation="0" y="40"/>
+ <move x="64" y="31"/>
+ <line x="70" y="40"/>
+ <line x="74" y="29"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Combine" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Combine" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="40.0" y="10.0"/>
- <line x="40.0" y="70.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="55.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="50.0" y="35.0"/>
- <line x="55.0" y="40.0"/>
- <line x="50.0" y="45.0"/>
+ <move x="25" y="10"/>
+ <line x="40" y="10"/>
+ <line x="40" y="70"/>
+ <line x="25" y="70"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <move x="25" y="50"/>
+ <line x="40" y="50"/>
+ <move x="40" y="40"/>
+ <line x="55" y="40"/>
+ <move x="50" y="35"/>
+ <line x="55" y="40"/>
+ <line x="50" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Corrector" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Corrector" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="55.0"/>
- <line x="20.0" y="55.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="0" x="23.0" x-axis-rotation="0.0" y="52.0"/>
- <line x="32.0" y="27.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="1" x="35.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="40.0" y="25.0"/>
- </path>
- <stroke/>
<path>
- <move x="40.0" y="55.0"/>
- <line x="50.0" y="55.0"/>
- <line x="50.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
+ <move x="15" y="55"/>
+ <line x="20" y="55"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="23" x-axis-rotation="0" y="52"/>
+ <line x="32" y="27"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="35" x-axis-rotation="0" y="25"/>
+ <line x="40" y="25"/>
+ <move x="40" y="55"/>
+ <line x="50" y="55"/>
+ <line x="50" y="25"/>
+ <line x="60" y="25"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="DA Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="DA Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="5.0" y="23.0"/>
- <line x="10.0" y="23.0"/>
- <line x="10.0" y="16.0"/>
- <line x="17.0" y="16.0"/>
- <line x="17.0" y="23.0"/>
- <line x="22.0" y="23.0"/>
- <line x="22.0" y="16.0"/>
- <line x="29.0" y="16.0"/>
- <line x="29.0" y="23.0"/>
- <line x="36.0" y="23.0"/>
- <line x="36.0" y="16.0"/>
- <line x="43.0" y="16.0"/>
- <line x="43.0" y="23.0"/>
- <line x="46.0" y="23.0"/>
- </path>
- <stroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="70.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="75.0" x-axis-rotation="0.0" y="70.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="5" y="23"/>
+ <line x="10" y="23"/>
+ <line x="10" y="16"/>
+ <line x="17" y="16"/>
+ <line x="17" y="23"/>
+ <line x="22" y="23"/>
+ <line x="22" y="16"/>
+ <line x="29" y="16"/>
+ <line x="29" y="23"/>
+ <line x="36" y="23"/>
+ <line x="36" y="16"/>
+ <line x="43" y="16"/>
+ <line x="43" y="23"/>
+ <line x="46" y="23"/>
+ <move x="55" y="70"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="65" x-axis-rotation="0" y="70"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="75" x-axis-rotation="0" y="70"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="DC-AC Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="DC-AC Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="70.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="70.0" x-axis-rotation="0.0" y="70.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="60" y="70"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="65" x-axis-rotation="0" y="70"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="70" x-axis-rotation="0" y="70"/>
+ <move x="10" y="18.5"/>
+ <line x="20" y="18.5"/>
+ <move x="10" y="21.5"/>
+ <line x="12" y="21.5"/>
+ <move x="14" y="21.5"/>
+ <line x="16" y="21.5"/>
+ <move x="18" y="21.5"/>
+ <line x="20" y="21.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="18.5"/>
- <line x="20.0" y="18.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="21.5"/>
- <line x="12.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="14.0" y="21.5"/>
- <line x="16.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.0" y="21.5"/>
- <line x="20.0" y="21.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="DC-DC Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="DC-DC Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="10" y="18.5"/>
+ <line x="20" y="18.5"/>
+ <move x="10" y="21.5"/>
+ <line x="12" y="21.5"/>
+ <move x="14" y="21.5"/>
+ <line x="16" y="21.5"/>
+ <move x="18" y="21.5"/>
+ <line x="20" y="21.5"/>
+ <move x="60" y="70"/>
+ <line x="70" y="70"/>
+ <move x="60" y="73"/>
+ <line x="62" y="73"/>
+ <move x="64" y="73"/>
+ <line x="66" y="73"/>
+ <move x="68" y="73"/>
+ <line x="70" y="73"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="18.5"/>
- <line x="20.0" y="18.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="21.5"/>
- <line x="12.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="14.0" y="21.5"/>
- <line x="16.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.0" y="21.5"/>
- <line x="20.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="73.0"/>
- <line x="62.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="64.0" y="73.0"/>
- <line x="66.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="73.0"/>
- <line x="70.0" y="73.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Decrypt" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Decrypt" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="20.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="30.0" y="80.0"/>
+ <move x="20" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="30" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="55.0" y="75.0"/>
- <line x="60.0" y="80.0"/>
- <line x="55.0" y="85.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="20.0" y="75.0"/>
- <fillstroke/>
- <path>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="55" y="75"/>
+ <line x="60" y="80"/>
+ <line x="55" y="85"/>
<move x="18.7" y="18.7"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
+ <line x="40" y="40"/>
<move x="12.7" y="52.6"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="20" y="60"/>
+ <move x="10" y="40"/>
+ <line x="25" y="55"/>
<move x="11.2" y="31.2"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="30" y="50"/>
<move x="14.3" y="24.4"/>
- <line x="35.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="35" y="45"/>
<move x="24.5" y="14.5"/>
- <line x="45.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="10.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="52.9" y="13.0"/>
- <line x="60.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="45" y="35"/>
+ <move x="40" y="10"/>
+ <line x="55" y="25"/>
+ <move x="52.9" y="13"/>
+ <line x="60" y="20"/>
<move x="31.4" y="11.6"/>
- <line x="50.0" y="30.0"/>
+ <line x="50" y="30"/>
</path>
+ <stroke/>
+ <ellipse h="10" w="10" x="20" y="75"/>
<fillstroke/>
+ <ellipse h="60" w="60" x="10" y="10"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Delay" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Delay" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <roundrect arcsize="50.0" h="10.0" w="40.0" x="20.0" y="35.0"/>
+ <roundrect arcsize="50" h="10" w="40" x="20" y="35"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Demodulator" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Demodulator" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="25.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="35.0" y="80.0"/>
+ <move x="25" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="35" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="50.0" y="75.0"/>
- <line x="45.0" y="80.0"/>
- <line x="50.0" y="85.0"/>
+ <move x="50" y="75"/>
+ <line x="45" y="80"/>
+ <line x="50" y="85"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="25.0" y="75.0"/>
+ <ellipse h="10" w="10" x="25" y="75"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Detector" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Detector" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="10.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="25.0"/>
- <line x="50.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="50.0" y="40.0"/>
- <line x="30.0" y="55.0"/>
+ <move x="10" y="40"/>
+ <line x="70" y="40"/>
+ <move x="50" y="25"/>
+ <line x="50" y="55"/>
+ <move x="30" y="25"/>
+ <line x="50" y="40"/>
+ <line x="30" y="55"/>
<close/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Differential Amp" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Differential Amp" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="10.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="10.0" y="70.0"/>
+ <move x="10" y="10"/>
+ <line x="70" y="40"/>
+ <line x="10" y="70"/>
<close/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="5.0" y="20.0"/>
- <line x="10.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="60.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="5" y="20"/>
+ <line x="10" y="20"/>
+ <move x="5" y="60"/>
+ <line x="10" y="60"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Diplexer" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Diplexer" strokewidth="inherit" w="80">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.2"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.8"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.2"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.8"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="0.0"/>
- <line x="79.0" y="40.0"/>
- <line x="0.0" y="80.0"/>
+ <move x="0" y="0"/>
+ <line x="79" y="40"/>
+ <line x="0" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Divide by n" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Divide by n" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="24.0"/>
- <text align="center" str="Nf" valign="bottom" x="25.0" y="30.0"/>
- <restore/>
- <rect/>
- <stroke/>
+ <fontsize size="24"/>
+ <text align="center" str="Nf" valign="bottom" x="25" y="30"/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
</path>
- <fillstroke/>
- <fontsize size="24.0"/>
- <text align="center" str="f" valign="bottom" x="55.0" y="70.0"/>
+ <stroke/>
+ <text align="center" str="f" valign="bottom" x="55" y="70"/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Down Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Down Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="30.0" y="25.0"/>
- <line x="50.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
+ <move x="30" y="25"/>
+ <line x="50" y="40"/>
+ <line x="30" y="40"/>
<close/>
+ <move x="10" y="40"/>
+ <line x="70" y="40"/>
+ <move x="50" y="25"/>
+ <line x="50" y="55"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="25.0"/>
- <line x="50.0" y="55.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Encrypt" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Encrypt" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="20.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="30.0" y="80.0"/>
+ <move x="20" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="30" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="55.0" y="75.0"/>
- <line x="60.0" y="80.0"/>
- <line x="55.0" y="85.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="20.0" y="75.0"/>
- <fillstroke/>
- <path>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="55" y="75"/>
+ <line x="60" y="80"/>
+ <line x="55" y="85"/>
<move x="61.3" y="61.3"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
+ <line x="40" y="40"/>
<move x="27.3" y="67.3"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="70.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="20" y="60"/>
+ <move x="40" y="70"/>
+ <line x="25" y="55"/>
<move x="48.8" y="68.8"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="30" y="50"/>
<move x="55.7" y="65.6"/>
- <line x="35.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="35" y="45"/>
<move x="65.5" y="55.5"/>
- <line x="45.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="67.1" y="27.0"/>
- <line x="60.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="45" y="35"/>
+ <move x="70" y="40"/>
+ <line x="55" y="25"/>
+ <move x="67.1" y="27"/>
+ <line x="60" y="20"/>
<move x="68.6" y="48.6"/>
- <line x="50.0" y="30.0"/>
+ <line x="50" y="30"/>
</path>
+ <stroke/>
+ <ellipse h="60" w="60" x="10" y="10"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="20" y="75"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Hipass" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Hipass" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="50.0"/>
- </path>
- <stroke/>
- <path>
- <move x="15.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="30.0"/>
+ <move x="15" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="50"/>
+ <move x="15" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="30"/>
+ <move x="36" y="52"/>
+ <line x="42" y="46"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="52.0"/>
- <line x="42.0" y="46.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Hybrid" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="80" name="Hybrid" strokewidth="inherit" w="90">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.375"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.625"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.375"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.625"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.375"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.625"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.375"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.625"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="5.0" y="0.0"/>
+ <rect h="80" w="80" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="35.0" y="50.0"/>
- <line x="55.0" y="30.0"/>
- <line x="90.0" y="30.0"/>
- </path>
- <stroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="55.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
+ <move x="0" y="50"/>
+ <line x="35" y="50"/>
+ <line x="55" y="30"/>
+ <line x="90" y="30"/>
+ <move x="0" y="30"/>
+ <line x="35" y="30"/>
+ <line x="55" y="50"/>
+ <line x="90" y="50"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Limiter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Limiter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="48.5"/>
+ <move x="15" y="48.5"/>
<line x="23.5" y="31.5"/>
- <line x="32.0" y="48.5"/>
+ <line x="32" y="48.5"/>
<close/>
- </path>
- <stroke/>
- <path>
<move x="23.5" y="31.5"/>
- <line x="23.5" y="20.0"/>
- <line x="56.5" y="20.0"/>
+ <line x="23.5" y="20"/>
+ <line x="56.5" y="20"/>
<line x="56.5" y="31.5"/>
- </path>
- <stroke/>
- <path>
<move x="23.5" y="48.5"/>
- <line x="23.5" y="60.0"/>
- <line x="56.5" y="60.0"/>
+ <line x="23.5" y="60"/>
+ <line x="56.5" y="60"/>
<line x="56.5" y="48.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="40.0" y="10.0"/>
- <line x="40.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="60.0"/>
- <line x="40.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="48.0" y="31.5"/>
+ <move x="40" y="10"/>
+ <line x="40" y="20"/>
+ <move x="40" y="60"/>
+ <line x="40" y="70"/>
+ <move x="48" y="31.5"/>
<line x="56.5" y="48.5"/>
- <line x="65.0" y="31.5"/>
+ <line x="65" y="31.5"/>
<close/>
+ <move x="15" y="31.2"/>
+ <line x="32" y="31.5"/>
+ <move x="48" y="48.5"/>
+ <line x="65" y="48.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="15.0" y="31.2"/>
- <line x="32.0" y="31.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.0" y="48.5"/>
- <line x="65.0" y="48.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Lopass" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Lopass" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="50.0"/>
- </path>
- <stroke/>
<path>
- <move x="15.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="30.0"/>
+ <move x="15" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="50"/>
+ <move x="15" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="30"/>
+ <move x="36" y="32"/>
+ <line x="42" y="26"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="32.0"/>
- <line x="42.0" y="26.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Mixer 1" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Mixer 1" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="0" y="0"/>
+ <line x="80" y="80"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Mixer 2" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Mixer 2" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Modem" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Modem" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="50.0" y="75.0"/>
- <line x="45.0" y="80.0"/>
- <line x="50.0" y="85.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
- </path>
- <stroke/>
- <path>
- <move x="30.0" y="75.0"/>
- <line x="35.0" y="80.0"/>
- <line x="30.0" y="85.0"/>
+ <move x="50" y="75"/>
+ <line x="45" y="80"/>
+ <line x="50" y="85"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
+ <move x="30" y="75"/>
+ <line x="35" y="80"/>
+ <line x="30" y="85"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Modulator" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Modulator" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="25.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="35.0" y="80.0"/>
+ <move x="25" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="35" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
- <ellipse h="10.0" w="10.0" x="25.0" y="75.0"/>
+ <ellipse h="10" w="10" x="25" y="75"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="50.0" y="80.0"/>
- <line x="45.0" y="85.0"/>
- </path>
- <stroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
+ <move x="45" y="75"/>
+ <line x="50" y="80"/>
+ <line x="45" y="85"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Oscilloscope" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Oscilloscope" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="20.0" y="40.0"/>
- <arc large-arc-flag="0" rx="12.0" ry="12.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="12.0" ry="12.0" sweep-flag="0" x="60.0" x-axis-rotation="0.0" y="40.0"/>
+ <move x="20" y="40"/>
+ <arc large-arc-flag="0" rx="12" ry="12" sweep-flag="1" x="40" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="12" ry="12" sweep-flag="0" x="60" x-axis-rotation="0" y="40"/>
</path>
<stroke/>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
+ <ellipse h="60" w="60" x="10" y="10"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Phase Detector" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Phase Detector" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="40.0" y="50.0"/>
- <line x="40.0" y="30.0"/>
- <arc large-arc-flag="1" rx="4.0" ry="8.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="38.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="36.0" x-axis-rotation="0.0" y="38.0"/>
- <arc large-arc-flag="0" rx="20.0" ry="8.0" sweep-flag="1" x="37.0" x-axis-rotation="15.0" y="27.0"/>
+ <move x="40" y="50"/>
+ <line x="40" y="30"/>
+ <arc large-arc-flag="1" rx="4" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="38"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="36" x-axis-rotation="0" y="38"/>
+ <arc large-arc-flag="0" rx="20" ry="8" sweep-flag="1" x="37" x-axis-rotation="15" y="27"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Process" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Process" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="20.0" y="20.0"/>
- <arc large-arc-flag="0" rx="40.0" ry="40.0" sweep-flag="0" x="20.0" x-axis-rotation="0.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="15.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="40.0"/>
- <line x="65.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="60.0" y="20.0"/>
- <arc large-arc-flag="0" rx="40.0" ry="40.0" sweep-flag="1" x="60.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="20" y="20"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="0" x="20" x-axis-rotation="0" y="60"/>
+ <move x="0" y="40"/>
+ <line x="15" y="40"/>
+ <move x="80" y="40"/>
+ <line x="65" y="40"/>
+ <move x="60" y="20"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="1" x="60" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Pulse" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Pulse" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="50.0"/>
- <line x="35.0" y="50.0"/>
- <line x="35.0" y="25.0"/>
- <line x="45.0" y="25.0"/>
- <line x="45.0" y="50.0"/>
- <line x="55.0" y="50.0"/>
+ <move x="25" y="50"/>
+ <line x="35" y="50"/>
+ <line x="35" y="25"/>
+ <line x="45" y="25"/>
+ <line x="45" y="50"/>
+ <line x="55" y="50"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Sampler" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Sampler" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="10.0" y="20.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="50.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="20.0"/>
+ <move x="10" y="20"/>
+ <arc large-arc-flag="0" rx="15" ry="50" sweep-flag="1" x="30" x-axis-rotation="0" y="20"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="50" y="70"/>
+ <line x="70" y="70"/>
+ <move x="60" y="70"/>
+ <line x="60" y="57.4"/>
+ <move x="57" y="70"/>
+ <line x="57" y="58.3"/>
+ <move x="54" y="70"/>
+ <line x="54" y="61.5"/>
+ <move x="63" y="70"/>
+ <line x="63" y="58.3"/>
+ <move x="66" y="70"/>
+ <line x="66" y="61.5"/>
+ <move x="51" y="70"/>
+ <line x="51" y="67.5"/>
+ <move x="69" y="70"/>
+ <line x="69" y="67.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <line x="60.0" y="57.4"/>
- </path>
- <fillstroke/>
- <path>
- <move x="57.0" y="70.0"/>
- <line x="57.0" y="58.3"/>
- </path>
- <fillstroke/>
- <path>
- <move x="54.0" y="70.0"/>
- <line x="54.0" y="61.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="63.0" y="70.0"/>
- <line x="63.0" y="58.3"/>
- </path>
- <fillstroke/>
- <path>
- <move x="66.0" y="70.0"/>
- <line x="66.0" y="61.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="51.0" y="70.0"/>
- <line x="51.0" y="67.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="69.0" y="70.0"/>
- <line x="69.0" y="67.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Splitter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Splitter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="55.0" y="10.0"/>
- <line x="40.0" y="10.0"/>
- <line x="40.0" y="70.0"/>
- <line x="55.0" y="70.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="50.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="39.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="35.0"/>
- <line x="39.0" y="40.0"/>
- <line x="35.0" y="45.0"/>
+ <move x="55" y="10"/>
+ <line x="40" y="10"/>
+ <line x="40" y="70"/>
+ <line x="55" y="70"/>
+ <move x="55" y="30"/>
+ <line x="40" y="30"/>
+ <move x="55" y="50"/>
+ <line x="40" y="50"/>
+ <move x="25" y="40"/>
+ <line x="39" y="40"/>
+ <move x="35" y="35"/>
+ <line x="39" y="40"/>
+ <line x="35" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Square-up" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Square-up" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="30.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
- <line x="40.0" y="25.0"/>
- <line x="50.0" y="25.0"/>
+ <move x="30" y="55"/>
+ <line x="40" y="55"/>
+ <line x="40" y="25"/>
+ <line x="50" y="25"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Step" strokewidth="inherit" w="55.0">
+ <shape aspect="variable" h="60" name="Step" strokewidth="inherit" w="55">
<connections/>
<background>
<path>
- <move x="0.0" y="60.0"/>
- <line x="40.0" y="0.0"/>
- <line x="55.0" y="0.0"/>
+ <move x="0" y="60"/>
+ <line x="40" y="0"/>
+ <line x="55" y="0"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Transformer" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Transformer" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<linejoin join="round"/>
<path>
- <move x="15.0" y="10.0"/>
- <line x="30.0" y="10.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="70.0"/>
- <line x="15.0" y="70.0"/>
- </path>
- <stroke/>
- <path>
- <move x="65.0" y="10.0"/>
- <line x="50.0" y="10.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="70.0"/>
- <line x="65.0" y="70.0"/>
+ <move x="15" y="10"/>
+ <line x="30" y="10"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="70"/>
+ <line x="15" y="70"/>
+ <move x="65" y="10"/>
+ <line x="50" y="10"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="70"/>
+ <line x="65" y="70"/>
</path>
<stroke/>
</foreground>
@@ -120526,69 +120506,56 @@
<connections/>
<background>
<path>
- <move x="0.0" y="65.5"/>
- <line x="40.0" y="5.5"/>
+ <move x="0" y="65.5"/>
+ <line x="40" y="5.5"/>
+ <move x="32.2" y="0"/>
+ <line x="48.2" y="10.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="32.2" y="0.0"/>
- <line x="48.2" y="10.5"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Up converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Up converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="50.0" y="25.0"/>
- <line x="50.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
+ <move x="50" y="25"/>
+ <line x="50" y="40"/>
+ <line x="30" y="40"/>
<close/>
+ <move x="10" y="40"/>
+ <line x="70" y="40"/>
+ <move x="30" y="25"/>
+ <line x="30" y="55"/>
</path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="30.0" y="55.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Var" strokewidth="inherit" w="40.0">
+ <shape aspect="variable" h="60" name="Var" strokewidth="inherit" w="40">
<connections/>
<background>
<path>
- <move x="0.0" y="60.0"/>
- <line x="40.0" y="0.0"/>
+ <move x="0" y="60"/>
+ <line x="40" y="0"/>
+ <move x="27" y="10"/>
+ <line x="40" y="0"/>
+ <line x="36.5" y="15.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="27.0" y="10.0"/>
- <line x="40.0" y="0.0"/>
- <line x="36.5" y="15.5"/>
- </path>
<stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.iec_logic_gates">
+<shapes name="mxgraph.electrical.iec_logic_gates">
<shape aspect="variable" h="80" name="AND" strokewidth="inherit" w="60">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -120605,772 +120572,1103 @@
<text align="center" str="AND" valign="bottom" x="30" y="46"/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="NAND" strokewidth="inherit" w="66.0">
+ <shape aspect="variable" h="80" name="NAND" strokewidth="inherit" w="66">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="NAND" valign="bottom" x="30.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+ <text align="center" str="NAND" valign="bottom" x="30" y="46"/>
+ <ellipse h="6" w="6" x="60" y="37"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="NOR" strokewidth="inherit" w="66.0">
+ <shape aspect="variable" h="80" name="NOR" strokewidth="inherit" w="66">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+ <ellipse h="6" w="6" x="60" y="37"/>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="1" valign="bottom" x="35.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <strokewidth width="1"/>
+ <text align="center" str="1" valign="bottom" x="35" y="46"/>
<path>
- <move x="24.25" y="36.0"/>
- <line x="28.75" y="40.0"/>
- <line x="24.25" y="44.0"/>
+ <move x="24.25" y="36"/>
+ <line x="28.75" y="40"/>
+ <line x="24.25" y="44"/>
+ <move x="30" y="40.75"/>
+ <line x="25.12" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <strokewidth width="1"/>
- <path>
- <move x="30.0" y="40.75"/>
- <line x="25.12" y="45.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="NOT" strokewidth="inherit" w="66.0">
+ <shape aspect="variable" h="80" name="NOT" strokewidth="inherit" w="66">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="=1" valign="bottom" x="30.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+ <text align="center" str="=1" valign="bottom" x="30" y="46"/>
+ <ellipse h="6" w="6" x="60" y="37"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="OR" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="80" name="OR" strokewidth="inherit" w="60">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="1" valign="bottom" x="35.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <strokewidth width="1"/>
+ <text align="center" str="1" valign="bottom" x="35" y="46"/>
<path>
- <move x="24.25" y="36.0"/>
- <line x="28.75" y="40.0"/>
- <line x="24.25" y="44.0"/>
+ <move x="24.25" y="36"/>
+ <line x="28.75" y="40"/>
+ <line x="24.25" y="44"/>
+ <move x="30" y="40.75"/>
+ <line x="25.12" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <strokewidth width="1"/>
- <path>
- <move x="30.0" y="40.75"/>
- <line x="25.12" y="45.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="XOR" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="80" name="XOR" strokewidth="inherit" w="60">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="=1" valign="bottom" x="30.0" y="46.0"/>
+ <text align="center" str="=1" valign="bottom" x="30" y="46"/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.inductors">
- <shape aspect="variable" h="46" name="Compensation Inductor 1" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in1" perimeter="0" x="0" y="0.13"/>
- <constraint name="in2" perimeter="0" x="0" y="0.87"/>
- <constraint name="out1" perimeter="0" x="1" y="0.13"/>
- <constraint name="out2" perimeter="0" x="1" y="0.87"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="6"/>
- <line x="24" y="6"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76" y="6"/>
- <line x="100" y="6"/>
- </path>
- <fillstroke/>
- <rect h="12" w="52" x="24" y="0"/>
- <fillstroke/>
- <path>
- <move x="0" y="40"/>
- <line x="24" y="40"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76" y="40"/>
- <line x="100" y="40"/>
- </path>
- <fillstroke/>
- <rect h="12" w="52" x="24" y="34"/>
- <fillstroke/>
- <ellipse h="18" w="18" x="41" y="14"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="80.0" name="Compensation Inductor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.075"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="in3" perimeter="0" x="0.0" y="0.925"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.075"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="out3" perimeter="0" x="1.0" y="0.925"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="24.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <rect h="12.0" w="52.0" x="24.0" y="34.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="6.0"/>
- <line x="24.0" y="6.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76.0" y="6.0"/>
- <line x="100.0" y="6.0"/>
- </path>
- <fillstroke/>
- <rect h="12.0" w="52.0" x="24.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="74.0"/>
- <line x="24.0" y="74.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76.0" y="74.0"/>
- <line x="100.0" y="74.0"/>
- </path>
- <fillstroke/>
- <rect h="12.0" w="52.0" x="24.0" y="68.0"/>
- <fillstroke/>
- <ellipse h="18.0" w="18.0" x="41.0" y="14.0"/>
- <fillstroke/>
- <ellipse h="18.0" w="18.0" x="41.0" y="48.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="5.0" name="Ferrite Core" strokewidth="inherit" w="64.0">
- <connections/>
- <foreground>
- <path>
- <move x="0.0" y="4.5"/>
- <line x="4.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="9.0" y="4.5"/>
- <line x="14.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="4.5"/>
- <line x="24.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="29.0" y="4.5"/>
- <line x="34.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="4.5"/>
- <line x="44.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="4.5"/>
- <line x="54.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.0" y="4.5"/>
- <line x="64.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.5"/>
- <line x="4.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="9.0" y="0.5"/>
- <line x="14.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="0.5"/>
- <line x="24.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="29.0" y="0.5"/>
- <line x="34.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="0.5"/>
- <line x="44.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="0.5"/>
- <line x="54.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.0" y="0.5"/>
- <line x="64.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="2.5"/>
- <line x="4.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="9.0" y="2.5"/>
- <line x="14.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="2.5"/>
- <line x="24.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="29.0" y="2.5"/>
- <line x="34.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="2.5"/>
- <line x="44.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="2.5"/>
- <line x="54.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.0" y="2.5"/>
- <line x="64.0" y="2.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="15.0" name="Inductor 1" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="out" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <rect h="10.0" w="60.0" x="0.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="0.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="15.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Inductor 2" strokewidth="inherit" w="21.5">
- <connections>
- <constraint name="in" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="out" perimeter="0" x="0.7" y="1.0"/>
- </connections>
- <background>
- <rect h="60.0" w="10.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="15.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <ellipse h="3.0" w="3.0" x="18.5" y="3.5"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="8.0" name="Inductor 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="out" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="8.0"/>
- <line x="18.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="8.0"/>
- <line x="100.0" y="8.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="14.5" name="Inductor 4" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.55"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.55"/>
- </connections>
- <foreground>
- <ellipse h="3.0" w="3.0" x="78.5" y="11.5"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="8.0"/>
- <line x="18.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="8.0"/>
- <line x="100.0" y="8.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="14.07" name="Inductor 5" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.645"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.645"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="9.07"/>
- <line x="18.0" y="9.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="36.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="52.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="68.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="9.07"/>
- <line x="100.0" y="9.07"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="15.57" name="Inductor 6" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.583"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.583"/>
- </connections>
- <foreground>
- <ellipse h="3.0" w="3.0" x="78.5" y="12.57"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="9.07"/>
- <line x="18.0" y="9.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="36.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="52.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="68.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="9.07"/>
- <line x="100.0" y="9.07"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Inductor 7" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="23.0" name="Inductor 8" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.435"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.435"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.5" y="23.0"/>
- <line x="82.5" y="23.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="23.0" name="Inductor 9" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.435"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.435"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.5" y="23.0"/>
- <line x="22.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="27.0" y="23.0"/>
- <line x="32.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="37.0" y="23.0"/>
- <line x="42.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="47.0" y="23.0"/>
- <line x="52.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="57.0" y="23.0"/>
- <line x="62.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="67.0" y="23.0"/>
- <line x="72.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.0" y="23.0"/>
- <line x="82.5" y="23.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="5.0" name="Iron Core" strokewidth="inherit" w="64.0">
- <connections/>
- <foreground>
- <path>
- <move x="0.0" y="4.5"/>
- <line x="64.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="2.5"/>
- <line x="64.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.5"/>
- <line x="64.0" y="0.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Transformer 1" strokewidth="inherit" w="64.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.0"/>
- <constraint name="out1" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="in2" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="16.0" x-axis-rotation="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="46.0"/>
- <line x="64.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="32.0"/>
- <line x="64.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="64.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="28.0"/>
- <line x="64.0" y="28.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="16.0" x-axis-rotation="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="32.0" x-axis-rotation="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="48.0" x-axis-rotation="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="64.0" x-axis-rotation="0.0" y="14.0"/>
- <line x="64.0" y="0.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Transformer 2" strokewidth="inherit" w="64.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.0"/>
- <constraint name="out1" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="in2" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="32.0"/>
- <line x="64.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="64.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="28.0"/>
- <line x="64.0" y="28.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="16.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="18.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="14.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="16.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="46.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="46.0"/>
- <line x="64.0" y="60.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="0" x="16.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="18.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="0" x="14.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="16.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="0" x="32.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="34.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="0" x="30.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="32.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="0" x="48.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="48.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="0" x="64.0" x-axis-rotation="0.0" y="14.0"/>
- <line x="64.0" y="0.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Variable Inductor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
- <line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
+<shapes name="mxgraph.electrical.inductors">
+<shape aspect="variable" h="100" name="1 Phase Induction Volt Reg" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="75"/>
+ <line x="70" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="70" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="70" x-axis-rotation="0" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="170" name="Adjustable Transformer" strokewidth="inherit" w="129">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.47" y="0"/>
+ <constraint name="S" perimeter="0" x="0.47" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="9" y="0"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="9" y="70"/>
+ <stroke/>
+ <path>
+ <move x="0" y="84"/>
+ <line x="119" y="10"/>
+ <move x="122" y="14"/>
+ <line x="116" y="6"/>
+ <line x="129" y="3"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="200" name="Choke" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="100"/>
+ <line x="0" y="100"/>
+ <arc large-arc-flag="1" rx="50" ry="50" sweep-flag="1" x="50" x-axis-rotation="0" y="150"/>
+ <line x="50" y="200"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Coaxial Choke" strokewidth="inherit" w="300">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="100" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="125" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="150" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="175" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="200" x-axis-rotation="0" y="25"/>
+ <line x="300" y="25"/>
+ <move x="25" y="50"/>
+ <line x="100" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="125" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="150" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="175" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="200" x-axis-rotation="0" y="50"/>
+ <line x="275" y="50"/>
+ <move x="100" y="0"/>
+ <line x="200" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="25" y="0"/>
+ <stroke/>
+ <ellipse h="50" w="50" x="225" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="46" name="Compensation Inductor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0.13"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.87"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.13"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.87"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="6"/>
+ <line x="24" y="6"/>
+ <move x="76" y="6"/>
+ <line x="100" y="6"/>
+ <move x="0" y="40"/>
+ <line x="24" y="40"/>
+ <move x="76" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ <rect h="12" w="52" x="24" y="0"/>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="34"/>
+ <fillstroke/>
+ <ellipse h="18" w="18" x="41" y="14"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="Compensation Inductor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0.075"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.5"/>
+ <constraint name="in3" perimeter="0" x="0" y="0.925"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.075"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.5"/>
+ <constraint name="out3" perimeter="0" x="1" y="0.925"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <line x="24" y="40"/>
+ <move x="76" y="40"/>
+ <line x="100" y="40"/>
+ <move x="0" y="6"/>
+ <line x="24" y="6"/>
+ <move x="76" y="6"/>
+ <line x="100" y="6"/>
+ <move x="0" y="74"/>
+ <line x="24" y="74"/>
+ <move x="76" y="74"/>
+ <line x="100" y="74"/>
+ </path>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="34"/>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="0"/>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="68"/>
+ <fillstroke/>
+ <ellipse h="18" w="18" x="41" y="14"/>
+ <fillstroke/>
+ <ellipse h="18" w="18" x="41" y="48"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="Current Transformer 1" strokewidth="inherit" w="12.5">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.8" y="0"/>
+ <constraint name="S" perimeter="0" x="0.8" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="75"/>
+ <move x="12.5" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="12.5" x-axis-rotation="0" y="37.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="12.5" x-axis-rotation="0" y="62.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="175" name="Current Transformer 2" strokewidth="inherit" w="125">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.3" y="0"/>
+ <constraint name="S" perimeter="0" x="0.3" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="175"/>
+ <move x="75" y="87.5"/>
+ <line x="125" y="87.5"/>
+ <move x="95" y="80"/>
+ <line x="85" y="95"/>
+ <move x="110" y="80"/>
+ <line x="100" y="95"/>
+ </path>
+ <stroke/>
+ <ellipse h="75" w="75" x="0" y="50"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Current Transformer 3" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="1" y="0.3"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="75" y="3"/>
+ <move x="10" y="0"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="30" x-axis-rotation="0" y="0"/>
+ <line x="37" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="51" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="65" x-axis-rotation="0" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="5" name="Ferrite Core" strokewidth="inherit" w="64">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="4.5"/>
+ <line x="4" y="4.5"/>
+ <move x="9" y="4.5"/>
+ <line x="14" y="4.5"/>
+ <move x="19" y="4.5"/>
+ <line x="24" y="4.5"/>
+ <move x="29" y="4.5"/>
+ <line x="34" y="4.5"/>
+ <move x="39" y="4.5"/>
+ <line x="44" y="4.5"/>
+ <move x="49" y="4.5"/>
+ <line x="54" y="4.5"/>
+ <move x="59" y="4.5"/>
+ <line x="64" y="4.5"/>
+ <move x="0" y="0.5"/>
+ <line x="4" y="0.5"/>
+ <move x="9" y="0.5"/>
+ <line x="14" y="0.5"/>
+ <move x="19" y="0.5"/>
+ <line x="24" y="0.5"/>
+ <move x="29" y="0.5"/>
+ <line x="34" y="0.5"/>
+ <move x="39" y="0.5"/>
+ <line x="44" y="0.5"/>
+ <move x="49" y="0.5"/>
+ <line x="54" y="0.5"/>
+ <move x="59" y="0.5"/>
+ <line x="64" y="0.5"/>
+ <move x="0" y="2.5"/>
+ <line x="4" y="2.5"/>
+ <move x="9" y="2.5"/>
+ <line x="14" y="2.5"/>
+ <move x="19" y="2.5"/>
+ <line x="24" y="2.5"/>
+ <move x="29" y="2.5"/>
+ <line x="34" y="2.5"/>
+ <move x="39" y="2.5"/>
+ <line x="44" y="2.5"/>
+ <move x="49" y="2.5"/>
+ <line x="54" y="2.5"/>
+ <move x="59" y="2.5"/>
+ <line x="64" y="2.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23.38" name="Half Inductor" strokewidth="inherit" w="32.17">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="23.38"/>
+ <line x="0" y="11.39"/>
+ <curve x1="0" x2="11.09" x3="16.18" y1="2.91" y2="0.26" y3="6.39"/>
+ <curve x1="17.96" x2="18.69" x3="18.18" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="18.18" x2="14.18" x3="14.18" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="13.66" x2="14.39" x3="16.18" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="21.3" x2="32.17" x3="32.17" y1="0" y2="3.26" y3="11.39"/>
+ <line x="32.17" y="23.38"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="210" name="Induction Voltage Regulator" strokewidth="inherit" w="160">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="150" w="150" x="5" y="30"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="30" y="30"/>
+ <stroke/>
+ <path>
+ <move x="80" y="0"/>
+ <line x="80" y="30"/>
+ <move x="80" y="180"/>
+ <line x="80" y="210"/>
+ <move x="0" y="210"/>
+ <line x="144.5" y="20.5"/>
+ <move x="135" y="14"/>
+ <line x="160" y="0"/>
+ <line x="154" y="27"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="42.5" name="Inductor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="42.5"/>
+ <line x="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="25" x-axis-rotation="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="50" x-axis-rotation="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="75" x-axis-rotation="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="100" x-axis-rotation="0" y="12.5"/>
+ <line x="100" y="42.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Inductor 1" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="10" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="0" y="15"/>
+ <move x="60" y="10"/>
+ <line x="60" y="15"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20.48" name="Inductor 10" strokewidth="inherit" w="63.96">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="20.48"/>
+ <line x="0" y="8"/>
+ <curve x1="0" x2="3.59" x3="8.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="12.43" x2="16.01" x3="16.01" y1="0" y2="3.58" y3="8"/>
+ <curve x1="16.01" x2="19.59" x3="24.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="28.43" x2="32.01" x3="32.01" y1="0" y2="3.58" y3="8"/>
+ <curve x1="32.01" x2="35.59" x3="40.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="44.43" x2="48.01" x3="48.01" y1="0" y2="3.58" y3="8"/>
+ <curve x1="48.01" x2="51.59" x3="56.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="60.43" x2="63.96" x3="63.96" y1="0" y2="3.58" y3="8"/>
+ <line x="63.96" y="20.48"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23.38" name="Inductor 11" strokewidth="inherit" w="63.96">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="23.38"/>
+ <line x="0" y="11.39"/>
+ <curve x1="0.57" x2="10.84" x3="15.97" y1="3.22" y2="0" y3="6.39"/>
+ <curve x1="17.75" x2="18.48" x3="17.97" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="17.97" x2="13.97" x3="13.97" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="13.45" x2="14.18" x3="15.97" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="20.31" x2="27.62" x3="31.97" y1="1.37" y2="1.37" y3="6.39"/>
+ <curve x1="33.75" x2="34.48" x3="33.97" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="33.97" x2="29.97" x3="29.97" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="29.45" x2="30.18" x3="31.97" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="36.31" x2="43.62" x3="47.97" y1="1.37" y2="1.37" y3="6.39"/>
+ <curve x1="49.75" x2="50.48" x3="49.97" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="49.97" x2="45.97" x3="45.97" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="45.45" x2="46.18" x3="47.97" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="53.09" x2="63.39" x3="63.96" y1="0" y2="3.22" y3="11.39"/>
+ <line x="63.96" y="23.38"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Inductor 2" strokewidth="inherit" w="21.5">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.7" y="0"/>
+ <constraint name="out" perimeter="0" x="0.7" y="1"/>
+ </connections>
+ <background>
+ <rect h="60" w="10" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="0"/>
+ <line x="15" y="0"/>
+ <move x="0" y="60"/>
+ <line x="15" y="60"/>
+ </path>
+ <stroke/>
+ <ellipse h="3" w="3" x="18.5" y="3.5"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="8" name="Inductor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="8"/>
+ <line x="18" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="34" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="66" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="82" x-axis-rotation="0" y="8"/>
+ <line x="100" y="8"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="14.5" name="Inductor 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.55"/>
+ <constraint name="out" perimeter="0" x="1" y="0.55"/>
+ </connections>
+ <foreground>
+ <ellipse h="3" w="3" x="78.5" y="11.5"/>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="8"/>
+ <line x="18" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="34" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="66" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="82" x-axis-rotation="0" y="8"/>
+ <line x="100" y="8"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="14.07" name="Inductor 5" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.645"/>
+ <constraint name="out" perimeter="0" x="1" y="0.645"/>
+ </connections>
+ <foreground>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="9.07"/>
+ <line x="18" y="9.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="36" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="32" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="52" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="48" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="68" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="64" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="82" x-axis-rotation="0" y="9.07"/>
+ <line x="100" y="9.07"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15.57" name="Inductor 6" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.583"/>
+ <constraint name="out" perimeter="0" x="1" y="0.583"/>
+ </connections>
+ <foreground>
+ <ellipse h="3" w="3" x="78.5" y="12.57"/>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="9.07"/>
+ <line x="18" y="9.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="36" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="32" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="52" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="48" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="68" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="64" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="82" x-axis-rotation="0" y="9.07"/>
+ <line x="100" y="9.07"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Inductor 7" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23" name="Inductor 8" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.435"/>
+ <constraint name="out" perimeter="0" x="1" y="0.435"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="17.5" y="23"/>
+ <line x="82.5" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23" name="Inductor 9" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.435"/>
+ <constraint name="out" perimeter="0" x="1" y="0.435"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="17.5" y="23"/>
+ <line x="22" y="23"/>
+ <move x="27" y="23"/>
+ <line x="32" y="23"/>
+ <move x="37" y="23"/>
+ <line x="42" y="23"/>
+ <move x="47" y="23"/>
+ <line x="52" y="23"/>
+ <move x="57" y="23"/>
+ <line x="62" y="23"/>
+ <move x="67" y="23"/>
+ <line x="72" y="23"/>
+ <move x="77" y="23"/>
+ <line x="82.5" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="5" name="Iron Core" strokewidth="inherit" w="64">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="4.5"/>
+ <line x="64" y="4.5"/>
+ <move x="0" y="2.5"/>
+ <line x="64" y="2.5"/>
+ <move x="0" y="0.5"/>
+ <line x="64" y="0.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Linear Coupler" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.65"/>
+ <constraint name="out" perimeter="0" x="1" y="0.65"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="10"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="30" x-axis-rotation="0" y="10"/>
+ <line x="30" y="0"/>
+ <line x="38" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="52" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="66" x-axis-rotation="0" y="0"/>
+ <move x="0" y="13"/>
+ <line x="80" y="13"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Magnetic Core" strokewidth="inherit" w="5">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="100"/>
+ <move x="5" y="0"/>
+ <line x="5" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Outdoor Metering Device" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ </connections>
+ <foreground>
+ <rect h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="65" y="25"/>
+ <line x="65" y="95"/>
+ <move x="62" y="37"/>
+ <line x="40" y="37"/>
+ <move x="40" y="12"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="40" x-axis-rotation="0" y="37"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="40" x-axis-rotation="0" y="62"/>
+ <move x="68" y="51"/>
+ <arc large-arc-flag="1" rx="9" ry="9" sweep-flag="0" x="68" x-axis-rotation="0" y="69"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="68" x-axis-rotation="0" y="87"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="62" y="34"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Potential Transformer" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="32.5" y="25"/>
+ <move x="67.5" y="25"/>
+ <line x="100" y="25"/>
+ <move x="32.5" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="32.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="32.5" x-axis-rotation="0" y="50"/>
+ <move x="67.5" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="67.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="67.5" x-axis-rotation="0" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Potential Transformer 2" strokewidth="inherit" w="230">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="30" y="0"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="100" y="0"/>
+ <stroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="30" y="50"/>
+ <move x="200" y="50"/>
+ <line x="230" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="250" name="Pot Trans 3 Windings" strokewidth="inherit" w="175">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.285" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.715" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="87.5" y="0"/>
+ <line x="87.5" y="40"/>
+ <move x="50" y="210"/>
+ <line x="50" y="250"/>
+ <move x="125" y="210"/>
+ <line x="125" y="250"/>
+ </path>
+ <stroke/>
+ <ellipse h="100" w="100" x="0" y="110"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="75" y="110"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="37.5" y="40"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Saturating Transformer" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.165"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.835"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.165"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.835"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="37.5" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="62.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="87.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="112.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="137.5" x-axis-rotation="0" y="25"/>
+ <line x="200" y="25"/>
+ <move x="0" y="75"/>
+ <line x="37.5" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="62.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="87.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="112.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="137.5" x-axis-rotation="0" y="75"/>
+ <line x="200" y="75"/>
+ <move x="125" y="0"/>
+ <line x="100" y="0"/>
+ <line x="100" y="150"/>
+ <line x="75" y="150"/>
+ <move x="0" y="125"/>
+ <line x="37.5" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="62.5" x-axis-rotation="0" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="87.5" x-axis-rotation="0" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="112.5" x-axis-rotation="0" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="137.5" x-axis-rotation="0" y="125"/>
+ <line x="200" y="125"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Transductor" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.25"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.75"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.25"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.75"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="37.5" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="62.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="87.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="112.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="137.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="162.5" x-axis-rotation="0" y="25"/>
+ <line x="200" y="25"/>
+ <move x="0" y="75"/>
+ <line x="62.5" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="87.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="112.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="137.5" x-axis-rotation="0" y="75"/>
+ <line x="200" y="75"/>
+ <move x="125" y="0"/>
+ <line x="100" y="0"/>
+ <line x="100" y="100"/>
+ <line x="75" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Transformer" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0"/>
+ <constraint name="out1" perimeter="0" x="0" y="1"/>
+ <constraint name="in2" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="30" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="100"/>
+ <line x="0" y="100"/>
+ <move x="100" y="0"/>
+ <line x="70" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="100"/>
+ <line x="100" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Transformer 1" strokewidth="inherit" w="64">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0"/>
+ <constraint name="out1" perimeter="0" x="0" y="1"/>
+ <constraint name="in2" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="60"/>
+ <line x="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="16" x-axis-rotation="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="32" x-axis-rotation="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="48" x-axis-rotation="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="64" x-axis-rotation="0" y="46"/>
+ <line x="64" y="60"/>
+ <move x="0" y="32"/>
+ <line x="64" y="32"/>
+ <move x="0" y="30"/>
+ <line x="64" y="30"/>
+ <move x="0" y="28"/>
+ <line x="64" y="28"/>
+ <move x="0" y="0"/>
+ <line x="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="16" x-axis-rotation="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="32" x-axis-rotation="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="48" x-axis-rotation="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="64" x-axis-rotation="0" y="14"/>
+ <line x="64" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Transformer 2" strokewidth="inherit" w="64">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0"/>
+ <constraint name="out1" perimeter="0" x="0" y="1"/>
+ <constraint name="in2" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="32"/>
+ <line x="64" y="32"/>
+ <move x="0" y="30"/>
+ <line x="64" y="30"/>
+ <move x="0" y="28"/>
+ <line x="64" y="28"/>
+ <move x="0" y="60"/>
+ <line x="0" y="46"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="16" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="18" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="14" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="16" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="32" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="34" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="30" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="32" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="48" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="46" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="48" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="64" x-axis-rotation="0" y="46"/>
+ <line x="64" y="60"/>
+ <move x="0" y="0"/>
+ <line x="0" y="14"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="16" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="18" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="14" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="16" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="0" x="32" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="34" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="30" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="32" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="0" x="48" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="50" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="46" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="48" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="64" x-axis-rotation="0" y="14"/>
+ <line x="64" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Triplex Induction Volt Reg" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="100"/>
+ <move x="12" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="31" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="50" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="69" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="88" x-axis-rotation="0" y="35"/>
+ <move x="12" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="31" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="50" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="69" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="88" x-axis-rotation="0" y="55"/>
+ <move x="12" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="31" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="50" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="69" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="88" x-axis-rotation="0" y="75"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Variable Inductor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="34" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="66" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="82" x-axis-rotation="0" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
+ <line x="66.5" y="15.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="88" name="Variometer" strokewidth="inherit" w="150">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.205"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.77"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="18"/>
+ <line x="40" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="65" x-axis-rotation="0" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="90" x-axis-rotation="0" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="115" x-axis-rotation="0" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="140" x-axis-rotation="0" y="18"/>
+ <line x="150" y="18"/>
+ <line x="150" y="68"/>
+ <line x="140" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="115" x-axis-rotation="0" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="90" x-axis-rotation="0" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="65" x-axis-rotation="0" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="40" x-axis-rotation="0" y="68"/>
+ <line x="0" y="68"/>
+ <move x="45" y="88"/>
+ <line x="120" y="12"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="125" y="16"/>
+ <line x="115" y="7"/>
+ <line x="131" y="0"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
</shapes>
-<shapes name="mxGraph.electrical.instruments">
+<shapes name="mxgraph.electrical.instruments">
<shape aspect="fixed" h="90" name="Ampermeter" strokewidth="inherit" w="90">
<connections>
<constraint name="N" perimeter="0" x="0.5" y="0"/>
@@ -121391,7 +121689,7 @@
<move x="25" y="75"/>
<line x="65" y="15"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
<move x="52" y="25"/>
<line x="65" y="15"/>
@@ -121401,134 +121699,122 @@
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Galvanometer" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Galvanometer" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="45.0" y="77.0"/>
- <line x="45.0" y="13.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="27.0"/>
- <line x="45.0" y="13.0"/>
- <line x="50.0" y="27.0"/>
+ <move x="45" y="77"/>
+ <line x="45" y="13"/>
+ <move x="40" y="27"/>
+ <line x="45" y="13"/>
+ <line x="50" y="27"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Oscilloscope" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Oscilloscope" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="10.0" y="55.0"/>
- <line x="25.0" y="35.0"/>
- <line x="25.0" y="55.0"/>
- <line x="40.0" y="35.0"/>
- <line x="40.0" y="55.0"/>
- <line x="55.0" y="35.0"/>
- <line x="55.0" y="55.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="55.0"/>
- <line x="77.5" y="45.0"/>
+ <move x="10" y="55"/>
+ <line x="25" y="35"/>
+ <line x="25" y="55"/>
+ <line x="40" y="35"/>
+ <line x="40" y="55"/>
+ <line x="55" y="35"/>
+ <line x="55" y="55"/>
+ <line x="70" y="35"/>
+ <line x="70" y="55"/>
+ <line x="77.5" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Signal Generator" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Signal Generator" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="30.0" y="75.0"/>
- <line x="40.0" y="65.0"/>
- <line x="40.0" y="75.0"/>
- <line x="50.0" y="65.0"/>
- <line x="50.0" y="75.0"/>
- <line x="60.0" y="65.0"/>
- <line x="60.0" y="75.0"/>
- </path>
- <stroke/>
- <path>
- <move x="30.0" y="20.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="20.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="60.0" x-axis-rotation="0.0" y="20.0"/>
- </path>
- <stroke/>
- <path>
- <move x="30.0" y="45.0"/>
- <line x="30.0" y="35.0"/>
- <line x="45.0" y="35.0"/>
- <line x="45.0" y="55.0"/>
- <line x="60.0" y="55.0"/>
- <line x="60.0" y="45.0"/>
+ <move x="30" y="75"/>
+ <line x="40" y="65"/>
+ <line x="40" y="75"/>
+ <line x="50" y="65"/>
+ <line x="50" y="75"/>
+ <line x="60" y="65"/>
+ <line x="60" y="75"/>
+ <move x="30" y="20"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="20"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="60" x-axis-rotation="0" y="20"/>
+ <move x="30" y="45"/>
+ <line x="30" y="35"/>
+ <line x="45" y="35"/>
+ <line x="45" y="55"/>
+ <line x="60" y="55"/>
+ <line x="60" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Voltmeter" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Voltmeter" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="50.0"/>
- <text align="center" str="V" valign="bottom" x="45.0" y="70.0"/>
+ <fontsize size="50"/>
+ <text align="center" str="V" valign="bottom" x="45" y="70"/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.logic_gates">
+<shapes name="mxgraph.electrical.logic_gates">
<shape aspect="variable" h="60" name="AND" strokewidth="inherit" w="100">
<connections>
<constraint name="in1" perimeter="0" x="0" y="0.165"/>
@@ -121549,1513 +121835,2307 @@
<path>
<move x="0" y="10"/>
<line x="20" y="10"/>
- </path>
- <fillstroke/>
- <path>
<move x="0" y="50"/>
<line x="20" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="80" y="30"/>
<line x="100" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Bandpass Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Bandpass Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="6.0" y="33.0"/>
- <line x="16.0" y="13.0"/>
- <line x="36.0" y="13.0"/>
- <line x="46.0" y="33.0"/>
+ <move x="6" y="33"/>
+ <line x="16" y="13"/>
+ <line x="36" y="13"/>
+ <line x="46" y="33"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Buffer" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Buffer" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="20.0" y="0.0"/>
- <line x="80.0" y="30.0"/>
- <line x="20.0" y="60.0"/>
+ <move x="20" y="0"/>
+ <line x="80" y="30"/>
+ <line x="20" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="D Type Flip-Flop" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="D Type Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="D" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
+ <constraint name="D" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="D" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="55.0"/>
- <line x="30.0" y="60.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="55"/>
+ <line x="30" y="60"/>
+ <line x="20" y="65"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
</path>
<stroke/>
+ <text align="center" str="D" valign="bottom" x="25" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="D Type Flip-Flop With Clear" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="D Type Flip-Flop With Clear" strokewidth="inherit" w="100">
<connections>
- <constraint name="D" perimeter="0" x="0.0" y="0.335"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.78"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.335"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.78"/>
- <constraint name="clear" perimeter="0" x="0.5" y="0.0"/>
+ <constraint name="D" perimeter="0" x="0" y="0.335"/>
+ <constraint name="E" perimeter="0" x="0" y="0.78"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.335"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.78"/>
+ <constraint name="clear" perimeter="0" x="0.5" y="0"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="D" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="65.0"/>
- <line x="30.0" y="70.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="65"/>
+ <line x="30" y="70"/>
+ <line x="20" y="75"/>
+ <move x="50" y="0"/>
+ <line x="50" y="6"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="6.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="48.0" y="6.0"/>
+ <text align="center" str="D" valign="bottom" x="25" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <ellipse h="4" w="4" x="48" y="6"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="D Type RS Flip-Flop" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="D Type RS Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="D" perimeter="0" x="0.0" y="0.3"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.7"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.3"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.7"/>
- <constraint name="S" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="R" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="D" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="0" y="0.7"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.3"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.7"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0"/>
+ <constraint name="R" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="D" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="65.0"/>
- <line x="30.0" y="70.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="65"/>
+ <line x="30" y="70"/>
+ <line x="20" y="75"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="50" y="90"/>
+ <line x="50" y="100"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="50.0" y="20.0"/>
- <path>
- <move x="50.0" y="90.0"/>
- <line x="50.0" y="100.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="R" valign="bottom" x="50.0" y="89.0"/>
+ <text align="center" str="D" valign="bottom" x="25" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <text align="center" str="S" valign="bottom" x="50" y="20"/>
+ <text align="center" str="R" valign="bottom" x="50" y="89"/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Highpass Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Highpass Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="6.0" y="33.0"/>
- <line x="16.0" y="13.0"/>
- <line x="46.0" y="13.0"/>
+ <move x="6" y="33"/>
+ <line x="16" y="13"/>
+ <line x="46" y="13"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Inverter" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Inverter" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="80.0" y="30.0"/>
- <line x="20.0" y="60.0"/>
+ <move x="20" y="0"/>
+ <line x="80" y="30"/>
+ <line x="20" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
</path>
</background>
<foreground>
- <miterlimit limit="2"/>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Inverting Contact" strokewidth="inherit" w="5.0">
+ <shape aspect="variable" h="5" name="Inverting Contact" strokewidth="inherit" w="5">
<connections>
<constraint name="W" perimeter="0" x="0.1" y="0.5"/>
<constraint name="E" perimeter="0" x="0.9" y="0.5"/>
</connections>
<background>
- <ellipse h="4.0" w="4.0" x="0.5" y="0.5"/>
+ <ellipse h="4" w="4" x="0.5" y="0.5"/>
</background>
<foreground>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="JK Flip-Flop" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="JK Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="J" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="K" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
+ <constraint name="J" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.5"/>
+ <constraint name="K" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="J" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="K" valign="bottom" x="25.0" y="65.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="30.0" y="40.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="35"/>
+ <line x="30" y="40"/>
+ <line x="20" y="45"/>
+ <move x="0" y="40"/>
+ <line x="20" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
+ <text align="center" str="J" valign="bottom" x="25" y="25"/>
+ <text align="center" str="K" valign="bottom" x="25" y="65"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="JK Flip-Flop With Clear" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="JK Flip-Flop With Clear" strokewidth="inherit" w="100">
<connections>
- <constraint name="J" perimeter="0" x="0.0" y="0.335"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.555"/>
- <constraint name="K" perimeter="0" x="0.0" y="0.78"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.335"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.78"/>
- <constraint name="clear" perimeter="0" x="0.5" y="0.0"/>
+ <constraint name="J" perimeter="0" x="0" y="0.335"/>
+ <constraint name="E" perimeter="0" x="0" y="0.555"/>
+ <constraint name="K" perimeter="0" x="0" y="0.78"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.335"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.78"/>
+ <constraint name="clear" perimeter="0" x="0.5" y="0"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="J" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="K" valign="bottom" x="25.0" y="75.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="30.0" y="50.0"/>
- <line x="20.0" y="55.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="45"/>
+ <line x="30" y="50"/>
+ <line x="20" y="55"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="50" y="0"/>
+ <line x="50" y="6"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="6.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="48.0" y="6.0"/>
+ <text align="center" str="J" valign="bottom" x="25" y="35"/>
+ <text align="center" str="K" valign="bottom" x="25" y="75"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <ellipse h="4" w="4" x="48" y="6"/>
<fillstroke/>
- <text align="center" str="C" valign="bottom" x="50.0" y="20.0"/>
+ <text align="center" str="C" valign="bottom" x="50" y="20"/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="JK Flip-Flop With SR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="JK Flip-Flop With SR" strokewidth="inherit" w="100">
<connections>
- <constraint name="J" perimeter="0" x="0.0" y="0.3"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="K" perimeter="0" x="0.0" y="0.7"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.3"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.7"/>
- <constraint name="S" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="R" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="J" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="0" y="0.5"/>
+ <constraint name="K" perimeter="0" x="0" y="0.7"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.3"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.7"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0"/>
+ <constraint name="R" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="J" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="K" valign="bottom" x="25.0" y="75.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="30.0" y="50.0"/>
- <line x="20.0" y="55.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="45"/>
+ <line x="30" y="50"/>
+ <line x="20" y="55"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="50" y="90"/>
+ <line x="50" y="100"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="50.0" y="20.0"/>
- <path>
- <move x="50.0" y="90.0"/>
- <line x="50.0" y="100.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="R" valign="bottom" x="50.0" y="89.0"/>
+ <text align="center" str="J" valign="bottom" x="25" y="35"/>
+ <text align="center" str="K" valign="bottom" x="25" y="75"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <text align="center" str="S" valign="bottom" x="50" y="20"/>
+ <text align="center" str="R" valign="bottom" x="50" y="89"/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Lowpass Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Lowpass Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="6.0" y="13.0"/>
- <line x="36.0" y="13.0"/>
- <line x="46.0" y="33.0"/>
+ <move x="6" y="13"/>
+ <line x="36" y="13"/>
+ <line x="46" y="33"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="NAND" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="NAND" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="20.0" y="0.0"/>
- <line x="50.0" y="0.0"/>
- <arc large-arc-flag="0" rx="30.0" ry="30.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="NOR" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="OR" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="80.0" name="RS Latch" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="S" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="R" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
- </connections>
- <background>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="R" valign="bottom" x="25.0" y="65.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Schmitt Trigger" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="20.0" y="0.0"/>
- <line x="80.0" y="30.0"/>
- <line x="20.0" y="60.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="35.0"/>
- <line x="46.0" y="35.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="31.0"/>
- <line x="50.0" y="29.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="1" x="54.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="55.0" y="25.0"/>
- <line x="39.0" y="25.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="29.0"/>
- <line x="35.0" y="31.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="1" x="31.0" x-axis-rotation="0.0" y="35.0"/>
+ <move x="20" y="0"/>
+ <line x="50" y="0"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="50" x-axis-rotation="0" y="60"/>
+ <line x="20" y="60"/>
<close/>
</path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="80.0" name="Synchronous RS Latch" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="S" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="R" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
- </connections>
- <background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="R" valign="bottom" x="25.0" y="65.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="30.0" y="40.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="80.0" name="T Type Flip-Flop" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="T" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
- </connections>
- <background>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="T" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="55.0"/>
- <line x="30.0" y="60.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="XNOR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="NOR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="10.0" y="0.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="XOR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="OR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="10.0" y="0.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="60.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
-</shapes>
-<shapes name="mxGraph.electrical.miscellaneous">
- <shape aspect="variable" h="60" name="Co-ax" strokewidth="inherit" w="40">
- <connections>
- <constraint perimeter="0" x="1" y="0.25"/>
- </connections>
- <foreground>
- <path>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
<move x="0" y="50"/>
- <line x="30" y="50"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15" y="30"/>
- <line x="15" y="50"/>
- </path>
- <fillstroke/>
- <ellipse h="30" w="30" x="0" y="0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="10" w="10" x="10" y="10"/>
- <stroke/>
- <path>
- <move x="20" y="15"/>
- <line x="40" y="15"/>
- </path>
- <stroke/>
- <path>
- <move x="23" y="50"/>
- <line x="18" y="60"/>
- </path>
- <stroke/>
- <path>
- <move x="15" y="50"/>
- <line x="9.6" y="59.8"/>
- </path>
- <stroke/>
- <path>
- <move x="7" y="50"/>
- <line x="2" y="60"/>
+ <line x="20" y="50"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="40.0" name="Crystal 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="RS Latch" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S" perimeter="0" x="0" y="0.25"/>
+ <constraint name="R" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <rect h="40.0" w="14.0" x="43.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="39.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="0.0"/>
- <line x="39.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="0.0"/>
- <line x="61.0" y="40.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
</path>
- <fillstroke/>
+ <stroke/>
+ <text align="center" str="S" valign="bottom" x="25" y="25"/>
+ <text align="center" str="R" valign="bottom" x="25" y="65"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="40.0" name="Crystal 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Schmitt Trigger" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="40.0" w="14.0" x="43.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="39.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="0.0"/>
- <line x="39.0" y="40.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="61.0" y="0.0"/>
- <line x="61.0" y="40.0"/>
+ <move x="20" y="0"/>
+ <line x="80" y="30"/>
+ <line x="20" y="60"/>
+ <close/>
</path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="22.0" name="Fusable Resistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="22.0" w="64.0" x="18.0" y="0.0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="11.0"/>
- <line x="18.0" y="11.0"/>
- <line x="22.0" y="1.0"/>
- <line x="30.0" y="21.0"/>
- <line x="38.0" y="1.0"/>
- <line x="46.0" y="21.0"/>
- <line x="54.0" y="1.0"/>
- <line x="62.0" y="21.0"/>
- <line x="70.0" y="1.0"/>
- <line x="78.0" y="21.0"/>
- <line x="82.0" y="11.0"/>
- <line x="100.0" y="11.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Fuse 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="25.0" y="0.0"/>
- <line x="25.0" y="20.0"/>
- </path>
- <stroke/>
- <path>
- <move x="75.0" y="0.0"/>
- <line x="75.0" y="20.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="35"/>
+ <line x="46" y="35"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="50" x-axis-rotation="0" y="31"/>
+ <line x="50" y="29"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="54" x-axis-rotation="0" y="25"/>
+ <line x="55" y="25"/>
+ <line x="39" y="25"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="35" x-axis-rotation="0" y="29"/>
+ <line x="35" y="31"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="31" x-axis-rotation="0" y="35"/>
+ <close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="20.0" name="Fuse 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Synchronous RS Latch" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.5"/>
+ <constraint name="R" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="12.0" name="Fuse 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="6.0"/>
- <line x="16.0" y="6.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="6.0"/>
- <line x="100.0" y="6.0"/>
- </path>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="72.0" y="0.0"/>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="16.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="22.5" y="0.0"/>
- <line x="77.5" y="12.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.5" y="0.0"/>
- <line x="22.5" y="12.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="32.0" name="Fuse 4" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="16.0"/>
- <line x="18.0" y="16.0"/>
- <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="16.0"/>
- <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="82.0" x-axis-rotation="0.0" y="16.0"/>
- <line x="100.0" y="16.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="35"/>
+ <line x="30" y="40"/>
+ <line x="20" y="45"/>
+ <move x="0" y="40"/>
+ <line x="20" y="40"/>
</path>
<stroke/>
+ <text align="center" str="S" valign="bottom" x="25" y="25"/>
+ <text align="center" str="R" valign="bottom" x="25" y="65"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Illuminating Bulb" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="80" name="T Type Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="T" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="5.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="25.0"/>
- <line x="10.0" y="25.0"/>
- <arc large-arc-flag="1" rx="20.0" ry="20.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="55"/>
+ <line x="30" y="60"/>
+ <line x="20" y="65"/>
</path>
<stroke/>
+ <text align="center" str="T" valign="bottom" x="25" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Lamp 1" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="60" name="XNOR" strokewidth="inherit" w="100">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="25.0"/>
- <arc large-arc-flag="1" rx="25.0" ry="25.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="35.0" y="25.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="25.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
<close/>
</path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Lamp 2" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="7.2" y="7.2"/>
- <line x="42.8" y="42.8"/>
- </path>
- <fillstroke/>
- <path>
- <move x="42.8" y="7.2"/>
- <line x="7.2" y="42.8"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Light Bulb" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="12.2" y="7.2"/>
- <line x="47.8" y="42.8"/>
- </path>
- <fillstroke/>
- <path>
- <move x="47.8" y="7.2"/>
- <line x="12.2" y="42.8"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="5.0" y="25.0"/>
- </path>
- <stroke/>
- <path>
- <move x="55.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
+ <move x="10" y="0"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="1" x="10" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Monocell Battery" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <rect h="30.0" w="4.0" x="41.0" y="15.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Multicell Battery" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="34.0" y="0.0"/>
- <line x="34.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <rect h="30.0" w="4.0" x="20.0" y="15.0"/>
- <fillstroke/>
- <path>
- <move x="80.0" y="0.0"/>
- <line x="80.0" y="60.0"/>
- </path>
- <fillstroke/>
- <rect h="30.0" w="4.0" x="66.0" y="15.0"/>
- <fillstroke/>
- <path>
- <move x="34.0" y="30.0"/>
- <line x="39.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="44.0" y="30.0"/>
- <line x="49.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="54.0" y="30.0"/>
- <line x="59.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="64.0" y="30.0"/>
- <line x="66.0" y="30.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Neon Lamp" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="20.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="15.0"/>
- <line x="30.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="50.0" y="25.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Neon Lamp 2" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
- <path>
- <move x="25.0" y="15.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="15.0"/>
- <line x="35.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="4.0" w="4.0" x="18.0" y="30.5"/>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Thermistor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="XOR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="20.0" w="64.0" x="18.0" y="20.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- <line x="82.0" y="0.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
+ <close/>
</path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Thermistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="70.0" w="70.0" x="15.0" y="0.0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="18.0" y="35.0"/>
- <line x="22.0" y="25.0"/>
- <line x="30.0" y="45.0"/>
- <line x="38.0" y="25.0"/>
- <line x="46.0" y="45.0"/>
- <line x="54.0" y="25.0"/>
- <line x="62.0" y="45.0"/>
- <line x="70.0" y="25.0"/>
- <line x="78.0" y="45.0"/>
- <line x="82.0" y="35.0"/>
- <line x="100.0" y="35.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="81.0" name="Thermocouple" strokewidth="inherit" w="80.0">
- <connections>
- <constraint name="+" perimeter="0" x="0.125" y="0.0"/>
- <constraint name="-" perimeter="0" x="0.875" y="0.0"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
<path>
- <move x="10.0" y="0.0"/>
- <line x="10.0" y="50.0"/>
- <line x="40.0" y="80.0"/>
- <line x="70.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="10" y="0"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="1" x="10" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="2.0" w="2.0" x="39.0" y="79.0"/>
- <fillstroke/>
- <path>
- <move x="3.0" y="2.0"/>
- <line x="3.0" y="8.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="6.0" y="5.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="74.0" y="5.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.mosfets1">
+<shapes name="mxgraph.electrical.miscellaneous">
+<shape aspect="variable" h="50" name="2 Conductor Jack" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.4"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="90" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="20"/>
+ <line x="40" y="30"/>
+ <line x="50" y="20"/>
+ <line x="90" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="2 Conductor Plug" strokewidth="inherit" w="53">
+ <connections>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="53" y="0"/>
+ <line x="13" y="0"/>
+ <line x="13" y="5"/>
+ <line x="6" y="5"/>
+ <move x="53" y="24"/>
+ <line x="13" y="24"/>
+ <line x="13" y="19"/>
+ <line x="6" y="19"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="0" y="16"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="3 Conductor Jack" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="NE" perimeter="0" x="1" y="0.1"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.9"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="90" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="5"/>
+ <line x="40" y="15"/>
+ <line x="50" y="5"/>
+ <line x="90" y="5"/>
+ </path>
+ <stroke/>
+ <ellipse h="10" w="10" x="90" y="40"/>
+ <fillstroke/>
+ <path>
+ <move x="40" y="45"/>
+ <line x="50" y="35"/>
+ <line x="60" y="45"/>
+ <line x="90" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="3 Conductor Plug" strokewidth="inherit" w="53">
+ <connections>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="53" y="0"/>
+ <line x="13" y="0"/>
+ <line x="13" y="5"/>
+ <line x="6" y="5"/>
+ <move x="53" y="24"/>
+ <line x="13" y="24"/>
+ <line x="13" y="19"/>
+ <line x="6" y="19"/>
+ <move x="6" y="12"/>
+ <line x="53" y="12"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="0" y="16"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="AC Out" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="100" w="200" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="55" w="26" x="87" y="12"/>
+ <stroke/>
+ <rect h="55" w="26" x="12" y="33"/>
+ <stroke/>
+ <rect h="55" w="26" x="162" y="33"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Adapter" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="100" y="40"/>
+ <arc large-arc-flag="0" rx="21" ry="21" sweep-flag="1" x="100" x-axis-rotation="0" y="0"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="86" y="25"/>
+ <arc large-arc-flag="0" rx="21" ry="21" sweep-flag="1" x="86" x-axis-rotation="0" y="15"/>
+ <line x="0" y="15"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Cable Termination" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="50"/>
+ <line x="60" y="0"/>
+ <line x="85" y="25"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="100" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32.32" name="Chassis" strokewidth="inherit" w="65.49">
+ <connections>
+ <constraint name="1" perimeter="0" x="0.62" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="32.32"/>
+ <line x="15.53" y="10"/>
+ <line x="65.49" y="10"/>
+ <line x="52.18" y="32.32"/>
+ <move x="26.09" y="32.32"/>
+ <line x="40.53" y="10"/>
+ <line x="40.53" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="12.6" name="Circuit Breaker" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="12.6"/>
+ <line x="30" y="12.6"/>
+ <move x="70" y="12.6"/>
+ <line x="100" y="12.6"/>
+ <move x="28" y="9.6"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="72" x-axis-rotation="0" y="9.6"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Co-ax" strokewidth="inherit" w="40">
+ <connections>
+ <constraint name="1" perimeter="0" x="1" y="0.25"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="30" y="50"/>
+ <move x="15" y="30"/>
+ <line x="15" y="50"/>
+ <move x="20" y="15"/>
+ <line x="40" y="15"/>
+ <move x="23" y="50"/>
+ <line x="18" y="60"/>
+ <move x="15" y="50"/>
+ <line x="9.6" y="59.8"/>
+ <move x="7" y="50"/>
+ <line x="2" y="60"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="30" w="30" x="0" y="0"/>
+ <fillstroke/>
+ <fillcolor color="none"/>
+ <ellipse h="10" w="10" x="10" y="10"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Coaxial Center Conductor" strokewidth="inherit" w="300">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.165"/>
+ <constraint name="E" perimeter="0" x="1" y="0.165"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="50"/>
+ <line x="70" y="50"/>
+ <move x="230" y="50"/>
+ <line x="280" y="50"/>
+ <move x="137" y="12"/>
+ <line x="150" y="25"/>
+ <line x="137" y="38"/>
+ <move x="152" y="12"/>
+ <line x="165" y="25"/>
+ <line x="152" y="38"/>
+ <move x="45" y="50"/>
+ <line x="45" y="120"/>
+ <line x="150" y="120"/>
+ <move x="137" y="107"/>
+ <line x="150" y="120"/>
+ <line x="137" y="133"/>
+ <move x="152" y="107"/>
+ <line x="165" y="120"/>
+ <line x="152" y="133"/>
+ <move x="290" y="150"/>
+ <line x="275" y="135"/>
+ <line x="275" y="105"/>
+ <line x="290" y="120"/>
+ <move x="165" y="120"/>
+ <line x="275" y="120"/>
+ <line x="290" y="135"/>
+ <move x="165" y="25"/>
+ <line x="300" y="25"/>
+ <move x="0" y="25"/>
+ <line x="150" y="25"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="20" y="0"/>
+ <stroke/>
+ <ellipse h="50" w="50" x="230" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Coaxial Jack Plug" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.25"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.25"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="100"/>
+ <line x="30" y="100"/>
+ <move x="12" y="93"/>
+ <line x="38" y="93"/>
+ <move x="6" y="86"/>
+ <line x="44" y="86"/>
+ <move x="25" y="50"/>
+ <line x="25" y="86"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="19" y="19"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Coaxial Outside Conductor" strokewidth="inherit" w="300">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.165"/>
+ <constraint name="E" perimeter="0" x="1" y="0.165"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="50"/>
+ <line x="70" y="50"/>
+ <move x="230" y="50"/>
+ <line x="280" y="50"/>
+ <move x="137" y="12"/>
+ <line x="150" y="25"/>
+ <line x="137" y="38"/>
+ <move x="152" y="12"/>
+ <line x="165" y="25"/>
+ <line x="152" y="38"/>
+ <move x="45" y="50"/>
+ <line x="45" y="137"/>
+ <line x="150" y="137"/>
+ <move x="137" y="124"/>
+ <line x="150" y="137"/>
+ <line x="137" y="150"/>
+ <move x="152" y="124"/>
+ <line x="165" y="137"/>
+ <line x="152" y="150"/>
+ <move x="165" y="137"/>
+ <line x="255" y="137"/>
+ <line x="255" y="50"/>
+ <move x="165" y="25"/>
+ <line x="300" y="25"/>
+ <move x="0" y="25"/>
+ <line x="150" y="25"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="20" y="0"/>
+ <stroke/>
+ <ellipse h="50" w="50" x="230" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Crystal 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="40" w="14" x="43" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="20"/>
+ <line x="39" y="20"/>
+ <move x="61" y="20"/>
+ <line x="100" y="20"/>
+ <move x="39" y="0"/>
+ <line x="39" y="40"/>
+ <move x="61" y="0"/>
+ <line x="61" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Crystal 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="40" w="14" x="43" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="20"/>
+ <line x="39" y="20"/>
+ <move x="61" y="20"/>
+ <line x="100" y="20"/>
+ <move x="39" y="0"/>
+ <line x="39" y="40"/>
+ <move x="61" y="0"/>
+ <line x="61" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="C Header Connector" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0.8"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="35" y="75"/>
+ <line x="15" y="75"/>
+ <line x="0" y="45"/>
+ <line x="0" y="0"/>
+ <line x="200" y="0"/>
+ <line x="200" y="45"/>
+ <line x="185" y="75"/>
+ <line x="165" y="75"/>
+ <line x="155" y="60"/>
+ <line x="45" y="60"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="90" y="60"/>
+ <line x="90" y="40"/>
+ <line x="110" y="40"/>
+ <line x="110" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Delay Element" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="100" w="90" x="5" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="5" y="50"/>
+ <move x="95" y="50"/>
+ <line x="100" y="50"/>
+ <move x="15" y="40"/>
+ <line x="15" y="60"/>
+ <move x="15" y="50"/>
+ <line x="85" y="50"/>
+ <move x="85" y="40"/>
+ <line x="85" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Flourescent Lamp" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="30"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="5" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="20" x-axis-rotation="0" y="0"/>
+ <line x="60" y="0"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="75" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="60" x-axis-rotation="0" y="30"/>
+ <close/>
+ <move x="0" y="15"/>
+ <line x="15" y="15"/>
+ <move x="65" y="15"/>
+ <line x="80" y="15"/>
+ <move x="65" y="10"/>
+ <line x="65" y="20"/>
+ <move x="15" y="10"/>
+ <line x="15" y="20"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="15" y="10"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="55" y="10"/>
+ <stroke/>
+ <ellipse h="4" w="4" x="38" y="3"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="22" name="Fusable Resistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="22" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="11"/>
+ <line x="18" y="11"/>
+ <line x="22" y="1"/>
+ <line x="30" y="21"/>
+ <line x="38" y="1"/>
+ <line x="46" y="21"/>
+ <line x="54" y="1"/>
+ <line x="62" y="21"/>
+ <line x="70" y="1"/>
+ <line x="78" y="21"/>
+ <line x="82" y="11"/>
+ <line x="100" y="11"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Fuse 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="20" w="64" x="18" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="25" y="0"/>
+ <line x="25" y="20"/>
+ <move x="75" y="0"/>
+ <line x="75" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Fuse 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="12" name="Fuse 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="6"/>
+ <line x="16" y="6"/>
+ <move x="84" y="6"/>
+ <line x="100" y="6"/>
+ <move x="22.5" y="0"/>
+ <line x="77.5" y="12"/>
+ <move x="77.5" y="0"/>
+ <line x="22.5" y="12"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="72" y="0"/>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="16" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Fuse 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18" y="16"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="50" x-axis-rotation="0" y="16"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="82" x-axis-rotation="0" y="16"/>
+ <line x="100" y="16"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 2 Conductor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="36" w="18" x="14" y="32"/>
+ <stroke/>
+ <rect h="22" w="18" x="68" y="39"/>
+ <stroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="14" y="50"/>
+ <move x="86" y="50"/>
+ <line x="100" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 2 Conductor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="6" y="50"/>
+ <move x="94" y="50"/>
+ <line x="100" y="50"/>
+ <move x="18.9" y="81.1"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="18.9" x-axis-rotation="0" y="18.9"/>
+ <line x="27.4" y="27.4"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="27.4" x-axis-rotation="0" y="72.6"/>
+ <close/>
+ <move x="72.6" y="72.6"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="72.6" x-axis-rotation="0" y="27.4"/>
+ <line x="81.1" y="18.9"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="81.1" x-axis-rotation="0" y="81.1"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="F M 2 Conductor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="25" y="50"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="0" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="25" x-axis-rotation="0" y="0"/>
+ <line x="75" y="0"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="100" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="75" x-axis-rotation="0" y="50"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="20" y="20"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="70" y="20"/>
+ <stroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="20" y="25"/>
+ <move x="80" y="25"/>
+ <line x="100" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.02" y="0.37"/>
+ <constraint name="E" perimeter="0" x="0.98" y="0.37"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="36" w="18" x="14" y="19"/>
+ <stroke/>
+ <rect h="22" w="18" x="68" y="26"/>
+ <stroke/>
+ <path>
+ <move x="2" y="37"/>
+ <line x="14" y="37"/>
+ <move x="86" y="37"/>
+ <line x="98" y="37"/>
+ <move x="50" y="100"/>
+ <line x="50" y="85"/>
+ <move x="40" y="85"/>
+ <arc large-arc-flag="0" rx="10" ry="15" sweep-flag="1" x="50" x-axis-rotation="0" y="70"/>
+ <arc large-arc-flag="0" rx="10" ry="15" sweep-flag="1" x="60" x-axis-rotation="0" y="85"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.07" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0.93" y="0.25"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="36" w="18" x="41" y="55"/>
+ <stroke/>
+ <path>
+ <move x="7" y="25"/>
+ <line x="16.5" y="25"/>
+ <move x="83.5" y="25"/>
+ <line x="93" y="25"/>
+ <move x="50" y="100"/>
+ <line x="50" y="91"/>
+ <move x="4.4" y="46.3"/>
+ <line x="22.3" y="15.1"/>
+ <line x="37.8" y="24.1"/>
+ <line x="19.9" y="55.3"/>
+ <close/>
+ <move x="62.2" y="24"/>
+ <line x="77.7" y="14.9"/>
+ <line x="95.7" y="46.2"/>
+ <line x="80.1" y="55.3"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.035" y="0.32"/>
+ <constraint name="E" perimeter="0" x="0.965" y="0.32"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="3.5" y="32"/>
+ <line x="12" y="32"/>
+ <move x="88" y="32"/>
+ <line x="96.5" y="32"/>
+ <move x="50" y="100"/>
+ <line x="50" y="91"/>
+ <move x="40" y="91"/>
+ <line x="40" y="75"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="65"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="60" x-axis-rotation="0" y="75"/>
+ <line x="60" y="91"/>
+ <close/>
+ </path>
+ <stroke/>
+ <rect h="14" w="22" x="12" y="25"/>
+ <stroke/>
+ <rect h="14" w="22" x="66" y="25"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="SW" perimeter="0" x="0.25" y="0.93"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="6" y="50"/>
+ <move x="94" y="50"/>
+ <line x="100" y="50"/>
+ <move x="43.46" y="93.58"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="14.68" x-axis-rotation="-81.24" y="76.2"/>
+ <line x="24.37" y="69.09"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="45.29" x-axis-rotation="-81.24" y="81.72"/>
+ <close/>
+ <move x="9.3" y="66.4"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="18.9" x-axis-rotation="0" y="18.9"/>
+ <line x="27.4" y="27.4"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="20.4" x-axis-rotation="0" y="61.9"/>
+ <close/>
+ <move x="79.6" y="61.9"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="72.6" x-axis-rotation="0" y="27.4"/>
+ <line x="81.1" y="18.9"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="90.8" x-axis-rotation="0" y="66.3"/>
+ <close/>
+ <move x="25" y="93.3"/>
+ <line x="25" y="86.3"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="49.75" y="63.87"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="45.31" x-axis-rotation="165.2" y="97.21"/>
+ <line x="34.92" y="91.16"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="38.14" x-axis-rotation="165.2" y="66.94"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 5" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="SW" perimeter="0" x="0.25" y="0.93"/>
+ <constraint name="W" perimeter="0" x="0.07" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0.93" y="0.25"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="18" w="36" x="32" y="73"/>
+ <stroke/>
+ <path>
+ <move x="7" y="25"/>
+ <line x="16.5" y="25"/>
+ <move x="83.5" y="25"/>
+ <line x="93" y="25"/>
+ <move x="50" y="100"/>
+ <line x="50" y="91"/>
+ <move x="62.2" y="24"/>
+ <line x="77.7" y="14.9"/>
+ <line x="95.7" y="46.2"/>
+ <line x="80.1" y="55.3"/>
+ <close/>
+ <move x="4.4" y="46.3"/>
+ <line x="22.3" y="15.1"/>
+ <line x="37.8" y="24.1"/>
+ <line x="19.9" y="55.3"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Generic Component" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="60" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="20" y="18"/>
+ <line x="40" y="18"/>
+ <line x="20" y="42"/>
+ <line x="40" y="42"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="39" name="Igniter Plug" strokewidth="inherit" w="72">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.54" y="0"/>
+ <constraint name="S" perimeter="0" x="0.54" y="0.67"/>
+ <constraint name="W" perimeter="0" x="0" y="0.33"/>
+ </connections>
+ <foreground>
+ <rect h="26" w="40" x="19" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="19" y="3"/>
+ <line x="17" y="3"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="15" x-axis-rotation="0" y="5"/>
+ <line x="15" y="21"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="17" x-axis-rotation="0" y="23"/>
+ <line x="19" y="23"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="54" y="13"/>
+ <line x="67" y="13"/>
+ <line x="67" y="33"/>
+ <move x="62" y="33"/>
+ <line x="72" y="33"/>
+ <move x="64" y="36"/>
+ <line x="70" y="36"/>
+ <move x="66" y="39"/>
+ <line x="68" y="39"/>
+ <move x="7" y="9"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="7" x-axis-rotation="0" y="17"/>
+ <move x="8" y="9"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="8" x-axis-rotation="0" y="17"/>
+ <move x="0" y="13"/>
+ <line x="24" y="13"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="24" y="9"/>
+ <line x="34" y="13"/>
+ <line x="24" y="17"/>
+ <close/>
+ <move x="54" y="9"/>
+ <line x="54" y="17"/>
+ <line x="44" y="13"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Illuminating Bulb" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="10" y="25"/>
+ <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="50" x-axis-rotation="0" y="25"/>
+ <line x="60" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Indicator" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <foreground>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="5" y="35"/>
+ <line x="40" y="25"/>
+ <line x="40" y="35"/>
+ <line x="55" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Lamp 1" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <arc large-arc-flag="1" rx="25" ry="25" sweep-flag="1" x="50" x-axis-rotation="0" y="25"/>
+ <line x="35" y="25"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="15" x-axis-rotation="0" y="25"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Lamp 2" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="7.2" y="7.2"/>
+ <line x="42.8" y="42.8"/>
+ <move x="42.8" y="7.2"/>
+ <line x="7.2" y="42.8"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="Large D Connector" strokewidth="inherit" w="375">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <roundrect arcsize="6.67" h="75" w="375" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="44" y="60"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="39" x-axis-rotation="0" y="56"/>
+ <line x="28" y="19"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="33" x-axis-rotation="0" y="15"/>
+ <line x="342" y="15"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="348" x-axis-rotation="0" y="19"/>
+ <line x="336" y="56"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="331" x-axis-rotation="0" y="60"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Light Bulb" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="12.2" y="7.2"/>
+ <line x="47.8" y="42.8"/>
+ <move x="47.8" y="7.2"/>
+ <line x="12.2" y="42.8"/>
+ <move x="0" y="25"/>
+ <line x="5" y="25"/>
+ <move x="55" y="25"/>
+ <line x="60" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Loop Antenna" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="100"/>
+ <line x="45" y="100"/>
+ <line x="45" y="85"/>
+ <line x="5" y="45"/>
+ <line x="50" y="0"/>
+ <line x="95" y="45"/>
+ <line x="55" y="85"/>
+ <line x="55" y="100"/>
+ <line x="100" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="MF Contact 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="10" w="50" x="50" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="5"/>
+ <line x="50" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Monocell Battery" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ <rect h="30" w="4" x="41" y="15"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Multicell Battery" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="34" y="0"/>
+ <line x="34" y="60"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="0"/>
+ <line x="80" y="60"/>
+ <move x="34" y="30"/>
+ <line x="39" y="30"/>
+ <move x="44" y="30"/>
+ <line x="49" y="30"/>
+ <move x="54" y="30"/>
+ <line x="59" y="30"/>
+ <move x="64" y="30"/>
+ <line x="66" y="30"/>
+ </path>
+ <fillstroke/>
+ <rect h="30" w="4" x="20" y="15"/>
+ <fillstroke/>
+ <rect h="30" w="4" x="66" y="15"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Multicell Battery Tapped" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.43"/>
+ <constraint name="E" perimeter="0" x="1" y="0.43"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="34" y="0"/>
+ <line x="34" y="60"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="0"/>
+ <line x="80" y="60"/>
+ <move x="34" y="30"/>
+ <line x="39" y="30"/>
+ <move x="44" y="30"/>
+ <line x="49" y="30"/>
+ <move x="54" y="30"/>
+ <line x="59" y="30"/>
+ <move x="64" y="30"/>
+ <line x="66" y="30"/>
+ <move x="50" y="70"/>
+ <line x="50" y="40"/>
+ </path>
+ <fillstroke/>
+ <rect h="30" w="4" x="20" y="15"/>
+ <fillstroke/>
+ <rect h="30" w="4" x="66" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="46" y="50"/>
+ <line x="50" y="40"/>
+ <line x="54" y="50"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Neon Lamp" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="20" y="25"/>
+ <move x="20" y="15"/>
+ <line x="20" y="35"/>
+ <move x="30" y="15"/>
+ <line x="30" y="35"/>
+ <move x="30" y="25"/>
+ <line x="50" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Neon Lamp 2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="25" y="15"/>
+ <line x="25" y="35"/>
+ <move x="35" y="15"/>
+ <line x="35" y="35"/>
+ <move x="35" y="25"/>
+ <line x="60" y="25"/>
+ </path>
+ <stroke/>
+ <ellipse h="4" w="4" x="18" y="30.5"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65" name="Normalled Jack" strokewidth="inherit" w="110">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.31"/>
+ <constraint name="S" perimeter="0" x="0.73" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="100" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="20"/>
+ <line x="40" y="30"/>
+ <line x="50" y="20"/>
+ <line x="100" y="20"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <strokecolor color="#000000"/>
+ <path>
+ <move x="80" y="21"/>
+ <line x="75" y="31"/>
+ <line x="85" y="31"/>
+ <close/>
+ <move x="80" y="30"/>
+ <line x="80" y="65"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65" name="Normalled Jacks" strokewidth="inherit" w="230">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.305"/>
+ <constraint name="E" perimeter="0" x="1" y="0.305"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="85" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="70" y="20"/>
+ <line x="60" y="30"/>
+ <line x="50" y="20"/>
+ <line x="10" y="20"/>
+ <move x="160" y="20"/>
+ <line x="170" y="30"/>
+ <line x="180" y="20"/>
+ <line x="220" y="20"/>
+ <move x="20" y="22"/>
+ <line x="20" y="65"/>
+ <line x="210" y="65"/>
+ <line x="210" y="22"/>
+ </path>
+ <stroke/>
+ <rect h="50" w="15" x="130" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="220" y="15"/>
+ <fillstroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="20" y="21"/>
+ <line x="15" y="31"/>
+ <line x="25" y="31"/>
+ <close/>
+ <move x="210" y="21"/>
+ <line x="205" y="31"/>
+ <line x="215" y="31"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Permanent Magnet" strokewidth="inherit" w="20">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="20" y="0"/>
+ <line x="20" y="70"/>
+ <line x="0" y="70"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="41" name="Sensing Link Squib" strokewidth="inherit" w="131">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="4" y="20.5"/>
+ <arc large-arc-flag="0" rx="20.5" ry="20.5" sweep-flag="1" x="45" x-axis-rotation="0" y="20.5"/>
+ <arc large-arc-flag="0" rx="20.5" ry="20.5" sweep-flag="0" x="86" x-axis-rotation="0" y="20.5"/>
+ <arc large-arc-flag="0" rx="20.5" ry="20.5" sweep-flag="1" x="127" x-axis-rotation="0" y="20.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="8" w="8" x="0" y="16.5"/>
+ <fillstroke/>
+ <ellipse h="8" w="8" x="123" y="16.5"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Shielded Jack Plug" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.25"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.25"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="100"/>
+ <line x="30" y="100"/>
+ <move x="12" y="93"/>
+ <line x="38" y="93"/>
+ <move x="6" y="86"/>
+ <line x="44" y="86"/>
+ <move x="25" y="50"/>
+ <line x="25" y="86"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="28" w="28" x="11" y="11"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="Small D Connector" strokewidth="inherit" w="150">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <roundrect arcsize="6.67" h="75" w="150" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="44" y="60"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="39" x-axis-rotation="0" y="56"/>
+ <line x="28" y="19"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="33" x-axis-rotation="0" y="15"/>
+ <line x="118" y="15"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="123" x-axis-rotation="0" y="19"/>
+ <line x="111" y="56"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="106" x-axis-rotation="0" y="60"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Squib Ignitor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="1" y="0.3"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="35" y="100"/>
+ <line x="35" y="60"/>
+ <line x="5" y="60"/>
+ <line x="5" y="0"/>
+ <line x="95" y="0"/>
+ <line x="95" y="60"/>
+ <line x="65" y="60"/>
+ <line x="65" y="100"/>
+ <move x="50" y="50"/>
+ <line x="50" y="80"/>
+ <move x="0" y="30"/>
+ <line x="26" y="30"/>
+ <line x="30" y="20"/>
+ <line x="38" y="40"/>
+ <line x="46" y="20"/>
+ <line x="54" y="40"/>
+ <line x="62" y="20"/>
+ <line x="70" y="40"/>
+ <line x="74" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="46" y="80"/>
+ <line x="54" y="80"/>
+ <line x="50" y="90"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Surge Protector" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="20" w="20" x="13" y="0"/>
+ <fillstroke/>
+ <ellipse h="20" w="20" x="36" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="13" y="10"/>
+ <move x="56" y="10"/>
+ <line x="70" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Surge Protector 2" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="20"/>
+ <line x="18" y="20"/>
+ <move x="52" y="20"/>
+ <line x="70" y="20"/>
+ </path>
+ <stroke/>
+ <rect h="40" w="12" x="18" y="0"/>
+ <fillstroke/>
+ <rect h="40" w="12" x="40" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Terminal Board" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W1" perimeter="0" x="0" y="0.125"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.375"/>
+ <constraint name="W3" perimeter="0" x="0" y="0.625"/>
+ <constraint name="W4" perimeter="0" x="0" y="0.875"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.125"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.375"/>
+ <constraint name="E3" perimeter="0" x="1" y="0.625"/>
+ <constraint name="E4" perimeter="0" x="1" y="0.875"/>
+ </connections>
+ <foreground>
+ <rect h="150" w="75" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="75"/>
+ <line x="75" y="75"/>
+ <move x="0" y="37.5"/>
+ <line x="75" y="37.5"/>
+ <move x="0" y="112.5"/>
+ <line x="75" y="112.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="13.75"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="51.25"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="88.75"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="126.25"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Thermal Element" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18" y="16"/>
+ <arc large-arc-flag="1" rx="16" ry="16" sweep-flag="1" x="34" x-axis-rotation="0" y="32"/>
+ <move x="100" y="16"/>
+ <line x="82" y="16"/>
+ <arc large-arc-flag="1" rx="16" ry="16" sweep-flag="1" x="66" x-axis-rotation="0" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Thermistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="20"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <move x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <line x="82" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Thermistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="70" w="70" x="15" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="35"/>
+ <line x="18" y="35"/>
+ <line x="22" y="25"/>
+ <line x="30" y="45"/>
+ <line x="38" y="25"/>
+ <line x="46" y="45"/>
+ <line x="54" y="25"/>
+ <line x="62" y="45"/>
+ <line x="70" y="25"/>
+ <line x="78" y="45"/>
+ <line x="82" y="35"/>
+ <line x="100" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="82" name="Thermocouple" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="+" perimeter="0" x="0.125" y="0"/>
+ <constraint name="-" perimeter="0" x="0.875" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="50"/>
+ <line x="40" y="80"/>
+ <line x="70" y="50"/>
+ <line x="70" y="0"/>
+ <move x="3" y="2"/>
+ <line x="3" y="8"/>
+ <move x="0" y="5"/>
+ <line x="6" y="5"/>
+ <move x="74" y="5"/>
+ <line x="80" y="5"/>
+ </path>
+ <stroke/>
+ <ellipse h="4" w="4" x="38" y="78"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="82" name="Thermopile" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="+" perimeter="0" x="0.125" y="0"/>
+ <constraint name="-" perimeter="0" x="0.875" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="50"/>
+ <line x="20" y="80"/>
+ <line x="30" y="50"/>
+ <line x="40" y="80"/>
+ <line x="50" y="50"/>
+ <line x="60" y="80"/>
+ <line x="70" y="50"/>
+ <line x="70" y="0"/>
+ <move x="3" y="2"/>
+ <line x="3" y="8"/>
+ <move x="0" y="5"/>
+ <line x="6" y="5"/>
+ <move x="74" y="5"/>
+ <line x="80" y="5"/>
+ </path>
+ <stroke/>
+ <ellipse h="4" w="4" x="38" y="78"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="58" y="78"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="18" y="78"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="48" y="48"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="28" y="48"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Transducer" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.43" y="0"/>
+ <constraint name="S" perimeter="0" x="0.43" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="70" y="30"/>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Transducer 2" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="60" w="20" x="30" y="20"/>
+ <fillstroke/>
+ <path>
+ <move x="25" y="25"/>
+ <line x="25" y="75"/>
+ <move x="55" y="25"/>
+ <line x="55" y="75"/>
+ <move x="0" y="0"/>
+ <line x="0" y="50"/>
+ <line x="25" y="50"/>
+ <move x="80" y="0"/>
+ <line x="80" y="50"/>
+ <line x="55" y="50"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="40" y="80"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.mosfets1">
<shape aspect="variable" h="90" name="Dual Gate MOSFET" strokewidth="inherit" w="90">
<connections>
<constraint name="G1" perimeter="0" x="0.05" y="0.28"/>
@@ -123065,7 +124145,6 @@
<constraint name="S1" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
<ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
@@ -123073,54 +124152,26 @@
<path>
<move x="20" y="15"/>
<line x="20" y="75"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="25"/>
<line x="85" y="25"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="65"/>
<line x="85" y="65"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="20"/>
<line x="25" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="40"/>
<line x="25" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="60"/>
<line x="25" y="70"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="45"/>
<line x="90" y="45"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="5" y="65"/>
<line x="15" y="65"/>
<line x="15" y="60"/>
- </path>
- <stroke/>
- <path>
<move x="5" y="25"/>
<line x="15" y="25"/>
<line x="15" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="2"/>
<path>
<move x="30.5" y="42"/>
@@ -123131,1217 +124182,781 @@
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="Dual Gate MOSFET N" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="Dual Gate MOSFET N" strokewidth="inherit" w="100">
<connections>
- <constraint name="G1" perimeter="0" x="0.0" y="0.4"/>
- <constraint name="G2" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G1" perimeter="0" x="0" y="0.4"/>
+ <constraint name="G2" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="66.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="66"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <move x="0" y="44"/>
+ <line x="42" y="44"/>
+ <line x="42" y="31"/>
</path>
<stroke/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="60.5" y="50"/>
+ <line x="46" y="55"/>
+ <line x="60.5" y="60"/>
+ <close/>
</path>
- <stroke/>
+ <fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="44.0"/>
- <line x="42.0" y="44.0"/>
- <line x="42.0" y="31.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.5" y="50.0"/>
- <line x="46.0" y="55.0"/>
- <line x="60.5" y="60.0"/>
- <close/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="Dual Gate MOSFET P" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="Dual Gate MOSFET P" strokewidth="inherit" w="100">
<connections>
- <constraint name="G1" perimeter="0" x="0.0" y="0.4"/>
- <constraint name="G2" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G1" perimeter="0" x="0" y="0.4"/>
+ <constraint name="G2" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="66.0"/>
- </path>
- <stroke/>
<path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="66"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <move x="0" y="44"/>
+ <line x="42" y="44"/>
+ <line x="42" y="31"/>
</path>
<stroke/>
<path>
- <move x="0.0" y="44.0"/>
- <line x="42.0" y="44.0"/>
- <line x="42.0" y="31.0"/>
+ <move x="54" y="50"/>
+ <line x="69" y="55"/>
+ <line x="54" y="60"/>
+ <close/>
</path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="54.0" y="50.0"/>
- <line x="69.0" y="55.0"/>
- <line x="54.0" y="60.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET IC N" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET IC N" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="40.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.5"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30.5"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="60.5" y="50.0"/>
- <line x="46.0" y="55.0"/>
- <line x="60.5" y="60.0"/>
+ <move x="60.5" y="50"/>
+ <line x="46" y="55"/>
+ <line x="60.5" y="60"/>
<close/>
</path>
<fillstroke/>
<strokewidth width="2"/>
<path>
- <move x="45.0" y="50.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="70.0"/>
- <line x="45.0" y="80.0"/>
+ <move x="45" y="50"/>
+ <line x="45" y="60"/>
+ <move x="45" y="70"/>
+ <line x="45" y="80"/>
+ <move x="45" y="30"/>
+ <line x="45" y="40"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET IC P" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET IC P" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="54.0" y="50.0"/>
- <line x="69.0" y="55.0"/>
- <line x="54.0" y="60.0"/>
+ <move x="54" y="50"/>
+ <line x="69" y="55"/>
+ <line x="54" y="60"/>
<close/>
</path>
<fillstroke/>
<strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="50.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="70.0"/>
- <line x="45.0" y="80.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="40"/>
+ <move x="45" y="50"/>
+ <line x="45" y="60"/>
+ <move x="45" y="70"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.5"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET N No Bulk" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET N No Bulk" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
<path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
+ <move x="42" y="32"/>
+ <line x="42" y="78"/>
+ <move x="0" y="55"/>
+ <line x="42" y="55"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="42.0" y="32.0"/>
- <line x="42.0" y="78.0"/>
- </path>
- <fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="55.0"/>
- <line x="42.0" y="55.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET P No Bulk" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET P No Bulk" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="42.0" y="32.0"/>
- <line x="42.0" y="78.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
+ <move x="42" y="32"/>
+ <line x="42" y="78"/>
+ <move x="0" y="55"/>
+ <line x="38" y="55"/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="4.0" w="4.0" x="38.0" y="53.0"/>
<stroke/>
- <restore/>
- <rect/>
+ <ellipse h="4" w="4" x="38" y="53"/>
<stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="55.0"/>
- <line x="38.0" y="55.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="N-channel MOSFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="N-channel MOSFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
<path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
</path>
<stroke/>
<path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="60.5" y="50"/>
+ <line x="46" y="55"/>
+ <line x="60.5" y="60"/>
+ <close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="60.5" y="50.0"/>
- <line x="46.0" y="55.0"/>
- <line x="60.5" y="60.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 3" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="S1" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="S1" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 5" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 5" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="S" perimeter="0" x="0.95" y="0.28"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
<fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="S" perimeter="0" x="0.95" y="0.28"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
<fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="P-channel MOSFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="P-channel MOSFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
</path>
<stroke/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="54" y="50"/>
+ <line x="69" y="55"/>
+ <line x="54" y="60"/>
+ <close/>
</path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="54.0" y="50.0"/>
- <line x="69.0" y="55.0"/>
- <line x="54.0" y="60.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="36.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="36" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 3" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
<constraint name="S2" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="84.5" y="42.0"/>
- <line x="90.0" y="45.0"/>
- <line x="84.5" y="48.0"/>
+ <move x="84.5" y="42"/>
+ <line x="90" y="45"/>
+ <line x="84.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
<constraint name="S2" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="84.5" y="42.0"/>
- <line x="90.0" y="45.0"/>
- <line x="84.5" y="48.0"/>
+ <move x="84.5" y="42"/>
+ <line x="90" y="45"/>
+ <line x="84.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 5" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 5" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="36.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="36" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
<fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="36.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="36" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.mosfets2">
+<shapes name="mxgraph.electrical.mosfets2">
<shape aspect="variable" h="60" name="Dual Gate MOSFET" strokewidth="inherit" w="85">
<connections>
<constraint name="G1" perimeter="0" x="0" y="0.165"/>
@@ -124351,954 +124966,557 @@
<constraint name="S1" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
<path>
<move x="15" y="0"/>
<line x="15" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="10"/>
<line x="85" y="10"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="50"/>
<line x="85" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="5"/>
<line x="20" y="15"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="25"/>
<line x="20" y="35"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="45"/>
<line x="20" y="55"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="30"/>
<line x="85" y="30"/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="25.5" y="27"/>
- <line x="20" y="30"/>
- <line x="25.5" y="33"/>
- <close/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
<move x="0" y="50"/>
<line x="10" y="50"/>
<line x="10" y="45"/>
- </path>
- <stroke/>
- <path>
<move x="0" y="10"/>
<line x="10" y="10"/>
<line x="10" y="15"/>
</path>
<stroke/>
+ <path>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
+ <close/>
+ </path>
+ <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 1" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 1" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<background>
- <save/>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="25.5" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="25.5" y="27.0"/>
- <line x="20.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.5" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="30.5" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="30.5" y="27.0"/>
- <line x="25.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="25" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.5" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 3" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 3" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="85.0" y="30.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="85" y="30"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="25.5" y="27.0"/>
- <line x="20.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="90.0" y="30.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="90" y="30"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="30.5" y="27.0"/>
- <line x="25.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="25" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 5" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 5" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="S" perimeter="0" x="1" y="0.165"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
+ <move x="60" y="10"/>
+ <line x="60" y="50"/>
+ <move x="55" y="25"/>
+ <line x="65" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="25.0"/>
- <line x="65.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="57.0" y="30.0"/>
- <line x="60.0" y="25.0"/>
- <line x="63.0" y="30.0"/>
+ <move x="57" y="30"/>
+ <line x="60" y="25"/>
+ <line x="63" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="25.5" y="27.0"/>
- <line x="20.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="S" perimeter="0" x="1" y="0.165"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
+ <move x="65" y="10"/>
+ <line x="65" y="50"/>
+ <move x="60" y="25"/>
+ <line x="70" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="65.0" y="10.0"/>
- <line x="65.0" y="50.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="60.0" y="25.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="30.0"/>
- <line x="65.0" y="25.0"/>
- <line x="68.0" y="30.0"/>
+ <move x="62" y="30"/>
+ <line x="65" y="25"/>
+ <line x="68" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="30.5" y="27.0"/>
- <line x="25.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="25" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="NMOS FET" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="NMOS FET" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="5.0"/>
- <line x="10.0" y="55.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="15" y="10"/>
+ <line x="85" y="10"/>
+ <move x="15" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="10" y="5"/>
+ <line x="10" y="55"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 1" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 1" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="31" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
+ <move x="20" y="30"/>
+ <line x="25.5" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="25.5" y="27.0"/>
- <line x="31.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="31" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="31.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
- </path>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="25.5" y="30.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="36" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
+ <move x="25" y="30"/>
+ <line x="30.5" y="30"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="30.5" y="27.0"/>
- <line x="36.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="36" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="36.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <stroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="30.5" y="30.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 3" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 3" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="85.0" y="30.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="85" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="79.5" y="27.0"/>
- <line x="85.0" y="30.0"/>
- <line x="79.5" y="33.0"/>
+ <move x="79.5" y="27"/>
+ <line x="85" y="30"/>
+ <line x="79.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="90.0" y="30.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="90" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="84.5" y="27.0"/>
- <line x="90.0" y="30.0"/>
- <line x="84.5" y="33.0"/>
+ <move x="84.5" y="27"/>
+ <line x="90" y="30"/>
+ <line x="84.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 5" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 5" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
+ <move x="60" y="10"/>
+ <line x="60" y="50"/>
+ <move x="55" y="25"/>
+ <line x="65" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="25.0"/>
- <line x="65.0" y="25.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="57.0" y="30.0"/>
- <line x="60.0" y="25.0"/>
- <line x="63.0" y="30.0"/>
+ <move x="57" y="30"/>
+ <line x="60" y="25"/>
+ <line x="63" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="25.5" y="27.0"/>
- <line x="31.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="31" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
+ <move x="65" y="10"/>
+ <line x="65" y="50"/>
+ <move x="60" y="25"/>
+ <line x="70" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="65.0" y="10.0"/>
- <line x="65.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="25.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="62.0" y="30.0"/>
- <line x="65.0" y="25.0"/>
- <line x="68.0" y="30.0"/>
+ <move x="62" y="30"/>
+ <line x="65" y="25"/>
+ <line x="68" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="30.5" y="27.0"/>
- <line x="36.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="36" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="PMOS FET" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="PMOS FET" strokewidth="inherit" w="85">
<connections>
- <constraint name="G1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="4.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="5.0"/>
- <line x="10.0" y="55.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="15" y="10"/>
+ <line x="85" y="10"/>
+ <move x="15" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="30"/>
+ <line x="4" y="30"/>
+ <move x="10" y="5"/>
+ <line x="10" y="55"/>
</path>
- <fillstroke/>
- <ellipse h="6.0" w="6.0" x="4.0" y="27.0"/>
+ <stroke/>
+ <ellipse h="6" w="6" x="4" y="27"/>
<fillstroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.op_amps">
+<shapes name="mxgraph.electrical.op_amps">
<shape aspect="variable" h="62" name="Comparator" strokewidth="inherit" w="100">
<connections>
<constraint name="V+1" perimeter="0" x="0" y="0.032"/>
@@ -125307,8 +125525,6 @@
<constraint name="Vout" perimeter="0" x="1" y="0.355"/>
</connections>
<background>
- <save/>
- <save/>
<path>
<move x="40" y="2"/>
<line x="80" y="22"/>
@@ -125318,1646 +125534,1081 @@
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
<move x="35" y="62"/>
<line x="35" y="32"/>
<line x="40" y="32"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
<move x="30" y="12"/>
<line x="40" y="12"/>
- </path>
- <fillstroke/>
- <path>
<move x="80" y="22"/>
<line x="100" y="22"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="25" y="2"/>
<line x="30" y="2"/>
<line x="30" y="22"/>
<line x="25" y="22"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4" w="20" x="5" y="0"/>
- <fillstroke/>
- <rect h="4" w="20" x="5" y="20"/>
- <fillstroke/>
- <path>
<move x="0" y="2"/>
<line x="5" y="2"/>
- </path>
- <fillstroke/>
- <path>
<move x="0" y="22"/>
<line x="5" y="22"/>
</path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="72.0" name="Differentiator" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.305"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
- </connections>
- <background>
- <save/>
- <path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="72.0"/>
- <line x="35.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="22.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="22.0"/>
- <line x="20.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="15.0"/>
- <line x="25.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="29.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="77.0" name="Integrator" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.35"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.48"/>
- </connections>
- <background>
- <save/>
- <path>
- <move x="40.0" y="17.0"/>
- <line x="80.0" y="37.0"/>
- <line x="40.0" y="57.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="77.0"/>
- <line x="35.0" y="47.0"/>
- <line x="40.0" y="47.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="27.0"/>
- <line x="35.0" y="7.0"/>
- <line x="60.0" y="7.0"/>
- </path>
- <stroke/>
- <path>
- <move x="63.0" y="7.0"/>
- <line x="85.0" y="7.0"/>
- <line x="85.0" y="37.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="10.0" y="25.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="27.0"/>
- <line x="10.0" y="27.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="37.0"/>
- <line x="100.0" y="37.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="27.0"/>
- <line x="40.0" y="27.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="63.0" y="0.0"/>
- <line x="63.0" y="14.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="60.0" y="14.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="72.0" name="Inverting Amplifier" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.305"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
- </connections>
- <background>
- <save/>
- <path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="72.0"/>
- <line x="35.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="22.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
<stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="10.0" y="20.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="22.0"/>
- <line x="10.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="0"/>
<fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="20"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="92.0" name="Multivibrator" strokewidth="inherit" w="95.0">
+ <shape aspect="variable" h="72" name="Differentiator" strokewidth="inherit" w="100">
<connections>
- <constraint name="Vout+" perimeter="0" x="1.0" y="0.345"/>
- <constraint name="Vout-" perimeter="0" x="1.0" y="1.0"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.305"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.445"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="12.0"/>
- <line x="70.0" y="32.0"/>
- <line x="30.0" y="52.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="22.0"/>
- <line x="25.0" y="2.0"/>
- <line x="40.0" y="2.0"/>
+ <move x="35" y="72"/>
+ <line x="35" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="22"/>
+ <line x="20" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="25" y="22"/>
+ <line x="40" y="22"/>
+ <move x="25" y="15"/>
+ <line x="25" y="29"/>
+ <move x="20" y="15"/>
+ <line x="20" y="29"/>
+ <move x="0" y="22"/>
+ <line x="20" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="25" y="22"/>
+ <line x="40" y="22"/>
+ <move x="25" y="15"/>
+ <line x="25" y="29"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="40.0" y="0.0"/>
- <fillstroke/>
- <rect h="20.0" w="4.0" x="78.0" y="37.0"/>
- <fillstroke/>
- <rect h="20.0" w="4.0" x="78.0" y="67.0"/>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="32.0"/>
- <line x="95.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="22.0"/>
- <line x="30.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="57.0"/>
- <line x="80.0" y="67.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="87.0"/>
- <line x="80.0" y="92.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="42.0"/>
- <line x="25.0" y="42.0"/>
- <line x="25.0" y="62.0"/>
- <line x="80.0" y="62.0"/>
- </path>
- <stroke/>
- <path>
- <move x="15.0" y="22.0"/>
- <line x="0.0" y="22.0"/>
- <line x="0.0" y="92.0"/>
- <line x="95.0" y="92.0"/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="2.0"/>
- <line x="80.0" y="2.0"/>
- <line x="80.0" y="37.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Non-inverting Amplifier" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="77" name="Integrator" strokewidth="inherit" w="100">
<connections>
- <constraint name="V-" perimeter="0" x="0.0" y="0.585"/>
- <constraint name="V+" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.35"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.48"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="40" y="17"/>
+ <line x="80" y="37"/>
+ <line x="40" y="57"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="47.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
+ <move x="35" y="77"/>
+ <line x="35" y="47"/>
+ <line x="40" y="47"/>
+ <move x="35" y="27"/>
+ <line x="35" y="7"/>
+ <line x="60" y="7"/>
+ <move x="63" y="7"/>
+ <line x="85" y="7"/>
+ <line x="85" y="37"/>
+ <move x="0" y="27"/>
+ <line x="10" y="27"/>
+ <move x="80" y="37"/>
+ <line x="100" y="37"/>
+ <move x="30" y="27"/>
+ <line x="40" y="27"/>
+ <move x="63" y="0"/>
+ <line x="63" y="14"/>
+ <move x="60" y="0"/>
+ <line x="60" y="14"/>
</path>
<stroke/>
- <path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <rect h="20.0" w="4.0" x="33.0" y="47.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="67.0"/>
- <line x="35.0" y="72.0"/>
- </path>
+ <rect h="4" w="20" x="10" y="25"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="47.0" name="Regen Comparator" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Inverting Amplifier" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.212"/>
- <constraint name="V-" perimeter="0" x="0.0" y="0.64"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.425"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.305"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.445"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="0.0"/>
- <line x="80.0" y="20.0"/>
- <line x="40.0" y="40.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="70.0" y="45.0"/>
- <line x="85.0" y="45.0"/>
- <line x="85.0" y="20.0"/>
+ <move x="35" y="72"/>
+ <line x="35" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="22"/>
+ <line x="10" y="22"/>
+ <move x="30" y="22"/>
+ <line x="40" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="43.0"/>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="5.0" y="30.0"/>
- </path>
+ <rect h="4" w="20" x="10" y="20"/>
<fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="28.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="40.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="30.0"/>
- <line x="35.0" y="45.0"/>
- <line x="50.0" y="45.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Subtractor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="92" name="Multivibrator" strokewidth="inherit" w="95">
<connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.025"/>
- <constraint name="V-1" perimeter="0" x="0.0" y="0.585"/>
- <constraint name="V-2" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.443"/>
+ <constraint name="Vout+" perimeter="0" x="1" y="0.345"/>
+ <constraint name="Vout-" perimeter="0" x="1" y="1"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="30" y="12"/>
+ <line x="70" y="32"/>
+ <line x="30" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
+ <move x="25" y="22"/>
+ <line x="25" y="2"/>
+ <line x="40" y="2"/>
+ <move x="20" y="15"/>
+ <line x="20" y="29"/>
+ <move x="15" y="15"/>
+ <line x="15" y="29"/>
+ <move x="70" y="32"/>
+ <line x="95" y="32"/>
+ <move x="20" y="22"/>
+ <line x="30" y="22"/>
+ <move x="80" y="57"/>
+ <line x="80" y="67"/>
+ <move x="80" y="87"/>
+ <line x="80" y="92"/>
+ <move x="30" y="42"/>
+ <line x="25" y="42"/>
+ <line x="25" y="62"/>
+ <line x="80" y="62"/>
+ <move x="15" y="22"/>
+ <line x="0" y="22"/>
+ <line x="0" y="92"/>
+ <line x="95" y="92"/>
+ <move x="60" y="2"/>
+ <line x="80" y="2"/>
+ <line x="80" y="37"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
+ <rect h="4" w="20" x="40" y="0"/>
<fillstroke/>
- <rect h="20.0" w="4.0" x="33.0" y="47.0"/>
+ <rect h="20" w="4" x="78" y="37"/>
<fillstroke/>
- <path>
- <move x="0.0" y="42.0"/>
- <line x="5.0" y="42.0"/>
- </path>
+ <rect h="20" w="4" x="78" y="67"/>
<fillstroke/>
- <path>
- <move x="0.0" y="2.0"/>
- <line x="5.0" y="2.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="67.0"/>
- <line x="35.0" y="72.0"/>
- </path>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="0.0"/>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="40.0"/>
- <fillstroke/>
- <path>
- <move x="25.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="42.0"/>
- <line x="35.0" y="47.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="2.0"/>
- <line x="35.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Summing Amplifier" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Non-inverting Amplifier" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="V+2" perimeter="0" x="0.0" y="0.305"/>
- <constraint name="V+3" perimeter="0" x="0.0" y="0.445"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.443"/>
+ <constraint name="V-" perimeter="0" x="0" y="0.585"/>
+ <constraint name="V+" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.445"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="72.0"/>
- <line x="35.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <stroke/>
<path>
- <move x="35.0" y="22.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="20.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="22.0"/>
- <line x="5.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="12.0"/>
- <line x="30.0" y="12.0"/>
- <line x="30.0" y="32.0"/>
- <line x="25.0" y="32.0"/>
+ <move x="35" y="47"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="40" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="35" y="67"/>
+ <line x="35" y="72"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="5.0" y="10.0"/>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="30.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="12.0"/>
- <line x="5.0" y="12.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="32.0"/>
- <line x="5.0" y="32.0"/>
- </path>
+ <rect h="20" w="4" x="33" y="47"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Unity Gain Follower" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="47" name="Regen Comparator" strokewidth="inherit" w="100">
<connections>
- <constraint name="Vin" perimeter="0" x="0.0" y="0.8"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.6"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.212"/>
+ <constraint name="V-" perimeter="0" x="0" y="0.64"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.425"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="10.0"/>
- <line x="80.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
+ <move x="40" y="0"/>
+ <line x="80" y="20"/>
+ <line x="40" y="40"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="85.0" y="30.0"/>
- <line x="85.0" y="0.0"/>
- <line x="35.0" y="0.0"/>
- <line x="35.0" y="20.0"/>
- <line x="40.0" y="20.0"/>
+ <move x="70" y="45"/>
+ <line x="85" y="45"/>
+ <line x="85" y="20"/>
+ <move x="0" y="30"/>
+ <line x="5" y="30"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="0" y="10"/>
+ <line x="40" y="10"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <move x="35" y="30"/>
+ <line x="35" y="45"/>
+ <line x="50" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
-</shapes>
-<shapes name="mxGraph.electrical.opto_electronics">
- <shape aspect="variable" h="96.1" name="7 Segment Display" strokewidth="inherit" w="74.7">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7"/>
- <line x="28.5" y="0"/>
- <line x="59.3" y="0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14"/>
- <line x="26.6" y="14"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0" y="79.8"/>
- <line x="3" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="96.9" name="7 Segment Display with DP" strokewidth="inherit" w="79.8">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7.0"/>
- <line x="28.5" y="0.0"/>
- <line x="59.3" y="0.0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14.0"/>
- <line x="26.6" y="14.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9.0" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0.0" y="79.8"/>
- <line x="3.0" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54.0" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12.0" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17.0" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="67.8" y="84.9"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="96.1" name="9 Segment Display" strokewidth="inherit" w="74.7">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7.0"/>
- <line x="28.5" y="0.0"/>
- <line x="59.3" y="0.0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14.0"/>
- <line x="26.6" y="14.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9.0" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0.0" y="79.8"/>
- <line x="3.0" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54.0" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12.0" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17.0" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.1" y="17.0"/>
- <line x="56.8" y="17.0"/>
- <line x="55.2" y="28.2"/>
- <line x="49.6" y="38.0"/>
- <line x="40.8" y="38.0"/>
- <line x="42.3" y="28.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.4" y="69.7"/>
- <line x="25.6" y="57.5"/>
- <line x="34.6" y="57.5"/>
- <line x="33.6" y="65.2"/>
- <line x="25.4" y="79.9"/>
- <line x="17.1" y="79.9"/>
- <close/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="96.9" name="9 Segment Display with DP" strokewidth="inherit" w="79.8">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7.0"/>
- <line x="28.5" y="0.0"/>
- <line x="59.3" y="0.0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14.0"/>
- <line x="26.6" y="14.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9.0" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0.0" y="79.8"/>
- <line x="3.0" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54.0" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12.0" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17.0" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.1" y="17.0"/>
- <line x="56.8" y="17.0"/>
- <line x="55.2" y="28.2"/>
- <line x="49.6" y="38.0"/>
- <line x="40.8" y="38.0"/>
- <line x="42.3" y="28.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.4" y="69.7"/>
- <line x="25.6" y="57.5"/>
- <line x="34.6" y="57.5"/>
- <line x="33.6" y="65.2"/>
- <line x="25.4" y="79.9"/>
- <line x="17.1" y="79.9"/>
- <close/>
- </path>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="67.8" y="84.9"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="65.0" name="LED 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
- </connections>
- <background>
- <save/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="70.0" y="35.0"/>
- <line x="30.0" y="65.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="30.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="5.0"/>
- <line x="70.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="7.0"/>
- <line x="87.0" y="0.0"/>
- </path>
+ <rect h="4" w="20" x="50" y="43"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="87.0" y="3.0"/>
- <line x="87.0" y="0.0"/>
- <line x="84.0" y="0.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="35.0"/>
- <line x="100.0" y="35.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="28"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="70.0" name="LED 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Subtractor" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.025"/>
+ <constraint name="V-1" perimeter="0" x="0" y="0.585"/>
+ <constraint name="V-2" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.443"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="87.0" y="8.0"/>
- <line x="87.0" y="5.0"/>
- <line x="84.0" y="5.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="82.0" y="3.0"/>
- <line x="82.0" y="0.0"/>
- <line x="79.0" y="0.0"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="42"/>
+ <line x="5" y="42"/>
+ <move x="0" y="2"/>
+ <line x="5" y="2"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="35" y="67"/>
+ <line x="35" y="72"/>
+ <move x="25" y="2"/>
+ <line x="50" y="2"/>
+ <move x="25" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="42"/>
+ <line x="35" y="47"/>
+ <move x="35" y="2"/>
+ <line x="35" y="22"/>
+ <line x="40" y="22"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Light-activated SCR" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
- </connections>
- <background>
- <save/>
- <save/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
+ <rect h="20" w="4" x="33" y="47"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="84.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="0"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="40"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Opto-coupler" strokewidth="inherit" w="99.0">
+ <shape aspect="variable" h="72" name="Summing Amplifier" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.195" y="0.0"/>
- <constraint name="in2" perimeter="0" x="0.8" y="0.0"/>
- <constraint name="out1" perimeter="0" x="0.195" y="1.0"/>
- <constraint name="out2" perimeter="0" x="0.8" y="1.0"/>
+ <constraint name="V+1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="V+2" perimeter="0" x="0" y="0.305"/>
+ <constraint name="V+3" perimeter="0" x="0" y="0.445"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.443"/>
</connections>
<background>
- <save/>
- <save/>
- <save/>
- <save/>
- <rect h="60.0" w="99.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="19.5" y="0.0"/>
- <line x="19.5" y="60.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="10.5" y="25.0"/>
- <line x="19.5" y="34.5"/>
- <line x="28.5" y="25.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
- <fillstroke/>
- <path>
- <move x="39.5" y="35.0"/>
- <line x="49.5" y="35.0"/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="76.5" y="46.0"/>
- <line x="79.5" y="50.0"/>
- <line x="74.5" y="49.4"/>
- <close/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="46.5" y="33.0"/>
- <line x="49.5" y="35.0"/>
- <line x="46.5" y="37.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="39.5" y="25.0"/>
- <line x="49.5" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="46.5" y="23.0"/>
- <line x="49.5" y="25.0"/>
- <line x="46.5" y="27.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="9.5" y="35.0"/>
- <line x="29.5" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.5" y="12.0"/>
- <line x="59.5" y="48.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="59.5" y="22.0"/>
- <line x="79.5" y="10.0"/>
- <line x="79.5" y="0.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.5" y="47.7"/>
- <line x="59.5" y="38.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="79.5" y="50.0"/>
- <line x="79.5" y="60.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="110.0" name="Opto-transistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="Vout1" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="Vout2" perimeter="0" x="0.7" y="1.0"/>
- </connections>
- <background>
- <save/>
- <save/>
- <save/>
- <path>
- <move x="15.0" y="10.0"/>
- <line x="22.0" y="17.0"/>
- </path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="10.0" y="15.0"/>
- <line x="17.0" y="22.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.0" y="14.0"/>
- <line x="22.0" y="17.0"/>
- <line x="19.0" y="17.0"/>
- </path>
- <stroke/>
- <path>
- <move x="17.0" y="19.0"/>
- <line x="17.0" y="22.0"/>
- <line x="14.0" y="22.0"/>
+ <move x="35" y="72"/>
+ <line x="35" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="22"/>
+ <line x="5" y="22"/>
+ <move x="25" y="22"/>
+ <line x="40" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="25" y="12"/>
+ <line x="30" y="12"/>
+ <line x="30" y="32"/>
+ <line x="25" y="32"/>
+ <move x="0" y="12"/>
+ <line x="5" y="12"/>
+ <move x="0" y="32"/>
+ <line x="5" y="32"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="40.0" y="30.0"/>
- <line x="40.0" y="80.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="20"/>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="10"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="70.0" y="12.5"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="70.0"/>
- <line x="70.0" y="97.5"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="54.0" y="89.0"/>
- <line x="69.0" y="96.5"/>
- <line x="60.5" y="82.5"/>
- <close/>
- </path>
+ <rect h="4" w="20" x="5" y="30"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="70.0" name="Photodiode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Unity Gain Follower" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
+ <constraint name="Vin" perimeter="0" x="0" y="0.8"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.6"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
+ <move x="40" y="10"/>
+ <line x="80" y="30"/>
+ <line x="40" y="50"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="Photo Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="18.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <rect h="20.0" w="64.0" x="18.0" y="35.0"/>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="85.0" y="12.0"/>
- <line x="92.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="85.0" y="9.0"/>
- <line x="85.0" y="12.0"/>
- <line x="88.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="80.0" y="7.0"/>
- <line x="87.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="4.0"/>
- <line x="80.0" y="7.0"/>
- <line x="82.0" y="7.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Photo Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.8"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.8"/>
- </connections>
- <background>
- <save/>
- <rect h="20.0" w="64.0" x="18.0" y="30.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="18.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="Photo Resistor 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="85.0" y="12.0"/>
- <line x="92.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="85.0" y="9.0"/>
- <line x="85.0" y="12.0"/>
- <line x="88.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="80.0" y="7.0"/>
- <line x="87.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="4.0"/>
- <line x="80.0" y="7.0"/>
- <line x="82.0" y="7.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="18.0" y="45.0"/>
- <line x="22.0" y="35.0"/>
- <line x="30.0" y="55.0"/>
- <line x="38.0" y="35.0"/>
- <line x="46.0" y="55.0"/>
- <line x="54.0" y="35.0"/>
- <line x="62.0" y="55.0"/>
- <line x="70.0" y="35.0"/>
- <line x="78.0" y="55.0"/>
- <line x="82.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Solar Cell" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
- </connections>
- <background>
- <save/>
- <rect h="30.0" w="4.0" x="41.0" y="25.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="41.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="10.0"/>
- <line x="55.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="85" y="30"/>
+ <line x="85" y="0"/>
+ <line x="35" y="0"/>
+ <line x="35" y="20"/>
+ <line x="40" y="20"/>
+ <move x="0" y="40"/>
+ <line x="40" y="40"/>
</path>
<stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.plc_ladder">
+<shapes name="mxgraph.electrical.opto_electronics">
+<shape aspect="variable" h="96.1" name="7 Segment Display" strokewidth="inherit" w="74.7">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="96.9" name="7 Segment Display with DP" strokewidth="inherit" w="79.8">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="67.8" y="84.9"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="96.1" name="9 Segment Display" strokewidth="inherit" w="74.7">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ <move x="49.1" y="17"/>
+ <line x="56.8" y="17"/>
+ <line x="55.2" y="28.2"/>
+ <line x="49.6" y="38"/>
+ <line x="40.8" y="38"/>
+ <line x="42.3" y="28.6"/>
+ <close/>
+ <move x="18.4" y="69.7"/>
+ <line x="25.6" y="57.5"/>
+ <line x="34.6" y="57.5"/>
+ <line x="33.6" y="65.2"/>
+ <line x="25.4" y="79.9"/>
+ <line x="17.1" y="79.9"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="96.9" name="9 Segment Display with DP" strokewidth="inherit" w="79.8">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ <move x="49.1" y="17"/>
+ <line x="56.8" y="17"/>
+ <line x="55.2" y="28.2"/>
+ <line x="49.6" y="38"/>
+ <line x="40.8" y="38"/>
+ <line x="42.3" y="28.6"/>
+ <close/>
+ <move x="18.4" y="69.7"/>
+ <line x="25.6" y="57.5"/>
+ <line x="34.6" y="57.5"/>
+ <line x="33.6" y="65.2"/>
+ <line x="25.4" y="79.9"/>
+ <line x="17.1" y="79.9"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="67.8" y="84.9"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Lamp" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0.2" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.8" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="80"/>
+ <line x="0" y="25"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="25" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="50" x-axis-rotation="0" y="25"/>
+ <line x="50" y="80"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="10" y="100"/>
+ <line x="10" y="50"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="25" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="40" x-axis-rotation="0" y="50"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65" name="LED 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="5"/>
+ <line x="70" y="35"/>
+ <line x="30" y="65"/>
+ <close/>
+ <move x="0" y="35"/>
+ <line x="30" y="35"/>
+ <move x="70" y="5"/>
+ <line x="70" y="65"/>
+ <move x="80" y="7"/>
+ <line x="87" y="0"/>
+ <move x="87" y="3"/>
+ <line x="87" y="0"/>
+ <line x="84" y="0"/>
+ <move x="70" y="35"/>
+ <line x="100" y="35"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="LED 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="87" y="8"/>
+ <line x="87" y="5"/>
+ <line x="84" y="5"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="82" y="3"/>
+ <line x="82" y="0"/>
+ <line x="79" y="0"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Light-activated SCR" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="84" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Opto-coupler" strokewidth="inherit" w="99">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0.195" y="0"/>
+ <constraint name="in2" perimeter="0" x="0.8" y="0"/>
+ <constraint name="out1" perimeter="0" x="0.195" y="1"/>
+ <constraint name="out2" perimeter="0" x="0.8" y="1"/>
+ </connections>
+ <background>
+ <rect h="60" w="99" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="46.5" y="33"/>
+ <line x="49.5" y="35"/>
+ <line x="46.5" y="37"/>
+ <move x="39.5" y="25"/>
+ <line x="49.5" y="25"/>
+ <move x="46.5" y="23"/>
+ <line x="49.5" y="25"/>
+ <line x="46.5" y="27"/>
+ <move x="9.5" y="35"/>
+ <line x="29.5" y="35"/>
+ <move x="59.5" y="12"/>
+ <line x="59.5" y="48"/>
+ <move x="59.5" y="22"/>
+ <line x="79.5" y="10"/>
+ <line x="79.5" y="0"/>
+ <move x="75.5" y="47.7"/>
+ <line x="59.5" y="38"/>
+ <move x="79.5" y="50"/>
+ <line x="79.5" y="60"/>
+ <move x="19.5" y="0"/>
+ <line x="19.5" y="60"/>
+ <move x="39.5" y="35"/>
+ <line x="49.5" y="35"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="10.5" y="25"/>
+ <line x="19.5" y="34.5"/>
+ <line x="28.5" y="25"/>
+ <close/>
+ <move x="76.5" y="46"/>
+ <line x="79.5" y="50"/>
+ <line x="74.5" y="49.4"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="110" name="Opto-transistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="Vout1" perimeter="0" x="0.7" y="0"/>
+ <constraint name="Vout2" perimeter="0" x="0.7" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="15" y="10"/>
+ <line x="22" y="17"/>
+ <move x="10" y="15"/>
+ <line x="17" y="22"/>
+ <move x="22" y="14"/>
+ <line x="22" y="17"/>
+ <line x="19" y="17"/>
+ <move x="17" y="19"/>
+ <line x="17" y="22"/>
+ <line x="14" y="22"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="90" w="90" x="10" y="10"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="55"/>
+ <line x="40" y="55"/>
+ <move x="40" y="40"/>
+ <line x="70" y="12.5"/>
+ <line x="70" y="0"/>
+ <move x="40" y="70"/>
+ <line x="70" y="97.5"/>
+ <line x="70" y="110"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="54" y="89"/>
+ <line x="69" y="96.5"/>
+ <line x="60.5" y="82.5"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="40" y="30"/>
+ <line x="40" y="80"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Photodiode" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Photo Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="90" w="90" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="45"/>
+ <line x="18" y="45"/>
+ <move x="82" y="45"/>
+ <line x="100" y="45"/>
+ <move x="85" y="12"/>
+ <line x="92" y="5"/>
+ <move x="85" y="9"/>
+ <line x="85" y="12"/>
+ <line x="88" y="12"/>
+ <move x="80" y="7"/>
+ <line x="87" y="0"/>
+ <move x="80" y="4"/>
+ <line x="80" y="7"/>
+ <line x="82" y="7"/>
+ </path>
+ <fillstroke/>
+ <rect h="20" w="64" x="18" y="35"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Photo Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.8"/>
+ <constraint name="out" perimeter="0" x="1" y="0.8"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="30"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="18" y="40"/>
+ <move x="82" y="40"/>
+ <line x="100" y="40"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Photo Resistor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="90" w="90" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="85" y="12"/>
+ <line x="92" y="5"/>
+ <move x="85" y="9"/>
+ <line x="85" y="12"/>
+ <line x="88" y="12"/>
+ <move x="80" y="7"/>
+ <line x="87" y="0"/>
+ <move x="80" y="4"/>
+ <line x="80" y="7"/>
+ <line x="82" y="7"/>
+ <move x="0" y="45"/>
+ <line x="18" y="45"/>
+ <line x="22" y="35"/>
+ <line x="30" y="55"/>
+ <line x="38" y="35"/>
+ <line x="46" y="55"/>
+ <line x="54" y="35"/>
+ <line x="62" y="55"/>
+ <line x="70" y="35"/>
+ <line x="78" y="55"/>
+ <line x="82" y="45"/>
+ <line x="100" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Solar Cell" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="40"/>
+ <line x="41" y="40"/>
+ <move x="55" y="10"/>
+ <line x="55" y="70"/>
+ <move x="55" y="40"/>
+ <line x="100" y="40"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <rect h="30" w="4" x="41" y="25"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.plc_ladder">
<shape aspect="variable" h="50" name="Contact" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -126967,186 +126618,119 @@
<path>
<move x="0" y="25"/>
<line x="30" y="25"/>
- </path>
- <fillstroke/>
- <path>
<move x="100" y="25"/>
<line x="70" y="25"/>
- </path>
- <fillstroke/>
- <path>
<move x="30" y="0"/>
<line x="30" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="70" y="0"/>
<line x="70" y="50"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Not Contact" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Not Contact" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="25.0"/>
- <line x="30.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="0.0"/>
- <line x="70.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="25"/>
+ <line x="30" y="25"/>
+ <move x="100" y="25"/>
+ <line x="70" y="25"/>
+ <move x="30" y="0"/>
+ <line x="30" y="50"/>
+ <move x="70" y="0"/>
+ <line x="70" y="50"/>
+ <move x="30" y="50"/>
+ <line x="70" y="0"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Not Output 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Not Output 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <save/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="50.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="28.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="72.0" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="50.0"/>
+ <move x="35" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="35" x-axis-rotation="0" y="50"/>
+ <move x="0" y="25"/>
+ <line x="28" y="25"/>
+ <move x="100" y="25"/>
+ <line x="72" y="25"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="1" x="65" x-axis-rotation="0" y="50"/>
+ <move x="30" y="50"/>
+ <line x="70" y="0"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Not Output 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Not Output 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="25.0" y="0.0"/>
+ <ellipse h="50" w="50" x="25" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="75.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="100" y="25"/>
+ <line x="75" y="25"/>
+ <move x="30" y="50"/>
+ <line x="70" y="0"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Output 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Output 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="50.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="28.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="72.0" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="50.0"/>
+ <move x="35" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="35" x-axis-rotation="0" y="50"/>
+ <move x="0" y="25"/>
+ <line x="28" y="25"/>
+ <move x="100" y="25"/>
+ <line x="72" y="25"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="1" x="65" x-axis-rotation="0" y="50"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Output 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Output 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="25.0" y="0.0"/>
+ <ellipse h="50" w="50" x="25" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="75.0" y="25.0"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="100" y="25"/>
+ <line x="75" y="25"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.power_semiconductors">
+<shapes name="mxgraph.electrical.power_semiconductors">
<shape aspect="variable" h="90" name="Bridge Rectifier 1" strokewidth="inherit" w="90">
<connections>
<constraint name="+" perimeter="0" x="0" y="0.5"/>
@@ -127155,7 +126739,6 @@
<constraint name="out2" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
<path>
<move x="45" y="0"/>
<line x="90" y="45"/>
@@ -127166,2668 +126749,2396 @@
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
<move x="40" y="10"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="10"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="10"/>
- </path>
- <stroke/>
- <path>
<move x="40" y="80"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="80"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="80"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
<move x="7" y="45"/>
<line x="13" y="45"/>
- </path>
- <fillstroke/>
- <path>
<move x="10" y="42"/>
<line x="10" y="48"/>
- </path>
- <fillstroke/>
- <path>
<move x="83" y="45"/>
<line x="77" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Bridge Rectifier 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Bridge Rectifier 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="+" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="-" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="+" perimeter="0" x="0" y="0.5"/>
+ <constraint name="-" perimeter="0" x="1" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
<path>
- <move x="45.0" y="0.0"/>
- <line x="90.0" y="45.0"/>
- <line x="45.0" y="90.0"/>
- <line x="0.0" y="45.0"/>
+ <move x="45" y="0"/>
+ <line x="90" y="45"/>
+ <line x="45" y="90"/>
+ <line x="0" y="45"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="10.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="10.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="80.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="80.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="80.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="7.0" y="45.0"/>
- <line x="13.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="42.0"/>
- <line x="10.0" y="48.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="83.0" y="45.0"/>
- <line x="77.0" y="45.0"/>
- </path>
- <fillstroke/>
<path>
+ <move x="40" y="10"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="10"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="10"/>
+ <move x="40" y="80"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="80"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="80"/>
+ <move x="7" y="45"/>
+ <line x="13" y="45"/>
+ <move x="10" y="42"/>
+ <line x="10" y="48"/>
+ <move x="83" y="45"/>
+ <line x="77" y="45"/>
<move x="17.5" y="22.5"/>
<line x="22.5" y="27.5"/>
- </path>
- <fillstroke/>
- <path>
<move x="22.5" y="62.5"/>
<line x="17.5" y="67.5"/>
- </path>
- <fillstroke/>
- <path>
<move x="62.5" y="67.5"/>
<line x="67.5" y="72.5"/>
- </path>
- <fillstroke/>
- <path>
<move x="67.5" y="17.5"/>
<line x="62.5" y="22.5"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="25.0" y="25.0"/>
- <line x="20.0" y="25.0"/>
- <line x="20.0" y="20.0"/>
+ <move x="25" y="25"/>
+ <line x="20" y="25"/>
+ <line x="20" y="20"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.25" y="70.0"/>
- <line x="20.0" y="65.0"/>
- <line x="25.0" y="65.0"/>
+ <move x="20.25" y="70"/>
+ <line x="20" y="65"/>
+ <line x="25" y="65"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="20.0"/>
- <line x="70.0" y="20.0"/>
+ <move x="65" y="25"/>
+ <line x="65" y="20"/>
+ <line x="70" y="20"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="65.0"/>
- <line x="65.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
+ <move x="65" y="65"/>
+ <line x="65" y="70"/>
+ <line x="70" y="70"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Bridge Rectifier 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Bridge Rectifier 3" strokewidth="inherit" w="90">
<connections>
- <constraint name="+" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="-" perimeter="0" x="1.0" y="0.835"/>
- <constraint name="var1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="var2" perimeter="0" x="0.0" y="0.835"/>
+ <constraint name="+" perimeter="0" x="1" y="0.165"/>
+ <constraint name="-" perimeter="0" x="1" y="0.835"/>
+ <constraint name="var1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="var2" perimeter="0" x="0" y="0.835"/>
</connections>
<background>
- <save/>
- <rect h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <rect h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="5.0" y="15.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="15.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="15.0"/>
+ <move x="5" y="15"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="10" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="15" x-axis-rotation="0" y="15"/>
+ <move x="5" y="75"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="10" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="15" x-axis-rotation="0" y="75"/>
+ <move x="79" y="15"/>
+ <line x="85" y="15"/>
+ <move x="82" y="12"/>
+ <line x="82" y="18"/>
+ <move x="85" y="75"/>
+ <line x="79" y="75"/>
</path>
<stroke/>
- <path>
- <move x="5.0" y="75.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="75.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="75.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="79.0" y="15.0"/>
- <line x="85.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="12.0"/>
- <line x="82.0" y="18.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="85.0" y="75.0"/>
- <line x="79.0" y="75.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Diac 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="Diac 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="15.0"/>
- <line x="60.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="59.0" y="30.0"/>
- <line x="40.0" y="45.0"/>
+ <move x="0" y="45"/>
+ <line x="40" y="45"/>
+ <move x="60" y="15"/>
+ <line x="60" y="75"/>
+ <move x="40" y="15"/>
+ <line x="59" y="30"/>
+ <line x="40" y="45"/>
<close/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="41.0" y="60.0"/>
- <line x="60.0" y="75.0"/>
+ <move x="60" y="45"/>
+ <line x="41" y="60"/>
+ <line x="60" y="75"/>
<close/>
+ <move x="60" y="45"/>
+ <line x="100" y="45"/>
+ <move x="40" y="15"/>
+ <line x="40" y="75"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="40.0" y="75.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Diac 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Diac 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="0.0"/>
- <line x="59.0" y="15.0"/>
- <line x="40.0" y="30.0"/>
+ <move x="0" y="30"/>
+ <line x="40" y="30"/>
+ <move x="60" y="0"/>
+ <line x="60" y="60"/>
+ <move x="40" y="0"/>
+ <line x="59" y="15"/>
+ <line x="40" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="41.0" y="45.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="60" y="30"/>
+ <line x="41" y="45"/>
+ <line x="60" y="60"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="0.0"/>
- <line x="40.0" y="60.0"/>
+ <move x="60" y="30"/>
+ <line x="100" y="30"/>
+ <move x="40" y="0"/>
+ <line x="40" y="60"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="67.0" name="GTO SCR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="67" name="GTO SCR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.55"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.55"/>
+ <constraint name="in" perimeter="0" x="0" y="0.55"/>
+ <constraint name="out" perimeter="0" x="1" y="0.55"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="7.0"/>
- <line x="70.0" y="37.0"/>
- <line x="30.0" y="67.0"/>
+ <move x="30" y="7"/>
+ <line x="70" y="37"/>
+ <line x="30" y="67"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="37.0"/>
- <line x="30.0" y="37.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="7.0"/>
- <line x="70.0" y="67.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="32.0"/>
- <line x="80.0" y="17.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="17.0"/>
- <line x="80.0" y="2.0"/>
- <line x="80.0" y="3.5"/>
- </path>
- <stroke/>
- <path>
+ <move x="0" y="37"/>
+ <line x="30" y="37"/>
+ <move x="70" y="7"/>
+ <line x="70" y="67"/>
+ <move x="70" y="32"/>
+ <line x="80" y="17"/>
+ <line x="80" y="0"/>
+ <move x="70" y="17"/>
+ <line x="80" y="2"/>
+ <line x="80" y="3.5"/>
<move x="79.5" y="21.5"/>
- <line x="76.0" y="23.0"/>
- <line x="76.0" y="19.3"/>
- </path>
- <stroke/>
- <path>
- <move x="77.0" y="10.5"/>
- <line x="77.0" y="6.5"/>
- <line x="73.5" y="8.0"/>
+ <line x="76" y="23"/>
+ <line x="76" y="19.3"/>
+ <move x="77" y="10.5"/>
+ <line x="77" y="6.5"/>
+ <line x="73.5" y="8"/>
+ <move x="70" y="37"/>
+ <line x="100" y="37"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="37.0"/>
- <line x="100.0" y="37.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="63.5" name="IGCT 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="63.5" name="IGCT 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.525"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.525"/>
+ <constraint name="in" perimeter="0" x="0" y="0.525"/>
+ <constraint name="out" perimeter="0" x="1" y="0.525"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="33.5"/>
- <line x="100.0" y="33.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="70.0" y="63.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="3.5"/>
- <line x="70.0" y="33.5"/>
- <line x="30.0" y="63.5"/>
- <close/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="70.0" y="28.5"/>
- <line x="80.0" y="13.5"/>
- <line x="80.0" y="0.0"/>
+ <move x="0" y="33.5"/>
+ <line x="100" y="33.5"/>
+ <move x="70" y="3.5"/>
+ <line x="70" y="63.5"/>
+ <move x="70" y="28.5"/>
+ <line x="80" y="13.5"/>
+ <line x="80" y="0"/>
+ <move x="75" y="5.5"/>
+ <line x="85" y="5.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="70.0" y="3.5"/>
- <line x="50.0" y="18.5"/>
- <line x="70.0" y="33.5"/>
+ <move x="30" y="3.5"/>
+ <line x="70" y="33.5"/>
+ <line x="30" y="63.5"/>
<close/>
</path>
<fillstroke/>
<path>
- <move x="75.0" y="5.5"/>
- <line x="85.0" y="5.5"/>
+ <move x="70" y="3.5"/>
+ <line x="50" y="18.5"/>
+ <line x="70" y="33.5"/>
+ <close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="63.5" name="IGCT 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="63.5" name="IGCT 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.525"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.525"/>
+ <constraint name="in" perimeter="0" x="0" y="0.525"/>
+ <constraint name="out" perimeter="0" x="1" y="0.525"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="3.5"/>
- <line x="70.0" y="33.5"/>
- <line x="30.0" y="63.5"/>
+ <move x="30" y="3.5"/>
+ <line x="70" y="33.5"/>
+ <line x="30" y="63.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="33.5"/>
- <line x="30.0" y="33.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="70.0" y="63.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="28.5"/>
- <line x="80.0" y="13.5"/>
- <line x="80.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="50.0" y="18.5"/>
- <line x="70.0" y="33.5"/>
+ <move x="0" y="33.5"/>
+ <line x="30" y="33.5"/>
+ <move x="70" y="3.5"/>
+ <line x="70" y="63.5"/>
+ <move x="70" y="28.5"/>
+ <line x="80" y="13.5"/>
+ <line x="80" y="0"/>
+ <move x="70" y="3.5"/>
+ <line x="50" y="18.5"/>
+ <line x="70" y="33.5"/>
<close/>
+ <move x="75" y="5.5"/>
+ <line x="85" y="5.5"/>
+ <move x="70" y="33.5"/>
+ <line x="100" y="33.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="5.5"/>
- <line x="85.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="33.5"/>
- <line x="100.0" y="33.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="NPN IGBT 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="NPN IGBT 1" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="20" y="60"/>
+ <line x="73" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
<path>
<move x="68.75" y="75.5"/>
- <line x="72.75" y="80.0"/>
- <line x="66.75" y="81.0"/>
+ <line x="72.75" y="80"/>
+ <line x="66.75" y="81"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="71.0" name="NPN IGBT 2" strokewidth="inherit" w="61.5">
+ <shape aspect="variable" h="71" name="NPN IGBT 2" strokewidth="inherit" w="61.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.915"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.99"/>
+ <constraint name="in" perimeter="0" x="0" y="0.915"/>
+ <constraint name="out1" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.99"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
<path>
<move x="57.25" y="65.5"/>
- <line x="61.25" y="70.0"/>
- <line x="55.25" y="71.0"/>
+ <line x="61.25" y="70"/>
+ <line x="55.25" y="71"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="NPN IGBT 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="NPN IGBT 3" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="20" y="60"/>
+ <line x="73" y="80"/>
+ <move x="73" y="10"/>
+ <line x="73" y="80"/>
+ <move x="68" y="42"/>
+ <line x="78" y="42"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
<path>
<move x="68.75" y="75.5"/>
- <line x="72.75" y="80.0"/>
- <line x="66.75" y="81.0"/>
+ <line x="72.75" y="80"/>
+ <line x="66.75" y="81"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="73.0" y="10.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.5" y="48.0"/>
- <line x="73.0" y="43.0"/>
- <line x="68.5" y="48.0"/>
+ <move x="77.5" y="48"/>
+ <line x="73" y="43"/>
+ <line x="68.5" y="48"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="68.0" y="42.0"/>
- <line x="78.0" y="42.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="71.0" name="NPN IGBT 4" strokewidth="inherit" w="66.5">
+ <shape aspect="variable" h="71" name="NPN IGBT 4" strokewidth="inherit" w="66.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.915"/>
- <constraint name="out1" perimeter="0" x="0.925" y="0.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.915"/>
+ <constraint name="out1" perimeter="0" x="0.925" y="0"/>
<constraint name="out2" perimeter="0" x="0.925" y="0.99"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
- <path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
+ <move x="61.5" y="0"/>
+ <line x="61.5" y="70"/>
+ <move x="56.5" y="32"/>
+ <line x="66.5" y="32"/>
</path>
<fillstroke/>
<path>
<move x="57.25" y="65.5"/>
- <line x="61.25" y="70.0"/>
- <line x="55.25" y="71.0"/>
+ <line x="61.25" y="70"/>
+ <line x="55.25" y="71"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.5" y="0.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="66.0" y="38.0"/>
- <line x="61.5" y="33.0"/>
- <line x="57.0" y="38.0"/>
+ <move x="66" y="38"/>
+ <line x="61.5" y="33"/>
+ <line x="57" y="38"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="56.5" y="32.0"/>
- <line x="66.5" y="32.0"/>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="PNP IGBT 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="PNP IGBT 1" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="25.0" y="65.0"/>
- <line x="21.0" y="60.5"/>
- <line x="27.0" y="59.5"/>
+ <move x="25" y="65"/>
+ <line x="21" y="60.5"/>
+ <line x="27" y="59.5"/>
<close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <strokewidth width="2"/>
- <path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="25.89" y="62.22"/>
+ <line x="73" y="80"/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="25.89" y="62.22"/>
- <line x="73.0" y="80.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="70.0" name="PNP IGBT 2" strokewidth="inherit" w="61.5">
+ <shape aspect="variable" h="70" name="PNP IGBT 2" strokewidth="inherit" w="61.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.93"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.93"/>
+ <constraint name="out1" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
- <path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
</path>
<fillstroke/>
<path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="13.5" y="55.0"/>
+ <move x="13.5" y="55"/>
<line x="9.5" y="50.5"/>
<line x="15.5" y="49.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="PNP IGBT 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="PNP IGBT 3" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="20" y="60"/>
+ <line x="73" y="80"/>
+ <move x="73" y="10"/>
+ <line x="73" y="80"/>
+ <move x="68" y="48"/>
+ <line x="78" y="48"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="25.0" y="65.0"/>
- <line x="21.0" y="60.5"/>
- <line x="27.0" y="59.5"/>
+ <move x="25" y="65"/>
+ <line x="21" y="60.5"/>
+ <line x="27" y="59.5"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="73.0" y="10.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.5" y="42.0"/>
- <line x="73.0" y="47.0"/>
- <line x="68.5" y="42.0"/>
+ <move x="77.5" y="42"/>
+ <line x="73" y="47"/>
+ <line x="68.5" y="42"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="68.0" y="48.0"/>
- <line x="78.0" y="48.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="70.0" name="PNP IGBT 4" strokewidth="inherit" w="66.5">
+ <shape aspect="variable" h="70" name="PNP IGBT 4" strokewidth="inherit" w="66.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.93"/>
- <constraint name="out1" perimeter="0" x="0.925" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.925" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.93"/>
+ <constraint name="out1" perimeter="0" x="0.925" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.925" y="1"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
- <path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
+ <move x="61.5" y="0"/>
+ <line x="61.5" y="70"/>
+ <move x="56.5" y="38"/>
+ <line x="66.5" y="38"/>
</path>
<fillstroke/>
<path>
- <move x="13.5" y="55.0"/>
+ <move x="13.5" y="55"/>
<line x="9.5" y="50.5"/>
<line x="15.5" y="49.5"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.5" y="0.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="66.0" y="32.0"/>
- <line x="61.5" y="37.0"/>
- <line x="57.0" y="32.0"/>
+ <move x="66" y="32"/>
+ <line x="61.5" y="37"/>
+ <line x="57" y="32"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="56.5" y="38.0"/>
- <line x="66.5" y="38.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="63.5" name="SCR 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.525"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.525"/>
- </connections>
- <background>
- <save/>
- <path>
- <move x="30.0" y="3.5"/>
- <line x="70.0" y="33.5"/>
- <line x="30.0" y="63.5"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="33.5"/>
- <line x="30.0" y="33.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="70.0" y="63.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="28.5"/>
- <line x="80.0" y="13.5"/>
- <line x="80.0" y="0.0"/>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="33.5"/>
- <line x="100.0" y="33.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="SCR 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="63.5" name="SCR 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.525"/>
+ <constraint name="out" perimeter="0" x="1" y="0.525"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="70.0" y="15.0"/>
- <line x="70.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="15.0"/>
- <line x="70.0" y="45.0"/>
- <line x="30.0" y="75.0"/>
+ <move x="30" y="3.5"/>
+ <line x="70" y="33.5"/>
+ <line x="30" y="63.5"/>
<close/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="80.0" y="25.0"/>
- <line x="80.0" y="11.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="SIDAC" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="25.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="15.0"/>
- <line x="50.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="75.0"/>
- <line x="25.0" y="15.0"/>
- <line x="75.0" y="75.0"/>
- <line x="75.0" y="15.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="Triac 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="40.0" y="75.0"/>
- <line x="30.0" y="85.0"/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="15.0"/>
- <line x="60.0" y="75.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="59.0" y="30.0"/>
- <line x="40.0" y="45.0"/>
- <close/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="41.0" y="60.0"/>
- <line x="60.0" y="75.0"/>
- <close/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Triac 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.43"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.43"/>
- </connections>
- <foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="0.0"/>
- <line x="40.0" y="60.0"/>
- <line x="30.0" y="70.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="0.0"/>
- <line x="59.0" y="15.0"/>
- <line x="40.0" y="30.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="41.0" y="45.0"/>
- <line x="60.0" y="60.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
-</shapes>
-<shapes name="mxGraph.electrical.radio">
- <shape aspect="variable" h="100" name="Aerial - Antenna 1" strokewidth="inherit" w="80">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0" y="0"/>
- <line x="40" y="40"/>
+ <move x="0" y="33.5"/>
+ <line x="30" y="33.5"/>
+ <move x="70" y="3.5"/>
+ <line x="70" y="63.5"/>
+ <move x="70" y="28.5"/>
+ <line x="80" y="13.5"/>
<line x="80" y="0"/>
+ <move x="70" y="33.5"/>
+ <line x="100" y="33.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="40" y="0"/>
- <line x="40" y="100"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Aerial - Antenna 2" strokewidth="inherit" w="79.0">
+ <shape aspect="variable" h="90" name="SCR 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="0.5"/>
- <line x="39.5" y="40.0"/>
- <line x="79.0" y="0.5"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="39.5" y="0.0"/>
- <line x="39.5" y="100.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Chassis" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <background>
- <save/>
- <save/>
- <rect h="20.0" w="100.0" x="0.0" y="20.0"/>
- </background>
- <foreground>
- <strokecolor color="none"/>
- <fill/>
- <restore/>
- <rect/>
- <stroke/>
- <strokewidth width="2"/>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="5.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="15.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="40.0"/>
- <line x="25.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="30.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="40.0"/>
- <line x="35.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="40.0"/>
- <line x="40.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="45.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="50.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="40.0"/>
- <line x="55.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="60.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="40.0"/>
- <line x="65.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="40.0"/>
- <line x="75.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="80.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="40.0"/>
- <line x="85.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="90.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="40.0"/>
- <line x="95.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="40.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="85.0" y="40.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="40.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="95.0" y="40.0"/>
- <line x="100.0" y="35.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Dipole" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.0"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.0"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="35.0" y="0.0"/>
- <line x="35.0" y="40.0"/>
- </path>
- <stroke/>
- <path>
- <move x="65.0" y="40.0"/>
- <line x="65.0" y="0.0"/>
- <line x="100.0" y="0.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Earth" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <foreground>
- <save/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="4.0" y="15.0"/>
- <line x="46.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="20.0"/>
- <line x="42.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="16.5" y="30.0"/>
- <line x="33.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.5" y="35.0"/>
- <line x="29.5" y="35.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="0.0"/>
- <line x="25.0" y="10.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="12.5" y="25.0"/>
- <line x="37.5" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="40.0"/>
- <line x="25.5" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Electret Microphone" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="50.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="40.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="40.0"/>
- <line x="35.0" y="70.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="56.0" name="Headphones" strokewidth="inherit" w="66.0">
- <connections>
- <constraint name="W" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.75"/>
- </connections>
- <foreground>
- <ellipse h="30.0" w="16.0" x="0.0" y="26.0"/>
- <fillstroke/>
- <ellipse h="30.0" w="16.0" x="50.0" y="26.0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="2.0" y="31.0"/>
- <arc large-arc-flag="0" rx="20.0" ry="20.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="31.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="69.78" name="Loop Antenna" strokewidth="inherit" w="64.08">
- <connections>
- <constraint name="in" perimeter="0" x="0.342" y="1.0"/>
- <constraint name="out" perimeter="0" x="0.658" y="1.0"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="22.04" y="69.78"/>
- <line x="22.04" y="58.28"/>
- <arc large-arc-flag="1" rx="30.0" ry="30.0" sweep-flag="1" x="42.04" x-axis-rotation="0.0" y="58.28"/>
- <line x="42.04" y="69.78"/>
+ <move x="0" y="45"/>
+ <line x="100" y="45"/>
+ <move x="70" y="15"/>
+ <line x="70" y="75"/>
+ <move x="70" y="40"/>
+ <line x="80" y="25"/>
+ <line x="80" y="11.5"/>
</path>
<stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Microphone 1" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
<path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="70.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Microphone 2" strokewidth="inherit" w="42.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="0.835" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="0.0"/>
- <arc large-arc-flag="0" rx="35.0" ry="35.0" sweep-flag="1" x="0.0" x-axis-rotation="0.0" y="70.0"/>
+ <move x="30" y="15"/>
+ <line x="70" y="45"/>
+ <line x="30" y="75"/>
<close/>
</path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="33.5" y="25.0"/>
- <line x="42.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="33.5" y="45.0"/>
- <line x="42.0" y="45.0"/>
- </path>
<fillstroke/>
</foreground>
</shape>
-</shapes>
-<shapes name="mxGraph.electrical.resistors">
- <shape aspect="variable" h="60" name="Magnetoresistor" strokewidth="inherit" w="100">
+ <shape aspect="variable" h="90" name="SIDAC" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
<constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0" y="30"/>
- <line x="18" y="30"/>
- <line x="22" y="20"/>
- <line x="30" y="40"/>
- <line x="38" y="20"/>
- <line x="46" y="40"/>
- <line x="54" y="20"/>
- <line x="62" y="40"/>
- <line x="70" y="20"/>
- <line x="78" y="40"/>
- <line x="82" y="30"/>
- <line x="100" y="30"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30" y="60"/>
- <line x="70" y="0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45" y="45"/>
- <line x="55" y="60"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55" y="45"/>
- <line x="45" y="60"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Memristor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="18.0" y="0.0"/>
- <line x="26.0" y="0.0"/>
- <line x="26.0" y="20.0"/>
- <line x="34.0" y="20.0"/>
- <line x="34.0" y="0.0"/>
- <line x="42.0" y="0.0"/>
- <line x="42.0" y="20.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="0.0"/>
- <line x="58.0" y="0.0"/>
- <line x="58.0" y="20.0"/>
- <line x="66.0" y="20.0"/>
- <line x="66.0" y="0.0"/>
- <line x="74.0" y="0.0"/>
- <line x="74.0" y="20.0"/>
- <line x="82.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="24.0" name="Memristor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
<background>
- <rect h="24.0" w="68.0" x="16.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="12.0"/>
- <line x="18.0" y="12.0"/>
- <line x="18.0" y="2.0"/>
- <line x="26.0" y="2.0"/>
- <line x="26.0" y="22.0"/>
- <line x="34.0" y="22.0"/>
- <line x="34.0" y="2.0"/>
- <line x="42.0" y="2.0"/>
- <line x="42.0" y="22.0"/>
- <line x="50.0" y="22.0"/>
- <line x="50.0" y="2.0"/>
- <line x="58.0" y="2.0"/>
- <line x="58.0" y="22.0"/>
- <line x="66.0" y="22.0"/>
- <line x="66.0" y="2.0"/>
- <line x="74.0" y="2.0"/>
- <line x="74.0" y="22.0"/>
- <line x="82.0" y="22.0"/>
- <line x="82.0" y="12.0"/>
- <line x="100.0" y="12.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Nonlinear Resistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="18.0" y="60.0"/>
- <line x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="0" y="45"/>
+ <line x="25" y="45"/>
+ <move x="50" y="15"/>
+ <line x="50" y="75"/>
+ <move x="25" y="75"/>
+ <line x="25" y="15"/>
+ <line x="75" y="75"/>
+ <line x="75" y="15"/>
+ <move x="75" y="45"/>
+ <line x="100" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="40.0" name="Potentiometer 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="Triac 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="45.0" y="25.0"/>
- <line x="50.0" y="20.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Potentiometer 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="25.0"/>
- <line x="50.0" y="20.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Resistor, Adjustable Contact" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.46" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <path>
- <move x="41.0" y="33.0"/>
- <line x="46.0" y="20.0"/>
- <line x="51.0" y="33.0"/>
+ <move x="0" y="45"/>
+ <line x="40" y="45"/>
+ <move x="40" y="15"/>
+ <line x="40" y="75"/>
+ <line x="30" y="85"/>
+ <move x="60" y="15"/>
+ <line x="60" y="75"/>
+ <move x="40" y="15"/>
+ <line x="59" y="30"/>
+ <line x="40" y="45"/>
<close/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="46.0" y="33.0"/>
- <line x="46.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="45.0" name="Resistor, Shunt" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.78"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.78"/>
- <constraint name="control1" perimeter="0" x="0.3" y="0.0"/>
- <constraint name="control2" perimeter="0" x="0.7" y="0.0"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="25.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="18.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="35.0"/>
- <line x="100.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="0.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="18.0" y="0.0"/>
- <line x="38.0" y="20.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 4" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <linejoin join="round"/>
- <path>
- <move x="18.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="18.0" y="0.0"/>
+ <move x="60" y="45"/>
+ <line x="41" y="60"/>
+ <line x="60" y="75"/>
<close/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor With Instrument or Relay Shunt" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="10.0" w="10.0" x="35.0" y="5.0"/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="55.0" y="5.0"/>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Symmetrical Photoconductive Transducer" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="W" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.75"/>
- </connections>
- <foreground>
- <save/>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Symmetrical Varistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="18.0" y="60.0"/>
- <line x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="45.0"/>
- <line x="50.0" y="60.0"/>
- <line x="55.0" y="45.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Tapped Resistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control1" perimeter="0" x="0.46" y="1.0"/>
- <constraint name="control2" perimeter="0" x="0.62" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="46.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Trimmer Pot 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <rect h="2.0" w="16.0" x="42.0" y="21.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Trimmer Pot 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="50.0" y="21.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <rect h="2.0" w="16.0" x="42.0" y="21.0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="65.5" name="Trimmer Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="25.5"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.5"/>
- <line x="18.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.2" y="0.0"/>
- <line x="78.2" y="10.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="65.5" name="Trimmer Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
- </connections>
- <foreground>
- <path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.2" y="0.0"/>
- <line x="78.2" y="10.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="35.5"/>
- <line x="18.0" y="35.5"/>
- <line x="22.0" y="25.5"/>
- <line x="30.0" y="45.5"/>
- <line x="38.0" y="25.5"/>
- <line x="46.0" y="45.5"/>
- <line x="54.0" y="25.5"/>
- <line x="62.0" y="45.5"/>
- <line x="70.0" y="25.5"/>
- <line x="78.0" y="45.5"/>
- <line x="82.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Variable Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="20.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
- <line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Variable Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
- <line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
-</shapes>
-<shapes name="mxGraph.electrical.signal_sources">
- <shape aspect="variable" h="60" name="AC Source" strokewidth="inherit" w="60">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1"/>
- <constraint name="W" perimeter="0" x="0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="60" w="60" x="0" y="0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15" y="30"/>
- <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="30" x-axis-rotation="0" y="30"/>
- <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="45" x-axis-rotation="0" y="30"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="10.0" name="Current Flow" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="70.0" y="5.0"/>
- <move x="60.0" y="0.0"/>
- <line x="70.0" y="5.0"/>
- <line x="60.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Current Source" strokewidth="inherit" w="40.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <ellipse h="40.0" w="40.0" x="0.0" y="20.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <ellipse h="40.0" w="40.0" x="0.0" y="0.0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="40.0" w="40.0" x="0.0" y="20.0"/>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="75.0" name="DC Source 1" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.58" y="0.135"/>
- <constraint name="S" perimeter="0" x="0.58" y="0.935"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="10.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="0.0"/>
- <line x="5.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="10.0" y="5.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="DC Source 2" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="10.0" y="30.0"/>
- <line x="50.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="25.0"/>
- <line x="50.0" y="30.0"/>
- <line x="40.0" y="35.0"/>
+ <move x="60" y="45"/>
+ <line x="100" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="DC Source 3" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="27.0" y="55.0"/>
- <line x="33.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="2.0"/>
- <line x="30.0" y="8.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="27.0" y="5.0"/>
- <line x="33.0" y="5.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Dependent Source 1" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="60.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <line x="0.0" y="30.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Dependent Source 2" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="70" name="Triac 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.43"/>
+ <constraint name="out" perimeter="0" x="1" y="0.43"/>
</connections>
- <background>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="60.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <line x="0.0" y="30.0"/>
- <close/>
- </path>
- </background>
<foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="40.0"/>
- <line x="30.0" y="50.0"/>
- <line x="35.0" y="40.0"/>
+ <move x="0" y="30"/>
+ <line x="40" y="30"/>
+ <move x="40" y="0"/>
+ <line x="40" y="60"/>
+ <line x="30" y="70"/>
+ <move x="60" y="0"/>
+ <line x="60" y="60"/>
+ <move x="60" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Dependent Source 3" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
<path>
- <move x="30.0" y="0.0"/>
- <line x="60.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <line x="0.0" y="30.0"/>
+ <move x="40" y="0"/>
+ <line x="59" y="15"/>
+ <line x="40" y="30"/>
<close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="27.0" y="10.0"/>
- <line x="33.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="7.0"/>
- <line x="30.0" y="13.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="27.0" y="50.0"/>
- <line x="33.0" y="50.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="Equipotential" strokewidth="inherit" w="90.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="15.0"/>
- <line x="45.0" y="90.0"/>
- <line x="90.0" y="15.0"/>
+ <move x="60" y="30"/>
+ <line x="41" y="45"/>
+ <line x="60" y="60"/>
<close/>
</path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="15.0"/>
- </path>
<fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="50.0" w="50.0" x="20.0" y="15.5"/>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Noise Source" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="25.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="47.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="41.0" y="47.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="25.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Protective Earth" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="4.0" y="15.0"/>
- <line x="46.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="20.0"/>
- <line x="42.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="16.5" y="30.0"/>
- <line x="33.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.5" y="35.0"/>
- <line x="29.5" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="0.0"/>
- <line x="25.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="12.5" y="25.0"/>
- <line x="37.5" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="40.0"/>
- <line x="25.5" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Signal Ground" strokewidth="inherit" w="90.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="45.0" y="60.0"/>
- <line x="90.0" y="20.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="20.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Vdd" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="60.0" y="40.0"/>
- <move x="30.0" y="40.0"/>
- <line x="30.0" y="0.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Voltage" strokewidth="inherit" w="10.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="5.0" y="0.0"/>
- <line x="5.0" y="70.0"/>
- <move x="0.0" y="60.0"/>
- <line x="5.0" y="70.0"/>
- <line x="10.0" y="60.0"/>
- <move x="0.0" y="10.0"/>
- <line x="5.0" y="0.0"/>
- <line x="10.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Vss" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <fontcolor color="none"/>
- <fontsize size="24.0"/>
- <text align="center" str="V" valign="bottom" x="25.0" y="-7.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="60.0" y="0.0"/>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <stroke/>
- <fontcolor color="none"/>
- <fontsize size="15.0"/>
- <text align="center" str="ss" valign="bottom" x="42.0" y="-3.0"/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Vss2" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="60.0" y="0.0"/>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape></shapes>
-<shapes name="mxGraph.electrical.thermionic_devices">
+</shapes>
+<shapes name="mxgraph.electrical.radio">
+<shape aspect="variable" h="100" name="Aerial - Antenna 1" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="40" y="40"/>
+ <line x="80" y="0"/>
+ <move x="40" y="0"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Aerial - Antenna 2" strokewidth="inherit" w="79">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0.5"/>
+ <line x="39.5" y="40"/>
+ <line x="79" y="0.5"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="39.5" y="0"/>
+ <line x="39.5" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Buzzer" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="50" x="15" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="15" y="25"/>
+ <move x="65" y="0"/>
+ <line x="80" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Chassis" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <rect h="20" w="100" x="0" y="20"/>
+ </background>
+ <foreground>
+ <fill/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="5" y="20"/>
+ <move x="0" y="30"/>
+ <line x="10" y="20"/>
+ <move x="0" y="35"/>
+ <line x="15" y="20"/>
+ <move x="0" y="40"/>
+ <line x="20" y="20"/>
+ <move x="5" y="40"/>
+ <line x="25" y="20"/>
+ <move x="10" y="40"/>
+ <line x="30" y="20"/>
+ <move x="15" y="40"/>
+ <line x="35" y="20"/>
+ <move x="20" y="40"/>
+ <line x="40" y="20"/>
+ <move x="25" y="40"/>
+ <line x="45" y="20"/>
+ <move x="30" y="40"/>
+ <line x="50" y="20"/>
+ <move x="35" y="40"/>
+ <line x="55" y="20"/>
+ <move x="40" y="40"/>
+ <line x="60" y="20"/>
+ <move x="45" y="40"/>
+ <line x="65" y="20"/>
+ <move x="50" y="40"/>
+ <line x="70" y="20"/>
+ <move x="55" y="40"/>
+ <line x="75" y="20"/>
+ <move x="60" y="40"/>
+ <line x="80" y="20"/>
+ <move x="65" y="40"/>
+ <line x="85" y="20"/>
+ <move x="70" y="40"/>
+ <line x="90" y="20"/>
+ <move x="75" y="40"/>
+ <line x="95" y="20"/>
+ <move x="80" y="40"/>
+ <line x="100" y="20"/>
+ <move x="85" y="40"/>
+ <line x="100" y="25"/>
+ <move x="90" y="40"/>
+ <line x="100" y="30"/>
+ <move x="95" y="40"/>
+ <line x="100" y="35"/>
+ </path>
+ <stroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="20"/>
+ <move x="0" y="20"/>
+ <line x="100" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Dipole" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0"/>
+ <constraint name="out" perimeter="0" x="1" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="35" y="0"/>
+ <line x="35" y="40"/>
+ <move x="65" y="40"/>
+ <line x="65" y="0"/>
+ <line x="100" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Earth" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="50" y="10"/>
+ <move x="4" y="15"/>
+ <line x="46" y="15"/>
+ <move x="8" y="20"/>
+ <line x="42" y="20"/>
+ <move x="16.5" y="30"/>
+ <line x="33.5" y="30"/>
+ <move x="20.5" y="35"/>
+ <line x="29.5" y="35"/>
+ <move x="12.5" y="25"/>
+ <line x="37.5" y="25"/>
+ <move x="24.5" y="40"/>
+ <line x="25.5" y="40"/>
+ </path>
+ <stroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="25" y="0"/>
+ <line x="25" y="10"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Electret Microphone" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="70" w="70" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="70"/>
+ <move x="35" y="0"/>
+ <line x="35" y="30"/>
+ <move x="20" y="30"/>
+ <line x="50" y="30"/>
+ <move x="20" y="40"/>
+ <line x="50" y="40"/>
+ <move x="35" y="40"/>
+ <line x="35" y="70"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="56" name="Headphones" strokewidth="inherit" w="66">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.75"/>
+ <constraint name="E" perimeter="0" x="1" y="0.75"/>
+ </connections>
+ <foreground>
+ <ellipse h="30" w="16" x="0" y="26"/>
+ <fillstroke/>
+ <ellipse h="30" w="16" x="50" y="26"/>
+ <fillstroke/>
+ <path>
+ <move x="2" y="31"/>
+ <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="64" x-axis-rotation="0" y="31"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.78" name="Loop Antenna" strokewidth="inherit" w="64.08">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.342" y="1"/>
+ <constraint name="out" perimeter="0" x="0.658" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="22.04" y="69.78"/>
+ <line x="22.04" y="58.28"/>
+ <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="1" x="42.04" x-axis-rotation="0" y="58.28"/>
+ <line x="42.04" y="69.78"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Microphone 1" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="70" w="70" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="70"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Microphone 2" strokewidth="inherit" w="42">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="0.835" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <arc large-arc-flag="0" rx="35" ry="35" sweep-flag="1" x="0" x-axis-rotation="0" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="33.5" y="25"/>
+ <line x="42" y="25"/>
+ <move x="33.5" y="45"/>
+ <line x="42" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.resistors">
+<shape aspect="variable" h="60" name="Attenuator" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="50" y="0"/>
+ <line x="50" y="60"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Magnetoresistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="45" y="45"/>
+ <line x="55" y="60"/>
+ <move x="55" y="45"/>
+ <line x="45" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Memristor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="18" y="0"/>
+ <line x="26" y="0"/>
+ <line x="26" y="20"/>
+ <line x="34" y="20"/>
+ <line x="34" y="0"/>
+ <line x="42" y="0"/>
+ <line x="42" y="20"/>
+ <line x="50" y="20"/>
+ <line x="50" y="0"/>
+ <line x="58" y="0"/>
+ <line x="58" y="20"/>
+ <line x="66" y="20"/>
+ <line x="66" y="0"/>
+ <line x="74" y="0"/>
+ <line x="74" y="20"/>
+ <line x="82" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="Memristor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="24" w="68" x="16" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="12"/>
+ <line x="18" y="12"/>
+ <line x="18" y="2"/>
+ <line x="26" y="2"/>
+ <line x="26" y="22"/>
+ <line x="34" y="22"/>
+ <line x="34" y="2"/>
+ <line x="42" y="2"/>
+ <line x="42" y="22"/>
+ <line x="50" y="22"/>
+ <line x="50" y="2"/>
+ <line x="58" y="2"/>
+ <line x="58" y="22"/>
+ <line x="66" y="22"/>
+ <line x="66" y="2"/>
+ <line x="74" y="2"/>
+ <line x="74" y="22"/>
+ <line x="82" y="22"/>
+ <line x="82" y="12"/>
+ <line x="100" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Nonlinear Resistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="18" y="60"/>
+ <line x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Potentiometer 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="50" y="20"/>
+ <line x="50" y="40"/>
+ <move x="45" y="25"/>
+ <line x="50" y="20"/>
+ <line x="55" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Potentiometer 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="20"/>
+ <line x="50" y="40"/>
+ <move x="45" y="25"/>
+ <line x="50" y="20"/>
+ <line x="55" y="25"/>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Resistor, Adjustable Contact" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.46" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="41" y="33"/>
+ <line x="46" y="20"/>
+ <line x="51" y="33"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="46" y="33"/>
+ <line x="46" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="45" name="Resistor, Shunt" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.78"/>
+ <constraint name="out" perimeter="0" x="1" y="0.78"/>
+ <constraint name="control1" perimeter="0" x="0.3" y="0"/>
+ <constraint name="control2" perimeter="0" x="0.7" y="0"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="25"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="35"/>
+ <line x="18" y="35"/>
+ <move x="82" y="35"/>
+ <line x="100" y="35"/>
+ <move x="30" y="0"/>
+ <line x="30" y="25"/>
+ <move x="70" y="0"/>
+ <line x="70" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="18" y="0"/>
+ <line x="38" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="18" y="20"/>
+ <line x="38" y="0"/>
+ <line x="18" y="0"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor With Instrument or Relay Shunt" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ <ellipse h="10" w="10" x="35" y="5"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="55" y="5"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Symmetrical Photoconductive Transducer" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.75"/>
+ <constraint name="E" perimeter="0" x="1" y="0.75"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Symmetrical Varistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="18" y="60"/>
+ <line x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="45" y="45"/>
+ <line x="50" y="60"/>
+ <line x="55" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Tapped Resistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control1" perimeter="0" x="0.46" y="1"/>
+ <constraint name="control2" perimeter="0" x="0.62" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="46" y="20"/>
+ <line x="46" y="40"/>
+ <move x="62" y="20"/>
+ <line x="62" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Trimmer Pot 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="50" y="20"/>
+ <line x="50" y="40"/>
+ </path>
+ <stroke/>
+ <rect h="2" w="16" x="42" y="21"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Trimmer Pot 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="21"/>
+ <line x="50" y="40"/>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ <rect h="2" w="16" x="42" y="21"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65.5" name="Trimmer Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="25.5"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="35.5"/>
+ <line x="18" y="35.5"/>
+ <move x="82" y="35.5"/>
+ <line x="100" y="35.5"/>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
+ <line x="78.2" y="10.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65.5" name="Trimmer Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
+ <line x="78.2" y="10.5"/>
+ <move x="0" y="35.5"/>
+ <line x="18" y="35.5"/>
+ <line x="22" y="25.5"/>
+ <line x="30" y="45.5"/>
+ <line x="38" y="25.5"/>
+ <line x="46" y="45.5"/>
+ <line x="54" y="25.5"/>
+ <line x="62" y="45.5"/>
+ <line x="70" y="25.5"/>
+ <line x="78" y="45.5"/>
+ <line x="82" y="35.5"/>
+ <line x="100" y="35.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Variable Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="20"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <move x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
+ <line x="66.5" y="15.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Variable Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
+ <line x="66.5" y="15.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.rot_mech">
+<shape aspect="variable" h="100" name="Armature" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="100"/>
+ <line x="20" y="80"/>
+ <move x="80" y="20"/>
+ <line x="100" y="0"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="12" name="Automatic Return" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="6"/>
+ <line x="100" y="6"/>
+ </path>
+ </background>
+ <foreground>
+ <fillcolor color="none"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <path>
+ <move x="58" y="0"/>
+ <line x="58" y="12"/>
+ <line x="42" y="6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Blocking Device" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="15"/>
+ <line x="100" y="15"/>
+ </path>
+ </background>
+ <foreground>
+ <fillcolor color="none"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <rect h="15" w="36" x="33" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Clutch" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="20"/>
+ <line x="35" y="20"/>
+ <line x="35" y="5"/>
+ <move x="100" y="20"/>
+ <line x="65" y="20"/>
+ <line x="65" y="5"/>
+ </path>
+ </background>
+ <foreground>
+ <fillcolor color="none"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <rect/>
+ <stroke/>
+ <path>
+ <move x="25" y="10"/>
+ <line x="25" y="0"/>
+ <line x="75" y="0"/>
+ <line x="75" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Clutch 2" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="20" y="0"/>
+ <line x="30" y="10"/>
+ <line x="30" y="50"/>
+ <line x="20" y="60"/>
+ <move x="50" y="0"/>
+ <line x="60" y="10"/>
+ <line x="60" y="50"/>
+ <line x="50" y="60"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
+ <move x="60" y="30"/>
+ <line x="90" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Delayed Action" strokewidth="inherit" w="71.7">
+ <connections>
+ <constraint name="W" perimeter="0" x="0.04" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="11.7" y="0"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="0" x="11.7" x-axis-rotation="0" y="50"/>
+ <move x="3.7" y="20"/>
+ <line x="71.7" y="20"/>
+ <move x="3.7" y="30"/>
+ <line x="71.7" y="30"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="8" name="Detent" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <line x="46.2" y="0"/>
+ <move x="100" y="0"/>
+ <line x="53.8" y="0"/>
+ <move x="46.2" y="0"/>
+ <line x="50" y="8"/>
+ <line x="53.8" y="0"/>
+ </path>
+ </background>
+ <foreground>
+ <linecap cap="round"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Field" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="30" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="60" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="90" x-axis-rotation="0" y="15"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64" name="Gearing" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.81"/>
+ <constraint name="E" perimeter="0" x="1" y="0.31"/>
+ </connections>
+ <background>
+ <ellipse h="40" w="40" x="30" y="0"/>
+ </background>
+ <foreground>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <fillstroke/>
+ <ellipse h="24" w="24" x="38" y="40"/>
+ <fillstroke/>
+ <fillcolor color="none"/>
+ <path>
+ <move x="0" y="52"/>
+ <line x="38" y="52"/>
+ <move x="70" y="20"/>
+ <line x="100" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="22" name="Latching Device" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="22"/>
+ <line x="100" y="22"/>
+ </path>
+ </background>
+ <foreground>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="17"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="45" y="22"/>
+ <line x="25" y="22"/>
+ <line x="25" y="12"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Manual Control" strokewidth="inherit" w="68">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="50"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="68" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Mechanical Interlock" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.73"/>
+ <constraint name="E" perimeter="0" x="1" y="0.73"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="22"/>
+ <line x="100" y="22"/>
+ </path>
+ </background>
+ <foreground>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="17"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="42" y="13"/>
+ <line x="58" y="13"/>
+ <line x="50" y="30"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="53.61" name="Rotation" strokewidth="inherit" w="68.43">
+ <connections/>
+ <background>
+ <path>
+ <move x="8.31" y="4.56"/>
+ <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="0" x="58.31" x-axis-rotation="0" y="4.56"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <path>
+ <move x="56.2" y="0"/>
+ <line x="56.14" y="16.06"/>
+ <line x="68.43" y="11.43"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Synchro" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <ellipse h="80" w="80" x="0" y="10"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="70" w="70" x="5" y="15"/>
+ <stroke/>
+ <path>
+ <move x="40" y="0"/>
+ <line x="40" y="10"/>
+ <move x="40" y="85"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Winding Connection" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="92" y="77"/>
+ <line x="8" y="77"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.signal_sources">
+<shape aspect="variable" h="60" name="AC Source" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="15" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="30" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="45" x-axis-rotation="0" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Current Flow" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="5"/>
+ <line x="70" y="5"/>
+ <move x="60" y="0"/>
+ <line x="70" y="5"/>
+ <line x="60" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Current Source" strokewidth="inherit" w="40">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <ellipse h="40" w="40" x="0" y="20"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="40" w="40" x="0" y="0"/>
+ <fillstroke/>
+ <fillcolor color="none"/>
+ <ellipse h="40" w="40" x="0" y="20"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="DC Source 1" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.58" y="0.135"/>
+ <constraint name="S" perimeter="0" x="0.58" y="0.935"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="10" y="10"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="75"/>
+ <line x="10" y="75"/>
+ <move x="5" y="0"/>
+ <line x="5" y="10"/>
+ <move x="0" y="5"/>
+ <line x="10" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="DC Source 2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="10" y="30"/>
+ <line x="50" y="30"/>
+ <move x="40" y="25"/>
+ <line x="50" y="30"/>
+ <line x="40" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="DC Source 3" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="27" y="55"/>
+ <line x="33" y="55"/>
+ <move x="30" y="2"/>
+ <line x="30" y="8"/>
+ <move x="27" y="5"/>
+ <line x="33" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 1" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ <line x="0" y="30"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ <line x="0" y="30"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="30" y="10"/>
+ <line x="30" y="50"/>
+ <move x="25" y="40"/>
+ <line x="30" y="50"/>
+ <line x="35" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 3" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ <line x="0" y="30"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="27" y="10"/>
+ <line x="33" y="10"/>
+ <move x="30" y="7"/>
+ <line x="30" y="13"/>
+ <move x="27" y="50"/>
+ <line x="33" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Equipotential" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="15"/>
+ <line x="45" y="90"/>
+ <line x="90" y="15"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="45" y="0"/>
+ <line x="45" y="15"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="20" y="15.5"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Explosive Squib" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="8" w="8" x="0" y="26"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="52" y="26"/>
+ <stroke/>
+ <strokecolor color="#000000"/>
+ <path>
+ <move x="50" y="38"/>
+ <line x="44" y="44"/>
+ <line x="16" y="16"/>
+ <line x="10" y="22"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="12" y="15"/>
+ <line x="8" y="24"/>
+ <line x="17" y="20"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Ideal Source" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="60" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Noise Source" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="30" y="10"/>
+ <line x="30" y="30"/>
+ <move x="11" y="25"/>
+ <line x="30" y="30"/>
+ <move x="19" y="47"/>
+ <line x="30" y="30"/>
+ <move x="41" y="47"/>
+ <line x="30" y="30"/>
+ <move x="49" y="25"/>
+ <line x="30" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Protective Earth" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="50" y="10"/>
+ <move x="4" y="15"/>
+ <line x="46" y="15"/>
+ <move x="8" y="20"/>
+ <line x="42" y="20"/>
+ <move x="16.5" y="30"/>
+ <line x="33.5" y="30"/>
+ <move x="20.5" y="35"/>
+ <line x="29.5" y="35"/>
+ <move x="25" y="0"/>
+ <line x="25" y="10"/>
+ <move x="12.5" y="25"/>
+ <line x="37.5" y="25"/>
+ <move x="24.5" y="40"/>
+ <line x="25.5" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Signal Ground" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="20"/>
+ <line x="45" y="60"/>
+ <line x="90" y="20"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="45" y="0"/>
+ <line x="45" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Vdd" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <line x="60" y="40"/>
+ <move x="30" y="40"/>
+ <line x="30" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Voltage" strokewidth="inherit" w="10">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="5" y="0"/>
+ <line x="5" y="70"/>
+ <move x="0" y="60"/>
+ <line x="5" y="70"/>
+ <line x="10" y="60"/>
+ <move x="0" y="10"/>
+ <line x="5" y="0"/>
+ <line x="10" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Vss2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="60" y="0"/>
+ <move x="30" y="0"/>
+ <line x="30" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.thermionic_devices">
<shape aspect="variable" h="77" name="Diode" strokewidth="inherit" w="70">
<connections>
<constraint name="N" perimeter="0" x="0.5" y="0"/>
@@ -129835,7 +129146,6 @@
<constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
<ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
@@ -129843,472 +129153,287 @@
<path>
<move x="35" y="0"/>
<line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
- <fillstroke/>
+ <stroke/>
<strokewidth width="2"/>
<path>
<move x="25" y="10"/>
<line x="45" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="22.5" y="60"/>
<line x="27.5" y="55"/>
<line x="42.5" y="55"/>
<line x="47.5" y="60"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25" y="77"/>
- <line x="25" y="68"/>
- <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
- <line x="45" y="77"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Double Diode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Double Diode" strokewidth="inherit" w="70">
<connections>
- <constraint name="NW" perimeter="0" x="0.285" y="0.0"/>
- <constraint name="NE" perimeter="0" x="0.715" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="NW" perimeter="0" x="0.285" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.715" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <roundrect arcsize="21.43" h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <roundrect arcsize="21.43" h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="10.0" y="10.0"/>
- <line x="30.0" y="10.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="10"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
<strokewidth width="2"/>
<path>
- <move x="40.0" y="10.0"/>
- <line x="60.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="10.0" y="60.0"/>
- <line x="15.0" y="55.0"/>
- <line x="55.0" y="55.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="10" y="10"/>
+ <line x="30" y="10"/>
+ <move x="40" y="10"/>
+ <line x="60" y="10"/>
+ <move x="10" y="60"/>
+ <line x="15" y="55"/>
+ <line x="55" y="55"/>
+ <line x="60" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Double Triode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Double Triode" strokewidth="inherit" w="70">
<connections>
- <constraint name="NW" perimeter="0" x="0.285" y="0.0"/>
- <constraint name="NE" perimeter="0" x="0.715" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="NW" perimeter="0" x="0.285" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.715" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <roundrect arcsize="21.43" h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <roundrect arcsize="21.43" h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="10.0" y="10.0"/>
- <line x="30.0" y="10.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="40.0" y="10.0"/>
- <line x="60.0" y="10.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="10.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="30.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="35.0"/>
- <line x="50.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="10"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="0" y="35"/>
+ <line x="10" y="35"/>
+ <move x="20" y="35"/>
+ <line x="30" y="35"/>
+ <move x="40" y="35"/>
+ <line x="50" y="35"/>
+ <move x="60" y="35"/>
+ <line x="70" y="35"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
<strokewidth width="2"/>
<path>
- <move x="10.0" y="60.0"/>
- <line x="15.0" y="55.0"/>
- <line x="55.0" y="55.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="10" y="60"/>
+ <line x="15" y="55"/>
+ <line x="55" y="55"/>
+ <line x="60" y="60"/>
+ <move x="10" y="10"/>
+ <line x="30" y="10"/>
+ <move x="40" y="10"/>
+ <line x="60" y="10"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Pentode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Pentode" strokewidth="inherit" w="70">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="45.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="35.0"/>
- <line x="40.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="35.0"/>
- <line x="60.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="25.0"/>
- <line x="20.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="40.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="45.0"/>
- <line x="60.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.5" y="60.0"/>
- <line x="27.5" y="55.0"/>
- <line x="42.5" y="55.0"/>
- <line x="47.5" y="60.0"/>
+ <move x="35" y="0"/>
+ <line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="25" y="10"/>
+ <line x="45" y="10"/>
+ <move x="10" y="35"/>
+ <line x="20" y="35"/>
+ <move x="30" y="35"/>
+ <line x="40" y="35"/>
+ <move x="50" y="35"/>
+ <line x="60" y="35"/>
+ <move x="10" y="25"/>
+ <line x="20" y="25"/>
+ <move x="30" y="25"/>
+ <line x="40" y="25"/>
+ <move x="50" y="25"/>
+ <line x="60" y="25"/>
+ <move x="10" y="45"/>
+ <line x="20" y="45"/>
+ <move x="30" y="45"/>
+ <line x="40" y="45"/>
+ <move x="50" y="45"/>
+ <line x="60" y="45"/>
+ <move x="22.5" y="60"/>
+ <line x="27.5" y="55"/>
+ <line x="42.5" y="55"/>
+ <line x="47.5" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="87.0" name="Photocell" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="87" name="Photocell" strokewidth="inherit" w="70">
<connections>
<constraint name="N" perimeter="0" x="0.5" y="0.11"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="10.0"/>
+ <ellipse h="70" w="70" x="0" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="10.0"/>
- <line x="35.0" y="20.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="45.0" y="20.0"/>
+ <move x="35" y="10"/>
+ <line x="35" y="20"/>
+ <move x="60" y="0"/>
+ <line x="50" y="10"/>
+ <move x="70" y="8"/>
+ <line x="60" y="18"/>
+ <move x="25" y="87"/>
+ <line x="25" y="78"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="78"/>
+ <line x="45" y="87"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="60.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="8.0"/>
- <line x="60.0" y="18.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="7.0"/>
- <line x="50.0" y="10.0"/>
- <line x="53.0" y="10.0"/>
+ <move x="50" y="7"/>
+ <line x="50" y="10"/>
+ <line x="53" y="10"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="15.0"/>
- <line x="60.0" y="18.0"/>
- <line x="63.0" y="18.0"/>
+ <move x="60" y="15"/>
+ <line x="60" y="18"/>
+ <line x="63" y="18"/>
<close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
<strokewidth width="2"/>
<path>
- <move x="22.5" y="70.0"/>
- <line x="27.5" y="65.0"/>
- <line x="42.5" y="65.0"/>
- <line x="47.5" y="70.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="87.0"/>
- <line x="25.0" y="78.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="78.0"/>
- <line x="45.0" y="87.0"/>
+ <move x="25" y="20"/>
+ <line x="45" y="20"/>
+ <move x="22.5" y="70"/>
+ <line x="27.5" y="65"/>
+ <line x="42.5" y="65"/>
+ <line x="47.5" y="70"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Tetrode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Tetrode" strokewidth="inherit" w="70">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="45.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="40.0"/>
- <line x="60.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="30.0"/>
- <line x="60.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.5" y="60.0"/>
- <line x="27.5" y="55.0"/>
- <line x="42.5" y="55.0"/>
- <line x="47.5" y="60.0"/>
+ <move x="35" y="0"/>
+ <line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="25" y="10"/>
+ <line x="45" y="10"/>
+ <move x="10" y="40"/>
+ <line x="20" y="40"/>
+ <move x="30" y="40"/>
+ <line x="40" y="40"/>
+ <move x="50" y="40"/>
+ <line x="60" y="40"/>
+ <move x="10" y="30"/>
+ <line x="20" y="30"/>
+ <move x="30" y="30"/>
+ <line x="40" y="30"/>
+ <move x="50" y="30"/>
+ <line x="60" y="30"/>
+ <move x="22.5" y="60"/>
+ <line x="27.5" y="55"/>
+ <line x="42.5" y="55"/>
+ <line x="47.5" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Triode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Triode" strokewidth="inherit" w="70">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="45.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="35.0"/>
- <line x="40.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="35.0"/>
- <line x="60.0" y="35.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.5" y="60.0"/>
- <line x="27.5" y="55.0"/>
- <line x="42.5" y="55.0"/>
- <line x="47.5" y="60.0"/>
+ <move x="35" y="0"/>
+ <line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="25" y="10"/>
+ <line x="45" y="10"/>
+ <move x="10" y="35"/>
+ <line x="20" y="35"/>
+ <move x="30" y="35"/>
+ <line x="40" y="35"/>
+ <move x="50" y="35"/>
+ <line x="60" y="35"/>
+ <move x="22.5" y="60"/>
+ <line x="27.5" y="55"/>
+ <line x="42.5" y="55"/>
+ <line x="47.5" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.transistors">
+<shapes name="mxgraph.electrical.transistors">
<shape aspect="fixed" h="90" name="Complementary Unijunction" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
@@ -130316,35 +129441,19 @@
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
<ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20" y="15"/>
- <line x="20" y="75"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
<move x="20" y="30"/>
<line x="87.5" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="60"/>
<line x="87.5" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="2.5" y="60"/>
<line x="20" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2.1"/>
<path>
<move x="5" y="54.5"/>
@@ -130353,1136 +129462,1168 @@
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Darlington Pair" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Darlington Pair" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.965" y="0.315"/>
<constraint name="SE" perimeter="0" x="0.79" y="0.91"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.51"/>
+ <constraint name="W" perimeter="0" x="0" y="0.51"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="43.75" y="48.75"/>
- <line x="43.75" y="78.75"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
<move x="43.75" y="63.75"/>
<line x="70.25" y="81.25"/>
+ <move x="16.37" y="45.87"/>
+ <line x="42.87" y="63.37"/>
+ <move x="0" y="45.87"/>
+ <line x="16.37" y="45.87"/>
+ <move x="16.3" y="45.8"/>
+ <line x="42.5" y="28.4"/>
+ <line x="87" y="28.4"/>
+ <move x="43.8" y="63.8"/>
+ <line x="70.3" y="46.3"/>
+ <line x="70.3" y="28.4"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
<move x="68.37" y="78.25"/>
<line x="70.35" y="81.35"/>
- <line x="66.87" y="81.0"/>
+ <line x="66.87" y="81"/>
<close/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="16.37" y="30.87"/>
- <line x="16.37" y="60.87"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="16.37" y="45.87"/>
- <line x="42.87" y="63.37"/>
- </path>
- <fillstroke/>
- <path>
- <move x="41.0" y="60.37"/>
+ <move x="41" y="60.37"/>
<line x="42.87" y="63.47"/>
<line x="39.5" y="63.12"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="45.87"/>
- <line x="16.37" y="45.87"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="16.3" y="45.8"/>
- <line x="42.5" y="28.4"/>
- <line x="87.0" y="28.4"/>
- </path>
- <stroke/>
- <path>
- <move x="43.8" y="63.8"/>
- <line x="70.3" y="46.3"/>
- <line x="70.3" y="28.4"/>
+ <move x="43.75" y="48.75"/>
+ <line x="43.75" y="78.75"/>
+ <move x="16.37" y="30.87"/>
+ <line x="16.37" y="60.87"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="N-channel JFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="N-channel JFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.68"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.68"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
+ <move x="0" y="75"/>
+ <line x="29" y="75"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="75.0"/>
- <line x="29.0" y="75.0"/>
+ <move x="29" y="70"/>
+ <line x="44" y="75"/>
+ <line x="29" y="80"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="29.0" y="70.0"/>
- <line x="44.0" y="75.0"/>
- <line x="29.0" y="80.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="N-channel JFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="N-channel JFET 2" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="87.5" y="30"/>
+ <move x="20" y="60"/>
+ <line x="87.5" y="60"/>
+ <move x="2.5" y="60"/>
+ <line x="20" y="60"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="87.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="87.5" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="2.5" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="14.5" y="57.0"/>
- <line x="20.0" y="60.0"/>
- <line x="14.5" y="63.0"/>
+ <move x="14.5" y="57"/>
+ <line x="20" y="60"/>
+ <line x="14.5" y="63"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="NPN Transistor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="NPN Transistor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="40.0" y="30.0"/>
- <line x="40.0" y="80.0"/>
+ <move x="0" y="55"/>
+ <line x="40" y="55"/>
+ <move x="40" y="40"/>
+ <line x="70" y="12.5"/>
+ <line x="70" y="0"/>
+ <move x="40" y="70"/>
+ <line x="70" y="97.5"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
+ <move x="54" y="89"/>
+ <line x="69" y="96.5"/>
+ <line x="60.5" y="82.5"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="70.0" y="12.5"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="40.0" y="70.0"/>
- <line x="70.0" y="97.5"/>
- <line x="70.0" y="110.0"/>
+ <move x="40" y="30"/>
+ <line x="40" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="54.0" y="89.0"/>
- <line x="69.0" y="96.5"/>
- <line x="60.5" y="82.5"/>
- <close/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="71.0" name="NPN Transistor 2" strokewidth="inherit" w="73.0">
+ <shape aspect="fixed" h="71" name="NPN Transistor 2" strokewidth="inherit" w="73">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="0.99"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.492"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.99"/>
+ <constraint name="W" perimeter="0" x="0" y="0.492"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="20"/>
+ <line x="73" y="0"/>
+ <move x="20" y="50"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="20.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
<move x="68.75" y="65.5"/>
- <line x="72.75" y="70.0"/>
- <line x="66.75" y="71.0"/>
+ <line x="72.75" y="70"/>
+ <line x="66.75" y="71"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
<shape aspect="fixed" h="70.2" name="NPN Transistor 3" strokewidth="inherit" w="73.2">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="69.25" y="64.0"/>
+ <move x="69.25" y="64"/>
<line x="73.2" y="70.2"/>
<line x="66.25" y="69.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="NPN Transistor 4" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="NPN Transistor 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="45"/>
+ <line x="73" y="10"/>
+ <move x="20" y="45"/>
+ <line x="73" y="80"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="69.25" y="74.0"/>
+ <move x="69.25" y="74"/>
<line x="73.2" y="80.2"/>
<line x="66.25" y="79.5"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="P-channel JFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="P-channel JFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.68"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.68"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
+ <move x="0" y="75"/>
+ <line x="15" y="75"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="30" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="75.0"/>
- <line x="15.0" y="75.0"/>
+ <move x="30" y="70"/>
+ <line x="15" y="75"/>
+ <line x="30" y="80"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="30.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="70.0"/>
- <line x="15.0" y="75.0"/>
- <line x="30.0" y="80.0"/>
- <close/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="P-channel JFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="P-channel JFET 2" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="87.5" y="30"/>
+ <move x="20" y="60"/>
+ <line x="87.5" y="60"/>
+ <move x="2.5" y="60"/>
+ <line x="20" y="60"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="87.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="87.5" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="2.5" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="8.0" y="57.0"/>
- <line x="2.5" y="60.0"/>
- <line x="8.0" y="63.0"/>
+ <move x="8" y="57"/>
+ <line x="2.5" y="60"/>
+ <line x="8" y="63"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="PNP Transistor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="PNP Transistor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="40.0" y="30.0"/>
- <line x="40.0" y="80.0"/>
+ <move x="0" y="55"/>
+ <line x="40" y="55"/>
+ <move x="40" y="40"/>
+ <line x="70" y="12.5"/>
+ <line x="70" y="0"/>
+ <move x="40" y="70"/>
+ <line x="70" y="97.5"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
+ <move x="49.5" y="25"/>
+ <line x="41.5" y="38.75"/>
+ <line x="56" y="31.75"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="70.0" y="12.5"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="70.0"/>
- <line x="70.0" y="97.5"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="49.5" y="25.0"/>
- <line x="41.5" y="38.75"/>
- <line x="56.0" y="31.75"/>
- <close/>
+ <move x="40" y="30"/>
+ <line x="40" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="70.0" name="PNP Transistor 2" strokewidth="inherit" w="73.0">
+ <shape aspect="fixed" h="70" name="PNP Transistor 2" strokewidth="inherit" w="73">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="20"/>
+ <line x="73" y="0"/>
+ <move x="20" y="50"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="20.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="25" y="55"/>
+ <line x="21" y="50.5"/>
+ <line x="27" y="49.5"/>
+ <close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="55.0"/>
- <line x="21.0" y="50.5"/>
- <line x="27.0" y="49.5"/>
- <close/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="70.0" name="PNP Transistor 3" strokewidth="inherit" w="73.0">
+ <shape aspect="fixed" h="70" name="PNP Transistor 3" strokewidth="inherit" w="73">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="41.0"/>
- <line x="21.0" y="35.0"/>
+ <move x="24.5" y="41"/>
+ <line x="21" y="35"/>
<line x="27.5" y="36.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="PNP Transistor 4" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="PNP Transistor 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="45"/>
+ <line x="73" y="10"/>
+ <move x="20" y="45"/>
+ <line x="73" y="80"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="51.0"/>
- <line x="21.0" y="45.0"/>
+ <move x="24.5" y="51"/>
+ <line x="21" y="45"/>
<line x="27.5" y="46.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Unijunction" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Unijunction" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="87.5" y="30"/>
+ <move x="20" y="60"/>
+ <line x="87.5" y="60"/>
+ <move x="2.5" y="60"/>
+ <line x="20" y="45"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="87.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="87.5" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="2.5" y="60.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="13.0" y="47.0"/>
- <line x="20.0" y="45.0"/>
- <line x="16.5" y="52.0"/>
+ <move x="13" y="47"/>
+ <line x="20" y="45"/>
+ <line x="16.5" y="52"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
</shapes>
-<shapes name="mxGraph.electrical.waveforms">
+<shapes name="mxgraph.electrical.transmission">
+<shape aspect="variable" h="25" name="2 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="25"/>
+ <line x="130" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="3 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="30"/>
+ <line x="130" y="30"/>
+ <move x="0" y="15"/>
+ <line x="130" y="15"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="4 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="W1" perimeter="0" x="0" y="0.33"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.33"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.67"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.67"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="75"/>
+ <line x="130" y="75"/>
+ <move x="0" y="25"/>
+ <line x="130" y="25"/>
+ <move x="0" y="50"/>
+ <line x="130" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="224" name="8 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="W1" perimeter="0" x="0" y="0.145"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.285"/>
+ <constraint name="W3" perimeter="0" x="0" y="0.43"/>
+ <constraint name="W4" perimeter="0" x="0" y="0.57"/>
+ <constraint name="W5" perimeter="0" x="0" y="0.715"/>
+ <constraint name="W6" perimeter="0" x="0" y="0.855"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.145"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.285"/>
+ <constraint name="E3" perimeter="0" x="1" y="0.43"/>
+ <constraint name="E4" perimeter="0" x="1" y="0.57"/>
+ <constraint name="E5" perimeter="0" x="1" y="0.715"/>
+ <constraint name="E6" perimeter="0" x="1" y="0.855"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="32"/>
+ <line x="130" y="32"/>
+ <move x="0" y="64"/>
+ <line x="130" y="64"/>
+ <move x="0" y="96"/>
+ <line x="130" y="96"/>
+ <move x="0" y="128"/>
+ <line x="130" y="128"/>
+ <move x="0" y="160"/>
+ <line x="130" y="160"/>
+ <move x="0" y="192"/>
+ <line x="130" y="192"/>
+ <move x="0" y="224"/>
+ <line x="130" y="224"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="88" name="Anticreepage Device" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="44"/>
+ <line x="130" y="44"/>
+ <move x="26" y="18"/>
+ <line x="26" y="70"/>
+ <move x="110" y="0"/>
+ <arc large-arc-flag="0" rx="59" ry="59" sweep-flag="1" x="110" x-axis-rotation="0" y="88"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="156" name="Bus Width" strokewidth="inherit" w="130">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="156"/>
+ <line x="130" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="130" name="Cable Group" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W1" perimeter="0" x="0" y="0.16"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.33"/>
+ <constraint name="W3" perimeter="0" x="0" y="0.5"/>
+ <constraint name="W4" perimeter="0" x="0" y="0.67"/>
+ <constraint name="W5" perimeter="0" x="0" y="0.84"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.16"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.33"/>
+ <constraint name="E3" perimeter="0" x="1" y="0.5"/>
+ <constraint name="E4" perimeter="0" x="1" y="0.67"/>
+ <constraint name="E5" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="65" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="80" x-axis-rotation="0" y="15"/>
+ <line x="80" y="115"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="65" x-axis-rotation="0" y="130"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="50" x-axis-rotation="0" y="115"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="21"/>
+ <line x="50" y="21"/>
+ <move x="0" y="43"/>
+ <line x="50" y="43"/>
+ <move x="0" y="65"/>
+ <line x="50" y="65"/>
+ <move x="0" y="87"/>
+ <line x="50" y="87"/>
+ <move x="0" y="109"/>
+ <line x="50" y="109"/>
+ <move x="80" y="21"/>
+ <line x="130" y="21"/>
+ <move x="80" y="43"/>
+ <line x="130" y="43"/>
+ <move x="80" y="65"/>
+ <line x="130" y="65"/>
+ <move x="80" y="87"/>
+ <line x="130" y="87"/>
+ <move x="80" y="109"/>
+ <line x="130" y="109"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Line Cable" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="130" y="30"/>
+ </path>
+ <stroke/>
+ <ellipse h="60" w="60" x="35" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="130" name="Line Concentrator" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="130" w="130" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="65" y="12"/>
+ <line x="65" y="118"/>
+ <move x="35" y="65"/>
+ <line x="65" y="65"/>
+ <move x="65" y="25"/>
+ <line x="95" y="25"/>
+ <move x="65" y="105"/>
+ <line x="95" y="105"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="Optical Fiber" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <line x="25" y="40"/>
+ <move x="105" y="40"/>
+ <line x="130" y="40"/>
+ </path>
+ <stroke/>
+ <ellipse h="80" w="80" x="25" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="35" y="50"/>
+ <line x="65" y="20"/>
+ <move x="55" y="68.88"/>
+ <line x="85" y="38.88"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="59.5" y="15.5"/>
+ <line x="76" y="9"/>
+ <line x="70" y="25"/>
+ <close/>
+ <move x="79.5" y="34.38"/>
+ <line x="96" y="27.88"/>
+ <line x="90" y="43.88"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="136.29" name="Overground Enclosure" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0.05"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.215" y="0.5"/>
+ <constraint name="E" perimeter="0" x="0.785" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="26.29"/>
+ <arc large-arc-flag="0" rx="117" ry="117" sweep-flag="1" x="130" x-axis-rotation="0" y="26.29"/>
+ <move x="28" y="12.79"/>
+ <line x="28" y="136.29"/>
+ <line x="102" y="136.29"/>
+ <line x="102" y="12.79"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Terminal 3 Phase" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="NW" perimeter="0" x="0.12" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.88" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.12" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.88" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="30" w="30" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="30" w="30" x="50" y="0"/>
+ <fillstroke/>
+ <ellipse h="30" w="30" x="100" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+</shapes>
+<shapes name="mxgraph.electrical.waveforms">
<shape aspect="variable" h="90" name="Data Changing" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
<move x="0" y="90"/>
<line x="90" y="0"/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
<move x="0" y="0"/>
<line x="90" y="90"/>
</path>
- <fillstroke/>
+ </background>
+ <foreground>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Data Ending" strokewidth="inherit" w="95.0">
+ <shape aspect="variable" h="90" name="Data Ending" strokewidth="inherit" w="95">
<connections/>
<background>
<path>
- <move x="55.0" y="45.0"/>
- <line x="70.0" y="45.0"/>
+ <move x="55" y="45"/>
+ <line x="70" y="45"/>
+ <move x="85" y="45"/>
+ <line x="95" y="45"/>
+ <move x="0" y="0"/>
+ <line x="45" y="45"/>
+ <line x="0" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="85.0" y="45.0"/>
- <line x="95.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="45.0" y="45.0"/>
- <line x="0.0" y="90.0"/>
- </path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="40.0" name="Data Invalid 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="40" name="Data Invalid 1" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="15.0" y="0.0"/>
+ <move x="0" y="0"/>
+ <line x="15" y="0"/>
+ <move x="30" y="0"/>
+ <line x="45" y="0"/>
+ <move x="60" y="0"/>
+ <line x="75" y="0"/>
+ <move x="90" y="0"/>
+ <line x="100" y="0"/>
+ <move x="0" y="40"/>
+ <line x="15" y="40"/>
+ <move x="30" y="40"/>
+ <line x="45" y="40"/>
+ <move x="60" y="40"/>
+ <line x="75" y="40"/>
+ <move x="90" y="40"/>
+ <line x="100" y="40"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="0.0"/>
- <line x="100.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="15.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="45.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="75.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Data Invalid 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="5" name="Data Invalid 2" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="2.5"/>
- <line x="15.0" y="2.5"/>
+ <move x="0" y="2.5"/>
+ <line x="15" y="2.5"/>
+ <move x="30" y="2.5"/>
+ <line x="45" y="2.5"/>
+ <move x="60" y="2.5"/>
+ <line x="75" y="2.5"/>
+ <move x="90" y="2.5"/>
+ <line x="100" y="2.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="2.5"/>
- <line x="45.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="2.5"/>
- <line x="75.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="2.5"/>
- <line x="100.0" y="2.5"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Data Starting" strokewidth="inherit" w="95.0">
+ <shape aspect="variable" h="90" name="Data Starting" strokewidth="inherit" w="95">
<connections/>
<background>
<path>
- <move x="0.0" y="45.0"/>
- <line x="15.0" y="45.0"/>
+ <move x="0" y="45"/>
+ <line x="15" y="45"/>
+ <move x="30" y="45"/>
+ <line x="45" y="45"/>
+ <move x="95" y="0"/>
+ <line x="50" y="45"/>
+ <line x="95" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="45.0"/>
- <line x="45.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="95.0" y="0.0"/>
- <line x="50.0" y="45.0"/>
- <line x="95.0" y="90.0"/>
- </path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="40.0" name="Data Valid" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="40" name="Data Valid" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="100.0" y="0.0"/>
+ <move x="0" y="0"/>
+ <line x="100" y="0"/>
+ <move x="0" y="40"/>
+ <line x="100" y="40"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Down Ramp" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Down Ramp" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="90.0" y="90.0"/>
+ <move x="0" y="0"/>
+ <line x="90" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Edge" strokewidth="inherit" w="5.0">
+ <shape aspect="variable" h="90" name="Edge" strokewidth="inherit" w="5">
<connections/>
<background>
<path>
- <move x="2.5" y="0.0"/>
- <line x="2.5" y="90.0"/>
+ <move x="2.5" y="0"/>
+ <line x="2.5" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
<shape aspect="variable" h="55.22" name="Event" strokewidth="inherit" w="25.56">
<connections/>
<background>
- <save/>
- <ellipse h="10.0" w="10.0" x="0.0" y="45.22"/>
+ <ellipse h="10" w="10" x="0" y="45.22"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="0.22"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="5.0" x-axis-rotation="0.0" y="50.22"/>
+ <move x="25" y="0.22"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="5" x-axis-rotation="0" y="50.22"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="10"/>
<path>
- <move x="21.67" y="6.0"/>
- <line x="25.56" y="0.0"/>
- <line x="19.0" y="3.67"/>
+ <move x="21.67" y="6"/>
+ <line x="25.56" y="0"/>
+ <line x="19" y="3.67"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Level" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="5" name="Level" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="2.5"/>
- <line x="90.0" y="2.5"/>
+ <move x="0" y="2.5"/>
+ <line x="90" y="2.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Pulse 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Pulse 1" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="90.0"/>
- <line x="25.0" y="90.0"/>
- <line x="25.0" y="0.0"/>
- <line x="65.0" y="0.0"/>
- <line x="65.0" y="90.0"/>
- <line x="90.0" y="90.0"/>
+ <move x="0" y="90"/>
+ <line x="25" y="90"/>
+ <line x="25" y="0"/>
+ <line x="65" y="0"/>
+ <line x="65" y="90"/>
+ <line x="90" y="90"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Pulse 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Pulse 2" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="25.0" y="0.0"/>
- <line x="25.0" y="90.0"/>
- <line x="65.0" y="90.0"/>
- <line x="65.0" y="0.0"/>
- <line x="90.0" y="0.0"/>
+ <move x="0" y="0"/>
+ <line x="25" y="0"/>
+ <line x="25" y="90"/>
+ <line x="65" y="90"/>
+ <line x="65" y="0"/>
+ <line x="90" y="0"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Sawtooth" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="Sawtooth" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="100.0"/>
- <line x="33.33" y="0.0"/>
- <line x="33.33" y="100.0"/>
- <line x="66.67" y="0.0"/>
- <line x="66.67" y="100.0"/>
- <line x="100.0" y="0.0"/>
- <line x="100.0" y="100.0"/>
+ <move x="0" y="100"/>
+ <line x="33.33" y="0"/>
+ <line x="33.33" y="100"/>
+ <line x="66.67" y="0"/>
+ <line x="66.67" y="100"/>
+ <line x="100" y="0"/>
+ <line x="100" y="100"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="66.5" name="Sine Wave" strokewidth="inherit" w="89.7">
+ <shape aspect="variable" h="88.17" name="Sine Wave" strokewidth="inherit" w="89.75">
<connections/>
<foreground>
- <fillcolor color="none"/>
<path>
- <move x="0" y="33.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="1" x="7.2" x-axis-rotation="0" y="17.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="1" x="13.6" x-axis-rotation="0" y="6.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="18.9" x-axis-rotation="0" y="1.21"/>
- <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="1" x="25.8" x-axis-rotation="0" y="1.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="31.1" x-axis-rotation="0" y="6.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="1" x="37.5" x-axis-rotation="0" y="17.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="1" x="44.7" x-axis-rotation="0" y="33.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="0" x="52" x-axis-rotation="0" y="49.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="0" x="58.4" x-axis-rotation="0" y="60.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="0" x="63.6" x-axis-rotation="0" y="65.21"/>
- <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="70.7" x-axis-rotation="0" y="65.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="0" x="76" x-axis-rotation="0" y="60.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="0" x="82.4" x-axis-rotation="0" y="49.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="0" x="89.7" x-axis-rotation="0" y="33.21"/>
+ <move x="0" y="43.95"/>
+ <curve x1="18.26" x2="26.87" x3="44.87" y1="0.23" y2="0" y3="43.95"/>
+ <curve x1="62.88" x2="71.32" x3="89.75" y1="87.9" y2="88.17" y3="43.95"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Slow Square Wave" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="80" name="Slow Square Wave" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="40.0"/>
- <line x="10.0" y="0.0"/>
- <line x="35.0" y="0.0"/>
- <line x="55.0" y="80.0"/>
- <line x="80.0" y="80.0"/>
- <line x="90.0" y="40.0"/>
+ <move x="0" y="40"/>
+ <line x="10" y="0"/>
+ <line x="35" y="0"/>
+ <line x="55" y="80"/>
+ <line x="80" y="80"/>
+ <line x="90" y="40"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Square Wave" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="80" name="Square Wave" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="40.0"/>
- <line x="0.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- <line x="45.0" y="80.0"/>
- <line x="90.0" y="80.0"/>
- <line x="90.0" y="40.0"/>
+ <move x="0" y="40"/>
+ <line x="0" y="0"/>
+ <line x="45" y="0"/>
+ <line x="45" y="80"/>
+ <line x="90" y="80"/>
+ <line x="90" y="40"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Step 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Step 1" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="90.0"/>
- <line x="45.0" y="90.0"/>
- <line x="45.0" y="0.0"/>
- <line x="90.0" y="0.0"/>
+ <move x="0" y="90"/>
+ <line x="45" y="90"/>
+ <line x="45" y="0"/>
+ <line x="90" y="0"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Step 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Step 2" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- <line x="45.0" y="90.0"/>
- <line x="90.0" y="90.0"/>
+ <move x="0" y="0"/>
+ <line x="45" y="0"/>
+ <line x="45" y="90"/>
+ <line x="90" y="90"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="10.0" name="Timing Line" strokewidth="inherit" w="98.0">
+ <shape aspect="variable" h="10" name="Timing Line" strokewidth="inherit" w="98">
<connections/>
<background>
- <save/>
<path>
- <move x="1.0" y="5.0"/>
- <line x="97.0" y="5.0"/>
+ <move x="1" y="5"/>
+ <line x="97" y="5"/>
+ <move x="89" y="0"/>
+ <line x="98" y="5"/>
+ <line x="89" y="10"/>
+ <move x="9" y="0"/>
+ <line x="0" y="5"/>
+ <line x="9" y="10"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
- <path>
- <move x="89.0" y="0.0"/>
- <line x="98.0" y="5.0"/>
- <line x="89.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="9.0" y="0.0"/>
- <line x="0.0" y="5.0"/>
- <line x="9.0" y="10.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <text align="center" str="10s" valign="bottom" x="49.0" y="3.0"/>
+ <text align="center" str="10s" valign="bottom" x="49" y="3"/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Timing Mark 1" strokewidth="inherit" w="5.0">
+ <shape aspect="variable" h="100" name="Timing Mark 1" strokewidth="inherit" w="5">
<connections/>
<background>
<path>
- <move x="2.5" y="0.0"/>
- <line x="2.5" y="100.0"/>
+ <move x="2.5" y="0"/>
+ <line x="2.5" y="100"/>
</path>
</background>
<foreground>
- <dashpattern pattern="5,5"/>
- <dashed dashed="true"/>
- <fillstroke/>
+ <dashpattern pattern="5 5"/>
+ <dashed dashed="1"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Timing Mark 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="Timing Mark 2" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="100.0"/>
+ <move x="50" y="0"/>
+ <line x="50" y="100"/>
+ <move x="0" y="50"/>
+ <line x="100" y="50"/>
</path>
</background>
<foreground>
- <dashpattern pattern="5,5"/>
- <dashed dashed="true"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="100.0" y="50.0"/>
- </path>
- <fillstroke/>
+ <dashpattern pattern="5 5"/>
+ <dashed dashed="1"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Timing Mark 3" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="5" name="Timing Mark 3" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="2.5"/>
- <line x="100.0" y="2.5"/>
+ <move x="0" y="2.5"/>
+ <line x="100" y="2.5"/>
</path>
</background>
<foreground>
- <dashpattern pattern="5,5"/>
- <dashed dashed="true"/>
- <fillstroke/>
+ <dashpattern pattern="5 5"/>
+ <dashed dashed="1"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Up Ramp" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Up Ramp" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="90.0"/>
- <line x="90.0" y="0.0"/>
+ <move x="0" y="90"/>
+ <line x="90" y="0"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
</shapes>
diff --git a/war/stencils/electrical/abstract.xml b/war/stencils/electrical/abstract.xml
index 1b19e3a8..2e4c8ee9 100644
--- a/war/stencils/electrical/abstract.xml
+++ b/war/stencils/electrical/abstract.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.abstract">
+<shapes name="mxgraph.electrical.abstract">
<shape aspect="variable" h="90" name="Amplifier" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -17,67 +17,58 @@
<path>
<move x="0" y="45"/>
<line x="5" y="45"/>
- </path>
- <fillstroke/>
- <path>
<move x="95" y="45"/>
<line x="100" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Controlled Amplifier" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="Controlled Amplifier" strokewidth="inherit" w="100">
<connections>
<constraint name="control" perimeter="0" x="0.6" y="0.95"/>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="5.0" y="0.0"/>
- <line x="95.0" y="45.0"/>
- <line x="5.0" y="90.0"/>
+ <move x="5" y="0"/>
+ <line x="95" y="45"/>
+ <line x="5" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="5.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="95.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="85.0"/>
- <line x="60.0" y="68.0"/>
+ <move x="0" y="45"/>
+ <line x="5" y="45"/>
+ <move x="95" y="45"/>
+ <line x="100" y="45"/>
+ <move x="60" y="85"/>
+ <line x="60" y="68"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="57.0" y="68.0"/>
- <line x="60.0" y="63.0"/>
- <line x="63.0" y="68.0"/>
+ <move x="57" y="68"/>
+ <line x="60" y="63"/>
+ <line x="63" y="68"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="DAC" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="46" name="DAC" strokewidth="inherit" w="70">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- <line x="70.0" y="23.0"/>
- <line x="45.0" y="46.0"/>
- <line x="0.0" y="46.0"/>
+ <move x="0" y="0"/>
+ <line x="45" y="0"/>
+ <line x="70" y="23"/>
+ <line x="45" y="46"/>
+ <line x="0" y="46"/>
<close/>
</path>
</background>
@@ -85,427 +76,306 @@
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Delta" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Delta" strokewidth="inherit" w="50">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="35.0"/>
- <line x="25.0" y="15.0"/>
- <line x="35.0" y="35.0"/>
+ <move x="15" y="35"/>
+ <line x="25" y="15"/>
+ <line x="35" y="35"/>
<close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Demux" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="90" name="Demux" strokewidth="inherit" w="60">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.333"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.445"/>
- <constraint name="out3" perimeter="0" x="1.0" y="0.555"/>
- <constraint name="out4" perimeter="0" x="1.0" y="0.667"/>
- <constraint name="control1" perimeter="0" x="0.415" y="1.0"/>
- <constraint name="control2" perimeter="0" x="0.585" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.333"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.445"/>
+ <constraint name="out3" perimeter="0" x="1" y="0.555"/>
+ <constraint name="out4" perimeter="0" x="1" y="0.667"/>
+ <constraint name="control1" perimeter="0" x="0.415" y="1"/>
+ <constraint name="control2" perimeter="0" x="0.585" y="1"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="70.0"/>
- <line x="10.0" y="90.0"/>
+ <move x="10" y="0"/>
+ <line x="50" y="20"/>
+ <line x="50" y="70"/>
+ <line x="10" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="25.0" y="82.5"/>
- <line x="25.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="50.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="60.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="10.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="40.0"/>
- <line x="60.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="30.0"/>
- <line x="60.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="77.5"/>
- <line x="35.0" y="90.0"/>
+ <move x="25" y="82.5"/>
+ <line x="25" y="90"/>
+ <move x="50" y="50"/>
+ <line x="60" y="50"/>
+ <move x="50" y="60"/>
+ <line x="60" y="60"/>
+ <move x="0" y="45"/>
+ <line x="10" y="45"/>
+ <move x="50" y="40"/>
+ <line x="60" y="40"/>
+ <move x="50" y="30"/>
+ <line x="60" y="30"/>
+ <move x="35" y="77.5"/>
+ <line x="35" y="90"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="6.0" y="23.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="1" x="26.0" x-axis-rotation="0.0" y="23.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="23.0"/>
+ <move x="6" y="23"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="26" x-axis-rotation="0" y="23"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="46" x-axis-rotation="0" y="23"/>
+ <move x="6" y="13"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="26" x-axis-rotation="0" y="13"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="46" x-axis-rotation="0" y="13"/>
+ <move x="6" y="33"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="26" x-axis-rotation="0" y="33"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="46" x-axis-rotation="0" y="33"/>
+ <move x="22" y="35"/>
+ <line x="28" y="29"/>
+ <move x="22" y="15"/>
+ <line x="28" y="9"/>
</path>
<stroke/>
- <path>
- <move x="6.0" y="13.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="1" x="26.0" x-axis-rotation="0.0" y="13.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="13.0"/>
- </path>
- <stroke/>
- <path>
- <move x="6.0" y="33.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="1" x="26.0" x-axis-rotation="0.0" y="33.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="15.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="33.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="22.0" y="35.0"/>
- <line x="28.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="22.0" y="15.0"/>
- <line x="28.0" y="9.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Function" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Function" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Integrator" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Integrator" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="20.0" y="35.0"/>
- <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="0" x="25.0" x-axis-rotation="0.0" y="35.0"/>
- <line x="25.0" y="15.0"/>
- <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="15.0"/>
+ <move x="20" y="35"/>
+ <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="0" x="25" x-axis-rotation="0" y="35"/>
+ <line x="25" y="15"/>
+ <arc large-arc-flag="0" rx="2.5" ry="2.5" sweep-flag="1" x="30" x-axis-rotation="0" y="15"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Multiplier" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Multiplier" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
<move x="7.2" y="7.2"/>
<line x="42.8" y="42.8"/>
- </path>
- <fillstroke/>
- <path>
<move x="42.8" y="7.2"/>
<line x="7.2" y="42.8"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Mux-Demux" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="90" name="Mux-Demux" strokewidth="inherit" w="60">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.055"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in3" perimeter="0" x="0.0" y="0.275"/>
- <constraint name="in4" perimeter="0" x="0.0" y="0.39"/>
- <constraint name="in5" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="in6" perimeter="0" x="0.0" y="0.61"/>
- <constraint name="in7" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="in8" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="in9" perimeter="0" x="0.0" y="0.945"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.055"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in3" perimeter="0" x="0" y="0.275"/>
+ <constraint name="in4" perimeter="0" x="0" y="0.39"/>
+ <constraint name="in5" perimeter="0" x="0" y="0.5"/>
+ <constraint name="in6" perimeter="0" x="0" y="0.61"/>
+ <constraint name="in7" perimeter="0" x="0" y="0.72"/>
+ <constraint name="in8" perimeter="0" x="0" y="0.835"/>
+ <constraint name="in9" perimeter="0" x="0" y="0.945"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="70.0"/>
- <line x="10.0" y="90.0"/>
+ <move x="10" y="0"/>
+ <line x="50" y="20"/>
+ <line x="50" y="70"/>
+ <line x="10" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="30.0" y="80.0"/>
- <line x="30.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="45.0"/>
- <line x="60.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="85.0"/>
- <line x="10.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="10.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="65.0"/>
- <line x="10.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="55.0"/>
- <line x="10.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="10.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="10.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="10.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="15.0"/>
- <line x="10.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="10.0" y="5.0"/>
+ <move x="30" y="80"/>
+ <line x="30" y="90"/>
+ <move x="50" y="45"/>
+ <line x="60" y="45"/>
+ <move x="0" y="85"/>
+ <line x="10" y="85"/>
+ <move x="0" y="75"/>
+ <line x="10" y="75"/>
+ <move x="0" y="65"/>
+ <line x="10" y="65"/>
+ <move x="0" y="55"/>
+ <line x="10" y="55"/>
+ <move x="0" y="45"/>
+ <line x="10" y="45"/>
+ <move x="0" y="35"/>
+ <line x="10" y="35"/>
+ <move x="0" y="25"/>
+ <line x="10" y="25"/>
+ <move x="0" y="15"/>
+ <line x="10" y="15"/>
+ <move x="0" y="5"/>
+ <line x="10" y="5"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Mux" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="90" name="Mux" strokewidth="inherit" w="60">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.055"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in3" perimeter="0" x="0.0" y="0.275"/>
- <constraint name="in4" perimeter="0" x="0.0" y="0.39"/>
- <constraint name="in5" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="in6" perimeter="0" x="0.0" y="0.61"/>
- <constraint name="in7" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="in8" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="in9" perimeter="0" x="0.0" y="0.945"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="control1" perimeter="0" x="0.415" y="1.0"/>
- <constraint name="control2" perimeter="0" x="0.585" y="1.0"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.055"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in3" perimeter="0" x="0" y="0.275"/>
+ <constraint name="in4" perimeter="0" x="0" y="0.39"/>
+ <constraint name="in5" perimeter="0" x="0" y="0.5"/>
+ <constraint name="in6" perimeter="0" x="0" y="0.61"/>
+ <constraint name="in7" perimeter="0" x="0" y="0.72"/>
+ <constraint name="in8" perimeter="0" x="0" y="0.835"/>
+ <constraint name="in9" perimeter="0" x="0" y="0.945"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ <constraint name="control1" perimeter="0" x="0.415" y="1"/>
+ <constraint name="control2" perimeter="0" x="0.585" y="1"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="70.0"/>
- <line x="10.0" y="90.0"/>
+ <move x="10" y="0"/>
+ <line x="50" y="20"/>
+ <line x="50" y="70"/>
+ <line x="10" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="25.0" y="82.5"/>
- <line x="25.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="45.0"/>
- <line x="60.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="85.0"/>
- <line x="10.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="10.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="65.0"/>
- <line x="10.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="55.0"/>
- <line x="10.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="10.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="10.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="10.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="15.0"/>
- <line x="10.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="10.0" y="5.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="77.5"/>
- <line x="35.0" y="90.0"/>
+ <move x="25" y="82.5"/>
+ <line x="25" y="90"/>
+ <move x="50" y="45"/>
+ <line x="60" y="45"/>
+ <move x="0" y="85"/>
+ <line x="10" y="85"/>
+ <move x="0" y="75"/>
+ <line x="10" y="75"/>
+ <move x="0" y="65"/>
+ <line x="10" y="65"/>
+ <move x="0" y="55"/>
+ <line x="10" y="55"/>
+ <move x="0" y="45"/>
+ <line x="10" y="45"/>
+ <move x="0" y="35"/>
+ <line x="10" y="35"/>
+ <move x="0" y="25"/>
+ <line x="10" y="25"/>
+ <move x="0" y="15"/>
+ <line x="10" y="15"/>
+ <move x="0" y="5"/>
+ <line x="10" y="5"/>
+ <move x="35" y="77.5"/>
+ <line x="35" y="90"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Operational Amp 1" strokewidth="inherit" w="98.0">
+ <shape aspect="variable" h="90" name="Operational Amp 1" strokewidth="inherit" w="98">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.612" y="0.11"/>
<constraint name="control2" perimeter="0" x="0.612" y="0.89"/>
</connections>
<background>
<path>
- <move x="5.0" y="0.0"/>
- <line x="98.0" y="45.0"/>
- <line x="5.0" y="90.0"/>
+ <move x="5" y="0"/>
+ <line x="98" y="45"/>
+ <line x="5" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="26.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="63.5"/>
- <line x="60.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="60" y="10"/>
+ <line x="60" y="26.5"/>
+ <move x="60" y="63.5"/>
+ <line x="60" y="80"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Operational Amp 2" strokewidth="inherit" w="98.0">
+ <shape aspect="variable" h="90" name="Operational Amp 2" strokewidth="inherit" w="98">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.408" y="0.05"/>
<constraint name="control2" perimeter="0" x="0.408" y="0.95"/>
<constraint name="out+" perimeter="0" x="0.815" y="0.292"/>
@@ -513,142 +383,88 @@
</connections>
<background>
<path>
- <move x="5.0" y="0.0"/>
- <line x="98.0" y="45.0"/>
- <line x="5.0" y="90.0"/>
+ <move x="5" y="0"/>
+ <line x="98" y="45"/>
+ <line x="5" y="90"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="26.5"/>
- <line x="60.0" y="26.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="63.5"/>
- <line x="80.0" y="63.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="5.0"/>
- <line x="40.0" y="17.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="80" y="26.5"/>
+ <line x="60" y="26.5"/>
+ <move x="60" y="63.5"/>
+ <line x="80" y="63.5"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
+ <move x="40" y="5"/>
+ <line x="40" y="17"/>
+ <move x="40" y="73"/>
+ <line x="40" y="85"/>
+ <move x="45" y="28"/>
+ <line x="51" y="28"/>
+ <move x="48" y="25"/>
+ <line x="48" y="31"/>
+ <move x="45" y="62"/>
+ <line x="51" y="62"/>
</path>
- <fillstroke/>
- <path>
- <move x="40.0" y="73.0"/>
- <line x="40.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="28.0"/>
- <line x="51.0" y="28.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.0" y="25.0"/>
- <line x="48.0" y="31.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="62.0"/>
- <line x="51.0" y="62.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="OTA 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="OTA 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.4" y="0.05"/>
<constraint name="control2" perimeter="0" x="0.4" y="0.95"/>
</connections>
<background>
<path>
- <move x="5.0" y="90.0"/>
- <line x="5.0" y="0.0"/>
- <line x="68.0" y="30.5"/>
- <line x="68.0" y="59.5"/>
+ <move x="5" y="90"/>
+ <line x="5" y="0"/>
+ <line x="68" y="30.5"/>
+ <line x="68" y="59.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="73.0"/>
- <line x="40.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="5.0"/>
- <line x="40.0" y="17.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="68" y="45"/>
+ <line x="100" y="45"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="40" y="73"/>
+ <line x="40" y="85"/>
+ <move x="40" y="5"/>
+ <line x="40" y="17"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="OTA 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="OTA 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in-" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in+" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in-" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in+" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
<constraint name="control1" perimeter="0" x="0.4" y="0.05"/>
<constraint name="control2" perimeter="0" x="0.4" y="0.95"/>
<constraint name="out+" perimeter="0" x="0.8" y="0.292"/>
@@ -656,253 +472,196 @@
</connections>
<background>
<path>
- <move x="5.0" y="90.0"/>
- <line x="5.0" y="0.0"/>
- <line x="68.0" y="30.5"/>
- <line x="68.0" y="59.5"/>
+ <move x="5" y="90"/>
+ <line x="5" y="0"/>
+ <line x="68" y="30.5"/>
+ <line x="68" y="59.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="15.0"/>
- <line x="5.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="15.0"/>
- <line x="14.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="75.0"/>
- <line x="14.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="72.0"/>
- <line x="11.0" y="78.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="5.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="62.0"/>
- <line x="51.0" y="62.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="28.0"/>
- <line x="51.0" y="28.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.0" y="25.0"/>
- <line x="48.0" y="31.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="63.5"/>
- <line x="80.0" y="63.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="26.5"/>
- <line x="60.0" y="26.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="73.0"/>
- <line x="40.0" y="85.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="5.0"/>
- <line x="40.0" y="17.0"/>
+ <move x="0" y="15"/>
+ <line x="5" y="15"/>
+ <move x="68" y="45"/>
+ <line x="100" y="45"/>
+ <move x="8" y="15"/>
+ <line x="14" y="15"/>
+ <move x="8" y="75"/>
+ <line x="14" y="75"/>
+ <move x="11" y="72"/>
+ <line x="11" y="78"/>
+ <move x="0" y="75"/>
+ <line x="5" y="75"/>
+ <move x="45" y="62"/>
+ <line x="51" y="62"/>
+ <move x="45" y="28"/>
+ <line x="51" y="28"/>
+ <move x="48" y="25"/>
+ <line x="48" y="31"/>
+ <move x="60" y="63.5"/>
+ <line x="80" y="63.5"/>
+ <move x="80" y="26.5"/>
+ <line x="60" y="26.5"/>
+ <move x="40" y="73"/>
+ <line x="40" y="85"/>
+ <move x="40" y="5"/>
+ <line x="40" y="17"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="OTA 3" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="OTA 3" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="5.0" y="90.0"/>
- <line x="5.0" y="0.0"/>
- <line x="68.0" y="30.5"/>
- <line x="68.0" y="59.5"/>
+ <move x="5" y="90"/>
+ <line x="5" y="0"/>
+ <line x="68" y="30.5"/>
+ <line x="68" y="59.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="5.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
+ <move x="0" y="45"/>
+ <line x="5" y="45"/>
+ <move x="68" y="45"/>
+ <line x="100" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Quantizer" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Quantizer" strokewidth="inherit" w="52">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="21.0" y="33.0"/>
- <line x="26.0" y="33.0"/>
- <line x="26.0" y="13.0"/>
- <line x="31.0" y="13.0"/>
+ <move x="21" y="33"/>
+ <line x="26" y="33"/>
+ <line x="26" y="13"/>
+ <line x="31" y="13"/>
+ <move x="21" y="23"/>
+ <line x="31" y="23"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="21.0" y="23.0"/>
- <line x="31.0" y="23.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Sum" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Sum" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="32.0" y="35.0"/>
- <line x="18.0" y="35.0"/>
- <line x="28.0" y="25.0"/>
- <line x="18.0" y="15.0"/>
- <line x="32.0" y="15.0"/>
+ <move x="32" y="35"/>
+ <line x="18" y="35"/>
+ <line x="28" y="25"/>
+ <line x="18" y="15"/>
+ <line x="32" y="15"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Summation Point" strokewidth="inherit" w="50.0">
+ <shape aspect="variable" h="50" name="Summation Point" strokewidth="inherit" w="50">
<connections>
- <constraint name="in2" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in2" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
+ <ellipse h="50" w="50" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="25.0" y="10.0"/>
- <line x="25.0" y="40.0"/>
+ <move x="25" y="10"/>
+ <line x="25" y="40"/>
+ <move x="10" y="25"/>
+ <line x="40" y="25"/>
</path>
- <fillstroke/>
- <path>
- <move x="10.0" y="25.0"/>
- <line x="40.0" y="25.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="94.25" name="Thermistor With Independent Integral Heater" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="94.25" name="Thermistor With Independent Integral Heater" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.48"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.48"/>
- <constraint name="v-" perimeter="0" x="0.435" y="1.0"/>
- <constraint name="v+" perimeter="0" x="0.625" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.48"/>
+ <constraint name="out" perimeter="0" x="1" y="0.48"/>
+ <constraint name="v-" perimeter="0" x="0.435" y="1"/>
+ <constraint name="v+" perimeter="0" x="0.625" y="1"/>
</connections>
<background>
- <ellipse h="80.0" w="80.0" x="10.0" y="5.0"/>
+ <ellipse h="80" w="80" x="10" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="18.0" y="45.0"/>
- <line x="22.0" y="35.0"/>
- <line x="30.0" y="55.0"/>
- <line x="38.0" y="35.0"/>
- <line x="46.0" y="55.0"/>
- <line x="54.0" y="35.0"/>
- <line x="62.0" y="55.0"/>
- <line x="70.0" y="35.0"/>
- <line x="78.0" y="55.0"/>
- <line x="82.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- <move x="0.0" y="85.0"/>
- <line x="15.0" y="85.0"/>
- <line x="23.5" y="75.0"/>
+ <move x="0" y="45"/>
+ <line x="18" y="45"/>
+ <line x="22" y="35"/>
+ <line x="30" y="55"/>
+ <line x="38" y="35"/>
+ <line x="46" y="55"/>
+ <line x="54" y="35"/>
+ <line x="62" y="55"/>
+ <line x="70" y="35"/>
+ <line x="78" y="55"/>
+ <line x="82" y="45"/>
+ <line x="100" y="45"/>
+ <move x="0" y="85"/>
+ <line x="15" y="85"/>
+ <line x="23.5" y="75"/>
<move x="43.5" y="93.5"/>
- <line x="44.0" y="84.75"/>
- <line x="53.75" y="73.0"/>
+ <line x="44" y="84.75"/>
+ <line x="53.75" y="73"/>
<line x="62.5" y="82.75"/>
<line x="62.75" y="94.25"/>
- <move x="87.0" y="0.0"/>
- <line x="75.3" y="14.0"/>
+ <move x="87" y="0"/>
+ <line x="75.3" y="14"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="58.0" name="Voltage Regulator" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="58" name="Voltage Regulator" strokewidth="inherit" w="70">
<connections>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="in" perimeter="0" x="0.0" y="0.395"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.395"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ <constraint name="in" perimeter="0" x="0" y="0.395"/>
+ <constraint name="out" perimeter="0" x="1" y="0.395"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="9.0" y="0.0"/>
+ <rect h="46" w="52" x="9" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="23.0"/>
- <line x="9.0" y="23.0"/>
+ <move x="0" y="23"/>
+ <line x="9" y="23"/>
+ <move x="35" y="58"/>
+ <line x="35" y="46"/>
+ <move x="61" y="23"/>
+ <line x="70" y="23"/>
</path>
- <fillstroke/>
- <path>
- <move x="35.0" y="58.0"/>
- <line x="35.0" y="46.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="23.0"/>
- <line x="70.0" y="23.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/capacitors.xml b/war/stencils/electrical/capacitors.xml
index 31066134..56d2c84a 100644
--- a/war/stencils/electrical/capacitors.xml
+++ b/war/stencils/electrical/capacitors.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.capacitors">
+<shapes name="mxgraph.electrical.capacitors">
<shape aspect="variable" h="60" name="Capacitor 1" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -8,778 +8,429 @@
<path>
<move x="0" y="30"/>
<line x="45" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="55" y="0"/>
<line x="55" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="45" y="0"/>
<line x="45" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="55" y="30"/>
<line x="100" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 3" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 3" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="60"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 4" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 4" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="42.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="58.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="0" y="30"/>
+ <line x="42" y="30"/>
+ <move x="58" y="30"/>
+ <line x="100" y="30"/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <rect h="60.0" w="3.0" x="42.0" y="0.0"/>
<stroke/>
- <restore/>
- <rect/>
+ <rect h="60" w="3" x="42" y="0"/>
<stroke/>
- <rect h="60.0" w="3.0" x="55.0" y="0.0"/>
+ <rect h="60" w="3" x="55" y="0"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 5" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 5" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Capacitor 6" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Capacitor 6" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="5.0"/>
- <line x="50.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="10.0"/>
- <line x="55.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="15.0"/>
- <line x="55.0" y="5.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="20.0"/>
- <line x="55.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="25.0"/>
- <line x="55.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="55.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="40.0"/>
- <line x="55.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="45.0"/>
- <line x="55.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="50.0"/>
- <line x="55.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="55.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="60.0"/>
- <line x="55.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="60.0"/>
- <line x="55.0" y="55.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
+ <move x="45" y="5"/>
+ <line x="50" y="0"/>
+ <move x="45" y="10"/>
+ <line x="55" y="0"/>
+ <move x="45" y="15"/>
+ <line x="55" y="5"/>
+ <move x="45" y="20"/>
+ <line x="55" y="10"/>
+ <move x="45" y="25"/>
+ <line x="55" y="15"/>
+ <move x="45" y="30"/>
+ <line x="55" y="20"/>
+ <move x="45" y="35"/>
+ <line x="55" y="25"/>
+ <move x="45" y="40"/>
+ <line x="55" y="30"/>
+ <move x="45" y="45"/>
+ <line x="55" y="35"/>
+ <move x="45" y="50"/>
+ <line x="55" y="40"/>
+ <move x="45" y="55"/>
+ <line x="55" y="45"/>
+ <move x="45" y="60"/>
+ <line x="55" y="50"/>
+ <move x="50" y="60"/>
+ <line x="55" y="55"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Differential Capacitor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Differential Capacitor" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.625"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.625"/>
- <constraint name="diff" perimeter="0" x="0.5" y="0.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.625"/>
+ <constraint name="out" perimeter="0" x="1" y="0.625"/>
+ <constraint name="diff" perimeter="0" x="0.5" y="0"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="50.0"/>
- <line x="45.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="20.0"/>
- <line x="55.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="20.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="50.0"/>
- <line x="100.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="80.0"/>
- <line x="70.0" y="20.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="30.0"/>
- <line x="70.0" y="20.0"/>
+ <move x="0" y="50"/>
+ <line x="45" y="50"/>
+ <move x="55" y="20"/>
+ <line x="55" y="80"/>
+ <move x="45" y="20"/>
+ <line x="45" y="80"/>
+ <move x="55" y="50"/>
+ <line x="100" y="50"/>
+ <move x="30" y="80"/>
+ <line x="70" y="20"/>
+ <move x="57" y="30"/>
+ <line x="70" y="20"/>
<line x="66.5" y="35.5"/>
- </path>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="80.0"/>
+ <move x="50" y="0"/>
+ <line x="50" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Feed Through Capacitor" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="100" name="Feed Through Capacitor" strokewidth="inherit" w="90">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="50.0"/>
- <line x="10.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="20.0"/>
- <line x="40.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="50.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="50.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="50.0"/>
- <line x="75.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="100.0"/>
+ <move x="0" y="50"/>
+ <line x="10" y="50"/>
+ <move x="50" y="20"/>
+ <line x="50" y="80"/>
+ <move x="40" y="20"/>
+ <line x="40" y="80"/>
+ <move x="50" y="50"/>
+ <line x="60" y="50"/>
+ <move x="15" y="50"/>
+ <line x="25" y="50"/>
+ <move x="30" y="50"/>
+ <line x="40" y="50"/>
+ <move x="65" y="50"/>
+ <line x="75" y="50"/>
+ <move x="80" y="50"/>
+ <line x="90" y="50"/>
+ <move x="45" y="0"/>
+ <line x="45" y="100"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Ganged Capacitor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Ganged Capacitor" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.23"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.77"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.23"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.77"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="100.0"/>
- <line x="45.0" y="100.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="70.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
+ <move x="0" y="100"/>
+ <line x="45" y="100"/>
+ <move x="45" y="70"/>
+ <line x="45" y="130"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
<line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- <path>
- <move x="57.0" y="80.0"/>
- <line x="70.0" y="70.0"/>
+ <move x="57" y="80"/>
+ <line x="70" y="70"/>
<line x="66.5" y="85.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="80.0"/>
- <line x="30.0" y="90.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="100.0"/>
- <line x="30.0" y="110.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="70.0"/>
- <line x="30.0" y="60.0"/>
- <line x="70.0" y="0.6"/>
- </path>
- <stroke/>
- <path>
- <move x="30.0" y="120.0"/>
- <line x="30.0" y="130.0"/>
- <line x="70.0" y="70.0"/>
+ <move x="30" y="80"/>
+ <line x="30" y="90"/>
+ <move x="30" y="100"/>
+ <line x="30" y="110"/>
+ <move x="30" y="70"/>
+ <line x="30" y="60"/>
+ <line x="70" y="0.6"/>
+ <move x="30" y="120"/>
+ <line x="30" y="130"/>
+ <line x="70" y="70"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Multiple Capacitor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Multiple Capacitor" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="65.0"/>
- <line x="45.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
+ <move x="0" y="65"/>
+ <line x="45" y="65"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="130"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Multiple Electrolytic Capacitor Comm Neg" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Multiple Electrolytic Capacitor Comm Neg" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="65.0"/>
- <line x="45.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="10.0"/>
- <line x="65.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="5.0"/>
- <line x="70.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="120.0"/>
- <line x="65.0" y="120.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="115.0"/>
- <line x="70.0" y="125.0"/>
+ <move x="0" y="65"/>
+ <line x="45" y="65"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="130"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
+ <move x="75" y="10"/>
+ <line x="65" y="10"/>
+ <move x="70" y="5"/>
+ <line x="70" y="15"/>
+ <move x="75" y="120"/>
+ <line x="65" y="120"/>
+ <move x="70" y="115"/>
+ <line x="70" y="125"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="130.0" name="Multiple Electrolytic Capacitor Comm Pos" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="130" name="Multiple Electrolytic Capacitor Comm Pos" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.23"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.77"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.23"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.77"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="65.0"/>
- <line x="45.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <line x="55.0" y="130.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="100.0"/>
- <line x="100.0" y="100.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="30.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="120.0"/>
- <line x="65.0" y="120.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="10.0"/>
- <line x="65.0" y="10.0"/>
+ <move x="0" y="65"/>
+ <line x="45" y="65"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="130"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="55" y="70"/>
+ <line x="55" y="130"/>
+ <move x="55" y="100"/>
+ <line x="100" y="100"/>
+ <move x="30" y="5"/>
+ <line x="30" y="15"/>
+ <move x="25" y="10"/>
+ <line x="35" y="10"/>
+ <move x="75" y="120"/>
+ <line x="65" y="120"/>
+ <move x="75" y="10"/>
+ <line x="65" y="10"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="65.5" name="Trimmer Capacitor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="65.5" name="Trimmer Capacitor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="35.5"/>
- <line x="45.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="5.5"/>
- <line x="55.0" y="65.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="5.5"/>
- <line x="45.0" y="65.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.2" y="0.0"/>
+ <move x="0" y="35.5"/>
+ <line x="45" y="35.5"/>
+ <move x="55" y="5.5"/>
+ <line x="55" y="65.5"/>
+ <move x="45" y="5.5"/>
+ <line x="45" y="65.5"/>
+ <move x="55" y="35.5"/>
+ <line x="100" y="35.5"/>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
<line x="78.2" y="10.5"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="65.5" name="Trimmer Capacitor 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="65.5" name="Trimmer Capacitor 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="35.5"/>
- <line x="45.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="5.5"/>
- <line x="45.0" y="65.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="5.5"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="65.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
<path>
- <move x="62.2" y="0.0"/>
+ <move x="0" y="35.5"/>
+ <line x="45" y="35.5"/>
+ <move x="45" y="5.5"/>
+ <line x="45" y="65.5"/>
+ <move x="55" y="35.5"/>
+ <line x="100" y="35.5"/>
+ <move x="65" y="5.5"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="65.5"/>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
<line x="78.2" y="10.5"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Variable Capacitor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Variable Capacitor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
<line x="66.5" y="15.5"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Variable Capacitor 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Variable Capacitor 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="45" y="0"/>
+ <line x="45" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="65" x-axis-rotation="0" y="60"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
<line x="66.5" y="15.5"/>
</path>
<stroke/>
diff --git a/war/stencils/electrical/diodes.xml b/war/stencils/electrical/diodes.xml
index 8a8c63bf..926ea018 100644
--- a/war/stencils/electrical/diodes.xml
+++ b/war/stencils/electrical/diodes.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.diodes">
+<shapes name="mxgraph.electrical.diodes">
<shape aspect="variable" h="60" name="Diode" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -10,472 +10,343 @@
<line x="70" y="30"/>
<line x="30" y="60"/>
<close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
<move x="0" y="30"/>
<line x="30" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="70" y="0"/>
<line x="70" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="70" y="30"/>
<line x="100" y="30"/>
</path>
+ </background>
+ <foreground>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Field Effect Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Field Effect Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
+ <move x="70" y="0"/>
+ <line x="70" y="60"/>
+ <move x="70" y="30"/>
+ <line x="100" y="30"/>
+ <move x="65" y="0"/>
+ <line x="75" y="0"/>
+ <move x="65" y="60"/>
+ <line x="75" y="60"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="0.0"/>
- <line x="70.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="65.0" y="60.0"/>
- <line x="75.0" y="60.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Four Layer Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Four Layer Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="40"/>
<close/>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="30" y="40"/>
+ <line x="30" y="70"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="80.0" w="80.0" x="10.0" y="0.0"/>
+ <ellipse h="80" w="80" x="10" y="0"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Gunn Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Gunn Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="90.0" y="60.0"/>
- <line x="90.0" y="0.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="10" y="0"/>
+ <line x="90" y="60"/>
+ <line x="90" y="0"/>
+ <line x="10" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="90" y="30"/>
+ <line x="100" y="30"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Schottky Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Schottky Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="60.0" y="5.0"/>
- <line x="60.0" y="0.0"/>
- <line x="70.0" y="0.0"/>
- <line x="70.0" y="60.0"/>
- <line x="80.0" y="60.0"/>
- <line x="80.0" y="55.0"/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
+ <move x="60" y="5"/>
+ <line x="60" y="0"/>
+ <line x="70" y="0"/>
+ <line x="70" y="60"/>
+ <line x="80" y="60"/>
+ <line x="80" y="55"/>
+ <move x="70" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Transorb 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Transorb 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="10.0" y="0.0"/>
- <line x="90.0" y="60.0"/>
- <line x="90.0" y="0.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="10" y="0"/>
+ <line x="90" y="60"/>
+ <line x="90" y="0"/>
+ <line x="10" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="50" y="0"/>
+ <line x="50" y="60"/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="90" y="30"/>
+ <line x="100" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Transorb 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Transorb 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="10.0" y="0.0"/>
- <line x="90.0" y="60.0"/>
- <line x="90.0" y="0.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="10" y="0"/>
+ <line x="90" y="60"/>
+ <line x="90" y="0"/>
+ <line x="10" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="40.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- <line x="50.0" y="50.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="40" y="0"/>
+ <line x="50" y="10"/>
+ <line x="50" y="50"/>
+ <line x="60" y="60"/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="90" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Tunnel Diode" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Tunnel Diode" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="60.0" y="0.0"/>
- <line x="70.0" y="0.0"/>
- <line x="70.0" y="60.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="60" y="0"/>
+ <line x="70" y="0"/>
+ <line x="70" y="60"/>
+ <line x="60" y="60"/>
+ <move x="70" y="30"/>
+ <line x="100" y="30"/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Tunnel Diode 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Tunnel Diode 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
</path>
<fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="80.0" w="80.0" x="10.0" y="0.0"/>
+ <ellipse h="80" w="80" x="10" y="0"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Varactor - Varicap" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Varactor - Varicap" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="30.0" y="0.0"/>
- <line x="70.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
+ <move x="30" y="0"/>
+ <line x="70" y="30"/>
+ <line x="30" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="75.0" y="0.0"/>
- <line x="75.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="30.0" y="30.0"/>
+ <move x="75" y="0"/>
+ <line x="75" y="60"/>
+ <move x="70" y="60"/>
+ <line x="70" y="0"/>
+ <move x="70" y="30"/>
+ <line x="100" y="30"/>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Zener Diode 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Zener Diode 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="25.0" y="0.0"/>
- <line x="75.0" y="25.0"/>
- <line x="25.0" y="50.0"/>
+ <move x="25" y="0"/>
+ <line x="75" y="25"/>
+ <line x="25" y="50"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- <line x="75.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
+ <move x="65" y="0"/>
+ <line x="75" y="0"/>
+ <line x="75" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="75" y="25"/>
+ <line x="100" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="25.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Zener Diode 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Zener Diode 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="25.0" y="0.0"/>
- <line x="75.0" y="25.0"/>
- <line x="25.0" y="50.0"/>
+ <move x="25" y="0"/>
+ <line x="75" y="25"/>
+ <line x="25" y="50"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- <line x="75.0" y="50.0"/>
+ <move x="65" y="0"/>
+ <line x="75" y="0"/>
+ <line x="75" y="50"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="75" y="25"/>
+ <line x="100" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="25.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Zener Diode 3" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Zener Diode 3" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="25.0" y="0.0"/>
- <line x="75.0" y="25.0"/>
- <line x="25.0" y="50.0"/>
+ <move x="25" y="0"/>
+ <line x="75" y="25"/>
+ <line x="25" y="50"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <line x="75.0" y="10.0"/>
- <line x="75.0" y="40.0"/>
- <line x="85.0" y="50.0"/>
+ <move x="65" y="0"/>
+ <line x="75" y="10"/>
+ <line x="75" y="40"/>
+ <line x="85" y="50"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="75" y="25"/>
+ <line x="100" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="25.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/electro-mechanical.xml b/war/stencils/electrical/electro-mechanical.xml
index 499c0a52..a7e8fc6a 100644
--- a/war/stencils/electrical/electro-mechanical.xml
+++ b/war/stencils/electrical/electro-mechanical.xml
@@ -1,512 +1,1669 @@
-<shapes name="mxGraph.electrical.electro-mechanical">
- <shape aspect="variable" h="26" name="2-Way Switch" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.885"/>
- <constraint name="out1" perimeter="0" x="1" y="0.115"/>
- <constraint name="out2" perimeter="0" x="1" y="0.885"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="23"/>
- <line x="15" y="23"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60" y="23"/>
- <line x="75" y="23"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="20"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="15" y="20"/>
- <fillstroke/>
- <path>
- <move x="21" y="22"/>
- <line x="57" y="7"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60" y="3"/>
- <line x="75" y="3"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60" name="Buzzer" strokewidth="inherit" w="45">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="1" y="0.335"/>
- <constraint name="out2" perimeter="0" x="1" y="0.665"/>
- </connections>
- <background>
- <path>
- <move x="0" y="0"/>
- <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="0" x-axis-rotation="0" y="60"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="28" y="20"/>
- <line x="45" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="28" y="40"/>
- <line x="45" y="40"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50" name="Loudspeaker" strokewidth="inherit" w="25">
- <connections>
- <constraint name="in1" perimeter="0" x="0" y="0.4"/>
- <constraint name="in2" perimeter="0" x="0" y="0.6"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="25" y="50"/>
- <line x="25" y="0"/>
- <line x="15" y="15"/>
- <line x="10" y="15"/>
- <line x="10" y="35"/>
- <line x="15" y="35"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0" y="30"/>
- <line x="10" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0" y="20"/>
- <line x="10" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15" y="15"/>
- <line x="15" y="35"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60" name="Motor 1" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <ellipse h="60" w="60" x="20" y="0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0" y="30"/>
- <line x="20" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80" y="30"/>
- <line x="100" y="30"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.09" name="Motor 2" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="15" y="20.04"/>
- <line x="21.7" y="20.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="20.04"/>
- <line x="85" y="20.04"/>
- <line x="85" y="40.04"/>
- <line x="78.3" y="40.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="21.7" x-axis-rotation="0" y="40.04"/>
- <line x="15" y="40.04"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0" y="30.04"/>
- <line x="15" y="30.04"/>
- </path>
- <fillstroke/>
- <path>
- <move x="85" y="30.04"/>
- <line x="100" y="30.04"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="21.7" y="20.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="0" x="21.7" x-axis-rotation="0" y="40.04"/>
- </path>
- <stroke/>
- <path>
- <move x="78.3" y="20.04"/>
- <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="40.04"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40" name="Piezo Sounder" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <rect h="40" w="14" x="43" y="0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0" y="20"/>
- <line x="39" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="20"/>
- <line x="100" y="20"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39" y="0"/>
- <line x="39" y="40"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="0"/>
- <line x="61" y="40"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="10" name="Push Switch NC" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.6"/>
- <constraint name="out" perimeter="0" x="1" y="0.6"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="6"/>
- <line x="17" y="6"/>
- </path>
- <fillstroke/>
- <path>
- <move x="58" y="6"/>
- <line x="75" y="6"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="3"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="17" y="3"/>
- <fillstroke/>
- <path>
- <move x="18" y="10"/>
- <line x="59" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="37.5" y="0"/>
- <line x="37.5" y="10"/>
- </path>
- <stroke/>
- <path>
- <move x="35" y="0"/>
- <line x="40" y="0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="19" name="Push Switch NO" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.84"/>
- <constraint name="out" perimeter="0" x="1" y="0.84"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="16"/>
- <line x="17" y="16"/>
- </path>
- <fillstroke/>
- <path>
- <move x="58" y="16"/>
- <line x="75" y="16"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="13"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="17" y="13"/>
- <fillstroke/>
- <path>
- <move x="18" y="10"/>
- <line x="59" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="37.5" y="0"/>
- <line x="37.5" y="10"/>
- </path>
- <stroke/>
- <path>
- <move x="35" y="0"/>
- <line x="40" y="0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20" name="Reed Switch" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <roundrect arcsize="50" h="20" w="48" x="13.5" y="0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="49" y="10"/>
- <line x="75" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0" y="10"/>
- <line x="26" y="10"/>
- <line x="49" y="5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="100" name="Relay Changeover Contact" strokewidth="inherit" w="50">
- <connections>
- <constraint name="in" perimeter="0" x="0.5" y="1"/>
- <constraint name="out1" perimeter="0" x="0.1" y="0"/>
- <constraint name="out2" perimeter="0" x="0.9" y="0"/>
- </connections>
- <foreground>
- <path>
- <move x="45" y="0"/>
- <line x="45" y="17"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25" y="83"/>
- <line x="25" y="100"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="20" y="73"/>
- <fillstroke/>
- <ellipse h="10" w="10" x="40" y="17"/>
- <fillstroke/>
- <path>
- <move x="5" y="0"/>
- <line x="5" y="17"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="17"/>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="40" y="25"/>
- <line x="27" y="73.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50" name="Relay Coil" strokewidth="inherit" w="99">
- <connections>
- <constraint name="in" perimeter="0" x="0.5" y="0"/>
- <constraint name="out" perimeter="0" x="0.5" y="1"/>
- </connections>
- <background>
- <rect h="30" w="99" x="0" y="10"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="49.5" y="0"/>
- <line x="49.5" y="10"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.5" y="40"/>
- <line x="49.5" y="50"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="100" name="Relay Contact NC" strokewidth="inherit" w="10">
- <connections>
- <constraint name="in" perimeter="0" x="0.5" y="0"/>
- <constraint name="out" perimeter="0" x="0.5" y="1"/>
- </connections>
- <foreground>
- <path>
- <move x="5" y="0"/>
- <line x="5" y="17"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5" y="83"/>
- <line x="5" y="100"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="73"/>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="17"/>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="10" y="24"/>
- <line x="7" y="73.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="100" name="Relay Contact NO" strokewidth="inherit" w="20">
- <connections>
- <constraint name="in" perimeter="0" x="0.25" y="0"/>
- <constraint name="out" perimeter="0" x="0.25" y="1"/>
- </connections>
- <foreground>
- <path>
- <move x="5" y="0"/>
- <line x="5" y="17"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5" y="83"/>
- <line x="5" y="100"/>
- </path>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="73"/>
- <fillstroke/>
- <ellipse h="10" w="10" x="0" y="17"/>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20" y="26.5"/>
- <line x="7" y="73.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="fixed" h="5" name="Relay Pole" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="2.5"/>
- <line x="20" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40" y="2.5"/>
- <line x="60" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80" y="2.5"/>
- <line x="100" y="2.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50" name="Resonator" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.6"/>
- <constraint name="out" perimeter="0" x="1" y="0.6"/>
- <constraint name="control" perimeter="0" x="0.5" y="0"/>
- </connections>
- <background>
- <path>
- <move x="50" y="0"/>
- <line x="50" y="10"/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <rect h="40" w="14" x="43" y="10"/>
- <fillstroke/>
- <path>
- <move x="0" y="30"/>
- <line x="39" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="30"/>
- <line x="100" y="30"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39" y="10"/>
- <line x="39" y="50"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61" y="10"/>
- <line x="61" y="50"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="32" name="Simple Switch" strokewidth="inherit" w="75">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="16"/>
- <line x="15" y="16"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60" y="16"/>
- <line x="75" y="16"/>
- </path>
- <fillstroke/>
- <ellipse h="6" w="6" x="54" y="13"/>
- <fillstroke/>
- <ellipse h="6" w="6" x="15" y="13"/>
- <fillstroke/>
- <path>
- <move x="21" y="15"/>
- <line x="57" y="0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="fixed" h="16" name="Switch Contact" strokewidth="inherit" w="16">
- <connections>
- <constraint name="W" perimeter="0" x="0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1" y="0.5"/>
- </connections>
- <background>
- <ellipse h="16" w="16" x="0" y="0"/>
- </background>
- <foreground>
- <strokewidth width="2"/>
- <fillstroke/>
- </foreground>
- </shape>
+<shapes name="mxgraph.electrical.electro-mechanical">
+<shape aspect="variable" h="26" name="2-Way Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.885"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.115"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.885"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="23"/>
+ <line x="15" y="23"/>
+ <move x="60" y="23"/>
+ <line x="75" y="23"/>
+ <move x="21" y="22"/>
+ <line x="57" y="7"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="2 Position Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="35"/>
+ <line x="15" y="35"/>
+ <move x="60" y="35"/>
+ <line x="75" y="35"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="12.5"/>
+ <move x="37.5" y="57.5"/>
+ <line x="37.5" y="70"/>
+ <move x="33.5" y="43"/>
+ <line x="45.5" y="31.2"/>
+ <move x="29.5" y="38.8"/>
+ <line x="41.5" y="26.8"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="12.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="51.5"/>
+ <fillstroke/>
+ <path>
+ <move x="18" y="35"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="1" x="37.5" x-axis-rotation="0" y="54.5"/>
+ <move x="37.5" y="15.5"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="0" x="57" x-axis-rotation="0" y="35"/>
+ <move x="47.5" y="10"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="62.5" x-axis-rotation="0" y="25"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="47.5" y="7"/>
+ <line x="42" y="10"/>
+ <line x="47.5" y="13"/>
+ <close/>
+ <move x="59.5" y="25"/>
+ <line x="65.5" y="25"/>
+ <line x="62.5" y="30.5"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="3 Position Switch" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="60"/>
+ <line x="12.7" y="49.5"/>
+ <move x="47.3" y="49.5"/>
+ <line x="60" y="60"/>
+ <move x="30" y="0"/>
+ <line x="30" y="12.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="42" y="44.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="12" y="44.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="27" y="12.5"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="15.5"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="1" x="15" x-axis-rotation="0" y="47.5"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="20.57" y="17.75"/>
+ <line x="23.3" y="12.12"/>
+ <line x="17.08" y="12.87"/>
+ <close/>
+ <move x="4.48" y="37.75"/>
+ <line x="10.4" y="36.77"/>
+ <line x="8.34" y="42.69"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <strokecolor color="#000000"/>
+ <path>
+ <move x="7.5" y="38"/>
+ <arc large-arc-flag="0" rx="22.5" ry="22.5" sweep-flag="1" x="19.5" x-axis-rotation="0" y="15"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="4 Position Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="35"/>
+ <line x="15" y="35"/>
+ <move x="60" y="35"/>
+ <line x="75" y="35"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="12.5"/>
+ <move x="37.5" y="57.5"/>
+ <line x="37.5" y="70"/>
+ <move x="23.82" y="48.9"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="1" x="51.4" x-axis-rotation="-45.47" y="48.68"/>
+ <move x="23.6" y="21.32"/>
+ <arc large-arc-flag="0" rx="19.5" ry="19.5" sweep-flag="0" x="51.18" x-axis-rotation="-45.47" y="21.1"/>
+ <move x="27.5" y="10"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="0" x="12.5" x-axis-rotation="0" y="25"/>
+ <move x="40.4" y="43.46"/>
+ <line x="40.4" y="26.63"/>
+ <move x="34.6" y="43.37"/>
+ <line x="34.46" y="26.4"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="32"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="12.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="34.5" y="51.5"/>
+ <fillstroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="27.5" y="7"/>
+ <line x="33" y="10"/>
+ <line x="27.5" y="13"/>
+ <close/>
+ <move x="15.5" y="25"/>
+ <line x="9.5" y="25"/>
+ <line x="12.5" y="30.5"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="18" y="35"/>
+ <line x="57" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Bell" strokewidth="inherit" w="47">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="17" y="0"/>
+ <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="17" x-axis-rotation="0" y="60"/>
+ <close/>
+ <move x="0" y="30"/>
+ <line x="17" y="30"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Break Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18.5" y="10"/>
+ <line x="55" y="3"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <line x="75" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Buzzer" strokewidth="inherit" w="45">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.335"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.665"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="0" x-axis-rotation="0" y="60"/>
+ <close/>
+ <move x="28" y="20"/>
+ <line x="45" y="20"/>
+ <move x="28" y="40"/>
+ <line x="45" y="40"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Changeover Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="20"/>
+ <line x="75" y="20"/>
+ <move x="0" y="20"/>
+ <line x="18.5" y="20"/>
+ <line x="57" y="4"/>
+ <move x="75" y="0"/>
+ <line x="50" y="0"/>
+ <line x="50" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Circuit Breaker" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.8"/>
+ <constraint name="E" perimeter="0" x="1" y="0.8"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="56" y="12"/>
+ <line x="64" y="20"/>
+ <move x="64" y="12"/>
+ <line x="56" y="20"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="DPDT" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.28"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.28"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.905"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.905"/>
+ </connections>
+ <foreground>
+ <ellipse h="6" w="6" x="54" y="6"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="6"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="26"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="26"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="32.75" y="25.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="32.75" y="5.5"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="9"/>
+ <line x="15" y="9"/>
+ <move x="0" y="29"/>
+ <line x="15" y="29"/>
+ <move x="60" y="9"/>
+ <line x="75" y="9"/>
+ <move x="60" y="29"/>
+ <line x="75" y="29"/>
+ <move x="38" y="7"/>
+ <line x="57" y="0"/>
+ <move x="38" y="27"/>
+ <line x="57" y="20"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="47" y="4"/>
+ <line x="47" y="24"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="26" name="DPST" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.115"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.885"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.115"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.885"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="75" y="3"/>
+ <move x="0" y="23"/>
+ <line x="75" y="23"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="20"/>
+ <fillstroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="3"/>
+ <line x="37" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Flow Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.095"/>
+ <constraint name="E" perimeter="0" x="1" y="0.095"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="37" y="10.5"/>
+ <line x="37" y="31"/>
+ <line x="45" y="31"/>
+ <line x="37" y="20"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="16" name="Fuse" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="26" y="9"/>
+ <line x="29" y="15.5"/>
+ <line x="45.2" y="8.8"/>
+ <line x="42.2" y="2.4"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Gas Flow Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="32"/>
+ <line x="75" y="32"/>
+ <move x="0" y="32"/>
+ <line x="18.5" y="32"/>
+ <line x="57" y="16"/>
+ </path>
+ <stroke/>
+ <rect h="12" w="12" x="31" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="40" y="10"/>
+ <line x="40" y="3"/>
+ <line x="34" y="3"/>
+ <line x="34" y="8"/>
+ <line x="40" y="8"/>
+ </path>
+ <stroke/>
+ <ellipse h="2" w="2" x="35" y="5"/>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="24.5"/>
+ <line x="37" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Inertia Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.84"/>
+ <constraint name="E" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="15" y="16"/>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="21" y="15"/>
+ <line x="57" y="0"/>
+ <move x="32" y="5"/>
+ <line x="37" y="5"/>
+ <line x="37" y="8.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="26" y="2"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Isolator" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.8"/>
+ <constraint name="E" perimeter="0" x="1" y="0.8"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ <move x="60" y="12"/>
+ <line x="60" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="16" name="Limit Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="43" y="6"/>
+ <line x="41" y="1"/>
+ <line x="35" y="9.2"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="13" name="Limit Switch NC" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.31"/>
+ <constraint name="E" perimeter="0" x="1" y="0.31"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="57" y="0"/>
+ <line x="18" y="4"/>
+ <line x="46" y="13"/>
+ <line x="54" y="0.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24.3" name="Limit Switch NO" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.12"/>
+ <constraint name="E" perimeter="0" x="1" y="0.12"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="54.2" y="17.9"/>
+ <line x="18" y="3"/>
+ <line x="38.5" y="24.3"/>
+ <line x="51.5" y="17.1"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="28" name="Liquid Level Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.14"/>
+ <constraint name="E" perimeter="0" x="1" y="0.14"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="21" y="3"/>
+ <line x="57" y="0"/>
+ <move x="37" y="2"/>
+ <line x="37" y="20"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ <ellipse h="8" w="8" x="33" y="20"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Liquid Level Actuated 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="32"/>
+ <line x="75" y="32"/>
+ <move x="0" y="32"/>
+ <line x="18.5" y="32"/>
+ <line x="57" y="16"/>
+ </path>
+ <stroke/>
+ <rect h="12" w="12" x="31" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="34" y="8"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="40" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="34" x-axis-rotation="0" y="8"/>
+ <close/>
+ <move x="37" y="4"/>
+ <line x="37" y="6.5"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="24.5"/>
+ <line x="37" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Loudspeaker" strokewidth="inherit" w="25">
+ <connections>
+ <constraint name="W1" perimeter="0" x="0" y="0.4"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.6"/>
+ </connections>
+ <background>
+ <path>
+ <move x="25" y="50"/>
+ <line x="25" y="0"/>
+ <line x="15" y="15"/>
+ <line x="10" y="15"/>
+ <line x="10" y="35"/>
+ <line x="15" y="35"/>
+ <close/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="0" y="20"/>
+ <line x="10" y="20"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="15" y="15"/>
+ <line x="15" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="16" name="Make Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="18" name="Manual Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="18"/>
+ <line x="75" y="18"/>
+ <move x="31" y="0"/>
+ <line x="43" y="0"/>
+ <move x="0" y="18"/>
+ <line x="18.5" y="18"/>
+ <line x="57" y="2"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="37" y="10.5"/>
+ <line x="37" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="Mercury Switch" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="40" y="0"/>
+ <line x="40" y="80"/>
+ <move x="23" y="48"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="15" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="23" x-axis-rotation="0" y="32"/>
+ <line x="57" y="32"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="65" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="57" x-axis-rotation="0" y="48"/>
+ <close/>
+ </path>
+ <stroke/>
+ <ellipse h="8" w="8" x="0" y="0"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="72" y="0"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="72" y="72"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="0" y="72"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Mercury Switch 2" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0.1" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.9" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.1" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.9" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="25" y="5"/>
+ <line x="25" y="85"/>
+ <move x="8" y="53"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="0" x-axis-rotation="0" y="45"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="8" x-axis-rotation="0" y="37"/>
+ <line x="42" y="37"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="45"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="42" x-axis-rotation="0" y="53"/>
+ <close/>
+ <move x="5" y="0"/>
+ <line x="5" y="19"/>
+ <move x="45" y="0"/>
+ <line x="45" y="19"/>
+ <move x="45" y="71"/>
+ <line x="45" y="90"/>
+ <move x="5" y="71"/>
+ <line x="5" y="90"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Motor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="20" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ <fontsize size="30"/>
+ <fontstyle style="0"/>
+ <fontcolor color="#000000"/>
+ <text align="center" str="M" valign="bottom" x="50" y="45"/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60.09" name="Motor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="15" y="20.04"/>
+ <line x="21.7" y="20.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="20.04"/>
+ <line x="85" y="20.04"/>
+ <line x="85" y="40.04"/>
+ <line x="78.3" y="40.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="21.7" x-axis-rotation="0" y="40.04"/>
+ <line x="15" y="40.04"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30.04"/>
+ <line x="15" y="30.04"/>
+ <move x="85" y="30.04"/>
+ <line x="100" y="30.04"/>
+ <move x="21.7" y="20.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="0" x="21.7" x-axis-rotation="0" y="40.04"/>
+ <move x="78.3" y="20.04"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="78.3" x-axis-rotation="0" y="40.04"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23" name="Passing Make Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.7"/>
+ <constraint name="E" perimeter="0" x="1" y="0.7"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ <move x="75" y="16"/>
+ <line x="58" y="16"/>
+ <line x="70" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Piezo Sounder" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="20"/>
+ <line x="39" y="20"/>
+ <move x="61" y="20"/>
+ <line x="100" y="20"/>
+ <move x="39" y="0"/>
+ <line x="39" y="40"/>
+ <move x="61" y="0"/>
+ <line x="61" y="40"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <rect h="40" w="14" x="43" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Pilot Light" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0.15"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0.85"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.18" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.82" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.18" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.82" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="100" y="50"/>
+ <move x="18" y="0"/>
+ <line x="82" y="100"/>
+ <move x="82" y="0"/>
+ <line x="18" y="100"/>
+ </path>
+ <stroke/>
+ <ellipse h="70" w="70" x="15" y="15"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Pressure Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ <move x="37" y="10.5"/>
+ <line x="37" y="23"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="29" y="31"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="31"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="55" name="Proximity Limit Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="27.5"/>
+ <line x="15" y="27.5"/>
+ <move x="60" y="27.5"/>
+ <line x="75" y="27.5"/>
+ <move x="57" y="23.5"/>
+ <line x="18" y="27.5"/>
+ <line x="46" y="36.5"/>
+ <line x="54" y="24"/>
+ <move x="10" y="27.5"/>
+ <line x="37.5" y="0"/>
+ <line x="65" y="27.5"/>
+ <line x="37.5" y="55"/>
+ <close/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="24.5"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="24.5"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="73" name="Pushbutton 2 Circuit" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.685"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.96"/>
+ <constraint name="E" perimeter="0" x="1" y="0.685"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.96"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="60" y="50"/>
+ <line x="75" y="50"/>
+ <move x="18" y="54"/>
+ <line x="57" y="54"/>
+ <move x="37" y="0"/>
+ <line x="37" y="54"/>
+ <move x="60" y="70"/>
+ <line x="75" y="70"/>
+ <move x="0" y="70"/>
+ <line x="15" y="70"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="67"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="67"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="54" name="Pushbutton Break" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.925"/>
+ <constraint name="E" perimeter="0" x="1" y="0.925"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="60" y="50"/>
+ <line x="75" y="50"/>
+ <move x="18" y="54"/>
+ <line x="57" y="54"/>
+ <move x="37" y="0"/>
+ <line x="37" y="54"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="47"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="53" name="Pushbutton Make" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.945"/>
+ <constraint name="E" perimeter="0" x="1" y="0.945"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="60" y="50"/>
+ <line x="75" y="50"/>
+ <move x="18" y="42"/>
+ <line x="57" y="42"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="42"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="47"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="47"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Push Switch NC" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.6"/>
+ <constraint name="E" perimeter="0" x="1" y="0.6"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="6"/>
+ <line x="17" y="6"/>
+ <move x="58" y="6"/>
+ <line x="75" y="6"/>
+ <move x="18" y="10"/>
+ <line x="59" y="10"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="10"/>
+ <move x="35" y="0"/>
+ <line x="40" y="0"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="3"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="17" y="3"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Push Switch NO" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.84"/>
+ <constraint name="out" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="17" y="16"/>
+ <move x="58" y="16"/>
+ <line x="75" y="16"/>
+ <move x="18" y="10"/>
+ <line x="59" y="10"/>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="10"/>
+ <move x="35" y="0"/>
+ <line x="40" y="0"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="17" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Reed Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <roundrect arcsize="50" h="20" w="48" x="13.5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="49" y="10"/>
+ <line x="75" y="10"/>
+ <move x="0" y="10"/>
+ <line x="26" y="10"/>
+ <line x="49" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Relay" strokewidth="inherit" w="99">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="30" w="99" x="0" y="10"/>
+ <fillstroke/>
+ <path>
+ <move x="49.5" y="0"/>
+ <line x="49.5" y="10"/>
+ <move x="49.5" y="40"/>
+ <line x="49.5" y="50"/>
+ <move x="25.5" y="10"/>
+ <line x="25.5" y="40"/>
+ <move x="5.5" y="22"/>
+ <arc large-arc-flag="0" rx="4" ry="9" sweep-flag="1" x="12.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="4" ry="9" sweep-flag="0" x="19.5" x-axis-rotation="0" y="28"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Relay Changeover Contact" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="1"/>
+ <constraint name="out1" perimeter="0" x="0.1" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.9" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="45" y="0"/>
+ <line x="45" y="17"/>
+ <move x="25" y="83"/>
+ <line x="25" y="100"/>
+ <move x="5" y="0"/>
+ <line x="5" y="17"/>
+ <move x="40" y="25"/>
+ <line x="27" y="73.5"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="20" y="73"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="40" y="17"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="17"/>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Relay Coil" strokewidth="inherit" w="99">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <rect h="30" w="99" x="0" y="10"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="49.5" y="0"/>
+ <line x="49.5" y="10"/>
+ <move x="49.5" y="40"/>
+ <line x="49.5" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Relay Coil 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="70" w="70" x="15" y="0"/>
+ <stroke/>
+ <path>
+ <move x="0" y="35"/>
+ <line x="15" y="35"/>
+ <move x="85" y="35"/>
+ <line x="100" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="Relay Contacts" strokewidth="inherit" w="30">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="24"/>
+ <move x="20" y="0"/>
+ <line x="20" y="24"/>
+ <move x="20" y="12"/>
+ <line x="30" y="12"/>
+ <move x="10" y="12"/>
+ <line x="0" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Relay Contact NC" strokewidth="inherit" w="10">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="5" y="0"/>
+ <line x="5" y="17"/>
+ <move x="5" y="83"/>
+ <line x="5" y="100"/>
+ <move x="10" y="24"/>
+ <line x="7" y="73.5"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="73"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="17"/>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Relay Contact NO" strokewidth="inherit" w="20">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.25" y="0"/>
+ <constraint name="out" perimeter="0" x="0.25" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="5" y="0"/>
+ <line x="5" y="17"/>
+ <move x="5" y="83"/>
+ <line x="5" y="100"/>
+ <move x="20" y="26.5"/>
+ <line x="7" y="73.5"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="73"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="17"/>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ </foreground>
+</shape>
+<shape aspect="fixed" h="5" name="Relay Pole" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="2.5"/>
+ <line x="20" y="2.5"/>
+ <move x="40" y="2.5"/>
+ <line x="60" y="2.5"/>
+ <move x="80" y="2.5"/>
+ <line x="100" y="2.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Resonator" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.6"/>
+ <constraint name="out" perimeter="0" x="1" y="0.6"/>
+ <constraint name="control" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="0" y="30"/>
+ <line x="39" y="30"/>
+ <move x="61" y="30"/>
+ <line x="100" y="30"/>
+ <move x="39" y="10"/>
+ <line x="39" y="50"/>
+ <move x="61" y="10"/>
+ <line x="61" y="50"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <rect h="40" w="14" x="43" y="10"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="37" name="Safety Interlock" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.405"/>
+ <constraint name="E" perimeter="0" x="1" y="0.405"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="15"/>
+ <line x="15" y="15"/>
+ <move x="60" y="15"/>
+ <line x="75" y="15"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="12"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="12"/>
+ <fillstroke/>
+ <path>
+ <move x="19" y="0"/>
+ <line x="56" y="0"/>
+ <line x="37.5" y="37"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="66" name="Selector Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.045"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.35"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.65"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.955"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="33"/>
+ <line x="15" y="33"/>
+ <move x="60" y="43"/>
+ <line x="75" y="43"/>
+ <move x="60" y="23"/>
+ <line x="75" y="23"/>
+ <move x="51" y="3"/>
+ <line x="75" y="3"/>
+ <move x="51" y="63"/>
+ <line x="75" y="63"/>
+ <move x="18" y="33"/>
+ <line x="47" y="4"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="40"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="60"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="30"/>
+ <fillstroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="40.67" y="6.33"/>
+ <line x="47" y="4"/>
+ <line x="45" y="10"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="66" name="Shorting Selector" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.85" y="0.045"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.35"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.65"/>
+ <constraint name="SE" perimeter="0" x="0.85" y="0.955"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="33"/>
+ <line x="15" y="33"/>
+ <move x="18" y="33"/>
+ <line x="43" y="8"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="40"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="54" y="20"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="45" y="60"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="30"/>
+ <fillstroke/>
+ <path>
+ <move x="37" y="6"/>
+ <line x="37" y="3"/>
+ <arc large-arc-flag="0" rx="12" ry="12" sweep-flag="1" x="49" x-axis-rotation="0" y="12"/>
+ <line x="46" y="13"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="37" x-axis-rotation="0" y="6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Simple Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.84"/>
+ <constraint name="out" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="15" y="16"/>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="21" y="15"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Spring Return" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="18.5" y="0"/>
+ <line x="57" y="10"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="75" y="0"/>
+ <line x="47" y="0"/>
+ <line x="52" y="8"/>
+ <line x="57" y="0"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Spring Return 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.845"/>
+ <constraint name="E" perimeter="0" x="1" y="0.845"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="75" y="16"/>
+ <line x="47" y="16"/>
+ <line x="52" y="8"/>
+ <line x="57" y="16"/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="15.5" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="7" name="Stay Put" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.43"/>
+ <constraint name="E" perimeter="0" x="1" y="0.43"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="7"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="fixed" h="16" name="Switch Contact" strokewidth="inherit" w="16">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="16" w="16" x="0" y="0"/>
+ </background>
+ <foreground>
+ <strokewidth width="2"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="19" name="Switch Disconnector" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.845"/>
+ <constraint name="E" perimeter="0" x="1" y="0.845"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="60" y="13"/>
+ <line x="60" y="19"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="13"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Temperature Actuated" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ <move x="37" y="31"/>
+ <line x="37" y="25"/>
+ <line x="42" y="25"/>
+ <line x="42" y="20"/>
+ <line x="37" y="20"/>
+ <line x="37" y="10.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="18" name="Temperature Switch" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="4" w="8" x="32" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="60" y="18"/>
+ <line x="75" y="18"/>
+ <move x="36" y="0"/>
+ <line x="36" y="4"/>
+ <move x="0" y="18"/>
+ <line x="18.5" y="18"/>
+ <line x="57" y="2"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="7" name="Thermostat" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.57"/>
+ <constraint name="E" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="21" y="3"/>
+ <line x="57" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Time Delay Break" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.125"/>
+ <constraint name="E" perimeter="0" x="1" y="0.125"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="4"/>
+ <line x="15" y="4"/>
+ <move x="60" y="4"/>
+ <line x="75" y="4"/>
+ <move x="21" y="3"/>
+ <line x="57" y="0"/>
+ <move x="32" y="32"/>
+ <line x="37" y="26"/>
+ <line x="42" y="32"/>
+ <move x="37" y="26"/>
+ <line x="37" y="2"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="1"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="1"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Time Delay Break 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.33"/>
+ <constraint name="E" perimeter="0" x="1" y="0.33"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="30" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="30"/>
+ <move x="40" y="25"/>
+ <line x="40" y="6"/>
+ <move x="35" y="25"/>
+ <line x="35" y="7"/>
+ <move x="0" y="10"/>
+ <line x="18.5" y="10"/>
+ <line x="55" y="3"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <line x="75" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="31" name="Time Delay Make" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="15" y="3"/>
+ <move x="60" y="3"/>
+ <line x="75" y="3"/>
+ <move x="21" y="4"/>
+ <line x="57" y="19"/>
+ <move x="32" y="31"/>
+ <line x="37" y="25"/>
+ <line x="42" y="31"/>
+ <move x="37" y="25"/>
+ <line x="37" y="10.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="54" y="0"/>
+ <fillstroke/>
+ <ellipse h="6" w="6" x="15" y="0"/>
+ <fillstroke/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="36" name="Time Delay Make 2" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.445"/>
+ <constraint name="E" perimeter="0" x="1" y="0.445"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="16"/>
+ <line x="75" y="16"/>
+ <move x="0" y="16"/>
+ <line x="18.5" y="16"/>
+ <line x="57" y="0"/>
+ <move x="30" y="36"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="36"/>
+ <move x="40" y="31"/>
+ <line x="40" y="7"/>
+ <move x="35" y="31"/>
+ <line x="35" y="9"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Two Way Contact" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="0"/>
+ <line x="75" y="0"/>
+ <move x="50" y="30"/>
+ <line x="75" y="30"/>
+ <move x="0" y="15"/>
+ <line x="50" y="15"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="15.5" y="12"/>
+ <fillstroke/>
+ <stroke/>
+ </foreground>
+</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/iec417.xml b/war/stencils/electrical/iec417.xml
index d84529d1..1120c63e 100644
--- a/war/stencils/electrical/iec417.xml
+++ b/war/stencils/electrical/iec417.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.iec417">
+<shapes name="mxgraph.electrical.iec417">
<shape aspect="variable" h="85" name="AC-AC Converter" strokewidth="inherit" w="80">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -12,22 +12,12 @@
<path>
<move x="0" y="85"/>
<line x="80" y="5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="35" y="0"/>
<line x="40" y="5"/>
<line x="35" y="10"/>
- </path>
- <stroke/>
- <path>
<move x="10" y="20"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="15" x-axis-rotation="0" y="20"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="20" x-axis-rotation="0" y="20"/>
- </path>
- <stroke/>
- <path>
<move x="60" y="70"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="65" x-axis-rotation="0" y="70"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="70" x-axis-rotation="0" y="70"/>
@@ -35,1513 +25,1065 @@
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="AC-DC Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="AC-DC Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="10.0" y="20.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="15.0" x-axis-rotation="0.0" y="20.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="20.0" x-axis-rotation="0.0" y="20.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="10" y="20"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="15" x-axis-rotation="0" y="20"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="20" x-axis-rotation="0" y="20"/>
+ <move x="60" y="70"/>
+ <line x="70" y="70"/>
+ <move x="60" y="73"/>
+ <line x="62" y="73"/>
+ <move x="64" y="73"/>
+ <line x="66" y="73"/>
+ <move x="68" y="73"/>
+ <line x="70" y="73"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="73.0"/>
- <line x="62.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="64.0" y="73.0"/>
- <line x="66.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="73.0"/>
- <line x="70.0" y="73.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="AD Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="AD Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="5.0" y="20.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="15.0" x-axis-rotation="0.0" y="20.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="25.0" x-axis-rotation="0.0" y="20.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="75.0"/>
- <line x="40.0" y="75.0"/>
- <line x="40.0" y="68.0"/>
- <line x="47.0" y="68.0"/>
- <line x="47.0" y="75.0"/>
- <line x="52.0" y="75.0"/>
- <line x="52.0" y="68.0"/>
- <line x="59.0" y="68.0"/>
- <line x="59.0" y="75.0"/>
- <line x="66.0" y="75.0"/>
- <line x="66.0" y="68.0"/>
- <line x="73.0" y="68.0"/>
- <line x="73.0" y="75.0"/>
- <line x="76.0" y="75.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="5" y="20"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="15" x-axis-rotation="0" y="20"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="25" x-axis-rotation="0" y="20"/>
+ <move x="35" y="75"/>
+ <line x="40" y="75"/>
+ <line x="40" y="68"/>
+ <line x="47" y="68"/>
+ <line x="47" y="75"/>
+ <line x="52" y="75"/>
+ <line x="52" y="68"/>
+ <line x="59" y="68"/>
+ <line x="59" y="75"/>
+ <line x="66" y="75"/>
+ <line x="66" y="68"/>
+ <line x="73" y="68"/>
+ <line x="73" y="75"/>
+ <line x="76" y="75"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Amp" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Amp" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="5.0" y="5.0"/>
- <line x="75.0" y="40.0"/>
- <line x="5.0" y="75.0"/>
+ <move x="5" y="5"/>
+ <line x="75" y="40"/>
+ <line x="5" y="75"/>
<close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Amp Bidirectional" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Amp Bidirectional" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="31.5" y="15.0"/>
+ <move x="31.5" y="15"/>
<line x="48.5" y="23.5"/>
- <line x="31.5" y="32.0"/>
+ <line x="31.5" y="32"/>
<close/>
- </path>
- <stroke/>
- <path>
<move x="31.5" y="23.5"/>
- <line x="20.0" y="23.5"/>
- <line x="20.0" y="56.5"/>
+ <line x="20" y="23.5"/>
+ <line x="20" y="56.5"/>
<line x="31.5" y="56.5"/>
- </path>
- <stroke/>
- <path>
<move x="48.5" y="23.5"/>
- <line x="60.0" y="23.5"/>
- <line x="60.0" y="56.5"/>
+ <line x="60" y="23.5"/>
+ <line x="60" y="56.5"/>
<line x="48.5" y="56.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="48.5" y="48.0"/>
+ <move x="10" y="40"/>
+ <line x="20" y="40"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
+ <move x="48.5" y="48"/>
<line x="31.5" y="56.5"/>
- <line x="48.5" y="65.0"/>
+ <line x="48.5" y="65"/>
<close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Att" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Att" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="65.0"/>
- <line x="45.0" y="55.0"/>
- <line x="35.0" y="45.0"/>
- <line x="45.0" y="35.0"/>
- <line x="35.0" y="25.0"/>
- <line x="45.0" y="15.0"/>
+ <move x="35" y="65"/>
+ <line x="45" y="55"/>
+ <line x="35" y="45"/>
+ <line x="45" y="35"/>
+ <line x="35" y="25"/>
+ <line x="45" y="15"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Bandpass" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Bandpass" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="40.0"/>
- </path>
- <stroke/>
- <path>
- <move x="15.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="25.0"/>
- </path>
- <stroke/>
<path>
- <move x="15.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="55.0"/>
+ <move x="15" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="40"/>
+ <move x="15" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="25"/>
+ <move x="15" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="55"/>
+ <move x="36" y="57"/>
+ <line x="42" y="51"/>
+ <move x="36" y="27"/>
+ <line x="42" y="21"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="57.0"/>
- <line x="42.0" y="51.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="36.0" y="27.0"/>
- <line x="42.0" y="21.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Bandstop" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Bandstop" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="40.0"/>
- </path>
- <stroke/>
<path>
- <move x="15.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="25.0"/>
+ <move x="15" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="40"/>
+ <move x="15" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="25"/>
+ <move x="15" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="55"/>
+ <move x="36" y="43"/>
+ <line x="42" y="37"/>
</path>
<stroke/>
- <path>
- <move x="15.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="55.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="43.0"/>
- <line x="42.0" y="37.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Block" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Block" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Block Convert" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Block Convert" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Circulator" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Circulator" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="70.0"/>
- <arc large-arc-flag="1" rx="30.0" ry="30.0" sweep-flag="1" x="70.0" x-axis-rotation="0.0" y="40.0"/>
- </path>
- <stroke/>
<path>
- <move x="64.0" y="31.0"/>
- <line x="70.0" y="40.0"/>
- <line x="74.0" y="29.0"/>
+ <move x="40" y="70"/>
+ <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="1" x="70" x-axis-rotation="0" y="40"/>
+ <move x="64" y="31"/>
+ <line x="70" y="40"/>
+ <line x="74" y="29"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Combine" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Combine" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="10.0"/>
- <line x="40.0" y="10.0"/>
- <line x="40.0" y="70.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="55.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="50.0" y="35.0"/>
- <line x="55.0" y="40.0"/>
- <line x="50.0" y="45.0"/>
+ <move x="25" y="10"/>
+ <line x="40" y="10"/>
+ <line x="40" y="70"/>
+ <line x="25" y="70"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <move x="25" y="50"/>
+ <line x="40" y="50"/>
+ <move x="40" y="40"/>
+ <line x="55" y="40"/>
+ <move x="50" y="35"/>
+ <line x="55" y="40"/>
+ <line x="50" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Corrector" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Corrector" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="55.0"/>
- <line x="20.0" y="55.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="0" x="23.0" x-axis-rotation="0.0" y="52.0"/>
- <line x="32.0" y="27.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="1" x="35.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="40.0" y="25.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="55.0"/>
- <line x="50.0" y="55.0"/>
- <line x="50.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
+ <move x="15" y="55"/>
+ <line x="20" y="55"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="23" x-axis-rotation="0" y="52"/>
+ <line x="32" y="27"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="35" x-axis-rotation="0" y="25"/>
+ <line x="40" y="25"/>
+ <move x="40" y="55"/>
+ <line x="50" y="55"/>
+ <line x="50" y="25"/>
+ <line x="60" y="25"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="DA Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="DA Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="5.0" y="23.0"/>
- <line x="10.0" y="23.0"/>
- <line x="10.0" y="16.0"/>
- <line x="17.0" y="16.0"/>
- <line x="17.0" y="23.0"/>
- <line x="22.0" y="23.0"/>
- <line x="22.0" y="16.0"/>
- <line x="29.0" y="16.0"/>
- <line x="29.0" y="23.0"/>
- <line x="36.0" y="23.0"/>
- <line x="36.0" y="16.0"/>
- <line x="43.0" y="16.0"/>
- <line x="43.0" y="23.0"/>
- <line x="46.0" y="23.0"/>
- </path>
- <stroke/>
- <path>
- <move x="55.0" y="70.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="70.0"/>
- <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="75.0" x-axis-rotation="0.0" y="70.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="5" y="23"/>
+ <line x="10" y="23"/>
+ <line x="10" y="16"/>
+ <line x="17" y="16"/>
+ <line x="17" y="23"/>
+ <line x="22" y="23"/>
+ <line x="22" y="16"/>
+ <line x="29" y="16"/>
+ <line x="29" y="23"/>
+ <line x="36" y="23"/>
+ <line x="36" y="16"/>
+ <line x="43" y="16"/>
+ <line x="43" y="23"/>
+ <line x="46" y="23"/>
+ <move x="55" y="70"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="1" x="65" x-axis-rotation="0" y="70"/>
+ <arc large-arc-flag="0" rx="5.5" ry="5.5" sweep-flag="0" x="75" x-axis-rotation="0" y="70"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="DC-AC Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="DC-AC Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="70.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="70.0" x-axis-rotation="0.0" y="70.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="60" y="70"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="65" x-axis-rotation="0" y="70"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="70" x-axis-rotation="0" y="70"/>
+ <move x="10" y="18.5"/>
+ <line x="20" y="18.5"/>
+ <move x="10" y="21.5"/>
+ <line x="12" y="21.5"/>
+ <move x="14" y="21.5"/>
+ <line x="16" y="21.5"/>
+ <move x="18" y="21.5"/>
+ <line x="20" y="21.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="18.5"/>
- <line x="20.0" y="18.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="21.5"/>
- <line x="12.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="14.0" y="21.5"/>
- <line x="16.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.0" y="21.5"/>
- <line x="20.0" y="21.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="DC-DC Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="DC-DC Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="5.0"/>
+ <rect h="80" w="80" x="0" y="5"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="85.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="40.0" y="5.0"/>
- <line x="35.0" y="10.0"/>
+ <move x="0" y="85"/>
+ <line x="80" y="5"/>
+ <move x="35" y="0"/>
+ <line x="40" y="5"/>
+ <line x="35" y="10"/>
+ <move x="10" y="18.5"/>
+ <line x="20" y="18.5"/>
+ <move x="10" y="21.5"/>
+ <line x="12" y="21.5"/>
+ <move x="14" y="21.5"/>
+ <line x="16" y="21.5"/>
+ <move x="18" y="21.5"/>
+ <line x="20" y="21.5"/>
+ <move x="60" y="70"/>
+ <line x="70" y="70"/>
+ <move x="60" y="73"/>
+ <line x="62" y="73"/>
+ <move x="64" y="73"/>
+ <line x="66" y="73"/>
+ <move x="68" y="73"/>
+ <line x="70" y="73"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="18.5"/>
- <line x="20.0" y="18.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="21.5"/>
- <line x="12.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="14.0" y="21.5"/>
- <line x="16.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.0" y="21.5"/>
- <line x="20.0" y="21.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="73.0"/>
- <line x="62.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="64.0" y="73.0"/>
- <line x="66.0" y="73.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.0" y="73.0"/>
- <line x="70.0" y="73.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Decrypt" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Decrypt" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="20.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="30.0" y="80.0"/>
+ <move x="20" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="30" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="55.0" y="75.0"/>
- <line x="60.0" y="80.0"/>
- <line x="55.0" y="85.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="20.0" y="75.0"/>
- <fillstroke/>
- <path>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="55" y="75"/>
+ <line x="60" y="80"/>
+ <line x="55" y="85"/>
<move x="18.7" y="18.7"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
+ <line x="40" y="40"/>
<move x="12.7" y="52.6"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="20" y="60"/>
+ <move x="10" y="40"/>
+ <line x="25" y="55"/>
<move x="11.2" y="31.2"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="30" y="50"/>
<move x="14.3" y="24.4"/>
- <line x="35.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="35" y="45"/>
<move x="24.5" y="14.5"/>
- <line x="45.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="10.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="52.9" y="13.0"/>
- <line x="60.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="45" y="35"/>
+ <move x="40" y="10"/>
+ <line x="55" y="25"/>
+ <move x="52.9" y="13"/>
+ <line x="60" y="20"/>
<move x="31.4" y="11.6"/>
- <line x="50.0" y="30.0"/>
+ <line x="50" y="30"/>
</path>
+ <stroke/>
+ <ellipse h="10" w="10" x="20" y="75"/>
<fillstroke/>
+ <ellipse h="60" w="60" x="10" y="10"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Delay" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Delay" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <roundrect arcsize="50.0" h="10.0" w="40.0" x="20.0" y="35.0"/>
+ <roundrect arcsize="50" h="10" w="40" x="20" y="35"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Demodulator" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Demodulator" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="25.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="35.0" y="80.0"/>
+ <move x="25" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="35" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="50.0" y="75.0"/>
- <line x="45.0" y="80.0"/>
- <line x="50.0" y="85.0"/>
+ <move x="50" y="75"/>
+ <line x="45" y="80"/>
+ <line x="50" y="85"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="25.0" y="75.0"/>
+ <ellipse h="10" w="10" x="25" y="75"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Detector" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Detector" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="10.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="25.0"/>
- <line x="50.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="50.0" y="40.0"/>
- <line x="30.0" y="55.0"/>
+ <move x="10" y="40"/>
+ <line x="70" y="40"/>
+ <move x="50" y="25"/>
+ <line x="50" y="55"/>
+ <move x="30" y="25"/>
+ <line x="50" y="40"/>
+ <line x="30" y="55"/>
<close/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Differential Amp" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Differential Amp" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="10.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="10.0" y="70.0"/>
+ <move x="10" y="10"/>
+ <line x="70" y="40"/>
+ <line x="10" y="70"/>
<close/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="5.0" y="20.0"/>
- <line x="10.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="60.0"/>
- <line x="10.0" y="60.0"/>
+ <move x="5" y="20"/>
+ <line x="10" y="20"/>
+ <move x="5" y="60"/>
+ <line x="10" y="60"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Diplexer" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Diplexer" strokewidth="inherit" w="80">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.2"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.8"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.2"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.8"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="0.0"/>
- <line x="79.0" y="40.0"/>
- <line x="0.0" y="80.0"/>
+ <move x="0" y="0"/>
+ <line x="79" y="40"/>
+ <line x="0" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Divide by n" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Divide by n" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="24.0"/>
- <text align="center" str="Nf" valign="bottom" x="25.0" y="30.0"/>
- <restore/>
- <rect/>
- <stroke/>
+ <fontsize size="24"/>
+ <text align="center" str="Nf" valign="bottom" x="25" y="30"/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
</path>
- <fillstroke/>
- <fontsize size="24.0"/>
- <text align="center" str="f" valign="bottom" x="55.0" y="70.0"/>
+ <stroke/>
+ <text align="center" str="f" valign="bottom" x="55" y="70"/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Down Converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Down Converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="30.0" y="25.0"/>
- <line x="50.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
+ <move x="30" y="25"/>
+ <line x="50" y="40"/>
+ <line x="30" y="40"/>
<close/>
+ <move x="10" y="40"/>
+ <line x="70" y="40"/>
+ <move x="50" y="25"/>
+ <line x="50" y="55"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="25.0"/>
- <line x="50.0" y="55.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Encrypt" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Encrypt" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="20.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="30.0" y="80.0"/>
+ <move x="20" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="30" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="55.0" y="75.0"/>
- <line x="60.0" y="80.0"/>
- <line x="55.0" y="85.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="20.0" y="75.0"/>
- <fillstroke/>
- <path>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="55" y="75"/>
+ <line x="60" y="80"/>
+ <line x="55" y="85"/>
<move x="61.3" y="61.3"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
+ <line x="40" y="40"/>
<move x="27.3" y="67.3"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="70.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="20" y="60"/>
+ <move x="40" y="70"/>
+ <line x="25" y="55"/>
<move x="48.8" y="68.8"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="30" y="50"/>
<move x="55.7" y="65.6"/>
- <line x="35.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="35" y="45"/>
<move x="65.5" y="55.5"/>
- <line x="45.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="67.1" y="27.0"/>
- <line x="60.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
+ <line x="45" y="35"/>
+ <move x="70" y="40"/>
+ <line x="55" y="25"/>
+ <move x="67.1" y="27"/>
+ <line x="60" y="20"/>
<move x="68.6" y="48.6"/>
- <line x="50.0" y="30.0"/>
+ <line x="50" y="30"/>
</path>
+ <stroke/>
+ <ellipse h="60" w="60" x="10" y="10"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="20" y="75"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Hipass" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Hipass" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="50.0"/>
+ <move x="15" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="50"/>
+ <move x="15" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="30"/>
+ <move x="36" y="52"/>
+ <line x="42" y="46"/>
</path>
<stroke/>
- <path>
- <move x="15.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="30.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="52.0"/>
- <line x="42.0" y="46.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Hybrid" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="80" name="Hybrid" strokewidth="inherit" w="90">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.375"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.625"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.375"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.625"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.375"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.625"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.375"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.625"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="5.0" y="0.0"/>
+ <rect h="80" w="80" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="35.0" y="50.0"/>
- <line x="55.0" y="30.0"/>
- <line x="90.0" y="30.0"/>
- </path>
- <stroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="55.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
+ <move x="0" y="50"/>
+ <line x="35" y="50"/>
+ <line x="55" y="30"/>
+ <line x="90" y="30"/>
+ <move x="0" y="30"/>
+ <line x="35" y="30"/>
+ <line x="55" y="50"/>
+ <line x="90" y="50"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Limiter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Limiter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="48.5"/>
+ <move x="15" y="48.5"/>
<line x="23.5" y="31.5"/>
- <line x="32.0" y="48.5"/>
+ <line x="32" y="48.5"/>
<close/>
- </path>
- <stroke/>
- <path>
<move x="23.5" y="31.5"/>
- <line x="23.5" y="20.0"/>
- <line x="56.5" y="20.0"/>
+ <line x="23.5" y="20"/>
+ <line x="56.5" y="20"/>
<line x="56.5" y="31.5"/>
- </path>
- <stroke/>
- <path>
<move x="23.5" y="48.5"/>
- <line x="23.5" y="60.0"/>
- <line x="56.5" y="60.0"/>
+ <line x="23.5" y="60"/>
+ <line x="56.5" y="60"/>
<line x="56.5" y="48.5"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="40.0" y="10.0"/>
- <line x="40.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="60.0"/>
- <line x="40.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="48.0" y="31.5"/>
+ <move x="40" y="10"/>
+ <line x="40" y="20"/>
+ <move x="40" y="60"/>
+ <line x="40" y="70"/>
+ <move x="48" y="31.5"/>
<line x="56.5" y="48.5"/>
- <line x="65.0" y="31.5"/>
+ <line x="65" y="31.5"/>
<close/>
+ <move x="15" y="31.2"/>
+ <line x="32" y="31.5"/>
+ <move x="48" y="48.5"/>
+ <line x="65" y="48.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="15.0" y="31.2"/>
- <line x="32.0" y="31.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.0" y="48.5"/>
- <line x="65.0" y="48.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Lopass" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Lopass" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="50.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="50.0"/>
- </path>
- <stroke/>
<path>
- <move x="15.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="17.0" ry="17.0" sweep-flag="0" x="65.0" x-axis-rotation="0.0" y="30.0"/>
+ <move x="15" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="50"/>
+ <move x="15" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="1" x="40" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="17" ry="17" sweep-flag="0" x="65" x-axis-rotation="0" y="30"/>
+ <move x="36" y="32"/>
+ <line x="42" y="26"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="36.0" y="32.0"/>
- <line x="42.0" y="26.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Mixer 1" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Mixer 1" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="0" y="0"/>
+ <line x="80" y="80"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Mixer 2" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Mixer 2" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Modem" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Modem" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="50.0" y="75.0"/>
- <line x="45.0" y="80.0"/>
- <line x="50.0" y="85.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
- </path>
- <stroke/>
<path>
- <move x="30.0" y="75.0"/>
- <line x="35.0" y="80.0"/>
- <line x="30.0" y="85.0"/>
+ <move x="50" y="75"/>
+ <line x="45" y="80"/>
+ <line x="50" y="85"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
+ <move x="30" y="75"/>
+ <line x="35" y="80"/>
+ <line x="30" y="85"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="85.0" name="Modulator" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="85" name="Modulator" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="25.0" y="80.0"/>
- <line x="0.0" y="80.0"/>
- <line x="0.0" y="0.0"/>
- <line x="80.0" y="0.0"/>
- <line x="80.0" y="80.0"/>
- <line x="35.0" y="80.0"/>
+ <move x="25" y="80"/>
+ <line x="0" y="80"/>
+ <line x="0" y="0"/>
+ <line x="80" y="0"/>
+ <line x="80" y="80"/>
+ <line x="35" y="80"/>
</path>
</background>
<foreground>
<fillstroke/>
- <ellipse h="10.0" w="10.0" x="25.0" y="75.0"/>
+ <ellipse h="10" w="10" x="25" y="75"/>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="50.0" y="80.0"/>
- <line x="45.0" y="85.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="80.0"/>
- <line x="40.0" y="1.0"/>
- <line x="80.0" y="80.0"/>
+ <move x="45" y="75"/>
+ <line x="50" y="80"/>
+ <line x="45" y="85"/>
+ <move x="0" y="80"/>
+ <line x="40" y="1"/>
+ <line x="80" y="80"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Oscilloscope" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Oscilloscope" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="20.0" y="40.0"/>
- <arc large-arc-flag="0" rx="12.0" ry="12.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="12.0" ry="12.0" sweep-flag="0" x="60.0" x-axis-rotation="0.0" y="40.0"/>
+ <move x="20" y="40"/>
+ <arc large-arc-flag="0" rx="12" ry="12" sweep-flag="1" x="40" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="12" ry="12" sweep-flag="0" x="60" x-axis-rotation="0" y="40"/>
</path>
<stroke/>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
+ <ellipse h="60" w="60" x="10" y="10"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Phase Detector" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Phase Detector" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="40.0" y="50.0"/>
- <line x="40.0" y="30.0"/>
- <arc large-arc-flag="1" rx="4.0" ry="8.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="38.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="36.0" x-axis-rotation="0.0" y="38.0"/>
- <arc large-arc-flag="0" rx="20.0" ry="8.0" sweep-flag="1" x="37.0" x-axis-rotation="15.0" y="27.0"/>
+ <move x="40" y="50"/>
+ <line x="40" y="30"/>
+ <arc large-arc-flag="1" rx="4" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="38"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="36" x-axis-rotation="0" y="38"/>
+ <arc large-arc-flag="0" rx="20" ry="8" sweep-flag="1" x="37" x-axis-rotation="15" y="27"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Process" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Process" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="20.0"/>
- <arc large-arc-flag="0" rx="40.0" ry="40.0" sweep-flag="0" x="20.0" x-axis-rotation="0.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="15.0" y="40.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="80.0" y="40.0"/>
- <line x="65.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="60.0" y="20.0"/>
- <arc large-arc-flag="0" rx="40.0" ry="40.0" sweep-flag="1" x="60.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="20" y="20"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="0" x="20" x-axis-rotation="0" y="60"/>
+ <move x="0" y="40"/>
+ <line x="15" y="40"/>
+ <move x="80" y="40"/>
+ <line x="65" y="40"/>
+ <move x="60" y="20"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="1" x="60" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Pulse" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Pulse" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="50.0"/>
- <line x="35.0" y="50.0"/>
- <line x="35.0" y="25.0"/>
- <line x="45.0" y="25.0"/>
- <line x="45.0" y="50.0"/>
- <line x="55.0" y="50.0"/>
+ <move x="25" y="50"/>
+ <line x="35" y="50"/>
+ <line x="35" y="25"/>
+ <line x="45" y="25"/>
+ <line x="45" y="50"/>
+ <line x="55" y="50"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Sampler" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Sampler" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="10.0" y="20.0"/>
- <arc large-arc-flag="0" rx="15.0" ry="50.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="20.0"/>
+ <move x="10" y="20"/>
+ <arc large-arc-flag="0" rx="15" ry="50" sweep-flag="1" x="30" x-axis-rotation="0" y="20"/>
+ <move x="0" y="80"/>
+ <line x="80" y="0"/>
+ <move x="50" y="70"/>
+ <line x="70" y="70"/>
+ <move x="60" y="70"/>
+ <line x="60" y="57.4"/>
+ <move x="57" y="70"/>
+ <line x="57" y="58.3"/>
+ <move x="54" y="70"/>
+ <line x="54" y="61.5"/>
+ <move x="63" y="70"/>
+ <line x="63" y="58.3"/>
+ <move x="66" y="70"/>
+ <line x="66" y="61.5"/>
+ <move x="51" y="70"/>
+ <line x="51" y="67.5"/>
+ <move x="69" y="70"/>
+ <line x="69" y="67.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="80.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="70.0"/>
- <line x="60.0" y="57.4"/>
- </path>
- <fillstroke/>
- <path>
- <move x="57.0" y="70.0"/>
- <line x="57.0" y="58.3"/>
- </path>
- <fillstroke/>
- <path>
- <move x="54.0" y="70.0"/>
- <line x="54.0" y="61.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="63.0" y="70.0"/>
- <line x="63.0" y="58.3"/>
- </path>
- <fillstroke/>
- <path>
- <move x="66.0" y="70.0"/>
- <line x="66.0" y="61.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="51.0" y="70.0"/>
- <line x="51.0" y="67.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="69.0" y="70.0"/>
- <line x="69.0" y="67.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Splitter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Splitter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="55.0" y="10.0"/>
- <line x="40.0" y="10.0"/>
- <line x="40.0" y="70.0"/>
- <line x="55.0" y="70.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="50.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="39.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="35.0"/>
- <line x="39.0" y="40.0"/>
- <line x="35.0" y="45.0"/>
+ <move x="55" y="10"/>
+ <line x="40" y="10"/>
+ <line x="40" y="70"/>
+ <line x="55" y="70"/>
+ <move x="55" y="30"/>
+ <line x="40" y="30"/>
+ <move x="55" y="50"/>
+ <line x="40" y="50"/>
+ <move x="25" y="40"/>
+ <line x="39" y="40"/>
+ <move x="35" y="35"/>
+ <line x="39" y="40"/>
+ <line x="35" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Square-up" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Square-up" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="30.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
- <line x="40.0" y="25.0"/>
- <line x="50.0" y="25.0"/>
+ <move x="30" y="55"/>
+ <line x="40" y="55"/>
+ <line x="40" y="25"/>
+ <line x="50" y="25"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Step" strokewidth="inherit" w="55.0">
+ <shape aspect="variable" h="60" name="Step" strokewidth="inherit" w="55">
<connections/>
<background>
<path>
- <move x="0.0" y="60.0"/>
- <line x="40.0" y="0.0"/>
- <line x="55.0" y="0.0"/>
+ <move x="0" y="60"/>
+ <line x="40" y="0"/>
+ <line x="55" y="0"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Transformer" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Transformer" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<linejoin join="round"/>
<path>
- <move x="15.0" y="10.0"/>
- <line x="30.0" y="10.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="70.0"/>
- <line x="15.0" y="70.0"/>
- </path>
- <stroke/>
- <path>
- <move x="65.0" y="10.0"/>
- <line x="50.0" y="10.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="25.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="40.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="55.0"/>
- <arc large-arc-flag="0" rx="5.0" ry="5.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="70.0"/>
- <line x="65.0" y="70.0"/>
+ <move x="15" y="10"/>
+ <line x="30" y="10"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="30" x-axis-rotation="0" y="70"/>
+ <line x="15" y="70"/>
+ <move x="65" y="10"/>
+ <line x="50" y="10"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="40"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="0" x="50" x-axis-rotation="0" y="70"/>
+ <line x="65" y="70"/>
</path>
<stroke/>
</foreground>
@@ -1550,64 +1092,51 @@
<connections/>
<background>
<path>
- <move x="0.0" y="65.5"/>
- <line x="40.0" y="5.5"/>
+ <move x="0" y="65.5"/>
+ <line x="40" y="5.5"/>
+ <move x="32.2" y="0"/>
+ <line x="48.2" y="10.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="32.2" y="0.0"/>
- <line x="48.2" y="10.5"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Up converter" strokewidth="inherit" w="80.0">
+ <shape aspect="variable" h="80" name="Up converter" strokewidth="inherit" w="80">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="80.0" x="0.0" y="0.0"/>
+ <rect h="80" w="80" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="50.0" y="25.0"/>
- <line x="50.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
+ <move x="50" y="25"/>
+ <line x="50" y="40"/>
+ <line x="30" y="40"/>
<close/>
+ <move x="10" y="40"/>
+ <line x="70" y="40"/>
+ <move x="30" y="25"/>
+ <line x="30" y="55"/>
</path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="30.0" y="55.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Var" strokewidth="inherit" w="40.0">
+ <shape aspect="variable" h="60" name="Var" strokewidth="inherit" w="40">
<connections/>
<background>
<path>
- <move x="0.0" y="60.0"/>
- <line x="40.0" y="0.0"/>
+ <move x="0" y="60"/>
+ <line x="40" y="0"/>
+ <move x="27" y="10"/>
+ <line x="40" y="0"/>
+ <line x="36.5" y="15.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="27.0" y="10.0"/>
- <line x="40.0" y="0.0"/>
- <line x="36.5" y="15.5"/>
- </path>
<stroke/>
</foreground>
</shape>
diff --git a/war/stencils/electrical/iec_logic_gates.xml b/war/stencils/electrical/iec_logic_gates.xml
index 39220660..e03f61ef 100644
--- a/war/stencils/electrical/iec_logic_gates.xml
+++ b/war/stencils/electrical/iec_logic_gates.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.iec_logic_gates">
+<shapes name="mxgraph.electrical.iec_logic_gates">
<shape aspect="variable" h="80" name="AND" strokewidth="inherit" w="60">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -15,142 +15,106 @@
<text align="center" str="AND" valign="bottom" x="30" y="46"/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="NAND" strokewidth="inherit" w="66.0">
+ <shape aspect="variable" h="80" name="NAND" strokewidth="inherit" w="66">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="NAND" valign="bottom" x="30.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+ <text align="center" str="NAND" valign="bottom" x="30" y="46"/>
+ <ellipse h="6" w="6" x="60" y="37"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="NOR" strokewidth="inherit" w="66.0">
+ <shape aspect="variable" h="80" name="NOR" strokewidth="inherit" w="66">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+ <ellipse h="6" w="6" x="60" y="37"/>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="1" valign="bottom" x="35.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <strokewidth width="1"/>
+ <text align="center" str="1" valign="bottom" x="35" y="46"/>
<path>
- <move x="24.25" y="36.0"/>
- <line x="28.75" y="40.0"/>
- <line x="24.25" y="44.0"/>
+ <move x="24.25" y="36"/>
+ <line x="28.75" y="40"/>
+ <line x="24.25" y="44"/>
+ <move x="30" y="40.75"/>
+ <line x="25.12" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <strokewidth width="1"/>
- <path>
- <move x="30.0" y="40.75"/>
- <line x="25.12" y="45.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="NOT" strokewidth="inherit" w="66.0">
+ <shape aspect="variable" h="80" name="NOT" strokewidth="inherit" w="66">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="=1" valign="bottom" x="30.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="6.0" w="6.0" x="60.0" y="37.0"/>
+ <text align="center" str="=1" valign="bottom" x="30" y="46"/>
+ <ellipse h="6" w="6" x="60" y="37"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="OR" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="80" name="OR" strokewidth="inherit" w="60">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="1" valign="bottom" x="35.0" y="46.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <strokewidth width="1"/>
+ <text align="center" str="1" valign="bottom" x="35" y="46"/>
<path>
- <move x="24.25" y="36.0"/>
- <line x="28.75" y="40.0"/>
- <line x="24.25" y="44.0"/>
+ <move x="24.25" y="36"/>
+ <line x="28.75" y="40"/>
+ <line x="24.25" y="44"/>
+ <move x="30" y="40.75"/>
+ <line x="25.12" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <strokewidth width="1"/>
- <path>
- <move x="30.0" y="40.75"/>
- <line x="25.12" y="45.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="XOR" strokewidth="inherit" w="60.0">
+ <shape aspect="variable" h="80" name="XOR" strokewidth="inherit" w="60">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="80.0" w="60.0" x="0.0" y="0.0"/>
+ <rect h="80" w="60" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="12.0"/>
+ <fontsize size="12"/>
<fontstyle style="0"/>
<fontstyle style="0"/>
- <text align="center" str="=1" valign="bottom" x="30.0" y="46.0"/>
+ <text align="center" str="=1" valign="bottom" x="30" y="46"/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/inductors.xml b/war/stencils/electrical/inductors.xml
index 7e818daa..749103a1 100644
--- a/war/stencils/electrical/inductors.xml
+++ b/war/stencils/electrical/inductors.xml
@@ -1,626 +1,993 @@
-<shapes name="mxGraph.electrical.inductors">
- <shape aspect="variable" h="46" name="Compensation Inductor 1" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in1" perimeter="0" x="0" y="0.13"/>
- <constraint name="in2" perimeter="0" x="0" y="0.87"/>
- <constraint name="out1" perimeter="0" x="1" y="0.13"/>
- <constraint name="out2" perimeter="0" x="1" y="0.87"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="6"/>
- <line x="24" y="6"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76" y="6"/>
- <line x="100" y="6"/>
- </path>
- <fillstroke/>
- <rect h="12" w="52" x="24" y="0"/>
- <fillstroke/>
- <path>
- <move x="0" y="40"/>
- <line x="24" y="40"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76" y="40"/>
- <line x="100" y="40"/>
- </path>
- <fillstroke/>
- <rect h="12" w="52" x="24" y="34"/>
- <fillstroke/>
- <ellipse h="18" w="18" x="41" y="14"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="80.0" name="Compensation Inductor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.075"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="in3" perimeter="0" x="0.0" y="0.925"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.075"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="out3" perimeter="0" x="1.0" y="0.925"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="24.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <rect h="12.0" w="52.0" x="24.0" y="34.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="6.0"/>
- <line x="24.0" y="6.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76.0" y="6.0"/>
- <line x="100.0" y="6.0"/>
- </path>
- <fillstroke/>
- <rect h="12.0" w="52.0" x="24.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="74.0"/>
- <line x="24.0" y="74.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="76.0" y="74.0"/>
- <line x="100.0" y="74.0"/>
- </path>
- <fillstroke/>
- <rect h="12.0" w="52.0" x="24.0" y="68.0"/>
- <fillstroke/>
- <ellipse h="18.0" w="18.0" x="41.0" y="14.0"/>
- <fillstroke/>
- <ellipse h="18.0" w="18.0" x="41.0" y="48.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="5.0" name="Ferrite Core" strokewidth="inherit" w="64.0">
- <connections/>
- <foreground>
- <path>
- <move x="0.0" y="4.5"/>
- <line x="4.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="9.0" y="4.5"/>
- <line x="14.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="4.5"/>
- <line x="24.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="29.0" y="4.5"/>
- <line x="34.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="4.5"/>
- <line x="44.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="4.5"/>
- <line x="54.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.0" y="4.5"/>
- <line x="64.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.5"/>
- <line x="4.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="9.0" y="0.5"/>
- <line x="14.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="0.5"/>
- <line x="24.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="29.0" y="0.5"/>
- <line x="34.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="0.5"/>
- <line x="44.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="0.5"/>
- <line x="54.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.0" y="0.5"/>
- <line x="64.0" y="0.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="2.5"/>
- <line x="4.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="9.0" y="2.5"/>
- <line x="14.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="2.5"/>
- <line x="24.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="29.0" y="2.5"/>
- <line x="34.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="2.5"/>
- <line x="44.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="2.5"/>
- <line x="54.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.0" y="2.5"/>
- <line x="64.0" y="2.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="15.0" name="Inductor 1" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="out" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <rect h="10.0" w="60.0" x="0.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="0.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="15.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Inductor 2" strokewidth="inherit" w="21.5">
- <connections>
- <constraint name="in" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="out" perimeter="0" x="0.7" y="1.0"/>
- </connections>
- <background>
- <rect h="60.0" w="10.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="15.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <ellipse h="3.0" w="3.0" x="18.5" y="3.5"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="8.0" name="Inductor 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="out" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="8.0"/>
- <line x="18.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="8.0"/>
- <line x="100.0" y="8.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="14.5" name="Inductor 4" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.55"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.55"/>
- </connections>
- <foreground>
- <ellipse h="3.0" w="3.0" x="78.5" y="11.5"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="8.0"/>
- <line x="18.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="8.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="8.0"/>
- <line x="100.0" y="8.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="14.07" name="Inductor 5" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.645"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.645"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="9.07"/>
- <line x="18.0" y="9.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="36.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="52.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="68.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="9.07"/>
- <line x="100.0" y="9.07"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="15.57" name="Inductor 6" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.583"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.583"/>
- </connections>
- <foreground>
- <ellipse h="3.0" w="3.0" x="78.5" y="12.57"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="9.07"/>
- <line x="18.0" y="9.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="36.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="52.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="68.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="12.07"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="4.07"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="9.07"/>
- <line x="100.0" y="9.07"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Inductor 7" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="23.0" name="Inductor 8" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.435"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.435"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.5" y="23.0"/>
- <line x="82.5" y="23.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="23.0" name="Inductor 9" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.435"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.435"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.5" y="23.0"/>
- <line x="22.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="27.0" y="23.0"/>
- <line x="32.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="37.0" y="23.0"/>
- <line x="42.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="47.0" y="23.0"/>
- <line x="52.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="57.0" y="23.0"/>
- <line x="62.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="67.0" y="23.0"/>
- <line x="72.0" y="23.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.0" y="23.0"/>
- <line x="82.5" y="23.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="5.0" name="Iron Core" strokewidth="inherit" w="64.0">
- <connections/>
- <foreground>
- <path>
- <move x="0.0" y="4.5"/>
- <line x="64.0" y="4.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="2.5"/>
- <line x="64.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.5"/>
- <line x="64.0" y="0.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Transformer 1" strokewidth="inherit" w="64.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.0"/>
- <constraint name="out1" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="in2" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="16.0" x-axis-rotation="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="46.0"/>
- <line x="64.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="32.0"/>
- <line x="64.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="64.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="28.0"/>
- <line x="64.0" y="28.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="16.0" x-axis-rotation="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="32.0" x-axis-rotation="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="48.0" x-axis-rotation="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="64.0" x-axis-rotation="0.0" y="14.0"/>
- <line x="64.0" y="0.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Transformer 2" strokewidth="inherit" w="64.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.0"/>
- <constraint name="out1" perimeter="0" x="0.0" y="1.0"/>
- <constraint name="in2" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="32.0"/>
- <line x="64.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="64.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="28.0"/>
- <line x="64.0" y="28.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="0.0" y="46.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="16.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="18.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="14.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="16.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="30.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="32.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="1" x="46.0" x-axis-rotation="0.0" y="49.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="1" x="48.0" x-axis-rotation="0.0" y="41.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="46.0"/>
- <line x="64.0" y="60.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="14.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="0" x="16.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="18.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="0" x="14.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="16.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="0" x="32.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="34.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="0" x="30.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="32.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="11.0" ry="12.0" sweep-flag="0" x="48.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="2.0" ry="2.0" sweep-flag="0" x="46.0" x-axis-rotation="0.0" y="11.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="48.0" x-axis-rotation="0.0" y="19.0"/>
- <arc large-arc-flag="0" rx="9.0" ry="9.0" sweep-flag="0" x="64.0" x-axis-rotation="0.0" y="14.0"/>
- <line x="64.0" y="0.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Variable Inductor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="34.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="66.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="82.0" x-axis-rotation="0.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
- <line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
+<shapes name="mxgraph.electrical.inductors">
+<shape aspect="variable" h="100" name="1 Phase Induction Volt Reg" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="75"/>
+ <line x="70" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="70" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="70" x-axis-rotation="0" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="170" name="Adjustable Transformer" strokewidth="inherit" w="129">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.47" y="0"/>
+ <constraint name="S" perimeter="0" x="0.47" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="9" y="0"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="9" y="70"/>
+ <stroke/>
+ <path>
+ <move x="0" y="84"/>
+ <line x="119" y="10"/>
+ <move x="122" y="14"/>
+ <line x="116" y="6"/>
+ <line x="129" y="3"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="200" name="Choke" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="100"/>
+ <line x="0" y="100"/>
+ <arc large-arc-flag="1" rx="50" ry="50" sweep-flag="1" x="50" x-axis-rotation="0" y="150"/>
+ <line x="50" y="200"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Coaxial Choke" strokewidth="inherit" w="300">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="100" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="125" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="150" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="175" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="200" x-axis-rotation="0" y="25"/>
+ <line x="300" y="25"/>
+ <move x="25" y="50"/>
+ <line x="100" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="125" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="150" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="175" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="200" x-axis-rotation="0" y="50"/>
+ <line x="275" y="50"/>
+ <move x="100" y="0"/>
+ <line x="200" y="0"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="25" y="0"/>
+ <stroke/>
+ <ellipse h="50" w="50" x="225" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="46" name="Compensation Inductor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0.13"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.87"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.13"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.87"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="6"/>
+ <line x="24" y="6"/>
+ <move x="76" y="6"/>
+ <line x="100" y="6"/>
+ <move x="0" y="40"/>
+ <line x="24" y="40"/>
+ <move x="76" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ <rect h="12" w="52" x="24" y="0"/>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="34"/>
+ <fillstroke/>
+ <ellipse h="18" w="18" x="41" y="14"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="Compensation Inductor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0.075"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.5"/>
+ <constraint name="in3" perimeter="0" x="0" y="0.925"/>
+ <constraint name="out1" perimeter="0" x="1" y="0.075"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.5"/>
+ <constraint name="out3" perimeter="0" x="1" y="0.925"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <line x="24" y="40"/>
+ <move x="76" y="40"/>
+ <line x="100" y="40"/>
+ <move x="0" y="6"/>
+ <line x="24" y="6"/>
+ <move x="76" y="6"/>
+ <line x="100" y="6"/>
+ <move x="0" y="74"/>
+ <line x="24" y="74"/>
+ <move x="76" y="74"/>
+ <line x="100" y="74"/>
+ </path>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="34"/>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="0"/>
+ <fillstroke/>
+ <rect h="12" w="52" x="24" y="68"/>
+ <fillstroke/>
+ <ellipse h="18" w="18" x="41" y="14"/>
+ <fillstroke/>
+ <ellipse h="18" w="18" x="41" y="48"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="Current Transformer 1" strokewidth="inherit" w="12.5">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.8" y="0"/>
+ <constraint name="S" perimeter="0" x="0.8" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="75"/>
+ <move x="12.5" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="12.5" x-axis-rotation="0" y="37.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="12.5" x-axis-rotation="0" y="62.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="175" name="Current Transformer 2" strokewidth="inherit" w="125">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.3" y="0"/>
+ <constraint name="S" perimeter="0" x="0.3" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="37.5" y="0"/>
+ <line x="37.5" y="175"/>
+ <move x="75" y="87.5"/>
+ <line x="125" y="87.5"/>
+ <move x="95" y="80"/>
+ <line x="85" y="95"/>
+ <move x="110" y="80"/>
+ <line x="100" y="95"/>
+ </path>
+ <stroke/>
+ <ellipse h="75" w="75" x="0" y="50"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Current Transformer 3" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="1" y="0.3"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="3"/>
+ <line x="75" y="3"/>
+ <move x="10" y="0"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="30" x-axis-rotation="0" y="0"/>
+ <line x="37" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="51" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="65" x-axis-rotation="0" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="5" name="Ferrite Core" strokewidth="inherit" w="64">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="4.5"/>
+ <line x="4" y="4.5"/>
+ <move x="9" y="4.5"/>
+ <line x="14" y="4.5"/>
+ <move x="19" y="4.5"/>
+ <line x="24" y="4.5"/>
+ <move x="29" y="4.5"/>
+ <line x="34" y="4.5"/>
+ <move x="39" y="4.5"/>
+ <line x="44" y="4.5"/>
+ <move x="49" y="4.5"/>
+ <line x="54" y="4.5"/>
+ <move x="59" y="4.5"/>
+ <line x="64" y="4.5"/>
+ <move x="0" y="0.5"/>
+ <line x="4" y="0.5"/>
+ <move x="9" y="0.5"/>
+ <line x="14" y="0.5"/>
+ <move x="19" y="0.5"/>
+ <line x="24" y="0.5"/>
+ <move x="29" y="0.5"/>
+ <line x="34" y="0.5"/>
+ <move x="39" y="0.5"/>
+ <line x="44" y="0.5"/>
+ <move x="49" y="0.5"/>
+ <line x="54" y="0.5"/>
+ <move x="59" y="0.5"/>
+ <line x="64" y="0.5"/>
+ <move x="0" y="2.5"/>
+ <line x="4" y="2.5"/>
+ <move x="9" y="2.5"/>
+ <line x="14" y="2.5"/>
+ <move x="19" y="2.5"/>
+ <line x="24" y="2.5"/>
+ <move x="29" y="2.5"/>
+ <line x="34" y="2.5"/>
+ <move x="39" y="2.5"/>
+ <line x="44" y="2.5"/>
+ <move x="49" y="2.5"/>
+ <line x="54" y="2.5"/>
+ <move x="59" y="2.5"/>
+ <line x="64" y="2.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23.38" name="Half Inductor" strokewidth="inherit" w="32.17">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="23.38"/>
+ <line x="0" y="11.39"/>
+ <curve x1="0" x2="11.09" x3="16.18" y1="2.91" y2="0.26" y3="6.39"/>
+ <curve x1="17.96" x2="18.69" x3="18.18" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="18.18" x2="14.18" x3="14.18" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="13.66" x2="14.39" x3="16.18" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="21.3" x2="32.17" x3="32.17" y1="0" y2="3.26" y3="11.39"/>
+ <line x="32.17" y="23.38"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="210" name="Induction Voltage Regulator" strokewidth="inherit" w="160">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="150" w="150" x="5" y="30"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="30" y="30"/>
+ <stroke/>
+ <path>
+ <move x="80" y="0"/>
+ <line x="80" y="30"/>
+ <move x="80" y="180"/>
+ <line x="80" y="210"/>
+ <move x="0" y="210"/>
+ <line x="144.5" y="20.5"/>
+ <move x="135" y="14"/>
+ <line x="160" y="0"/>
+ <line x="154" y="27"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="42.5" name="Inductor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="42.5"/>
+ <line x="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="25" x-axis-rotation="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="50" x-axis-rotation="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="75" x-axis-rotation="0" y="12.5"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="100" x-axis-rotation="0" y="12.5"/>
+ <line x="100" y="42.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Inductor 1" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="10" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="0" y="15"/>
+ <move x="60" y="10"/>
+ <line x="60" y="15"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20.48" name="Inductor 10" strokewidth="inherit" w="63.96">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="20.48"/>
+ <line x="0" y="8"/>
+ <curve x1="0" x2="3.59" x3="8.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="12.43" x2="16.01" x3="16.01" y1="0" y2="3.58" y3="8"/>
+ <curve x1="16.01" x2="19.59" x3="24.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="28.43" x2="32.01" x3="32.01" y1="0" y2="3.58" y3="8"/>
+ <curve x1="32.01" x2="35.59" x3="40.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="44.43" x2="48.01" x3="48.01" y1="0" y2="3.58" y3="8"/>
+ <curve x1="48.01" x2="51.59" x3="56.01" y1="3.58" y2="0" y3="0"/>
+ <curve x1="60.43" x2="63.96" x3="63.96" y1="0" y2="3.58" y3="8"/>
+ <line x="63.96" y="20.48"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23.38" name="Inductor 11" strokewidth="inherit" w="63.96">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="23.38"/>
+ <line x="0" y="11.39"/>
+ <curve x1="0.57" x2="10.84" x3="15.97" y1="3.22" y2="0" y3="6.39"/>
+ <curve x1="17.75" x2="18.48" x3="17.97" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="17.97" x2="13.97" x3="13.97" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="13.45" x2="14.18" x3="15.97" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="20.31" x2="27.62" x3="31.97" y1="1.37" y2="1.37" y3="6.39"/>
+ <curve x1="33.75" x2="34.48" x3="33.97" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="33.97" x2="29.97" x3="29.97" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="29.45" x2="30.18" x3="31.97" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="36.31" x2="43.62" x3="47.97" y1="1.37" y2="1.37" y3="6.39"/>
+ <curve x1="49.75" x2="50.48" x3="49.97" y1="8.65" y2="11.56" y3="14.39"/>
+ <curve x1="49.97" x2="45.97" x3="45.97" y1="17.06" y2="17.06" y3="14.39"/>
+ <curve x1="45.45" x2="46.18" x3="47.97" y1="11.56" y2="8.65" y3="6.39"/>
+ <curve x1="53.09" x2="63.39" x3="63.96" y1="0" y2="3.22" y3="11.39"/>
+ <line x="63.96" y="23.38"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Inductor 2" strokewidth="inherit" w="21.5">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.7" y="0"/>
+ <constraint name="out" perimeter="0" x="0.7" y="1"/>
+ </connections>
+ <background>
+ <rect h="60" w="10" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="0"/>
+ <line x="15" y="0"/>
+ <move x="0" y="60"/>
+ <line x="15" y="60"/>
+ </path>
+ <stroke/>
+ <ellipse h="3" w="3" x="18.5" y="3.5"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="8" name="Inductor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="1"/>
+ <constraint name="out" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="8"/>
+ <line x="18" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="34" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="66" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="82" x-axis-rotation="0" y="8"/>
+ <line x="100" y="8"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="14.5" name="Inductor 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.55"/>
+ <constraint name="out" perimeter="0" x="1" y="0.55"/>
+ </connections>
+ <foreground>
+ <ellipse h="3" w="3" x="78.5" y="11.5"/>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="8"/>
+ <line x="18" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="34" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="66" x-axis-rotation="0" y="8"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="82" x-axis-rotation="0" y="8"/>
+ <line x="100" y="8"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="14.07" name="Inductor 5" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.645"/>
+ <constraint name="out" perimeter="0" x="1" y="0.645"/>
+ </connections>
+ <foreground>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="9.07"/>
+ <line x="18" y="9.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="36" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="32" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="52" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="48" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="68" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="64" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="82" x-axis-rotation="0" y="9.07"/>
+ <line x="100" y="9.07"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15.57" name="Inductor 6" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.583"/>
+ <constraint name="out" perimeter="0" x="1" y="0.583"/>
+ </connections>
+ <foreground>
+ <ellipse h="3" w="3" x="78.5" y="12.57"/>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="9.07"/>
+ <line x="18" y="9.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="36" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="32" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="34" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="52" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="48" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="68" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="64" x-axis-rotation="0" y="12.07"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="66" x-axis-rotation="0" y="4.07"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="82" x-axis-rotation="0" y="9.07"/>
+ <line x="100" y="9.07"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Inductor 7" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23" name="Inductor 8" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.435"/>
+ <constraint name="out" perimeter="0" x="1" y="0.435"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="17.5" y="23"/>
+ <line x="82.5" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="23" name="Inductor 9" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.435"/>
+ <constraint name="out" perimeter="0" x="1" y="0.435"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="17.5" y="23"/>
+ <line x="22" y="23"/>
+ <move x="27" y="23"/>
+ <line x="32" y="23"/>
+ <move x="37" y="23"/>
+ <line x="42" y="23"/>
+ <move x="47" y="23"/>
+ <line x="52" y="23"/>
+ <move x="57" y="23"/>
+ <line x="62" y="23"/>
+ <move x="67" y="23"/>
+ <line x="72" y="23"/>
+ <move x="77" y="23"/>
+ <line x="82.5" y="23"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="5" name="Iron Core" strokewidth="inherit" w="64">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="4.5"/>
+ <line x="64" y="4.5"/>
+ <move x="0" y="2.5"/>
+ <line x="64" y="2.5"/>
+ <move x="0" y="0.5"/>
+ <line x="64" y="0.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Linear Coupler" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.65"/>
+ <constraint name="out" perimeter="0" x="1" y="0.65"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="10"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="30" x-axis-rotation="0" y="10"/>
+ <line x="30" y="0"/>
+ <line x="38" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="52" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="66" x-axis-rotation="0" y="0"/>
+ <move x="0" y="13"/>
+ <line x="80" y="13"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Magnetic Core" strokewidth="inherit" w="5">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="100"/>
+ <move x="5" y="0"/>
+ <line x="5" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Outdoor Metering Device" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ </connections>
+ <foreground>
+ <rect h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="65" y="25"/>
+ <line x="65" y="95"/>
+ <move x="62" y="37"/>
+ <line x="40" y="37"/>
+ <move x="40" y="12"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="40" x-axis-rotation="0" y="37"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="40" x-axis-rotation="0" y="62"/>
+ <move x="68" y="51"/>
+ <arc large-arc-flag="1" rx="9" ry="9" sweep-flag="0" x="68" x-axis-rotation="0" y="69"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="68" x-axis-rotation="0" y="87"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="62" y="34"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Potential Transformer" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="32.5" y="25"/>
+ <move x="67.5" y="25"/>
+ <line x="100" y="25"/>
+ <move x="32.5" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="32.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="32.5" x-axis-rotation="0" y="50"/>
+ <move x="67.5" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="67.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="67.5" x-axis-rotation="0" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Potential Transformer 2" strokewidth="inherit" w="230">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="30" y="0"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="100" y="0"/>
+ <stroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="30" y="50"/>
+ <move x="200" y="50"/>
+ <line x="230" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="250" name="Pot Trans 3 Windings" strokewidth="inherit" w="175">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.285" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.715" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="87.5" y="0"/>
+ <line x="87.5" y="40"/>
+ <move x="50" y="210"/>
+ <line x="50" y="250"/>
+ <move x="125" y="210"/>
+ <line x="125" y="250"/>
+ </path>
+ <stroke/>
+ <ellipse h="100" w="100" x="0" y="110"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="75" y="110"/>
+ <stroke/>
+ <ellipse h="100" w="100" x="37.5" y="40"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Saturating Transformer" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.165"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.835"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.165"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.835"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="37.5" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="62.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="87.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="112.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="137.5" x-axis-rotation="0" y="25"/>
+ <line x="200" y="25"/>
+ <move x="0" y="75"/>
+ <line x="37.5" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="62.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="87.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="112.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="137.5" x-axis-rotation="0" y="75"/>
+ <line x="200" y="75"/>
+ <move x="125" y="0"/>
+ <line x="100" y="0"/>
+ <line x="100" y="150"/>
+ <line x="75" y="150"/>
+ <move x="0" y="125"/>
+ <line x="37.5" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="62.5" x-axis-rotation="0" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="87.5" x-axis-rotation="0" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="112.5" x-axis-rotation="0" y="125"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="137.5" x-axis-rotation="0" y="125"/>
+ <line x="200" y="125"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Transductor" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.25"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.75"/>
+ <constraint name="NE" perimeter="0" x="1" y="0.25"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.75"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="25"/>
+ <line x="37.5" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="62.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="87.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="112.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="137.5" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="162.5" x-axis-rotation="0" y="25"/>
+ <line x="200" y="25"/>
+ <move x="0" y="75"/>
+ <line x="62.5" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="87.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="112.5" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="137.5" x-axis-rotation="0" y="75"/>
+ <line x="200" y="75"/>
+ <move x="125" y="0"/>
+ <line x="100" y="0"/>
+ <line x="100" y="100"/>
+ <line x="75" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Transformer" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0"/>
+ <constraint name="out1" perimeter="0" x="0" y="1"/>
+ <constraint name="in2" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="30" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="30" x-axis-rotation="0" y="100"/>
+ <line x="0" y="100"/>
+ <move x="100" y="0"/>
+ <line x="70" y="0"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="50"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="70" x-axis-rotation="0" y="100"/>
+ <line x="100" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Transformer 1" strokewidth="inherit" w="64">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0"/>
+ <constraint name="out1" perimeter="0" x="0" y="1"/>
+ <constraint name="in2" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="60"/>
+ <line x="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="16" x-axis-rotation="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="32" x-axis-rotation="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="48" x-axis-rotation="0" y="46"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="64" x-axis-rotation="0" y="46"/>
+ <line x="64" y="60"/>
+ <move x="0" y="32"/>
+ <line x="64" y="32"/>
+ <move x="0" y="30"/>
+ <line x="64" y="30"/>
+ <move x="0" y="28"/>
+ <line x="64" y="28"/>
+ <move x="0" y="0"/>
+ <line x="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="16" x-axis-rotation="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="32" x-axis-rotation="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="48" x-axis-rotation="0" y="14"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="64" x-axis-rotation="0" y="14"/>
+ <line x="64" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Transformer 2" strokewidth="inherit" w="64">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0" y="0"/>
+ <constraint name="out1" perimeter="0" x="0" y="1"/>
+ <constraint name="in2" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="32"/>
+ <line x="64" y="32"/>
+ <move x="0" y="30"/>
+ <line x="64" y="30"/>
+ <move x="0" y="28"/>
+ <line x="64" y="28"/>
+ <move x="0" y="60"/>
+ <line x="0" y="46"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="16" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="18" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="14" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="16" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="32" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="34" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="30" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="32" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="1" x="48" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="1" x="46" x-axis-rotation="0" y="49"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="48" x-axis-rotation="0" y="41"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="1" x="64" x-axis-rotation="0" y="46"/>
+ <line x="64" y="60"/>
+ <move x="0" y="0"/>
+ <line x="0" y="14"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="16" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="18" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="14" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="16" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="0" x="32" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="34" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="30" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="32" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="11" ry="12" sweep-flag="0" x="48" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="50" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="46" x-axis-rotation="0" y="11"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="48" x-axis-rotation="0" y="19"/>
+ <arc large-arc-flag="0" rx="9" ry="9" sweep-flag="0" x="64" x-axis-rotation="0" y="14"/>
+ <line x="64" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Triplex Induction Volt Reg" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="100"/>
+ <move x="12" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="31" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="50" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="69" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="88" x-axis-rotation="0" y="35"/>
+ <move x="12" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="31" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="50" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="69" x-axis-rotation="0" y="55"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="88" x-axis-rotation="0" y="55"/>
+ <move x="12" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="31" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="50" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="69" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="9.5" ry="9.5" sweep-flag="1" x="88" x-axis-rotation="0" y="75"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Variable Inductor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="34" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="50" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="66" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="82" x-axis-rotation="0" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
+ <line x="66.5" y="15.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="88" name="Variometer" strokewidth="inherit" w="150">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0.205"/>
+ <constraint name="SW" perimeter="0" x="0" y="0.77"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="18"/>
+ <line x="40" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="65" x-axis-rotation="0" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="90" x-axis-rotation="0" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="115" x-axis-rotation="0" y="18"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="140" x-axis-rotation="0" y="18"/>
+ <line x="150" y="18"/>
+ <line x="150" y="68"/>
+ <line x="140" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="115" x-axis-rotation="0" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="90" x-axis-rotation="0" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="65" x-axis-rotation="0" y="68"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="40" x-axis-rotation="0" y="68"/>
+ <line x="0" y="68"/>
+ <move x="45" y="88"/>
+ <line x="120" y="12"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="125" y="16"/>
+ <line x="115" y="7"/>
+ <line x="131" y="0"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/instruments.xml b/war/stencils/electrical/instruments.xml
index 2c58d948..0555614c 100644
--- a/war/stencils/electrical/instruments.xml
+++ b/war/stencils/electrical/instruments.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.instruments">
+<shapes name="mxgraph.electrical.instruments">
<shape aspect="fixed" h="90" name="Ampermeter" strokewidth="inherit" w="90">
<connections>
<constraint name="N" perimeter="0" x="0.5" y="0"/>
@@ -19,7 +19,7 @@
<move x="25" y="75"/>
<line x="65" y="15"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
<move x="52" y="25"/>
<line x="65" y="15"/>
@@ -29,130 +29,118 @@
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Galvanometer" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Galvanometer" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="45.0" y="77.0"/>
- <line x="45.0" y="13.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="27.0"/>
- <line x="45.0" y="13.0"/>
- <line x="50.0" y="27.0"/>
+ <move x="45" y="77"/>
+ <line x="45" y="13"/>
+ <move x="40" y="27"/>
+ <line x="45" y="13"/>
+ <line x="50" y="27"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Oscilloscope" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Oscilloscope" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="10.0" y="55.0"/>
- <line x="25.0" y="35.0"/>
- <line x="25.0" y="55.0"/>
- <line x="40.0" y="35.0"/>
- <line x="40.0" y="55.0"/>
- <line x="55.0" y="35.0"/>
- <line x="55.0" y="55.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="55.0"/>
- <line x="77.5" y="45.0"/>
+ <move x="10" y="55"/>
+ <line x="25" y="35"/>
+ <line x="25" y="55"/>
+ <line x="40" y="35"/>
+ <line x="40" y="55"/>
+ <line x="55" y="35"/>
+ <line x="55" y="55"/>
+ <line x="70" y="35"/>
+ <line x="70" y="55"/>
+ <line x="77.5" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Signal Generator" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Signal Generator" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="30.0" y="75.0"/>
- <line x="40.0" y="65.0"/>
- <line x="40.0" y="75.0"/>
- <line x="50.0" y="65.0"/>
- <line x="50.0" y="75.0"/>
- <line x="60.0" y="65.0"/>
- <line x="60.0" y="75.0"/>
- </path>
- <stroke/>
- <path>
- <move x="30.0" y="20.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="20.0"/>
- <arc large-arc-flag="0" rx="8.0" ry="8.0" sweep-flag="0" x="60.0" x-axis-rotation="0.0" y="20.0"/>
- </path>
- <stroke/>
- <path>
- <move x="30.0" y="45.0"/>
- <line x="30.0" y="35.0"/>
- <line x="45.0" y="35.0"/>
- <line x="45.0" y="55.0"/>
- <line x="60.0" y="55.0"/>
- <line x="60.0" y="45.0"/>
+ <move x="30" y="75"/>
+ <line x="40" y="65"/>
+ <line x="40" y="75"/>
+ <line x="50" y="65"/>
+ <line x="50" y="75"/>
+ <line x="60" y="65"/>
+ <line x="60" y="75"/>
+ <move x="30" y="20"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="45" x-axis-rotation="0" y="20"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="60" x-axis-rotation="0" y="20"/>
+ <move x="30" y="45"/>
+ <line x="30" y="35"/>
+ <line x="45" y="35"/>
+ <line x="45" y="55"/>
+ <line x="60" y="55"/>
+ <line x="60" y="45"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Voltmeter" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Voltmeter" strokewidth="inherit" w="90">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
<constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
<constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
<constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
<constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fontsize size="50.0"/>
- <text align="center" str="V" valign="bottom" x="45.0" y="70.0"/>
+ <fontsize size="50"/>
+ <text align="center" str="V" valign="bottom" x="45" y="70"/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/logic_gates.xml b/war/stencils/electrical/logic_gates.xml
index 7da30c20..0ec8b3bc 100644
--- a/war/stencils/electrical/logic_gates.xml
+++ b/war/stencils/electrical/logic_gates.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.logic_gates">
+<shapes name="mxgraph.electrical.logic_gates">
<shape aspect="variable" h="60" name="AND" strokewidth="inherit" w="100">
<connections>
<constraint name="in1" perimeter="0" x="0" y="0.165"/>
@@ -19,921 +19,652 @@
<path>
<move x="0" y="10"/>
<line x="20" y="10"/>
- </path>
- <fillstroke/>
- <path>
<move x="0" y="50"/>
<line x="20" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="80" y="30"/>
<line x="100" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Bandpass Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Bandpass Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="6.0" y="33.0"/>
- <line x="16.0" y="13.0"/>
- <line x="36.0" y="13.0"/>
- <line x="46.0" y="33.0"/>
+ <move x="6" y="33"/>
+ <line x="16" y="13"/>
+ <line x="36" y="13"/>
+ <line x="46" y="33"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Buffer" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Buffer" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="20.0" y="0.0"/>
- <line x="80.0" y="30.0"/>
- <line x="20.0" y="60.0"/>
+ <move x="20" y="0"/>
+ <line x="80" y="30"/>
+ <line x="20" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="D Type Flip-Flop" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="D Type Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="D" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
+ <constraint name="D" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="D" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="55.0"/>
- <line x="30.0" y="60.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="55"/>
+ <line x="30" y="60"/>
+ <line x="20" y="65"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
</path>
<stroke/>
+ <text align="center" str="D" valign="bottom" x="25" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="D Type Flip-Flop With Clear" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="D Type Flip-Flop With Clear" strokewidth="inherit" w="100">
<connections>
- <constraint name="D" perimeter="0" x="0.0" y="0.335"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.78"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.335"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.78"/>
- <constraint name="clear" perimeter="0" x="0.5" y="0.0"/>
+ <constraint name="D" perimeter="0" x="0" y="0.335"/>
+ <constraint name="E" perimeter="0" x="0" y="0.78"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.335"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.78"/>
+ <constraint name="clear" perimeter="0" x="0.5" y="0"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="D" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="65.0"/>
- <line x="30.0" y="70.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="65"/>
+ <line x="30" y="70"/>
+ <line x="20" y="75"/>
+ <move x="50" y="0"/>
+ <line x="50" y="6"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="6.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="48.0" y="6.0"/>
+ <text align="center" str="D" valign="bottom" x="25" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <ellipse h="4" w="4" x="48" y="6"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="D Type RS Flip-Flop" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="D Type RS Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="D" perimeter="0" x="0.0" y="0.3"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.7"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.3"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.7"/>
- <constraint name="S" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="R" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="D" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="0" y="0.7"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.3"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.7"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0"/>
+ <constraint name="R" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="D" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="65.0"/>
- <line x="30.0" y="70.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="65"/>
+ <line x="30" y="70"/>
+ <line x="20" y="75"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="50" y="90"/>
+ <line x="50" y="100"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="50.0" y="20.0"/>
- <path>
- <move x="50.0" y="90.0"/>
- <line x="50.0" y="100.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="R" valign="bottom" x="50.0" y="89.0"/>
+ <text align="center" str="D" valign="bottom" x="25" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <text align="center" str="S" valign="bottom" x="50" y="20"/>
+ <text align="center" str="R" valign="bottom" x="50" y="89"/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Highpass Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Highpass Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="6.0" y="33.0"/>
- <line x="16.0" y="13.0"/>
- <line x="46.0" y="13.0"/>
+ <move x="6" y="33"/>
+ <line x="16" y="13"/>
+ <line x="46" y="13"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Inverter" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Inverter" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="80.0" y="30.0"/>
- <line x="20.0" y="60.0"/>
+ <move x="20" y="0"/>
+ <line x="80" y="30"/>
+ <line x="20" y="60"/>
<close/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
</path>
</background>
<foreground>
- <miterlimit limit="2"/>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
<fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Inverting Contact" strokewidth="inherit" w="5.0">
+ <shape aspect="variable" h="5" name="Inverting Contact" strokewidth="inherit" w="5">
<connections>
<constraint name="W" perimeter="0" x="0.1" y="0.5"/>
<constraint name="E" perimeter="0" x="0.9" y="0.5"/>
</connections>
<background>
- <ellipse h="4.0" w="4.0" x="0.5" y="0.5"/>
+ <ellipse h="4" w="4" x="0.5" y="0.5"/>
</background>
<foreground>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="JK Flip-Flop" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="JK Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="J" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="K" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
+ <constraint name="J" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.5"/>
+ <constraint name="K" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="J" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="K" valign="bottom" x="25.0" y="65.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="30.0" y="40.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="35"/>
+ <line x="30" y="40"/>
+ <line x="20" y="45"/>
+ <move x="0" y="40"/>
+ <line x="20" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
+ <text align="center" str="J" valign="bottom" x="25" y="25"/>
+ <text align="center" str="K" valign="bottom" x="25" y="65"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="JK Flip-Flop With Clear" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="JK Flip-Flop With Clear" strokewidth="inherit" w="100">
<connections>
- <constraint name="J" perimeter="0" x="0.0" y="0.335"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.555"/>
- <constraint name="K" perimeter="0" x="0.0" y="0.78"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.335"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.78"/>
- <constraint name="clear" perimeter="0" x="0.5" y="0.0"/>
+ <constraint name="J" perimeter="0" x="0" y="0.335"/>
+ <constraint name="E" perimeter="0" x="0" y="0.555"/>
+ <constraint name="K" perimeter="0" x="0" y="0.78"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.335"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.78"/>
+ <constraint name="clear" perimeter="0" x="0.5" y="0"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="J" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="K" valign="bottom" x="25.0" y="75.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="30.0" y="50.0"/>
- <line x="20.0" y="55.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="45"/>
+ <line x="30" y="50"/>
+ <line x="20" y="55"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="50" y="0"/>
+ <line x="50" y="6"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
+ <text align="center" str="J" valign="bottom" x="25" y="35"/>
+ <text align="center" str="K" valign="bottom" x="25" y="75"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <ellipse h="4" w="4" x="48" y="6"/>
<fillstroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="6.0"/>
- </path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="48.0" y="6.0"/>
- <fillstroke/>
- <text align="center" str="C" valign="bottom" x="50.0" y="20.0"/>
+ <text align="center" str="C" valign="bottom" x="50" y="20"/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="JK Flip-Flop With SR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="JK Flip-Flop With SR" strokewidth="inherit" w="100">
<connections>
- <constraint name="J" perimeter="0" x="0.0" y="0.3"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="K" perimeter="0" x="0.0" y="0.7"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.3"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.7"/>
- <constraint name="S" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="R" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="J" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="0" y="0.5"/>
+ <constraint name="K" perimeter="0" x="0" y="0.7"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.3"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.7"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0"/>
+ <constraint name="R" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="10.0"/>
+ <rect h="80" w="60" x="20" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="70.0"/>
- <line x="20.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="J" valign="bottom" x="25.0" y="35.0"/>
- <text align="center" str="K" valign="bottom" x="25.0" y="75.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="35.0"/>
- <path>
- <move x="80.0" y="70.0"/>
- <line x="100.0" y="70.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="75.0"/>
- <path>
- <move x="71.0" y="65.0"/>
- <line x="79.0" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="30.0" y="50.0"/>
- <line x="20.0" y="55.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="0" y="70"/>
+ <line x="20" y="70"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="70"/>
+ <line x="100" y="70"/>
+ <move x="71" y="65"/>
+ <line x="79" y="65"/>
+ <move x="20" y="45"/>
+ <line x="30" y="50"/>
+ <line x="20" y="55"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="50" y="90"/>
+ <line x="50" y="100"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="50.0" y="20.0"/>
- <path>
- <move x="50.0" y="90.0"/>
- <line x="50.0" y="100.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="R" valign="bottom" x="50.0" y="89.0"/>
+ <text align="center" str="J" valign="bottom" x="25" y="35"/>
+ <text align="center" str="K" valign="bottom" x="25" y="75"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="35"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="75"/>
+ <text align="center" str="S" valign="bottom" x="50" y="20"/>
+ <text align="center" str="R" valign="bottom" x="50" y="89"/>
</foreground>
</shape>
- <shape aspect="variable" h="46.0" name="Lowpass Filter" strokewidth="inherit" w="52.0">
+ <shape aspect="variable" h="46" name="Lowpass Filter" strokewidth="inherit" w="52">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <rect h="46.0" w="52.0" x="0.0" y="0.0"/>
+ <rect h="46" w="52" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="6.0" y="13.0"/>
- <line x="36.0" y="13.0"/>
- <line x="46.0" y="33.0"/>
+ <move x="6" y="13"/>
+ <line x="36" y="13"/>
+ <line x="46" y="33"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="NAND" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="NAND" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="20.0" y="0.0"/>
- <line x="50.0" y="0.0"/>
- <arc large-arc-flag="0" rx="30.0" ry="30.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
+ <move x="20" y="0"/>
+ <line x="50" y="0"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="50" x-axis-rotation="0" y="60"/>
+ <line x="20" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
</path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
+ <stroke/>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="NOR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="NOR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
</path>
- <fillstroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
+ <stroke/>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="OR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="OR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="RS Latch" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="RS Latch" strokewidth="inherit" w="100">
<connections>
- <constraint name="S" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="R" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
+ <constraint name="S" perimeter="0" x="0" y="0.25"/>
+ <constraint name="R" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="R" valign="bottom" x="25.0" y="65.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
</path>
- <fillstroke/>
+ <stroke/>
+ <text align="center" str="S" valign="bottom" x="25" y="25"/>
+ <text align="center" str="R" valign="bottom" x="25" y="65"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Schmitt Trigger" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Schmitt Trigger" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="20.0" y="0.0"/>
- <line x="80.0" y="30.0"/>
- <line x="20.0" y="60.0"/>
+ <move x="20" y="0"/>
+ <line x="80" y="30"/>
+ <line x="20" y="60"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="35.0"/>
- <line x="46.0" y="35.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="31.0"/>
- <line x="50.0" y="29.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="1" x="54.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="55.0" y="25.0"/>
- <line x="39.0" y="25.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="29.0"/>
- <line x="35.0" y="31.0"/>
- <arc large-arc-flag="0" rx="4.0" ry="4.0" sweep-flag="1" x="31.0" x-axis-rotation="0.0" y="35.0"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="35"/>
+ <line x="46" y="35"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="50" x-axis-rotation="0" y="31"/>
+ <line x="50" y="29"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="54" x-axis-rotation="0" y="25"/>
+ <line x="55" y="25"/>
+ <line x="39" y="25"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="35" x-axis-rotation="0" y="29"/>
+ <line x="35" y="31"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="31" x-axis-rotation="0" y="35"/>
<close/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Synchronous RS Latch" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="Synchronous RS Latch" strokewidth="inherit" w="100">
<connections>
- <constraint name="S" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="R" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
+ <constraint name="S" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.5"/>
+ <constraint name="R" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <save/>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="S" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="R" valign="bottom" x="25.0" y="65.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="30.0" y="40.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="35"/>
+ <line x="30" y="40"/>
+ <line x="20" y="45"/>
+ <move x="0" y="40"/>
+ <line x="20" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
+ <text align="center" str="S" valign="bottom" x="25" y="25"/>
+ <text align="center" str="R" valign="bottom" x="25" y="65"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="T Type Flip-Flop" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="80" name="T Type Flip-Flop" strokewidth="inherit" w="100">
<connections>
- <constraint name="T" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="E" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="Q" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="Qneg" perimeter="0" x="1.0" y="0.75"/>
+ <constraint name="T" perimeter="0" x="0" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0" y="0.75"/>
+ <constraint name="Q" perimeter="0" x="1" y="0.25"/>
+ <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
</connections>
<background>
- <rect h="80.0" w="60.0" x="20.0" y="0.0"/>
+ <rect h="80" w="60" x="20" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="20.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="T" valign="bottom" x="25.0" y="25.0"/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="25.0"/>
- <path>
- <move x="80.0" y="60.0"/>
- <line x="100.0" y="60.0"/>
- </path>
- <fillstroke/>
- <text align="center" str="Q" valign="bottom" x="75.0" y="65.0"/>
- <path>
- <move x="71.0" y="55.0"/>
- <line x="79.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="55.0"/>
- <line x="30.0" y="60.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="0" y="20"/>
+ <line x="20" y="20"/>
+ <move x="0" y="60"/>
+ <line x="20" y="60"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="80" y="60"/>
+ <line x="100" y="60"/>
+ <move x="71" y="55"/>
+ <line x="79" y="55"/>
+ <move x="20" y="55"/>
+ <line x="30" y="60"/>
+ <line x="20" y="65"/>
</path>
<stroke/>
+ <text align="center" str="T" valign="bottom" x="25" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="25"/>
+ <text align="center" str="Q" valign="bottom" x="75" y="65"/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="XNOR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="XNOR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
<path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="10.0" y="0.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="84" y="30"/>
+ <line x="100" y="30"/>
+ <move x="10" y="0"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="1" x="10" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="4.0" w="4.0" x="80.0" y="28.0"/>
+ <ellipse h="4" w="4" x="80" y="28"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="XOR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="XOR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="in2" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="in2" perimeter="0" x="0" y="0.835"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
<path>
- <move x="15.0" y="0.0"/>
- <line x="40.0" y="0.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="80.0" x-axis-rotation="0.0" y="30.0"/>
- <arc large-arc-flag="0" rx="45.0" ry="50.0" sweep-flag="1" x="40.0" x-axis-rotation="0.0" y="60.0"/>
- <line x="15.0" y="60.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="0.0"/>
+ <move x="15" y="0"/>
+ <line x="40" y="0"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
+ <line x="15" y="60"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="10.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="20.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="10.0" y="0.0"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="60.0"/>
+ <move x="0" y="10"/>
+ <line x="20" y="10"/>
+ <move x="0" y="50"/>
+ <line x="20" y="50"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="10" y="0"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="1" x="10" x-axis-rotation="0" y="60"/>
</path>
<stroke/>
</foreground>
diff --git a/war/stencils/electrical/miscellaneous.xml b/war/stencils/electrical/miscellaneous.xml
index a3ce34d4..efb3c02f 100644
--- a/war/stencils/electrical/miscellaneous.xml
+++ b/war/stencils/electrical/miscellaneous.xml
@@ -1,586 +1,1649 @@
-<shapes name="mxGraph.electrical.miscellaneous">
- <shape aspect="variable" h="60" name="Co-ax" strokewidth="inherit" w="40">
- <connections>
- <constraint perimeter="0" x="1" y="0.25"/>
- </connections>
- <foreground>
- <path>
- <move x="0" y="50"/>
- <line x="30" y="50"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15" y="30"/>
- <line x="15" y="50"/>
- </path>
- <fillstroke/>
- <ellipse h="30" w="30" x="0" y="0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="10" w="10" x="10" y="10"/>
- <stroke/>
- <path>
- <move x="20" y="15"/>
- <line x="40" y="15"/>
- </path>
- <stroke/>
- <path>
- <move x="23" y="50"/>
- <line x="18" y="60"/>
- </path>
- <stroke/>
- <path>
- <move x="15" y="50"/>
- <line x="9.6" y="59.8"/>
- </path>
- <stroke/>
- <path>
- <move x="7" y="50"/>
- <line x="2" y="60"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Crystal 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="40.0" w="14.0" x="43.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="39.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="0.0"/>
- <line x="39.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="0.0"/>
- <line x="61.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Crystal 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="40.0" w="14.0" x="43.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="39.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.0" y="0.0"/>
- <line x="39.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.0" y="0.0"/>
- <line x="61.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="22.0" name="Fusable Resistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="22.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="11.0"/>
- <line x="18.0" y="11.0"/>
- <line x="22.0" y="1.0"/>
- <line x="30.0" y="21.0"/>
- <line x="38.0" y="1.0"/>
- <line x="46.0" y="21.0"/>
- <line x="54.0" y="1.0"/>
- <line x="62.0" y="21.0"/>
- <line x="70.0" y="1.0"/>
- <line x="78.0" y="21.0"/>
- <line x="82.0" y="11.0"/>
- <line x="100.0" y="11.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Fuse 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="25.0" y="0.0"/>
- <line x="25.0" y="20.0"/>
- </path>
- <stroke/>
- <path>
- <move x="75.0" y="0.0"/>
- <line x="75.0" y="20.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Fuse 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="12.0" name="Fuse 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="6.0"/>
- <line x="16.0" y="6.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="84.0" y="6.0"/>
- <line x="100.0" y="6.0"/>
- </path>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="72.0" y="0.0"/>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="16.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="22.5" y="0.0"/>
- <line x="77.5" y="12.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.5" y="0.0"/>
- <line x="22.5" y="12.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="32.0" name="Fuse 4" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="16.0"/>
- <line x="18.0" y="16.0"/>
- <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="16.0"/>
- <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="82.0" x-axis-rotation="0.0" y="16.0"/>
- <line x="100.0" y="16.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Illuminating Bulb" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="10.0" y="25.0"/>
- <arc large-arc-flag="1" rx="20.0" ry="20.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Lamp 1" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="25.0"/>
- <arc large-arc-flag="1" rx="25.0" ry="25.0" sweep-flag="1" x="50.0" x-axis-rotation="0.0" y="25.0"/>
- <line x="35.0" y="25.0"/>
- <arc large-arc-flag="0" rx="10.0" ry="10.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="25.0"/>
- <close/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Lamp 2" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="7.2" y="7.2"/>
- <line x="42.8" y="42.8"/>
- </path>
- <fillstroke/>
- <path>
- <move x="42.8" y="7.2"/>
- <line x="7.2" y="42.8"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Light Bulb" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="12.2" y="7.2"/>
- <line x="47.8" y="42.8"/>
- </path>
- <fillstroke/>
- <path>
- <move x="47.8" y="7.2"/>
- <line x="12.2" y="42.8"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="5.0" y="25.0"/>
- </path>
- <stroke/>
- <path>
- <move x="55.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Monocell Battery" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="45.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="0.0"/>
- <line x="55.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <rect h="30.0" w="4.0" x="41.0" y="15.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Multicell Battery" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="34.0" y="0.0"/>
- <line x="34.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <rect h="30.0" w="4.0" x="20.0" y="15.0"/>
- <fillstroke/>
- <path>
- <move x="80.0" y="0.0"/>
- <line x="80.0" y="60.0"/>
- </path>
- <fillstroke/>
- <rect h="30.0" w="4.0" x="66.0" y="15.0"/>
- <fillstroke/>
- <path>
- <move x="34.0" y="30.0"/>
- <line x="39.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="44.0" y="30.0"/>
- <line x="49.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="54.0" y="30.0"/>
- <line x="59.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="64.0" y="30.0"/>
- <line x="66.0" y="30.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Neon Lamp" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="20.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="15.0"/>
- <line x="30.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="50.0" y="25.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Neon Lamp 2" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="50.0" w="50.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="15.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="15.0"/>
- <line x="35.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="4.0" w="4.0" x="18.0" y="30.5"/>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Thermistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="20.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Thermistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="70.0" w="70.0" x="15.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="18.0" y="35.0"/>
- <line x="22.0" y="25.0"/>
- <line x="30.0" y="45.0"/>
- <line x="38.0" y="25.0"/>
- <line x="46.0" y="45.0"/>
- <line x="54.0" y="25.0"/>
- <line x="62.0" y="45.0"/>
- <line x="70.0" y="25.0"/>
- <line x="78.0" y="45.0"/>
- <line x="82.0" y="35.0"/>
- <line x="100.0" y="35.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="81.0" name="Thermocouple" strokewidth="inherit" w="80.0">
- <connections>
- <constraint name="+" perimeter="0" x="0.125" y="0.0"/>
- <constraint name="-" perimeter="0" x="0.875" y="0.0"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="10.0" y="0.0"/>
- <line x="10.0" y="50.0"/>
- <line x="40.0" y="80.0"/>
- <line x="70.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="2.0" w="2.0" x="39.0" y="79.0"/>
- <fillstroke/>
- <path>
- <move x="3.0" y="2.0"/>
- <line x="3.0" y="8.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="6.0" y="5.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="74.0" y="5.0"/>
- <line x="80.0" y="5.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
+<shapes name="mxgraph.electrical.miscellaneous">
+<shape aspect="variable" h="50" name="2 Conductor Jack" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.4"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="90" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="20"/>
+ <line x="40" y="30"/>
+ <line x="50" y="20"/>
+ <line x="90" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="2 Conductor Plug" strokewidth="inherit" w="53">
+ <connections>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="53" y="0"/>
+ <line x="13" y="0"/>
+ <line x="13" y="5"/>
+ <line x="6" y="5"/>
+ <move x="53" y="24"/>
+ <line x="13" y="24"/>
+ <line x="13" y="19"/>
+ <line x="6" y="19"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="0" y="16"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="3 Conductor Jack" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="NE" perimeter="0" x="1" y="0.1"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.9"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="90" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="5"/>
+ <line x="40" y="15"/>
+ <line x="50" y="5"/>
+ <line x="90" y="5"/>
+ </path>
+ <stroke/>
+ <ellipse h="10" w="10" x="90" y="40"/>
+ <fillstroke/>
+ <path>
+ <move x="40" y="45"/>
+ <line x="50" y="35"/>
+ <line x="60" y="45"/>
+ <line x="90" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="3 Conductor Plug" strokewidth="inherit" w="53">
+ <connections>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="53" y="0"/>
+ <line x="13" y="0"/>
+ <line x="13" y="5"/>
+ <line x="6" y="5"/>
+ <move x="53" y="24"/>
+ <line x="13" y="24"/>
+ <line x="13" y="19"/>
+ <line x="6" y="19"/>
+ <move x="6" y="12"/>
+ <line x="53" y="12"/>
+ </path>
+ <stroke/>
+ <ellipse h="6" w="6" x="0" y="16"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="AC Out" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="100" w="200" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="55" w="26" x="87" y="12"/>
+ <stroke/>
+ <rect h="55" w="26" x="12" y="33"/>
+ <stroke/>
+ <rect h="55" w="26" x="162" y="33"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Adapter" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="100" y="40"/>
+ <arc large-arc-flag="0" rx="21" ry="21" sweep-flag="1" x="100" x-axis-rotation="0" y="0"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="86" y="25"/>
+ <arc large-arc-flag="0" rx="21" ry="21" sweep-flag="1" x="86" x-axis-rotation="0" y="15"/>
+ <line x="0" y="15"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Cable Termination" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="60" y="50"/>
+ <line x="60" y="0"/>
+ <line x="85" y="25"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="100" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32.32" name="Chassis" strokewidth="inherit" w="65.49">
+ <connections>
+ <constraint name="1" perimeter="0" x="0.62" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="32.32"/>
+ <line x="15.53" y="10"/>
+ <line x="65.49" y="10"/>
+ <line x="52.18" y="32.32"/>
+ <move x="26.09" y="32.32"/>
+ <line x="40.53" y="10"/>
+ <line x="40.53" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="12.6" name="Circuit Breaker" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="12.6"/>
+ <line x="30" y="12.6"/>
+ <move x="70" y="12.6"/>
+ <line x="100" y="12.6"/>
+ <move x="28" y="9.6"/>
+ <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="72" x-axis-rotation="0" y="9.6"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Co-ax" strokewidth="inherit" w="40">
+ <connections>
+ <constraint name="1" perimeter="0" x="1" y="0.25"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="50"/>
+ <line x="30" y="50"/>
+ <move x="15" y="30"/>
+ <line x="15" y="50"/>
+ <move x="20" y="15"/>
+ <line x="40" y="15"/>
+ <move x="23" y="50"/>
+ <line x="18" y="60"/>
+ <move x="15" y="50"/>
+ <line x="9.6" y="59.8"/>
+ <move x="7" y="50"/>
+ <line x="2" y="60"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="30" w="30" x="0" y="0"/>
+ <fillstroke/>
+ <fillcolor color="none"/>
+ <ellipse h="10" w="10" x="10" y="10"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Coaxial Center Conductor" strokewidth="inherit" w="300">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.165"/>
+ <constraint name="E" perimeter="0" x="1" y="0.165"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="50"/>
+ <line x="70" y="50"/>
+ <move x="230" y="50"/>
+ <line x="280" y="50"/>
+ <move x="137" y="12"/>
+ <line x="150" y="25"/>
+ <line x="137" y="38"/>
+ <move x="152" y="12"/>
+ <line x="165" y="25"/>
+ <line x="152" y="38"/>
+ <move x="45" y="50"/>
+ <line x="45" y="120"/>
+ <line x="150" y="120"/>
+ <move x="137" y="107"/>
+ <line x="150" y="120"/>
+ <line x="137" y="133"/>
+ <move x="152" y="107"/>
+ <line x="165" y="120"/>
+ <line x="152" y="133"/>
+ <move x="290" y="150"/>
+ <line x="275" y="135"/>
+ <line x="275" y="105"/>
+ <line x="290" y="120"/>
+ <move x="165" y="120"/>
+ <line x="275" y="120"/>
+ <line x="290" y="135"/>
+ <move x="165" y="25"/>
+ <line x="300" y="25"/>
+ <move x="0" y="25"/>
+ <line x="150" y="25"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="20" y="0"/>
+ <stroke/>
+ <ellipse h="50" w="50" x="230" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Coaxial Jack Plug" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.25"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.25"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="100"/>
+ <line x="30" y="100"/>
+ <move x="12" y="93"/>
+ <line x="38" y="93"/>
+ <move x="6" y="86"/>
+ <line x="44" y="86"/>
+ <move x="25" y="50"/>
+ <line x="25" y="86"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="19" y="19"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Coaxial Outside Conductor" strokewidth="inherit" w="300">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.165"/>
+ <constraint name="E" perimeter="0" x="1" y="0.165"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="50"/>
+ <line x="70" y="50"/>
+ <move x="230" y="50"/>
+ <line x="280" y="50"/>
+ <move x="137" y="12"/>
+ <line x="150" y="25"/>
+ <line x="137" y="38"/>
+ <move x="152" y="12"/>
+ <line x="165" y="25"/>
+ <line x="152" y="38"/>
+ <move x="45" y="50"/>
+ <line x="45" y="137"/>
+ <line x="150" y="137"/>
+ <move x="137" y="124"/>
+ <line x="150" y="137"/>
+ <line x="137" y="150"/>
+ <move x="152" y="124"/>
+ <line x="165" y="137"/>
+ <line x="152" y="150"/>
+ <move x="165" y="137"/>
+ <line x="255" y="137"/>
+ <line x="255" y="50"/>
+ <move x="165" y="25"/>
+ <line x="300" y="25"/>
+ <move x="0" y="25"/>
+ <line x="150" y="25"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="20" y="0"/>
+ <stroke/>
+ <ellipse h="50" w="50" x="230" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Crystal 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="40" w="14" x="43" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="20"/>
+ <line x="39" y="20"/>
+ <move x="61" y="20"/>
+ <line x="100" y="20"/>
+ <move x="39" y="0"/>
+ <line x="39" y="40"/>
+ <move x="61" y="0"/>
+ <line x="61" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Crystal 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="40" w="14" x="43" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="20"/>
+ <line x="39" y="20"/>
+ <move x="61" y="20"/>
+ <line x="100" y="20"/>
+ <move x="39" y="0"/>
+ <line x="39" y="40"/>
+ <move x="61" y="0"/>
+ <line x="61" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="C Header Connector" strokewidth="inherit" w="200">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="S" perimeter="0" x="0.5" y="0.8"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="35" y="75"/>
+ <line x="15" y="75"/>
+ <line x="0" y="45"/>
+ <line x="0" y="0"/>
+ <line x="200" y="0"/>
+ <line x="200" y="45"/>
+ <line x="185" y="75"/>
+ <line x="165" y="75"/>
+ <line x="155" y="60"/>
+ <line x="45" y="60"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="90" y="60"/>
+ <line x="90" y="40"/>
+ <line x="110" y="40"/>
+ <line x="110" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Delay Element" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="100" w="90" x="5" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="5" y="50"/>
+ <move x="95" y="50"/>
+ <line x="100" y="50"/>
+ <move x="15" y="40"/>
+ <line x="15" y="60"/>
+ <move x="15" y="50"/>
+ <line x="85" y="50"/>
+ <move x="85" y="40"/>
+ <line x="85" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Flourescent Lamp" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="30"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="5" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="20" x-axis-rotation="0" y="0"/>
+ <line x="60" y="0"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="75" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="60" x-axis-rotation="0" y="30"/>
+ <close/>
+ <move x="0" y="15"/>
+ <line x="15" y="15"/>
+ <move x="65" y="15"/>
+ <line x="80" y="15"/>
+ <move x="65" y="10"/>
+ <line x="65" y="20"/>
+ <move x="15" y="10"/>
+ <line x="15" y="20"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="15" y="10"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="55" y="10"/>
+ <stroke/>
+ <ellipse h="4" w="4" x="38" y="3"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="22" name="Fusable Resistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="22" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="11"/>
+ <line x="18" y="11"/>
+ <line x="22" y="1"/>
+ <line x="30" y="21"/>
+ <line x="38" y="1"/>
+ <line x="46" y="21"/>
+ <line x="54" y="1"/>
+ <line x="62" y="21"/>
+ <line x="70" y="1"/>
+ <line x="78" y="21"/>
+ <line x="82" y="11"/>
+ <line x="100" y="11"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Fuse 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="20" w="64" x="18" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="25" y="0"/>
+ <line x="25" y="20"/>
+ <move x="75" y="0"/>
+ <line x="75" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Fuse 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="12" name="Fuse 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="6"/>
+ <line x="16" y="6"/>
+ <move x="84" y="6"/>
+ <line x="100" y="6"/>
+ <move x="22.5" y="0"/>
+ <line x="77.5" y="12"/>
+ <move x="77.5" y="0"/>
+ <line x="22.5" y="12"/>
+ </path>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="72" y="0"/>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="16" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Fuse 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18" y="16"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="1" x="50" x-axis-rotation="0" y="16"/>
+ <arc large-arc-flag="0" rx="12.5" ry="12.5" sweep-flag="0" x="82" x-axis-rotation="0" y="16"/>
+ <line x="100" y="16"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 2 Conductor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="36" w="18" x="14" y="32"/>
+ <stroke/>
+ <rect h="22" w="18" x="68" y="39"/>
+ <stroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="14" y="50"/>
+ <move x="86" y="50"/>
+ <line x="100" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 2 Conductor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="6" y="50"/>
+ <move x="94" y="50"/>
+ <line x="100" y="50"/>
+ <move x="18.9" y="81.1"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="18.9" x-axis-rotation="0" y="18.9"/>
+ <line x="27.4" y="27.4"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="27.4" x-axis-rotation="0" y="72.6"/>
+ <close/>
+ <move x="72.6" y="72.6"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="72.6" x-axis-rotation="0" y="27.4"/>
+ <line x="81.1" y="18.9"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="81.1" x-axis-rotation="0" y="81.1"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="F M 2 Conductor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="25" y="50"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="0" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="25" x-axis-rotation="0" y="0"/>
+ <line x="75" y="0"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="100" x-axis-rotation="0" y="25"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="75" x-axis-rotation="0" y="50"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="20" y="20"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="70" y="20"/>
+ <stroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="20" y="25"/>
+ <move x="80" y="25"/>
+ <line x="100" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.02" y="0.37"/>
+ <constraint name="E" perimeter="0" x="0.98" y="0.37"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="36" w="18" x="14" y="19"/>
+ <stroke/>
+ <rect h="22" w="18" x="68" y="26"/>
+ <stroke/>
+ <path>
+ <move x="2" y="37"/>
+ <line x="14" y="37"/>
+ <move x="86" y="37"/>
+ <line x="98" y="37"/>
+ <move x="50" y="100"/>
+ <line x="50" y="85"/>
+ <move x="40" y="85"/>
+ <arc large-arc-flag="0" rx="10" ry="15" sweep-flag="1" x="50" x-axis-rotation="0" y="70"/>
+ <arc large-arc-flag="0" rx="10" ry="15" sweep-flag="1" x="60" x-axis-rotation="0" y="85"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.07" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0.93" y="0.25"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="36" w="18" x="41" y="55"/>
+ <stroke/>
+ <path>
+ <move x="7" y="25"/>
+ <line x="16.5" y="25"/>
+ <move x="83.5" y="25"/>
+ <line x="93" y="25"/>
+ <move x="50" y="100"/>
+ <line x="50" y="91"/>
+ <move x="4.4" y="46.3"/>
+ <line x="22.3" y="15.1"/>
+ <line x="37.8" y="24.1"/>
+ <line x="19.9" y="55.3"/>
+ <close/>
+ <move x="62.2" y="24"/>
+ <line x="77.7" y="14.9"/>
+ <line x="95.7" y="46.2"/>
+ <line x="80.1" y="55.3"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.035" y="0.32"/>
+ <constraint name="E" perimeter="0" x="0.965" y="0.32"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="3.5" y="32"/>
+ <line x="12" y="32"/>
+ <move x="88" y="32"/>
+ <line x="96.5" y="32"/>
+ <move x="50" y="100"/>
+ <line x="50" y="91"/>
+ <move x="40" y="91"/>
+ <line x="40" y="75"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="50" x-axis-rotation="0" y="65"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="1" x="60" x-axis-rotation="0" y="75"/>
+ <line x="60" y="91"/>
+ <close/>
+ </path>
+ <stroke/>
+ <rect h="14" w="22" x="12" y="25"/>
+ <stroke/>
+ <rect h="14" w="22" x="66" y="25"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="SW" perimeter="0" x="0.25" y="0.93"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="50"/>
+ <line x="6" y="50"/>
+ <move x="94" y="50"/>
+ <line x="100" y="50"/>
+ <move x="43.46" y="93.58"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="14.68" x-axis-rotation="-81.24" y="76.2"/>
+ <line x="24.37" y="69.09"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="45.29" x-axis-rotation="-81.24" y="81.72"/>
+ <close/>
+ <move x="9.3" y="66.4"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="18.9" x-axis-rotation="0" y="18.9"/>
+ <line x="27.4" y="27.4"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="20.4" x-axis-rotation="0" y="61.9"/>
+ <close/>
+ <move x="79.6" y="61.9"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="72.6" x-axis-rotation="0" y="27.4"/>
+ <line x="81.1" y="18.9"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="90.8" x-axis-rotation="0" y="66.3"/>
+ <close/>
+ <move x="25" y="93.3"/>
+ <line x="25" y="86.3"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="49.75" y="63.87"/>
+ <arc large-arc-flag="0" rx="44" ry="44" sweep-flag="1" x="45.31" x-axis-rotation="165.2" y="97.21"/>
+ <line x="34.92" y="91.16"/>
+ <arc large-arc-flag="0" rx="32" ry="32" sweep-flag="0" x="38.14" x-axis-rotation="165.2" y="66.94"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="F M 3 Conductor 5" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="SW" perimeter="0" x="0.25" y="0.93"/>
+ <constraint name="W" perimeter="0" x="0.07" y="0.25"/>
+ <constraint name="E" perimeter="0" x="0.93" y="0.25"/>
+ </connections>
+ <foreground>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ <fillstroke/>
+ <rect h="18" w="36" x="32" y="73"/>
+ <stroke/>
+ <path>
+ <move x="7" y="25"/>
+ <line x="16.5" y="25"/>
+ <move x="83.5" y="25"/>
+ <line x="93" y="25"/>
+ <move x="50" y="100"/>
+ <line x="50" y="91"/>
+ <move x="62.2" y="24"/>
+ <line x="77.7" y="14.9"/>
+ <line x="95.7" y="46.2"/>
+ <line x="80.1" y="55.3"/>
+ <close/>
+ <move x="4.4" y="46.3"/>
+ <line x="22.3" y="15.1"/>
+ <line x="37.8" y="24.1"/>
+ <line x="19.9" y="55.3"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Generic Component" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="60" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="20" y="18"/>
+ <line x="40" y="18"/>
+ <line x="20" y="42"/>
+ <line x="40" y="42"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="39" name="Igniter Plug" strokewidth="inherit" w="72">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.54" y="0"/>
+ <constraint name="S" perimeter="0" x="0.54" y="0.67"/>
+ <constraint name="W" perimeter="0" x="0" y="0.33"/>
+ </connections>
+ <foreground>
+ <rect h="26" w="40" x="19" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="19" y="3"/>
+ <line x="17" y="3"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="15" x-axis-rotation="0" y="5"/>
+ <line x="15" y="21"/>
+ <arc large-arc-flag="0" rx="2" ry="2" sweep-flag="0" x="17" x-axis-rotation="0" y="23"/>
+ <line x="19" y="23"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="54" y="13"/>
+ <line x="67" y="13"/>
+ <line x="67" y="33"/>
+ <move x="62" y="33"/>
+ <line x="72" y="33"/>
+ <move x="64" y="36"/>
+ <line x="70" y="36"/>
+ <move x="66" y="39"/>
+ <line x="68" y="39"/>
+ <move x="7" y="9"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="7" x-axis-rotation="0" y="17"/>
+ <move x="8" y="9"/>
+ <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="8" x-axis-rotation="0" y="17"/>
+ <move x="0" y="13"/>
+ <line x="24" y="13"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="24" y="9"/>
+ <line x="34" y="13"/>
+ <line x="24" y="17"/>
+ <close/>
+ <move x="54" y="9"/>
+ <line x="54" y="17"/>
+ <line x="44" y="13"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Illuminating Bulb" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="10" y="25"/>
+ <arc large-arc-flag="1" rx="20" ry="20" sweep-flag="1" x="50" x-axis-rotation="0" y="25"/>
+ <line x="60" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Indicator" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <foreground>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="5" y="35"/>
+ <line x="40" y="25"/>
+ <line x="40" y="35"/>
+ <line x="55" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Lamp 1" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <arc large-arc-flag="1" rx="25" ry="25" sweep-flag="1" x="50" x-axis-rotation="0" y="25"/>
+ <line x="35" y="25"/>
+ <arc large-arc-flag="0" rx="10" ry="10" sweep-flag="0" x="15" x-axis-rotation="0" y="25"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Lamp 2" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="7.2" y="7.2"/>
+ <line x="42.8" y="42.8"/>
+ <move x="42.8" y="7.2"/>
+ <line x="7.2" y="42.8"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="Large D Connector" strokewidth="inherit" w="375">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <roundrect arcsize="6.67" h="75" w="375" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="44" y="60"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="39" x-axis-rotation="0" y="56"/>
+ <line x="28" y="19"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="33" x-axis-rotation="0" y="15"/>
+ <line x="342" y="15"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="348" x-axis-rotation="0" y="19"/>
+ <line x="336" y="56"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="331" x-axis-rotation="0" y="60"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Light Bulb" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="12.2" y="7.2"/>
+ <line x="47.8" y="42.8"/>
+ <move x="47.8" y="7.2"/>
+ <line x="12.2" y="42.8"/>
+ <move x="0" y="25"/>
+ <line x="5" y="25"/>
+ <move x="55" y="25"/>
+ <line x="60" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Loop Antenna" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="1"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="E" perimeter="0" x="1" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="100"/>
+ <line x="45" y="100"/>
+ <line x="45" y="85"/>
+ <line x="5" y="45"/>
+ <line x="50" y="0"/>
+ <line x="95" y="45"/>
+ <line x="55" y="85"/>
+ <line x="55" y="100"/>
+ <line x="100" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="MF Contact 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="10" w="50" x="50" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="5"/>
+ <line x="50" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Monocell Battery" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="45" y="30"/>
+ <move x="55" y="0"/>
+ <line x="55" y="60"/>
+ <move x="55" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ <rect h="30" w="4" x="41" y="15"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Multicell Battery" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="34" y="0"/>
+ <line x="34" y="60"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="0"/>
+ <line x="80" y="60"/>
+ <move x="34" y="30"/>
+ <line x="39" y="30"/>
+ <move x="44" y="30"/>
+ <line x="49" y="30"/>
+ <move x="54" y="30"/>
+ <line x="59" y="30"/>
+ <move x="64" y="30"/>
+ <line x="66" y="30"/>
+ </path>
+ <fillstroke/>
+ <rect h="30" w="4" x="20" y="15"/>
+ <fillstroke/>
+ <rect h="30" w="4" x="66" y="15"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Multicell Battery Tapped" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.43"/>
+ <constraint name="E" perimeter="0" x="1" y="0.43"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="34" y="0"/>
+ <line x="34" y="60"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="0"/>
+ <line x="80" y="60"/>
+ <move x="34" y="30"/>
+ <line x="39" y="30"/>
+ <move x="44" y="30"/>
+ <line x="49" y="30"/>
+ <move x="54" y="30"/>
+ <line x="59" y="30"/>
+ <move x="64" y="30"/>
+ <line x="66" y="30"/>
+ <move x="50" y="70"/>
+ <line x="50" y="40"/>
+ </path>
+ <fillstroke/>
+ <rect h="30" w="4" x="20" y="15"/>
+ <fillstroke/>
+ <rect h="30" w="4" x="66" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="46" y="50"/>
+ <line x="50" y="40"/>
+ <line x="54" y="50"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Neon Lamp" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="20" y="25"/>
+ <move x="20" y="15"/>
+ <line x="20" y="35"/>
+ <move x="30" y="15"/>
+ <line x="30" y="35"/>
+ <move x="30" y="25"/>
+ <line x="50" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Neon Lamp 2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="50" w="50" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="25" y="15"/>
+ <line x="25" y="35"/>
+ <move x="35" y="15"/>
+ <line x="35" y="35"/>
+ <move x="35" y="25"/>
+ <line x="60" y="25"/>
+ </path>
+ <stroke/>
+ <ellipse h="4" w="4" x="18" y="30.5"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65" name="Normalled Jack" strokewidth="inherit" w="110">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.31"/>
+ <constraint name="S" perimeter="0" x="0.73" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="100" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="30" y="20"/>
+ <line x="40" y="30"/>
+ <line x="50" y="20"/>
+ <line x="100" y="20"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <strokecolor color="#000000"/>
+ <path>
+ <move x="80" y="21"/>
+ <line x="75" y="31"/>
+ <line x="85" y="31"/>
+ <close/>
+ <move x="80" y="30"/>
+ <line x="80" y="65"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65" name="Normalled Jacks" strokewidth="inherit" w="230">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.305"/>
+ <constraint name="E" perimeter="0" x="1" y="0.305"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="15" x="85" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="0" y="15"/>
+ <fillstroke/>
+ <path>
+ <move x="70" y="20"/>
+ <line x="60" y="30"/>
+ <line x="50" y="20"/>
+ <line x="10" y="20"/>
+ <move x="160" y="20"/>
+ <line x="170" y="30"/>
+ <line x="180" y="20"/>
+ <line x="220" y="20"/>
+ <move x="20" y="22"/>
+ <line x="20" y="65"/>
+ <line x="210" y="65"/>
+ <line x="210" y="22"/>
+ </path>
+ <stroke/>
+ <rect h="50" w="15" x="130" y="0"/>
+ <fillstroke/>
+ <ellipse h="10" w="10" x="220" y="15"/>
+ <fillstroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="20" y="21"/>
+ <line x="15" y="31"/>
+ <line x="25" y="31"/>
+ <close/>
+ <move x="210" y="21"/>
+ <line x="205" y="31"/>
+ <line x="215" y="31"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Permanent Magnet" strokewidth="inherit" w="20">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="20" y="0"/>
+ <line x="20" y="70"/>
+ <line x="0" y="70"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="41" name="Sensing Link Squib" strokewidth="inherit" w="131">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="4" y="20.5"/>
+ <arc large-arc-flag="0" rx="20.5" ry="20.5" sweep-flag="1" x="45" x-axis-rotation="0" y="20.5"/>
+ <arc large-arc-flag="0" rx="20.5" ry="20.5" sweep-flag="0" x="86" x-axis-rotation="0" y="20.5"/>
+ <arc large-arc-flag="0" rx="20.5" ry="20.5" sweep-flag="1" x="127" x-axis-rotation="0" y="20.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="8" w="8" x="0" y="16.5"/>
+ <fillstroke/>
+ <ellipse h="8" w="8" x="123" y="16.5"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Shielded Jack Plug" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.25"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="E" perimeter="0" x="1" y="0.25"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="20" y="100"/>
+ <line x="30" y="100"/>
+ <move x="12" y="93"/>
+ <line x="38" y="93"/>
+ <move x="6" y="86"/>
+ <line x="44" y="86"/>
+ <move x="25" y="50"/>
+ <line x="25" y="86"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="28" w="28" x="11" y="11"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="Small D Connector" strokewidth="inherit" w="150">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <roundrect arcsize="6.67" h="75" w="150" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="44" y="60"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="39" x-axis-rotation="0" y="56"/>
+ <line x="28" y="19"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="33" x-axis-rotation="0" y="15"/>
+ <line x="118" y="15"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="123" x-axis-rotation="0" y="19"/>
+ <line x="111" y="56"/>
+ <arc large-arc-flag="0" rx="5" ry="5" sweep-flag="1" x="106" x-axis-rotation="0" y="60"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Squib Ignitor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.3"/>
+ <constraint name="E" perimeter="0" x="1" y="0.3"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="35" y="100"/>
+ <line x="35" y="60"/>
+ <line x="5" y="60"/>
+ <line x="5" y="0"/>
+ <line x="95" y="0"/>
+ <line x="95" y="60"/>
+ <line x="65" y="60"/>
+ <line x="65" y="100"/>
+ <move x="50" y="50"/>
+ <line x="50" y="80"/>
+ <move x="0" y="30"/>
+ <line x="26" y="30"/>
+ <line x="30" y="20"/>
+ <line x="38" y="40"/>
+ <line x="46" y="20"/>
+ <line x="54" y="40"/>
+ <line x="62" y="20"/>
+ <line x="70" y="40"/>
+ <line x="74" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="46" y="80"/>
+ <line x="54" y="80"/>
+ <line x="50" y="90"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Surge Protector" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="20" w="20" x="13" y="0"/>
+ <fillstroke/>
+ <ellipse h="20" w="20" x="36" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="13" y="10"/>
+ <move x="56" y="10"/>
+ <line x="70" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Surge Protector 2" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="20"/>
+ <line x="18" y="20"/>
+ <move x="52" y="20"/>
+ <line x="70" y="20"/>
+ </path>
+ <stroke/>
+ <rect h="40" w="12" x="18" y="0"/>
+ <fillstroke/>
+ <rect h="40" w="12" x="40" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="150" name="Terminal Board" strokewidth="inherit" w="75">
+ <connections>
+ <constraint name="W1" perimeter="0" x="0" y="0.125"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.375"/>
+ <constraint name="W3" perimeter="0" x="0" y="0.625"/>
+ <constraint name="W4" perimeter="0" x="0" y="0.875"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.125"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.375"/>
+ <constraint name="E3" perimeter="0" x="1" y="0.625"/>
+ <constraint name="E4" perimeter="0" x="1" y="0.875"/>
+ </connections>
+ <foreground>
+ <rect h="150" w="75" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="75"/>
+ <line x="75" y="75"/>
+ <move x="0" y="37.5"/>
+ <line x="75" y="37.5"/>
+ <move x="0" y="112.5"/>
+ <line x="75" y="112.5"/>
+ </path>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="13.75"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="51.25"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="88.75"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="32.5" y="126.25"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="32" name="Thermal Element" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="16"/>
+ <line x="18" y="16"/>
+ <arc large-arc-flag="1" rx="16" ry="16" sweep-flag="1" x="34" x-axis-rotation="0" y="32"/>
+ <move x="100" y="16"/>
+ <line x="82" y="16"/>
+ <arc large-arc-flag="1" rx="16" ry="16" sweep-flag="1" x="66" x-axis-rotation="0" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Thermistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="20"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <move x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <line x="82" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Thermistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="70" w="70" x="15" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="35"/>
+ <line x="18" y="35"/>
+ <line x="22" y="25"/>
+ <line x="30" y="45"/>
+ <line x="38" y="25"/>
+ <line x="46" y="45"/>
+ <line x="54" y="25"/>
+ <line x="62" y="45"/>
+ <line x="70" y="25"/>
+ <line x="78" y="45"/>
+ <line x="82" y="35"/>
+ <line x="100" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="82" name="Thermocouple" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="+" perimeter="0" x="0.125" y="0"/>
+ <constraint name="-" perimeter="0" x="0.875" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="50"/>
+ <line x="40" y="80"/>
+ <line x="70" y="50"/>
+ <line x="70" y="0"/>
+ <move x="3" y="2"/>
+ <line x="3" y="8"/>
+ <move x="0" y="5"/>
+ <line x="6" y="5"/>
+ <move x="74" y="5"/>
+ <line x="80" y="5"/>
+ </path>
+ <stroke/>
+ <ellipse h="4" w="4" x="38" y="78"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="82" name="Thermopile" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="+" perimeter="0" x="0.125" y="0"/>
+ <constraint name="-" perimeter="0" x="0.875" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="10" y="0"/>
+ <line x="10" y="50"/>
+ <line x="20" y="80"/>
+ <line x="30" y="50"/>
+ <line x="40" y="80"/>
+ <line x="50" y="50"/>
+ <line x="60" y="80"/>
+ <line x="70" y="50"/>
+ <line x="70" y="0"/>
+ <move x="3" y="2"/>
+ <line x="3" y="8"/>
+ <move x="0" y="5"/>
+ <line x="6" y="5"/>
+ <move x="74" y="5"/>
+ <line x="80" y="5"/>
+ </path>
+ <stroke/>
+ <ellipse h="4" w="4" x="38" y="78"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="58" y="78"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="18" y="78"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="48" y="48"/>
+ <fillstroke/>
+ <ellipse h="4" w="4" x="28" y="48"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Transducer" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.43" y="0"/>
+ <constraint name="S" perimeter="0" x="0.43" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="70" y="30"/>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Transducer 2" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <rect h="60" w="20" x="30" y="20"/>
+ <fillstroke/>
+ <path>
+ <move x="25" y="25"/>
+ <line x="25" y="75"/>
+ <move x="55" y="25"/>
+ <line x="55" y="75"/>
+ <move x="0" y="0"/>
+ <line x="0" y="50"/>
+ <line x="25" y="50"/>
+ <move x="80" y="0"/>
+ <line x="80" y="50"/>
+ <line x="55" y="50"/>
+ </path>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="40" y="80"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/mosfets1.xml b/war/stencils/electrical/mosfets1.xml
index b28b8a56..bfdd67b2 100644
--- a/war/stencils/electrical/mosfets1.xml
+++ b/war/stencils/electrical/mosfets1.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.mosfets1">
+<shapes name="mxgraph.electrical.mosfets1">
<shape aspect="variable" h="90" name="Dual Gate MOSFET" strokewidth="inherit" w="90">
<connections>
<constraint name="G1" perimeter="0" x="0.05" y="0.28"/>
@@ -8,7 +8,6 @@
<constraint name="S1" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
<ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
@@ -16,54 +15,26 @@
<path>
<move x="20" y="15"/>
<line x="20" y="75"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="25"/>
<line x="85" y="25"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="65"/>
<line x="85" y="65"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="20"/>
<line x="25" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="40"/>
<line x="25" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="60"/>
<line x="25" y="70"/>
- </path>
- <fillstroke/>
- <path>
<move x="25" y="45"/>
<line x="90" y="45"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="5" y="65"/>
<line x="15" y="65"/>
<line x="15" y="60"/>
- </path>
- <stroke/>
- <path>
<move x="5" y="25"/>
<line x="15" y="25"/>
<line x="15" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="2"/>
<path>
<move x="30.5" y="42"/>
@@ -74,1210 +45,774 @@
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="Dual Gate MOSFET N" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="Dual Gate MOSFET N" strokewidth="inherit" w="100">
<connections>
- <constraint name="G1" perimeter="0" x="0.0" y="0.4"/>
- <constraint name="G2" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G1" perimeter="0" x="0" y="0.4"/>
+ <constraint name="G2" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
<path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="66.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="66"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <move x="0" y="44"/>
+ <line x="42" y="44"/>
+ <line x="42" y="31"/>
</path>
<stroke/>
<path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="60.5" y="50"/>
+ <line x="46" y="55"/>
+ <line x="60.5" y="60"/>
+ <close/>
</path>
- <stroke/>
+ <fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="44.0"/>
- <line x="42.0" y="44.0"/>
- <line x="42.0" y="31.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.5" y="50.0"/>
- <line x="46.0" y="55.0"/>
- <line x="60.5" y="60.0"/>
- <close/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="Dual Gate MOSFET P" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="Dual Gate MOSFET P" strokewidth="inherit" w="100">
<connections>
- <constraint name="G1" perimeter="0" x="0.0" y="0.4"/>
- <constraint name="G2" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G1" perimeter="0" x="0" y="0.4"/>
+ <constraint name="G2" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="66.0"/>
- </path>
- <stroke/>
<path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="66"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <move x="0" y="44"/>
+ <line x="42" y="44"/>
+ <line x="42" y="31"/>
</path>
<stroke/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="44.0"/>
- <line x="42.0" y="44.0"/>
- <line x="42.0" y="31.0"/>
+ <move x="54" y="50"/>
+ <line x="69" y="55"/>
+ <line x="54" y="60"/>
+ <close/>
</path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="54.0" y="50.0"/>
- <line x="69.0" y="55.0"/>
- <line x="54.0" y="60.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET IC N" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET IC N" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="40.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
<path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30.5"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
</path>
<stroke/>
<path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.5"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.5" y="50.0"/>
- <line x="46.0" y="55.0"/>
- <line x="60.5" y="60.0"/>
+ <move x="60.5" y="50"/>
+ <line x="46" y="55"/>
+ <line x="60.5" y="60"/>
<close/>
</path>
<fillstroke/>
<strokewidth width="2"/>
<path>
- <move x="45.0" y="50.0"/>
- <line x="45.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="70.0"/>
- <line x="45.0" y="80.0"/>
+ <move x="45" y="50"/>
+ <line x="45" y="60"/>
+ <move x="45" y="70"/>
+ <line x="45" y="80"/>
+ <move x="45" y="30"/>
+ <line x="45" y="40"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET IC P" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET IC P" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30.5"/>
</path>
<stroke/>
<path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="54.0" y="50.0"/>
- <line x="69.0" y="55.0"/>
- <line x="54.0" y="60.0"/>
+ <move x="54" y="50"/>
+ <line x="69" y="55"/>
+ <line x="54" y="60"/>
<close/>
</path>
<fillstroke/>
<strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="50.0"/>
- <line x="45.0" y="60.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="40"/>
+ <move x="45" y="50"/>
+ <line x="45" y="60"/>
+ <move x="45" y="70"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
- <path>
- <move x="45.0" y="70.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.5"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET N No Bulk" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET N No Bulk" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
<path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
+ <move x="42" y="32"/>
+ <line x="42" y="78"/>
+ <move x="0" y="55"/>
+ <line x="42" y="55"/>
</path>
<stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="42.0" y="32.0"/>
- <line x="42.0" y="78.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="55.0"/>
- <line x="42.0" y="55.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="MOSFET P No Bulk" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="MOSFET P No Bulk" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
+ <move x="42" y="32"/>
+ <line x="42" y="78"/>
+ <move x="0" y="55"/>
+ <line x="38" y="55"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="42.0" y="32.0"/>
- <line x="42.0" y="78.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="4.0" w="4.0" x="38.0" y="53.0"/>
- <stroke/>
- <restore/>
- <rect/>
+ <ellipse h="4" w="4" x="38" y="53"/>
<stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="55.0"/>
- <line x="38.0" y="55.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="N-channel MOSFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="N-channel MOSFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.0"/>
- </path>
- <stroke/>
<path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="60.5" y="50"/>
+ <line x="46" y="55"/>
+ <line x="60.5" y="60"/>
+ <close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="60.5" y="50.0"/>
- <line x="46.0" y="55.0"/>
- <line x="60.5" y="60.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 3" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="S1" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="S1" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 5" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 5" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="S" perimeter="0" x="0.95" y="0.28"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
<fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="N-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="N-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="S" perimeter="0" x="0.95" y="0.28"/>
<constraint name="D" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
<fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="25.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="25" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="110.0" name="P-channel MOSFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="110" name="P-channel MOSFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.72"/>
- <constraint name="D" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.7" y="1.0"/>
+ <constraint name="G" perimeter="0" x="0" y="0.72"/>
+ <constraint name="D" perimeter="0" x="0.7" y="0"/>
+ <constraint name="S" perimeter="0" x="0.7" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
<path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="0" y="79"/>
+ <line x="42" y="79"/>
+ <line x="42" y="30"/>
+ <move x="45" y="55"/>
+ <line x="70" y="55"/>
+ <line x="70" y="110"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
</path>
<stroke/>
<path>
- <move x="0.0" y="79.0"/>
- <line x="42.0" y="79.0"/>
- <line x="42.0" y="30.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="55.0"/>
- <line x="70.0" y="55.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="54" y="50"/>
+ <line x="69" y="55"/>
+ <line x="54" y="60"/>
+ <close/>
</path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="54.0" y="50.0"/>
- <line x="69.0" y="55.0"/>
- <line x="54.0" y="60.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="36.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="36" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 3" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
<constraint name="S2" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="84.5" y="42.0"/>
- <line x="90.0" y="45.0"/>
- <line x="84.5" y="48.0"/>
+ <move x="84.5" y="42"/>
+ <line x="90" y="45"/>
+ <line x="84.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
<constraint name="S2" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="90.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="90" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="84.5" y="42.0"/>
- <line x="90.0" y="45.0"/>
- <line x="84.5" y="48.0"/>
+ <move x="84.5" y="42"/>
+ <line x="90" y="45"/>
+ <line x="84.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 5" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 5" strokewidth="inherit" w="90">
<connections>
<constraint name="G" perimeter="0" x="0.05" y="0.72"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="65.0"/>
- <line x="20.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="5" y="65"/>
+ <line x="20" y="65"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="36.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="36" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="P-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="P-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
<constraint name="D" perimeter="0" x="0.95" y="0.28"/>
<constraint name="S" perimeter="0" x="0.95" y="0.72"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="85.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="85.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="25.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="25.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="60.0"/>
- <line x="25.0" y="70.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- <line x="40.0" y="65.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="25" y="25"/>
+ <line x="85" y="25"/>
+ <move x="25" y="65"/>
+ <line x="85" y="65"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
+ <move x="25" y="20"/>
+ <line x="25" y="30"/>
+ <move x="25" y="40"/>
+ <line x="25" y="50"/>
+ <move x="25" y="60"/>
+ <line x="25" y="70"/>
+ <move x="25" y="45"/>
+ <line x="40" y="45"/>
+ <line x="40" y="65"/>
+ <move x="65" y="25"/>
+ <line x="65" y="65"/>
+ <move x="60" y="40"/>
+ <line x="70" y="40"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="70.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="45.0"/>
- <line x="65.0" y="40.0"/>
- <line x="68.0" y="45.0"/>
+ <move x="62" y="45"/>
+ <line x="65" y="40"/>
+ <line x="68" y="45"/>
<close/>
</path>
<fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="30.5" y="42.0"/>
- <line x="36.0" y="45.0"/>
- <line x="30.5" y="48.0"/>
+ <move x="30.5" y="42"/>
+ <line x="36" y="45"/>
+ <line x="30.5" y="48"/>
<close/>
</path>
<fillstroke/>
diff --git a/war/stencils/electrical/mosfets2.xml b/war/stencils/electrical/mosfets2.xml
index 01821b05..6e610854 100644
--- a/war/stencils/electrical/mosfets2.xml
+++ b/war/stencils/electrical/mosfets2.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.mosfets2">
+<shapes name="mxgraph.electrical.mosfets2">
<shape aspect="variable" h="60" name="Dual Gate MOSFET" strokewidth="inherit" w="85">
<connections>
<constraint name="G1" perimeter="0" x="0" y="0.165"/>
@@ -8,949 +8,552 @@
<constraint name="S1" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
<path>
<move x="15" y="0"/>
<line x="15" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="10"/>
<line x="85" y="10"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="50"/>
<line x="85" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="5"/>
<line x="20" y="15"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="25"/>
<line x="20" y="35"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="45"/>
<line x="20" y="55"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="30"/>
<line x="85" y="30"/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="25.5" y="27"/>
- <line x="20" y="30"/>
- <line x="25.5" y="33"/>
- <close/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
<move x="0" y="50"/>
<line x="10" y="50"/>
<line x="10" y="45"/>
- </path>
- <stroke/>
- <path>
<move x="0" y="10"/>
<line x="10" y="10"/>
<line x="10" y="15"/>
</path>
<stroke/>
+ <path>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
+ <close/>
+ </path>
+ <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 1" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 1" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<background>
- <save/>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="25.5" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="25.5" y="27.0"/>
- <line x="20.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.5" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="30.5" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="30.5" y="27.0"/>
- <line x="25.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="25" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.5" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 3" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 3" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="85.0" y="30.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="85" y="30"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="25.5" y="27.0"/>
- <line x="20.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="90.0" y="30.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="90" y="30"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="30.5" y="27.0"/>
- <line x="25.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="25" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 5" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 5" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="S" perimeter="0" x="1" y="0.165"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
+ <move x="60" y="10"/>
+ <line x="60" y="50"/>
+ <move x="55" y="25"/>
+ <line x="65" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="55.0" y="25.0"/>
- <line x="65.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="57.0" y="30.0"/>
- <line x="60.0" y="25.0"/>
- <line x="63.0" y="30.0"/>
+ <move x="57" y="30"/>
+ <line x="60" y="25"/>
+ <line x="63" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="25.5" y="27.0"/>
- <line x="20.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="20" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="N-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="N-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="S" perimeter="0" x="1" y="0.165"/>
+ <constraint name="D" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
+ <move x="65" y="10"/>
+ <line x="65" y="50"/>
+ <move x="60" y="25"/>
+ <line x="70" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="65.0" y="10.0"/>
- <line x="65.0" y="50.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="60.0" y="25.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="30.0"/>
- <line x="65.0" y="25.0"/>
- <line x="68.0" y="30.0"/>
+ <move x="62" y="30"/>
+ <line x="65" y="25"/>
+ <line x="68" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="30.5" y="27.0"/>
- <line x="25.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="25" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="NMOS FET" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="NMOS FET" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="5.0"/>
- <line x="10.0" y="55.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="15" y="10"/>
+ <line x="85" y="10"/>
+ <move x="15" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="30"/>
+ <line x="10" y="30"/>
+ <move x="10" y="5"/>
+ <line x="10" y="55"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 1" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 1" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="31" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
+ <move x="20" y="30"/>
+ <line x="25.5" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2"/>
<path>
- <move x="25.5" y="27.0"/>
- <line x="31.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="31" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="31.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
- </path>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="25.5" y="30.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="36" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
+ <move x="25" y="30"/>
+ <line x="30.5" y="30"/>
</path>
- <fillstroke/>
- <miterlimit limit="2"/>
+ <stroke/>
<path>
- <move x="30.5" y="27.0"/>
- <line x="36.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="36" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="36.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
- </path>
- <stroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="30.5" y="30.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 3" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 3" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="85.0" y="30.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="85" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="79.5" y="27.0"/>
- <line x="85.0" y="30.0"/>
- <line x="79.5" y="33.0"/>
+ <move x="79.5" y="27"/>
+ <line x="85" y="30"/>
+ <line x="79.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 4" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S1" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="S2" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S1" perimeter="0" x="1" y="0.5"/>
+ <constraint name="S2" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="90.0" y="30.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="90" y="30"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="84.5" y="27.0"/>
- <line x="90.0" y="30.0"/>
- <line x="84.5" y="33.0"/>
+ <move x="84.5" y="27"/>
+ <line x="90" y="30"/>
+ <line x="84.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 5" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 5" strokewidth="inherit" w="85">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.835"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.835"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="15.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="25.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="20.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="35.0" y="30.0"/>
- <line x="35.0" y="50.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="20" y="10"/>
+ <line x="85" y="10"/>
+ <move x="20" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="50"/>
+ <line x="15" y="50"/>
+ <move x="20" y="5"/>
+ <line x="20" y="15"/>
+ <move x="20" y="25"/>
+ <line x="20" y="35"/>
+ <move x="20" y="45"/>
+ <line x="20" y="55"/>
+ <move x="20" y="30"/>
+ <line x="35" y="30"/>
+ <line x="35" y="50"/>
+ <move x="60" y="10"/>
+ <line x="60" y="50"/>
+ <move x="55" y="25"/>
+ <line x="65" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="60.0" y="10.0"/>
- <line x="60.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="25.0"/>
- <line x="65.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="57.0" y="30.0"/>
- <line x="60.0" y="25.0"/>
- <line x="63.0" y="30.0"/>
+ <move x="57" y="30"/>
+ <line x="60" y="25"/>
+ <line x="63" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="25.5" y="27.0"/>
- <line x="31.0" y="30.0"/>
- <line x="25.5" y="33.0"/>
+ <move x="25.5" y="27"/>
+ <line x="31" y="30"/>
+ <line x="25.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="P-channel MOSFET 6" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="60" name="P-channel MOSFET 6" strokewidth="inherit" w="90">
<connections>
- <constraint name="G" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
- <save/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="90.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="50.0"/>
- <line x="90.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="5.0"/>
- <line x="25.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="25.0"/>
- <line x="25.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="45.0"/>
- <line x="25.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="60"/>
+ <move x="25" y="10"/>
+ <line x="90" y="10"/>
+ <move x="25" y="50"/>
+ <line x="90" y="50"/>
+ <move x="0" y="30"/>
+ <line x="20" y="30"/>
+ <move x="25" y="5"/>
+ <line x="25" y="15"/>
+ <move x="25" y="25"/>
+ <line x="25" y="35"/>
+ <move x="25" y="45"/>
+ <line x="25" y="55"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <line x="40" y="50"/>
+ <move x="65" y="10"/>
+ <line x="65" y="50"/>
+ <move x="60" y="25"/>
+ <line x="70" y="25"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="65.0" y="10.0"/>
- <line x="65.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="25.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="62.0" y="30.0"/>
- <line x="65.0" y="25.0"/>
- <line x="68.0" y="30.0"/>
+ <move x="62" y="30"/>
+ <line x="65" y="25"/>
+ <line x="68" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="30.5" y="27.0"/>
- <line x="36.0" y="30.0"/>
- <line x="30.5" y="33.0"/>
+ <move x="30.5" y="27"/>
+ <line x="36" y="30"/>
+ <line x="30.5" y="33"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="PMOS FET" strokewidth="inherit" w="85.0">
+ <shape aspect="variable" h="60" name="PMOS FET" strokewidth="inherit" w="85">
<connections>
- <constraint name="G1" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="D" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="S" perimeter="0" x="1.0" y="0.835"/>
+ <constraint name="G1" perimeter="0" x="0" y="0.5"/>
+ <constraint name="D" perimeter="0" x="1" y="0.165"/>
+ <constraint name="S" perimeter="0" x="1" y="0.835"/>
</connections>
<foreground>
<path>
- <move x="15.0" y="0.0"/>
- <line x="15.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="10.0"/>
- <line x="85.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="50.0"/>
- <line x="85.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="4.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="5.0"/>
- <line x="10.0" y="55.0"/>
+ <move x="15" y="0"/>
+ <line x="15" y="60"/>
+ <move x="15" y="10"/>
+ <line x="85" y="10"/>
+ <move x="15" y="50"/>
+ <line x="85" y="50"/>
+ <move x="0" y="30"/>
+ <line x="4" y="30"/>
+ <move x="10" y="5"/>
+ <line x="10" y="55"/>
</path>
- <fillstroke/>
- <ellipse h="6.0" w="6.0" x="4.0" y="27.0"/>
+ <stroke/>
+ <ellipse h="6" w="6" x="4" y="27"/>
<fillstroke/>
</foreground>
</shape>
diff --git a/war/stencils/electrical/op_amps.xml b/war/stencils/electrical/op_amps.xml
index 3cae5533..05b3f894 100644
--- a/war/stencils/electrical/op_amps.xml
+++ b/war/stencils/electrical/op_amps.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.op_amps">
+<shapes name="mxgraph.electrical.op_amps">
<shape aspect="variable" h="62" name="Comparator" strokewidth="inherit" w="100">
<connections>
<constraint name="V+1" perimeter="0" x="0" y="0.032"/>
@@ -7,8 +7,6 @@
<constraint name="Vout" perimeter="0" x="1" y="0.355"/>
</connections>
<background>
- <save/>
- <save/>
<path>
<move x="40" y="2"/>
<line x="80" y="22"/>
@@ -18,659 +16,423 @@
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
<move x="35" y="62"/>
<line x="35" y="32"/>
<line x="40" y="32"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
<move x="30" y="12"/>
<line x="40" y="12"/>
- </path>
- <fillstroke/>
- <path>
<move x="80" y="22"/>
<line x="100" y="22"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="25" y="2"/>
<line x="30" y="2"/>
<line x="30" y="22"/>
<line x="25" y="22"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4" w="20" x="5" y="0"/>
- <fillstroke/>
- <rect h="4" w="20" x="5" y="20"/>
- <fillstroke/>
- <path>
<move x="0" y="2"/>
<line x="5" y="2"/>
- </path>
- <fillstroke/>
- <path>
<move x="0" y="22"/>
<line x="5" y="22"/>
</path>
+ <stroke/>
+ <rect h="4" w="20" x="5" y="0"/>
+ <fillstroke/>
+ <rect h="4" w="20" x="5" y="20"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Differentiator" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Differentiator" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.305"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.305"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.445"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="72.0"/>
- <line x="35.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <stroke/>
<path>
- <move x="35.0" y="22.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
+ <move x="35" y="72"/>
+ <line x="35" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="22"/>
+ <line x="20" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="25" y="22"/>
+ <line x="40" y="22"/>
+ <move x="25" y="15"/>
+ <line x="25" y="29"/>
+ <move x="20" y="15"/>
+ <line x="20" y="29"/>
+ <move x="0" y="22"/>
+ <line x="20" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="25" y="22"/>
+ <line x="40" y="22"/>
+ <move x="25" y="15"/>
+ <line x="25" y="29"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="22.0"/>
- <line x="20.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="15.0"/>
- <line x="25.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="29.0"/>
- </path>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Integrator" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="77" name="Integrator" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.35"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.48"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.35"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.48"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="17.0"/>
- <line x="80.0" y="37.0"/>
- <line x="40.0" y="57.0"/>
+ <move x="40" y="17"/>
+ <line x="80" y="37"/>
+ <line x="40" y="57"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="77.0"/>
- <line x="35.0" y="47.0"/>
- <line x="40.0" y="47.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="27.0"/>
- <line x="35.0" y="7.0"/>
- <line x="60.0" y="7.0"/>
- </path>
- <stroke/>
- <path>
- <move x="63.0" y="7.0"/>
- <line x="85.0" y="7.0"/>
- <line x="85.0" y="37.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="10.0" y="25.0"/>
- <fillstroke/>
<path>
- <move x="0.0" y="27.0"/>
- <line x="10.0" y="27.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="37.0"/>
- <line x="100.0" y="37.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="27.0"/>
- <line x="40.0" y="27.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="63.0" y="0.0"/>
- <line x="63.0" y="14.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="60.0" y="14.0"/>
- </path>
+ <move x="35" y="77"/>
+ <line x="35" y="47"/>
+ <line x="40" y="47"/>
+ <move x="35" y="27"/>
+ <line x="35" y="7"/>
+ <line x="60" y="7"/>
+ <move x="63" y="7"/>
+ <line x="85" y="7"/>
+ <line x="85" y="37"/>
+ <move x="0" y="27"/>
+ <line x="10" y="27"/>
+ <move x="80" y="37"/>
+ <line x="100" y="37"/>
+ <move x="30" y="27"/>
+ <line x="40" y="27"/>
+ <move x="63" y="0"/>
+ <line x="63" y="14"/>
+ <move x="60" y="0"/>
+ <line x="60" y="14"/>
+ </path>
+ <stroke/>
+ <rect h="4" w="20" x="10" y="25"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Inverting Amplifier" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Inverting Amplifier" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.305"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.305"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.445"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="72.0"/>
- <line x="35.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="22.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <stroke/>
<path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
+ <move x="35" y="72"/>
+ <line x="35" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="22"/>
+ <line x="10" y="22"/>
+ <move x="30" y="22"/>
+ <line x="40" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <rect h="4.0" w="20.0" x="10.0" y="20.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="22.0"/>
- <line x="10.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
+ <rect h="4" w="20" x="10" y="20"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="92.0" name="Multivibrator" strokewidth="inherit" w="95.0">
+ <shape aspect="variable" h="92" name="Multivibrator" strokewidth="inherit" w="95">
<connections>
- <constraint name="Vout+" perimeter="0" x="1.0" y="0.345"/>
- <constraint name="Vout-" perimeter="0" x="1.0" y="1.0"/>
+ <constraint name="Vout+" perimeter="0" x="1" y="0.345"/>
+ <constraint name="Vout-" perimeter="0" x="1" y="1"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="12.0"/>
- <line x="70.0" y="32.0"/>
- <line x="30.0" y="52.0"/>
+ <move x="30" y="12"/>
+ <line x="70" y="32"/>
+ <line x="30" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="22.0"/>
- <line x="25.0" y="2.0"/>
- <line x="40.0" y="2.0"/>
+ <move x="25" y="22"/>
+ <line x="25" y="2"/>
+ <line x="40" y="2"/>
+ <move x="20" y="15"/>
+ <line x="20" y="29"/>
+ <move x="15" y="15"/>
+ <line x="15" y="29"/>
+ <move x="70" y="32"/>
+ <line x="95" y="32"/>
+ <move x="20" y="22"/>
+ <line x="30" y="22"/>
+ <move x="80" y="57"/>
+ <line x="80" y="67"/>
+ <move x="80" y="87"/>
+ <line x="80" y="92"/>
+ <move x="30" y="42"/>
+ <line x="25" y="42"/>
+ <line x="25" y="62"/>
+ <line x="80" y="62"/>
+ <move x="15" y="22"/>
+ <line x="0" y="22"/>
+ <line x="0" y="92"/>
+ <line x="95" y="92"/>
+ <move x="60" y="2"/>
+ <line x="80" y="2"/>
+ <line x="80" y="37"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="40.0" y="0.0"/>
- <fillstroke/>
- <rect h="20.0" w="4.0" x="78.0" y="37.0"/>
- <fillstroke/>
- <rect h="20.0" w="4.0" x="78.0" y="67.0"/>
+ <rect h="4" w="20" x="40" y="0"/>
<fillstroke/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="29.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="32.0"/>
- <line x="95.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="22.0"/>
- <line x="30.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="57.0"/>
- <line x="80.0" y="67.0"/>
- </path>
+ <rect h="20" w="4" x="78" y="37"/>
<fillstroke/>
- <path>
- <move x="80.0" y="87.0"/>
- <line x="80.0" y="92.0"/>
- </path>
+ <rect h="20" w="4" x="78" y="67"/>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="30.0" y="42.0"/>
- <line x="25.0" y="42.0"/>
- <line x="25.0" y="62.0"/>
- <line x="80.0" y="62.0"/>
- </path>
- <stroke/>
- <path>
- <move x="15.0" y="22.0"/>
- <line x="0.0" y="22.0"/>
- <line x="0.0" y="92.0"/>
- <line x="95.0" y="92.0"/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="2.0"/>
- <line x="80.0" y="2.0"/>
- <line x="80.0" y="37.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Non-inverting Amplifier" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Non-inverting Amplifier" strokewidth="inherit" w="100">
<connections>
- <constraint name="V-" perimeter="0" x="0.0" y="0.585"/>
- <constraint name="V+" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.445"/>
+ <constraint name="V-" perimeter="0" x="0" y="0.585"/>
+ <constraint name="V+" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.445"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="47.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
+ <move x="35" y="47"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="40" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="35" y="67"/>
+ <line x="35" y="72"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <rect h="20.0" w="4.0" x="33.0" y="47.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="67.0"/>
- <line x="35.0" y="72.0"/>
- </path>
+ <rect h="20" w="4" x="33" y="47"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="47.0" name="Regen Comparator" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="47" name="Regen Comparator" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.212"/>
- <constraint name="V-" perimeter="0" x="0.0" y="0.64"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.425"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.212"/>
+ <constraint name="V-" perimeter="0" x="0" y="0.64"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.425"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="0.0"/>
- <line x="80.0" y="20.0"/>
- <line x="40.0" y="40.0"/>
+ <move x="40" y="0"/>
+ <line x="80" y="20"/>
+ <line x="40" y="40"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="70.0" y="45.0"/>
- <line x="85.0" y="45.0"/>
- <line x="85.0" y="20.0"/>
+ <move x="70" y="45"/>
+ <line x="85" y="45"/>
+ <line x="85" y="20"/>
+ <move x="0" y="30"/>
+ <line x="5" y="30"/>
+ <move x="80" y="20"/>
+ <line x="100" y="20"/>
+ <move x="0" y="10"/>
+ <line x="40" y="10"/>
+ <move x="25" y="30"/>
+ <line x="40" y="30"/>
+ <move x="35" y="30"/>
+ <line x="35" y="45"/>
+ <line x="50" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="43.0"/>
+ <rect h="4" w="20" x="50" y="43"/>
<fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="5.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="28.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="40.0" y="10.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="28"/>
<fillstroke/>
- <path>
- <move x="25.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="30.0"/>
- <line x="35.0" y="45.0"/>
- <line x="50.0" y="45.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Subtractor" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Subtractor" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+" perimeter="0" x="0.0" y="0.025"/>
- <constraint name="V-1" perimeter="0" x="0.0" y="0.585"/>
- <constraint name="V-2" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.443"/>
+ <constraint name="V+" perimeter="0" x="0" y="0.025"/>
+ <constraint name="V-1" perimeter="0" x="0" y="0.585"/>
+ <constraint name="V-2" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.443"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="42"/>
+ <line x="5" y="42"/>
+ <move x="0" y="2"/>
+ <line x="5" y="2"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="35" y="67"/>
+ <line x="35" y="72"/>
+ <move x="25" y="2"/>
+ <line x="50" y="2"/>
+ <move x="25" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="42"/>
+ <line x="35" y="47"/>
+ <move x="35" y="2"/>
+ <line x="35" y="22"/>
+ <line x="40" y="22"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <rect h="20.0" w="4.0" x="33.0" y="47.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="42.0"/>
- <line x="5.0" y="42.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="2.0"/>
- <line x="5.0" y="2.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="67.0"/>
- <line x="35.0" y="72.0"/>
- </path>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="0.0"/>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="40.0"/>
+ <rect h="20" w="4" x="33" y="47"/>
<fillstroke/>
- <path>
- <move x="25.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="0"/>
<fillstroke/>
- <path>
- <move x="25.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="40"/>
<fillstroke/>
- <path>
- <move x="35.0" y="42.0"/>
- <line x="35.0" y="47.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="2.0"/>
- <line x="35.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="72.0" name="Summing Amplifier" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="72" name="Summing Amplifier" strokewidth="inherit" w="100">
<connections>
- <constraint name="V+1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="V+2" perimeter="0" x="0.0" y="0.305"/>
- <constraint name="V+3" perimeter="0" x="0.0" y="0.445"/>
- <constraint name="V-" perimeter="0" x="0.35" y="1.0"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.443"/>
+ <constraint name="V+1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="V+2" perimeter="0" x="0" y="0.305"/>
+ <constraint name="V+3" perimeter="0" x="0" y="0.445"/>
+ <constraint name="V-" perimeter="0" x="0.35" y="1"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.443"/>
</connections>
<background>
- <save/>
- <save/>
<path>
- <move x="40.0" y="12.0"/>
- <line x="80.0" y="32.0"/>
- <line x="40.0" y="52.0"/>
+ <move x="40" y="12"/>
+ <line x="80" y="32"/>
+ <line x="40" y="52"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="72.0"/>
- <line x="35.0" y="42.0"/>
- <line x="40.0" y="42.0"/>
- </path>
- <stroke/>
- <path>
- <move x="35.0" y="22.0"/>
- <line x="35.0" y="2.0"/>
- <line x="50.0" y="2.0"/>
- </path>
- <stroke/>
<path>
- <move x="70.0" y="2.0"/>
- <line x="85.0" y="2.0"/>
- <line x="85.0" y="32.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="50.0" y="0.0"/>
- <fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="20.0"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="22.0"/>
- <line x="5.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="22.0"/>
- <line x="40.0" y="22.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="32.0"/>
- <line x="100.0" y="32.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="12.0"/>
- <line x="30.0" y="12.0"/>
- <line x="30.0" y="32.0"/>
- <line x="25.0" y="32.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <rect h="4.0" w="20.0" x="5.0" y="10.0"/>
+ <move x="35" y="72"/>
+ <line x="35" y="42"/>
+ <line x="40" y="42"/>
+ <move x="35" y="22"/>
+ <line x="35" y="2"/>
+ <line x="50" y="2"/>
+ <move x="70" y="2"/>
+ <line x="85" y="2"/>
+ <line x="85" y="32"/>
+ <move x="0" y="22"/>
+ <line x="5" y="22"/>
+ <move x="25" y="22"/>
+ <line x="40" y="22"/>
+ <move x="80" y="32"/>
+ <line x="100" y="32"/>
+ <move x="25" y="12"/>
+ <line x="30" y="12"/>
+ <line x="30" y="32"/>
+ <line x="25" y="32"/>
+ <move x="0" y="12"/>
+ <line x="5" y="12"/>
+ <move x="0" y="32"/>
+ <line x="5" y="32"/>
+ </path>
+ <stroke/>
+ <rect h="4" w="20" x="50" y="0"/>
<fillstroke/>
- <rect h="4.0" w="20.0" x="5.0" y="30.0"/>
+ <rect h="4" w="20" x="5" y="20"/>
<fillstroke/>
- <path>
- <move x="0.0" y="12.0"/>
- <line x="5.0" y="12.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="10"/>
<fillstroke/>
- <path>
- <move x="0.0" y="32.0"/>
- <line x="5.0" y="32.0"/>
- </path>
+ <rect h="4" w="20" x="5" y="30"/>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Unity Gain Follower" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Unity Gain Follower" strokewidth="inherit" w="100">
<connections>
- <constraint name="Vin" perimeter="0" x="0.0" y="0.8"/>
- <constraint name="Vout" perimeter="0" x="1.0" y="0.6"/>
+ <constraint name="Vin" perimeter="0" x="0" y="0.8"/>
+ <constraint name="Vout" perimeter="0" x="1" y="0.6"/>
</connections>
<background>
- <save/>
<path>
- <move x="40.0" y="10.0"/>
- <line x="80.0" y="30.0"/>
- <line x="40.0" y="50.0"/>
+ <move x="40" y="10"/>
+ <line x="80" y="30"/>
+ <line x="40" y="50"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="80.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
+ <move x="80" y="30"/>
+ <line x="100" y="30"/>
+ <move x="85" y="30"/>
+ <line x="85" y="0"/>
+ <line x="35" y="0"/>
+ <line x="35" y="20"/>
+ <line x="40" y="20"/>
+ <move x="0" y="40"/>
+ <line x="40" y="40"/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="85.0" y="30.0"/>
- <line x="85.0" y="0.0"/>
- <line x="35.0" y="0.0"/>
- <line x="35.0" y="20.0"/>
- <line x="40.0" y="20.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/opto_electronics.xml b/war/stencils/electrical/opto_electronics.xml
index 558ab698..922bad64 100644
--- a/war/stencils/electrical/opto_electronics.xml
+++ b/war/stencils/electrical/opto_electronics.xml
@@ -1,983 +1,654 @@
-<shapes name="mxGraph.electrical.opto_electronics">
- <shape aspect="variable" h="96.1" name="7 Segment Display" strokewidth="inherit" w="74.7">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7"/>
- <line x="28.5" y="0"/>
- <line x="59.3" y="0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14"/>
- <line x="26.6" y="14"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0" y="79.8"/>
- <line x="3" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="96.9" name="7 Segment Display with DP" strokewidth="inherit" w="79.8">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7.0"/>
- <line x="28.5" y="0.0"/>
- <line x="59.3" y="0.0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14.0"/>
- <line x="26.6" y="14.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9.0" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0.0" y="79.8"/>
- <line x="3.0" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54.0" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12.0" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17.0" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="67.8" y="84.9"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="96.1" name="9 Segment Display" strokewidth="inherit" w="74.7">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7.0"/>
- <line x="28.5" y="0.0"/>
- <line x="59.3" y="0.0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14.0"/>
- <line x="26.6" y="14.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9.0" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0.0" y="79.8"/>
- <line x="3.0" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54.0" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12.0" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17.0" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.1" y="17.0"/>
- <line x="56.8" y="17.0"/>
- <line x="55.2" y="28.2"/>
- <line x="49.6" y="38.0"/>
- <line x="40.8" y="38.0"/>
- <line x="42.3" y="28.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.4" y="69.7"/>
- <line x="25.6" y="57.5"/>
- <line x="34.6" y="57.5"/>
- <line x="33.6" y="65.2"/>
- <line x="25.4" y="79.9"/>
- <line x="17.1" y="79.9"/>
- <close/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="96.9" name="9 Segment Display with DP" strokewidth="inherit" w="79.8">
- <connections/>
- <foreground>
- <path>
- <move x="20.2" y="7.0"/>
- <line x="28.5" y="0.0"/>
- <line x="59.3" y="0.0"/>
- <line x="65.6" y="6.9"/>
- <line x="57.2" y="14.0"/>
- <line x="26.6" y="14.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="68.3" y="9.6"/>
- <line x="74.7" y="16.4"/>
- <line x="71.8" y="38.2"/>
- <line x="63.3" y="45.4"/>
- <line x="56.8" y="38.5"/>
- <line x="59.8" y="16.5"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.6" y="50.8"/>
- <line x="69.2" y="57.7"/>
- <line x="66.2" y="79.6"/>
- <line x="57.7" y="86.6"/>
- <line x="51.3" y="79.7"/>
- <line x="54.2" y="57.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="48.2" y="82.2"/>
- <line x="54.6" y="89.2"/>
- <line x="46.4" y="96.1"/>
- <line x="15.4" y="96.1"/>
- <line x="9.0" y="89.3"/>
- <line x="17.4" y="82.2"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="17.7" y="57.7"/>
- <line x="14.8" y="79.6"/>
- <line x="6.4" y="86.6"/>
- <line x="0.0" y="79.8"/>
- <line x="3.0" y="57.8"/>
- <line x="11.4" y="50.8"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.1" y="47.9"/>
- <line x="51.8" y="54.9"/>
- <line x="20.8" y="54.9"/>
- <line x="14.5" y="47.9"/>
- <line x="23.1" y="40.9"/>
- <line x="54.0" y="40.9"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="23.4" y="16.4"/>
- <line x="20.4" y="38.4"/>
- <line x="12.0" y="45.4"/>
- <line x="5.6" y="38.6"/>
- <line x="8.6" y="16.4"/>
- <line x="17.0" y="9.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.1" y="17.0"/>
- <line x="56.8" y="17.0"/>
- <line x="55.2" y="28.2"/>
- <line x="49.6" y="38.0"/>
- <line x="40.8" y="38.0"/>
- <line x="42.3" y="28.6"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="18.4" y="69.7"/>
- <line x="25.6" y="57.5"/>
- <line x="34.6" y="57.5"/>
- <line x="33.6" y="65.2"/>
- <line x="25.4" y="79.9"/>
- <line x="17.1" y="79.9"/>
- <close/>
- </path>
- <fillstroke/>
- <ellipse h="12.0" w="12.0" x="67.8" y="84.9"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="65.0" name="LED 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
- </connections>
- <background>
- <save/>
- <path>
- <move x="30.0" y="5.0"/>
- <line x="70.0" y="35.0"/>
- <line x="30.0" y="65.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="30.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="5.0"/>
- <line x="70.0" y="65.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="7.0"/>
- <line x="87.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="87.0" y="3.0"/>
- <line x="87.0" y="0.0"/>
- <line x="84.0" y="0.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="35.0"/>
- <line x="100.0" y="35.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="LED 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
- </connections>
- <background>
- <save/>
- <save/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="87.0" y="8.0"/>
- <line x="87.0" y="5.0"/>
- <line x="84.0" y="5.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="82.0" y="3.0"/>
- <line x="82.0" y="0.0"/>
- <line x="79.0" y="0.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Light-activated SCR" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
- </connections>
- <background>
- <save/>
- <save/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="84.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Opto-coupler" strokewidth="inherit" w="99.0">
- <connections>
- <constraint name="in1" perimeter="0" x="0.195" y="0.0"/>
- <constraint name="in2" perimeter="0" x="0.8" y="0.0"/>
- <constraint name="out1" perimeter="0" x="0.195" y="1.0"/>
- <constraint name="out2" perimeter="0" x="0.8" y="1.0"/>
- </connections>
- <background>
- <save/>
- <save/>
- <save/>
- <save/>
- <rect h="60.0" w="99.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="19.5" y="0.0"/>
- <line x="19.5" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.5" y="25.0"/>
- <line x="19.5" y="34.5"/>
- <line x="28.5" y="25.0"/>
- <close/>
- </path>
- <fillstroke/>
- <path>
- <move x="39.5" y="35.0"/>
- <line x="49.5" y="35.0"/>
- </path>
- <fillstroke/>
- <miterlimit limit="2"/>
- <path>
- <move x="76.5" y="46.0"/>
- <line x="79.5" y="50.0"/>
- <line x="74.5" y="49.4"/>
- <close/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="46.5" y="33.0"/>
- <line x="49.5" y="35.0"/>
- <line x="46.5" y="37.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="39.5" y="25.0"/>
- <line x="49.5" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="46.5" y="23.0"/>
- <line x="49.5" y="25.0"/>
- <line x="46.5" y="27.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="9.5" y="35.0"/>
- <line x="29.5" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="59.5" y="12.0"/>
- <line x="59.5" y="48.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="59.5" y="22.0"/>
- <line x="79.5" y="10.0"/>
- <line x="79.5" y="0.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.5" y="47.7"/>
- <line x="59.5" y="38.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="79.5" y="50.0"/>
- <line x="79.5" y="60.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="110.0" name="Opto-transistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="Vout1" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="Vout2" perimeter="0" x="0.7" y="1.0"/>
- </connections>
- <background>
- <save/>
- <save/>
- <save/>
- <path>
- <move x="15.0" y="10.0"/>
- <line x="22.0" y="17.0"/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="10.0" y="15.0"/>
- <line x="17.0" y="22.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.0" y="14.0"/>
- <line x="22.0" y="17.0"/>
- <line x="19.0" y="17.0"/>
- </path>
- <stroke/>
- <path>
- <move x="17.0" y="19.0"/>
- <line x="17.0" y="22.0"/>
- <line x="14.0" y="22.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="40.0" y="30.0"/>
- <line x="40.0" y="80.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="70.0" y="12.5"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="70.0"/>
- <line x="70.0" y="97.5"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="54.0" y="89.0"/>
- <line x="69.0" y="96.5"/>
- <line x="60.5" y="82.5"/>
- <close/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Photodiode" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
- </connections>
- <background>
- <save/>
- <save/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="70.0" y="40.0"/>
- <line x="30.0" y="70.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="10.0"/>
- <line x="70.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="Photo Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="18.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <rect h="20.0" w="64.0" x="18.0" y="35.0"/>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="85.0" y="12.0"/>
- <line x="92.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="85.0" y="9.0"/>
- <line x="85.0" y="12.0"/>
- <line x="88.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="80.0" y="7.0"/>
- <line x="87.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="4.0"/>
- <line x="80.0" y="7.0"/>
- <line x="82.0" y="7.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="50.0" name="Photo Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.8"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.8"/>
- </connections>
- <background>
- <save/>
- <rect h="20.0" w="64.0" x="18.0" y="30.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="18.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="Photo Resistor 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="85.0" y="12.0"/>
- <line x="92.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="85.0" y="9.0"/>
- <line x="85.0" y="12.0"/>
- <line x="88.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="80.0" y="7.0"/>
- <line x="87.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="4.0"/>
- <line x="80.0" y="7.0"/>
- <line x="82.0" y="7.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="45.0"/>
- <line x="18.0" y="45.0"/>
- <line x="22.0" y="35.0"/>
- <line x="30.0" y="55.0"/>
- <line x="38.0" y="35.0"/>
- <line x="46.0" y="55.0"/>
- <line x="54.0" y="35.0"/>
- <line x="62.0" y="55.0"/>
- <line x="70.0" y="35.0"/>
- <line x="78.0" y="55.0"/>
- <line x="82.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Solar Cell" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.57"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.57"/>
- </connections>
- <background>
- <save/>
- <rect h="30.0" w="4.0" x="41.0" y="25.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="41.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="10.0"/>
- <line x="55.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
+<shapes name="mxgraph.electrical.opto_electronics">
+<shape aspect="variable" h="96.1" name="7 Segment Display" strokewidth="inherit" w="74.7">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="96.9" name="7 Segment Display with DP" strokewidth="inherit" w="79.8">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="67.8" y="84.9"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="96.1" name="9 Segment Display" strokewidth="inherit" w="74.7">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ <move x="49.1" y="17"/>
+ <line x="56.8" y="17"/>
+ <line x="55.2" y="28.2"/>
+ <line x="49.6" y="38"/>
+ <line x="40.8" y="38"/>
+ <line x="42.3" y="28.6"/>
+ <close/>
+ <move x="18.4" y="69.7"/>
+ <line x="25.6" y="57.5"/>
+ <line x="34.6" y="57.5"/>
+ <line x="33.6" y="65.2"/>
+ <line x="25.4" y="79.9"/>
+ <line x="17.1" y="79.9"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="96.9" name="9 Segment Display with DP" strokewidth="inherit" w="79.8">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="20.2" y="7"/>
+ <line x="28.5" y="0"/>
+ <line x="59.3" y="0"/>
+ <line x="65.6" y="6.9"/>
+ <line x="57.2" y="14"/>
+ <line x="26.6" y="14"/>
+ <close/>
+ <move x="68.3" y="9.6"/>
+ <line x="74.7" y="16.4"/>
+ <line x="71.8" y="38.2"/>
+ <line x="63.3" y="45.4"/>
+ <line x="56.8" y="38.5"/>
+ <line x="59.8" y="16.5"/>
+ <close/>
+ <move x="62.6" y="50.8"/>
+ <line x="69.2" y="57.7"/>
+ <line x="66.2" y="79.6"/>
+ <line x="57.7" y="86.6"/>
+ <line x="51.3" y="79.7"/>
+ <line x="54.2" y="57.8"/>
+ <close/>
+ <move x="48.2" y="82.2"/>
+ <line x="54.6" y="89.2"/>
+ <line x="46.4" y="96.1"/>
+ <line x="15.4" y="96.1"/>
+ <line x="9" y="89.3"/>
+ <line x="17.4" y="82.2"/>
+ <close/>
+ <move x="17.7" y="57.7"/>
+ <line x="14.8" y="79.6"/>
+ <line x="6.4" y="86.6"/>
+ <line x="0" y="79.8"/>
+ <line x="3" y="57.8"/>
+ <line x="11.4" y="50.8"/>
+ <close/>
+ <move x="60.1" y="47.9"/>
+ <line x="51.8" y="54.9"/>
+ <line x="20.8" y="54.9"/>
+ <line x="14.5" y="47.9"/>
+ <line x="23.1" y="40.9"/>
+ <line x="54" y="40.9"/>
+ <close/>
+ <move x="23.4" y="16.4"/>
+ <line x="20.4" y="38.4"/>
+ <line x="12" y="45.4"/>
+ <line x="5.6" y="38.6"/>
+ <line x="8.6" y="16.4"/>
+ <line x="17" y="9.6"/>
+ <close/>
+ <move x="49.1" y="17"/>
+ <line x="56.8" y="17"/>
+ <line x="55.2" y="28.2"/>
+ <line x="49.6" y="38"/>
+ <line x="40.8" y="38"/>
+ <line x="42.3" y="28.6"/>
+ <close/>
+ <move x="18.4" y="69.7"/>
+ <line x="25.6" y="57.5"/>
+ <line x="34.6" y="57.5"/>
+ <line x="33.6" y="65.2"/>
+ <line x="25.4" y="79.9"/>
+ <line x="17.1" y="79.9"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <ellipse h="12" w="12" x="67.8" y="84.9"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Lamp" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0.2" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.8" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="80"/>
+ <line x="0" y="25"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="25" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="25" ry="25" sweep-flag="1" x="50" x-axis-rotation="0" y="25"/>
+ <line x="50" y="80"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="10" y="100"/>
+ <line x="10" y="50"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="25" x-axis-rotation="0" y="35"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="40" x-axis-rotation="0" y="50"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65" name="LED 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="5"/>
+ <line x="70" y="35"/>
+ <line x="30" y="65"/>
+ <close/>
+ <move x="0" y="35"/>
+ <line x="30" y="35"/>
+ <move x="70" y="5"/>
+ <line x="70" y="65"/>
+ <move x="80" y="7"/>
+ <line x="87" y="0"/>
+ <move x="87" y="3"/>
+ <line x="87" y="0"/>
+ <line x="84" y="0"/>
+ <move x="70" y="35"/>
+ <line x="100" y="35"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="LED 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="87" y="8"/>
+ <line x="87" y="5"/>
+ <line x="84" y="5"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="82" y="3"/>
+ <line x="82" y="0"/>
+ <line x="79" y="0"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Light-activated SCR" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="84" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Opto-coupler" strokewidth="inherit" w="99">
+ <connections>
+ <constraint name="in1" perimeter="0" x="0.195" y="0"/>
+ <constraint name="in2" perimeter="0" x="0.8" y="0"/>
+ <constraint name="out1" perimeter="0" x="0.195" y="1"/>
+ <constraint name="out2" perimeter="0" x="0.8" y="1"/>
+ </connections>
+ <background>
+ <rect h="60" w="99" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="46.5" y="33"/>
+ <line x="49.5" y="35"/>
+ <line x="46.5" y="37"/>
+ <move x="39.5" y="25"/>
+ <line x="49.5" y="25"/>
+ <move x="46.5" y="23"/>
+ <line x="49.5" y="25"/>
+ <line x="46.5" y="27"/>
+ <move x="9.5" y="35"/>
+ <line x="29.5" y="35"/>
+ <move x="59.5" y="12"/>
+ <line x="59.5" y="48"/>
+ <move x="59.5" y="22"/>
+ <line x="79.5" y="10"/>
+ <line x="79.5" y="0"/>
+ <move x="75.5" y="47.7"/>
+ <line x="59.5" y="38"/>
+ <move x="79.5" y="50"/>
+ <line x="79.5" y="60"/>
+ <move x="19.5" y="0"/>
+ <line x="19.5" y="60"/>
+ <move x="39.5" y="35"/>
+ <line x="49.5" y="35"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="10.5" y="25"/>
+ <line x="19.5" y="34.5"/>
+ <line x="28.5" y="25"/>
+ <close/>
+ <move x="76.5" y="46"/>
+ <line x="79.5" y="50"/>
+ <line x="74.5" y="49.4"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="110" name="Opto-transistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="Vout1" perimeter="0" x="0.7" y="0"/>
+ <constraint name="Vout2" perimeter="0" x="0.7" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="15" y="10"/>
+ <line x="22" y="17"/>
+ <move x="10" y="15"/>
+ <line x="17" y="22"/>
+ <move x="22" y="14"/>
+ <line x="22" y="17"/>
+ <line x="19" y="17"/>
+ <move x="17" y="19"/>
+ <line x="17" y="22"/>
+ <line x="14" y="22"/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="90" w="90" x="10" y="10"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="55"/>
+ <line x="40" y="55"/>
+ <move x="40" y="40"/>
+ <line x="70" y="12.5"/>
+ <line x="70" y="0"/>
+ <move x="40" y="70"/>
+ <line x="70" y="97.5"/>
+ <line x="70" y="110"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="54" y="89"/>
+ <line x="69" y="96.5"/>
+ <line x="60.5" y="82.5"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="40" y="30"/>
+ <line x="40" y="80"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Photodiode" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="10"/>
+ <line x="70" y="40"/>
+ <line x="30" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="30" y="40"/>
+ <move x="70" y="10"/>
+ <line x="70" y="70"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ <move x="70" y="40"/>
+ <line x="100" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Photo Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="90" w="90" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="45"/>
+ <line x="18" y="45"/>
+ <move x="82" y="45"/>
+ <line x="100" y="45"/>
+ <move x="85" y="12"/>
+ <line x="92" y="5"/>
+ <move x="85" y="9"/>
+ <line x="85" y="12"/>
+ <line x="88" y="12"/>
+ <move x="80" y="7"/>
+ <line x="87" y="0"/>
+ <move x="80" y="4"/>
+ <line x="80" y="7"/>
+ <line x="82" y="7"/>
+ </path>
+ <fillstroke/>
+ <rect h="20" w="64" x="18" y="35"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Photo Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.8"/>
+ <constraint name="out" perimeter="0" x="1" y="0.8"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="30"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="40"/>
+ <line x="18" y="40"/>
+ <move x="82" y="40"/>
+ <line x="100" y="40"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Photo Resistor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="90" w="90" x="5" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="85" y="12"/>
+ <line x="92" y="5"/>
+ <move x="85" y="9"/>
+ <line x="85" y="12"/>
+ <line x="88" y="12"/>
+ <move x="80" y="7"/>
+ <line x="87" y="0"/>
+ <move x="80" y="4"/>
+ <line x="80" y="7"/>
+ <line x="82" y="7"/>
+ <move x="0" y="45"/>
+ <line x="18" y="45"/>
+ <line x="22" y="35"/>
+ <line x="30" y="55"/>
+ <line x="38" y="35"/>
+ <line x="46" y="55"/>
+ <line x="54" y="35"/>
+ <line x="62" y="55"/>
+ <line x="70" y="35"/>
+ <line x="78" y="55"/>
+ <line x="82" y="45"/>
+ <line x="100" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Solar Cell" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.57"/>
+ <constraint name="out" perimeter="0" x="1" y="0.57"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="40"/>
+ <line x="41" y="40"/>
+ <move x="55" y="10"/>
+ <line x="55" y="70"/>
+ <move x="55" y="40"/>
+ <line x="100" y="40"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <rect h="30" w="4" x="41" y="25"/>
+ <fillstroke/>
+ </foreground>
+</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/plc_ladder.xml b/war/stencils/electrical/plc_ladder.xml
index ac895433..425c743c 100644
--- a/war/stencils/electrical/plc_ladder.xml
+++ b/war/stencils/electrical/plc_ladder.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.plc_ladder">
+<shapes name="mxgraph.electrical.plc_ladder">
<shape aspect="variable" h="50" name="Contact" strokewidth="inherit" w="100">
<connections>
<constraint name="in" perimeter="0" x="0" y="0.5"/>
@@ -8,182 +8,115 @@
<path>
<move x="0" y="25"/>
<line x="30" y="25"/>
- </path>
- <fillstroke/>
- <path>
<move x="100" y="25"/>
<line x="70" y="25"/>
- </path>
- <fillstroke/>
- <path>
<move x="30" y="0"/>
<line x="30" y="50"/>
- </path>
- <fillstroke/>
- <path>
<move x="70" y="0"/>
<line x="70" y="50"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Not Contact" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Not Contact" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="25.0"/>
- <line x="30.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="0.0"/>
- <line x="70.0" y="50.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="25"/>
+ <line x="30" y="25"/>
+ <move x="100" y="25"/>
+ <line x="70" y="25"/>
+ <move x="30" y="0"/>
+ <line x="30" y="50"/>
+ <move x="70" y="0"/>
+ <line x="70" y="50"/>
+ <move x="30" y="50"/>
+ <line x="70" y="0"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Not Output 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Not Output 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="35.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="50.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="28.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="72.0" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="50.0"/>
+ <move x="35" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="35" x-axis-rotation="0" y="50"/>
+ <move x="0" y="25"/>
+ <line x="28" y="25"/>
+ <move x="100" y="25"/>
+ <line x="72" y="25"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="1" x="65" x-axis-rotation="0" y="50"/>
+ <move x="30" y="50"/>
+ <line x="70" y="0"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Not Output 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Not Output 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="25.0" y="0.0"/>
+ <ellipse h="50" w="50" x="25" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="75.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="50.0"/>
- <line x="70.0" y="0.0"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="100" y="25"/>
+ <line x="75" y="25"/>
+ <move x="30" y="50"/>
+ <line x="70" y="0"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Output 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Output 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
- <save/>
- <fillcolor color="none"/>
<path>
- <move x="35.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="0" x="35.0" x-axis-rotation="0.0" y="50.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="28.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="72.0" y="25.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="65.0" y="0.0"/>
- <arc large-arc-flag="0" rx="50.0" ry="50.0" sweep-flag="1" x="65.0" x-axis-rotation="0.0" y="50.0"/>
+ <move x="35" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="0" x="35" x-axis-rotation="0" y="50"/>
+ <move x="0" y="25"/>
+ <line x="28" y="25"/>
+ <move x="100" y="25"/>
+ <line x="72" y="25"/>
+ <move x="65" y="0"/>
+ <arc large-arc-flag="0" rx="50" ry="50" sweep-flag="1" x="65" x-axis-rotation="0" y="50"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="50.0" name="Output 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="50" name="Output 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="50.0" w="50.0" x="25.0" y="0.0"/>
+ <ellipse h="50" w="50" x="25" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="25.0"/>
- <line x="25.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="100.0" y="25.0"/>
- <line x="75.0" y="25.0"/>
+ <move x="0" y="25"/>
+ <line x="25" y="25"/>
+ <move x="100" y="25"/>
+ <line x="75" y="25"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/power_semiconductors.xml b/war/stencils/electrical/power_semiconductors.xml
index 45ec4ff5..8af2dc40 100644
--- a/war/stencils/electrical/power_semiconductors.xml
+++ b/war/stencils/electrical/power_semiconductors.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.power_semiconductors">
+<shapes name="mxgraph.electrical.power_semiconductors">
<shape aspect="variable" h="90" name="Bridge Rectifier 1" strokewidth="inherit" w="90">
<connections>
<constraint name="+" perimeter="0" x="0" y="0.5"/>
@@ -7,7 +7,6 @@
<constraint name="out2" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
<path>
<move x="45" y="0"/>
<line x="90" y="45"/>
@@ -18,1091 +17,727 @@
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
<move x="40" y="10"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="10"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="10"/>
- </path>
- <stroke/>
- <path>
<move x="40" y="80"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="80"/>
<arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="80"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
<move x="7" y="45"/>
<line x="13" y="45"/>
- </path>
- <fillstroke/>
- <path>
<move x="10" y="42"/>
<line x="10" y="48"/>
- </path>
- <fillstroke/>
- <path>
<move x="83" y="45"/>
<line x="77" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Bridge Rectifier 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Bridge Rectifier 2" strokewidth="inherit" w="90">
<connections>
- <constraint name="+" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="-" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="out1" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.5" y="1.0"/>
+ <constraint name="+" perimeter="0" x="0" y="0.5"/>
+ <constraint name="-" perimeter="0" x="1" y="0.5"/>
+ <constraint name="out1" perimeter="0" x="0.5" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.5" y="1"/>
</connections>
<background>
- <save/>
<path>
- <move x="45.0" y="0.0"/>
- <line x="90.0" y="45.0"/>
- <line x="45.0" y="90.0"/>
- <line x="0.0" y="45.0"/>
+ <move x="45" y="0"/>
+ <line x="90" y="45"/>
+ <line x="45" y="90"/>
+ <line x="0" y="45"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="10.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="10.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="80.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="80.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="50.0" x-axis-rotation="0.0" y="80.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="7.0" y="45.0"/>
- <line x="13.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="42.0"/>
- <line x="10.0" y="48.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="83.0" y="45.0"/>
- <line x="77.0" y="45.0"/>
- </path>
- <fillstroke/>
<path>
+ <move x="40" y="10"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="10"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="10"/>
+ <move x="40" y="80"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="45" x-axis-rotation="0" y="80"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="50" x-axis-rotation="0" y="80"/>
+ <move x="7" y="45"/>
+ <line x="13" y="45"/>
+ <move x="10" y="42"/>
+ <line x="10" y="48"/>
+ <move x="83" y="45"/>
+ <line x="77" y="45"/>
<move x="17.5" y="22.5"/>
<line x="22.5" y="27.5"/>
- </path>
- <fillstroke/>
- <path>
<move x="22.5" y="62.5"/>
<line x="17.5" y="67.5"/>
- </path>
- <fillstroke/>
- <path>
<move x="62.5" y="67.5"/>
<line x="67.5" y="72.5"/>
- </path>
- <fillstroke/>
- <path>
<move x="67.5" y="17.5"/>
<line x="62.5" y="22.5"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="25.0" y="25.0"/>
- <line x="20.0" y="25.0"/>
- <line x="20.0" y="20.0"/>
+ <move x="25" y="25"/>
+ <line x="20" y="25"/>
+ <line x="20" y="20"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.25" y="70.0"/>
- <line x="20.0" y="65.0"/>
- <line x="25.0" y="65.0"/>
+ <move x="20.25" y="70"/>
+ <line x="20" y="65"/>
+ <line x="25" y="65"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="25.0"/>
- <line x="65.0" y="20.0"/>
- <line x="70.0" y="20.0"/>
+ <move x="65" y="25"/>
+ <line x="65" y="20"/>
+ <line x="70" y="20"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="65.0"/>
- <line x="65.0" y="70.0"/>
- <line x="70.0" y="70.0"/>
+ <move x="65" y="65"/>
+ <line x="65" y="70"/>
+ <line x="70" y="70"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Bridge Rectifier 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Bridge Rectifier 3" strokewidth="inherit" w="90">
<connections>
- <constraint name="+" perimeter="0" x="1.0" y="0.165"/>
- <constraint name="-" perimeter="0" x="1.0" y="0.835"/>
- <constraint name="var1" perimeter="0" x="0.0" y="0.165"/>
- <constraint name="var2" perimeter="0" x="0.0" y="0.835"/>
+ <constraint name="+" perimeter="0" x="1" y="0.165"/>
+ <constraint name="-" perimeter="0" x="1" y="0.835"/>
+ <constraint name="var1" perimeter="0" x="0" y="0.165"/>
+ <constraint name="var2" perimeter="0" x="0" y="0.835"/>
</connections>
<background>
- <save/>
- <rect h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <rect h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="5.0" y="15.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="15.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="15.0"/>
- </path>
- <stroke/>
<path>
- <move x="5.0" y="75.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="1" x="10.0" x-axis-rotation="0.0" y="75.0"/>
- <arc large-arc-flag="0" rx="3.0" ry="3.0" sweep-flag="0" x="15.0" x-axis-rotation="0.0" y="75.0"/>
+ <move x="5" y="15"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="10" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="15" x-axis-rotation="0" y="15"/>
+ <move x="5" y="75"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="1" x="10" x-axis-rotation="0" y="75"/>
+ <arc large-arc-flag="0" rx="3" ry="3" sweep-flag="0" x="15" x-axis-rotation="0" y="75"/>
+ <move x="79" y="15"/>
+ <line x="85" y="15"/>
+ <move x="82" y="12"/>
+ <line x="82" y="18"/>
+ <move x="85" y="75"/>
+ <line x="79" y="75"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="79.0" y="15.0"/>
- <line x="85.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="12.0"/>
- <line x="82.0" y="18.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="85.0" y="75.0"/>
- <line x="79.0" y="75.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Diac 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="Diac 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="15.0"/>
- <line x="60.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="59.0" y="30.0"/>
- <line x="40.0" y="45.0"/>
+ <move x="0" y="45"/>
+ <line x="40" y="45"/>
+ <move x="60" y="15"/>
+ <line x="60" y="75"/>
+ <move x="40" y="15"/>
+ <line x="59" y="30"/>
+ <line x="40" y="45"/>
<close/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="41.0" y="60.0"/>
- <line x="60.0" y="75.0"/>
+ <move x="60" y="45"/>
+ <line x="41" y="60"/>
+ <line x="60" y="75"/>
<close/>
+ <move x="60" y="45"/>
+ <line x="100" y="45"/>
+ <move x="40" y="15"/>
+ <line x="40" y="75"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="40.0" y="75.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="60.0" name="Diac 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="60" name="Diac 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<foreground>
<path>
- <move x="0.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="0.0"/>
- <line x="59.0" y="15.0"/>
- <line x="40.0" y="30.0"/>
+ <move x="0" y="30"/>
+ <line x="40" y="30"/>
+ <move x="60" y="0"/>
+ <line x="60" y="60"/>
+ <move x="40" y="0"/>
+ <line x="59" y="15"/>
+ <line x="40" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="41.0" y="45.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="60" y="30"/>
+ <line x="41" y="45"/>
+ <line x="60" y="60"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="0.0"/>
- <line x="40.0" y="60.0"/>
+ <move x="60" y="30"/>
+ <line x="100" y="30"/>
+ <move x="40" y="0"/>
+ <line x="40" y="60"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="67.0" name="GTO SCR" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="67" name="GTO SCR" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.55"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.55"/>
+ <constraint name="in" perimeter="0" x="0" y="0.55"/>
+ <constraint name="out" perimeter="0" x="1" y="0.55"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="7.0"/>
- <line x="70.0" y="37.0"/>
- <line x="30.0" y="67.0"/>
+ <move x="30" y="7"/>
+ <line x="70" y="37"/>
+ <line x="30" y="67"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="37.0"/>
- <line x="30.0" y="37.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="7.0"/>
- <line x="70.0" y="67.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="32.0"/>
- <line x="80.0" y="17.0"/>
- <line x="80.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="17.0"/>
- <line x="80.0" y="2.0"/>
- <line x="80.0" y="3.5"/>
- </path>
- <stroke/>
- <path>
+ <move x="0" y="37"/>
+ <line x="30" y="37"/>
+ <move x="70" y="7"/>
+ <line x="70" y="67"/>
+ <move x="70" y="32"/>
+ <line x="80" y="17"/>
+ <line x="80" y="0"/>
+ <move x="70" y="17"/>
+ <line x="80" y="2"/>
+ <line x="80" y="3.5"/>
<move x="79.5" y="21.5"/>
- <line x="76.0" y="23.0"/>
- <line x="76.0" y="19.3"/>
- </path>
- <stroke/>
- <path>
- <move x="77.0" y="10.5"/>
- <line x="77.0" y="6.5"/>
- <line x="73.5" y="8.0"/>
+ <line x="76" y="23"/>
+ <line x="76" y="19.3"/>
+ <move x="77" y="10.5"/>
+ <line x="77" y="6.5"/>
+ <line x="73.5" y="8"/>
+ <move x="70" y="37"/>
+ <line x="100" y="37"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="37.0"/>
- <line x="100.0" y="37.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="63.5" name="IGCT 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="63.5" name="IGCT 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.525"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.525"/>
+ <constraint name="in" perimeter="0" x="0" y="0.525"/>
+ <constraint name="out" perimeter="0" x="1" y="0.525"/>
</connections>
<foreground>
- <save/>
<path>
- <move x="0.0" y="33.5"/>
- <line x="100.0" y="33.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="70.0" y="63.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="3.5"/>
- <line x="70.0" y="33.5"/>
- <line x="30.0" y="63.5"/>
- <close/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="28.5"/>
- <line x="80.0" y="13.5"/>
- <line x="80.0" y="0.0"/>
+ <move x="0" y="33.5"/>
+ <line x="100" y="33.5"/>
+ <move x="70" y="3.5"/>
+ <line x="70" y="63.5"/>
+ <move x="70" y="28.5"/>
+ <line x="80" y="13.5"/>
+ <line x="80" y="0"/>
+ <move x="75" y="5.5"/>
+ <line x="85" y="5.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="70.0" y="3.5"/>
- <line x="50.0" y="18.5"/>
- <line x="70.0" y="33.5"/>
+ <move x="30" y="3.5"/>
+ <line x="70" y="33.5"/>
+ <line x="30" y="63.5"/>
<close/>
</path>
<fillstroke/>
<path>
- <move x="75.0" y="5.5"/>
- <line x="85.0" y="5.5"/>
+ <move x="70" y="3.5"/>
+ <line x="50" y="18.5"/>
+ <line x="70" y="33.5"/>
+ <close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="63.5" name="IGCT 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="63.5" name="IGCT 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.525"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.525"/>
+ <constraint name="in" perimeter="0" x="0" y="0.525"/>
+ <constraint name="out" perimeter="0" x="1" y="0.525"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="3.5"/>
- <line x="70.0" y="33.5"/>
- <line x="30.0" y="63.5"/>
+ <move x="30" y="3.5"/>
+ <line x="70" y="33.5"/>
+ <line x="30" y="63.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="33.5"/>
- <line x="30.0" y="33.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="70.0" y="63.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="28.5"/>
- <line x="80.0" y="13.5"/>
- <line x="80.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="50.0" y="18.5"/>
- <line x="70.0" y="33.5"/>
+ <move x="0" y="33.5"/>
+ <line x="30" y="33.5"/>
+ <move x="70" y="3.5"/>
+ <line x="70" y="63.5"/>
+ <move x="70" y="28.5"/>
+ <line x="80" y="13.5"/>
+ <line x="80" y="0"/>
+ <move x="70" y="3.5"/>
+ <line x="50" y="18.5"/>
+ <line x="70" y="33.5"/>
<close/>
+ <move x="75" y="5.5"/>
+ <line x="85" y="5.5"/>
+ <move x="70" y="33.5"/>
+ <line x="100" y="33.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="5.5"/>
- <line x="85.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="33.5"/>
- <line x="100.0" y="33.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="NPN IGBT 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="NPN IGBT 1" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="20" y="60"/>
+ <line x="73" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
<path>
<move x="68.75" y="75.5"/>
- <line x="72.75" y="80.0"/>
- <line x="66.75" y="81.0"/>
+ <line x="72.75" y="80"/>
+ <line x="66.75" y="81"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="71.0" name="NPN IGBT 2" strokewidth="inherit" w="61.5">
+ <shape aspect="variable" h="71" name="NPN IGBT 2" strokewidth="inherit" w="61.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.915"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="0.99"/>
+ <constraint name="in" perimeter="0" x="0" y="0.915"/>
+ <constraint name="out1" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="0.99"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
<move x="57.25" y="65.5"/>
- <line x="61.25" y="70.0"/>
- <line x="55.25" y="71.0"/>
+ <line x="61.25" y="70"/>
+ <line x="55.25" y="71"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="NPN IGBT 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="NPN IGBT 3" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="20" y="60"/>
+ <line x="73" y="80"/>
+ <move x="73" y="10"/>
+ <line x="73" y="80"/>
+ <move x="68" y="42"/>
+ <line x="78" y="42"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
<path>
<move x="68.75" y="75.5"/>
- <line x="72.75" y="80.0"/>
- <line x="66.75" y="81.0"/>
+ <line x="72.75" y="80"/>
+ <line x="66.75" y="81"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="73.0" y="10.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.5" y="48.0"/>
- <line x="73.0" y="43.0"/>
- <line x="68.5" y="48.0"/>
+ <move x="77.5" y="48"/>
+ <line x="73" y="43"/>
+ <line x="68.5" y="48"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="68.0" y="42.0"/>
- <line x="78.0" y="42.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="71.0" name="NPN IGBT 4" strokewidth="inherit" w="66.5">
+ <shape aspect="variable" h="71" name="NPN IGBT 4" strokewidth="inherit" w="66.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.915"/>
- <constraint name="out1" perimeter="0" x="0.925" y="0.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.915"/>
+ <constraint name="out1" perimeter="0" x="0.925" y="0"/>
<constraint name="out2" perimeter="0" x="0.925" y="0.99"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
+ <move x="61.5" y="0"/>
+ <line x="61.5" y="70"/>
+ <move x="56.5" y="32"/>
+ <line x="66.5" y="32"/>
</path>
<fillstroke/>
<path>
<move x="57.25" y="65.5"/>
- <line x="61.25" y="70.0"/>
- <line x="55.25" y="71.0"/>
+ <line x="61.25" y="70"/>
+ <line x="55.25" y="71"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.5" y="0.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="66.0" y="38.0"/>
- <line x="61.5" y="33.0"/>
- <line x="57.0" y="38.0"/>
+ <move x="66" y="38"/>
+ <line x="61.5" y="33"/>
+ <line x="57" y="38"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="56.5" y="32.0"/>
- <line x="66.5" y="32.0"/>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="PNP IGBT 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="PNP IGBT 1" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
- <move x="25.0" y="65.0"/>
- <line x="21.0" y="60.5"/>
- <line x="27.0" y="59.5"/>
+ <move x="25" y="65"/>
+ <line x="21" y="60.5"/>
+ <line x="27" y="59.5"/>
<close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <strokewidth width="2"/>
<path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="25.89" y="62.22"/>
+ <line x="73" y="80"/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="25.89" y="62.22"/>
- <line x="73.0" y="80.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="70.0" name="PNP IGBT 2" strokewidth="inherit" w="61.5">
+ <shape aspect="variable" h="70" name="PNP IGBT 2" strokewidth="inherit" w="61.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.93"/>
- <constraint name="out1" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="out2" perimeter="0" x="1.0" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.93"/>
+ <constraint name="out1" perimeter="0" x="1" y="0"/>
+ <constraint name="out2" perimeter="0" x="1" y="1"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="13.5" y="55.0"/>
+ <move x="13.5" y="55"/>
<line x="9.5" y="50.5"/>
<line x="15.5" y="49.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="PNP IGBT 3" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="PNP IGBT 3" strokewidth="inherit" w="90">
<connections>
<constraint name="in" perimeter="0" x="0.13" y="0.835"/>
<constraint name="out1" perimeter="0" x="0.81" y="0.11"/>
<constraint name="out2" perimeter="0" x="0.81" y="0.89"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="73" y="10"/>
+ <move x="20" y="60"/>
+ <line x="73" y="80"/>
+ <move x="73" y="10"/>
+ <line x="73" y="80"/>
+ <move x="68" y="48"/>
+ <line x="78" y="48"/>
</path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15.0" y="15.0"/>
- <line x="15.0" y="75.0"/>
- <line x="11.5" y="75.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="30.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="65.0"/>
- <line x="21.0" y="60.5"/>
- <line x="27.0" y="59.5"/>
+ <move x="25" y="65"/>
+ <line x="21" y="60.5"/>
+ <line x="27" y="59.5"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="73.0" y="10.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="77.5" y="42.0"/>
- <line x="73.0" y="47.0"/>
- <line x="68.5" y="42.0"/>
+ <move x="77.5" y="42"/>
+ <line x="73" y="47"/>
+ <line x="68.5" y="42"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="68.0" y="48.0"/>
- <line x="78.0" y="48.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ <move x="15" y="15"/>
+ <line x="15" y="75"/>
+ <line x="11.5" y="75"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="70.0" name="PNP IGBT 4" strokewidth="inherit" w="66.5">
+ <shape aspect="variable" h="70" name="PNP IGBT 4" strokewidth="inherit" w="66.5">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.93"/>
- <constraint name="out1" perimeter="0" x="0.925" y="0.0"/>
- <constraint name="out2" perimeter="0" x="0.925" y="1.0"/>
+ <constraint name="in" perimeter="0" x="0" y="0.93"/>
+ <constraint name="out1" perimeter="0" x="0.925" y="0"/>
+ <constraint name="out2" perimeter="0" x="0.925" y="1"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
- <path>
- <move x="8.5" y="5.0"/>
- <line x="8.5" y="65.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="3.5" y="5.0"/>
- <line x="3.5" y="65.0"/>
- <line x="0.0" y="65.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="8.5" y="20.0"/>
- <line x="61.5" y="0.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="8.5" y="50.0"/>
- <line x="61.5" y="70.0"/>
+ <move x="8.5" y="20"/>
+ <line x="61.5" y="0"/>
+ <move x="8.5" y="50"/>
+ <line x="61.5" y="70"/>
+ <move x="61.5" y="0"/>
+ <line x="61.5" y="70"/>
+ <move x="56.5" y="38"/>
+ <line x="66.5" y="38"/>
</path>
<fillstroke/>
<path>
- <move x="13.5" y="55.0"/>
+ <move x="13.5" y="55"/>
<line x="9.5" y="50.5"/>
<line x="15.5" y="49.5"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="61.5" y="0.0"/>
- <line x="61.5" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="66.0" y="32.0"/>
- <line x="61.5" y="37.0"/>
- <line x="57.0" y="32.0"/>
+ <move x="66" y="32"/>
+ <line x="61.5" y="37"/>
+ <line x="57" y="32"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="56.5" y="38.0"/>
- <line x="66.5" y="38.0"/>
+ <move x="8.5" y="5"/>
+ <line x="8.5" y="65"/>
+ <move x="3.5" y="5"/>
+ <line x="3.5" y="65"/>
+ <line x="0" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="63.5" name="SCR 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="63.5" name="SCR 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.525"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.525"/>
+ <constraint name="in" perimeter="0" x="0" y="0.525"/>
+ <constraint name="out" perimeter="0" x="1" y="0.525"/>
</connections>
<background>
- <save/>
<path>
- <move x="30.0" y="3.5"/>
- <line x="70.0" y="33.5"/>
- <line x="30.0" y="63.5"/>
+ <move x="30" y="3.5"/>
+ <line x="70" y="33.5"/>
+ <line x="30" y="63.5"/>
<close/>
</path>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="33.5"/>
- <line x="30.0" y="33.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="3.5"/>
- <line x="70.0" y="63.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="28.5"/>
- <line x="80.0" y="13.5"/>
- <line x="80.0" y="0.0"/>
+ <move x="0" y="33.5"/>
+ <line x="30" y="33.5"/>
+ <move x="70" y="3.5"/>
+ <line x="70" y="63.5"/>
+ <move x="70" y="28.5"/>
+ <line x="80" y="13.5"/>
+ <line x="80" y="0"/>
+ <move x="70" y="33.5"/>
+ <line x="100" y="33.5"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="70.0" y="33.5"/>
- <line x="100.0" y="33.5"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="SCR 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="SCR 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="15.0"/>
- <line x="70.0" y="75.0"/>
+ <move x="0" y="45"/>
+ <line x="100" y="45"/>
+ <move x="70" y="15"/>
+ <line x="70" y="75"/>
+ <move x="70" y="40"/>
+ <line x="80" y="25"/>
+ <line x="80" y="11.5"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
- <move x="30.0" y="15.0"/>
- <line x="70.0" y="45.0"/>
- <line x="30.0" y="75.0"/>
+ <move x="30" y="15"/>
+ <line x="70" y="45"/>
+ <line x="30" y="75"/>
<close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="80.0" y="25.0"/>
- <line x="80.0" y="11.5"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="SIDAC" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="SIDAC" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="25.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="15.0"/>
- <line x="50.0" y="75.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="75.0"/>
- <line x="25.0" y="15.0"/>
- <line x="75.0" y="75.0"/>
- <line x="75.0" y="15.0"/>
+ <move x="0" y="45"/>
+ <line x="25" y="45"/>
+ <move x="50" y="15"/>
+ <line x="50" y="75"/>
+ <move x="25" y="75"/>
+ <line x="25" y="15"/>
+ <line x="75" y="75"/>
+ <line x="75" y="15"/>
+ <move x="75" y="45"/>
+ <line x="100" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Triac 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="90" name="Triac 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="5.0" y="0.0"/>
+ <ellipse h="90" w="90" x="5" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="40.0" y="75.0"/>
- <line x="30.0" y="85.0"/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="15.0"/>
- <line x="60.0" y="75.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="15.0"/>
- <line x="59.0" y="30.0"/>
- <line x="40.0" y="45.0"/>
+ <move x="0" y="45"/>
+ <line x="40" y="45"/>
+ <move x="40" y="15"/>
+ <line x="40" y="75"/>
+ <line x="30" y="85"/>
+ <move x="60" y="15"/>
+ <line x="60" y="75"/>
+ <move x="40" y="15"/>
+ <line x="59" y="30"/>
+ <line x="40" y="45"/>
<close/>
- </path>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="41.0" y="60.0"/>
- <line x="60.0" y="75.0"/>
+ <move x="60" y="45"/>
+ <line x="41" y="60"/>
+ <line x="60" y="75"/>
<close/>
+ <move x="60" y="45"/>
+ <line x="100" y="45"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="45.0"/>
- <line x="100.0" y="45.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="70.0" name="Triac 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="70" name="Triac 2" strokewidth="inherit" w="100">
<connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.43"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.43"/>
+ <constraint name="in" perimeter="0" x="0" y="0.43"/>
+ <constraint name="out" perimeter="0" x="1" y="0.43"/>
</connections>
<foreground>
- <save/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="40.0" y="0.0"/>
- <line x="40.0" y="60.0"/>
- <line x="30.0" y="70.0"/>
+ <move x="0" y="30"/>
+ <line x="40" y="30"/>
+ <move x="40" y="0"/>
+ <line x="40" y="60"/>
+ <line x="30" y="70"/>
+ <move x="60" y="0"/>
+ <line x="60" y="60"/>
+ <move x="60" y="30"/>
+ <line x="100" y="30"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <fillstroke/>
<path>
- <move x="40.0" y="0.0"/>
- <line x="59.0" y="15.0"/>
- <line x="40.0" y="30.0"/>
+ <move x="40" y="0"/>
+ <line x="59" y="15"/>
+ <line x="40" y="30"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="41.0" y="45.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="60" y="30"/>
+ <line x="41" y="45"/>
+ <line x="60" y="60"/>
<close/>
</path>
<fillstroke/>
- <path>
- <move x="60.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/radio.xml b/war/stencils/electrical/radio.xml
index 033ddf37..e79e415b 100644
--- a/war/stencils/electrical/radio.xml
+++ b/war/stencils/electrical/radio.xml
@@ -1,382 +1,268 @@
-<shapes name="mxGraph.electrical.radio">
- <shape aspect="variable" h="100" name="Aerial - Antenna 1" strokewidth="inherit" w="80">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0" y="0"/>
- <line x="40" y="40"/>
- <line x="80" y="0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="40" y="0"/>
- <line x="40" y="100"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="100.0" name="Aerial - Antenna 2" strokewidth="inherit" w="79.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="0.5"/>
- <line x="39.5" y="40.0"/>
- <line x="79.0" y="0.5"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="39.5" y="0.0"/>
- <line x="39.5" y="100.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Chassis" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <background>
- <save/>
- <save/>
- <rect h="20.0" w="100.0" x="0.0" y="20.0"/>
- </background>
- <foreground>
- <strokecolor color="none"/>
- <fill/>
- <restore/>
- <rect/>
- <stroke/>
- <strokewidth width="2"/>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="25.0"/>
- <line x="5.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="10.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="15.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="20.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="40.0"/>
- <line x="25.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="30.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="15.0" y="40.0"/>
- <line x="35.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="40.0"/>
- <line x="40.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="45.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="50.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="40.0"/>
- <line x="55.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="60.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45.0" y="40.0"/>
- <line x="65.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55.0" y="40.0"/>
- <line x="75.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="80.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="65.0" y="40.0"/>
- <line x="85.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="40.0"/>
- <line x="90.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="75.0" y="40.0"/>
- <line x="95.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="80.0" y="40.0"/>
- <line x="100.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="85.0" y="40.0"/>
- <line x="100.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="40.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="95.0" y="40.0"/>
- <line x="100.0" y="35.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="20.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Dipole" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.0"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.0"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="35.0" y="0.0"/>
- <line x="35.0" y="40.0"/>
- </path>
- <stroke/>
- <path>
- <move x="65.0" y="40.0"/>
- <line x="65.0" y="0.0"/>
- <line x="100.0" y="0.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Earth" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <foreground>
- <save/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="4.0" y="15.0"/>
- <line x="46.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="20.0"/>
- <line x="42.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="16.5" y="30.0"/>
- <line x="33.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.5" y="35.0"/>
- <line x="29.5" y="35.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="0.0"/>
- <line x="25.0" y="10.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="12.5" y="25.0"/>
- <line x="37.5" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="40.0"/>
- <line x="25.5" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Electret Microphone" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="50.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="40.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="35.0" y="40.0"/>
- <line x="35.0" y="70.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="56.0" name="Headphones" strokewidth="inherit" w="66.0">
- <connections>
- <constraint name="W" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.75"/>
- </connections>
- <foreground>
- <ellipse h="30.0" w="16.0" x="0.0" y="26.0"/>
- <fillstroke/>
- <ellipse h="30.0" w="16.0" x="50.0" y="26.0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="2.0" y="31.0"/>
- <arc large-arc-flag="0" rx="20.0" ry="20.0" sweep-flag="1" x="64.0" x-axis-rotation="0.0" y="31.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="69.78" name="Loop Antenna" strokewidth="inherit" w="64.08">
- <connections>
- <constraint name="in" perimeter="0" x="0.342" y="1.0"/>
- <constraint name="out" perimeter="0" x="0.658" y="1.0"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="22.04" y="69.78"/>
- <line x="22.04" y="58.28"/>
- <arc large-arc-flag="1" rx="30.0" ry="30.0" sweep-flag="1" x="42.04" x-axis-rotation="0.0" y="58.28"/>
- <line x="42.04" y="69.78"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Microphone 1" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="0.0" y="70.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Microphone 2" strokewidth="inherit" w="42.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="0.835" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="0.0"/>
- <arc large-arc-flag="0" rx="35.0" ry="35.0" sweep-flag="1" x="0.0" x-axis-rotation="0.0" y="70.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="33.5" y="25.0"/>
- <line x="42.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="33.5" y="45.0"/>
- <line x="42.0" y="45.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
+<shapes name="mxgraph.electrical.radio">
+<shape aspect="variable" h="100" name="Aerial - Antenna 1" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="40" y="40"/>
+ <line x="80" y="0"/>
+ <move x="40" y="0"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Aerial - Antenna 2" strokewidth="inherit" w="79">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0.5"/>
+ <line x="39.5" y="40"/>
+ <line x="79" y="0.5"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="39.5" y="0"/>
+ <line x="39.5" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Buzzer" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ </connections>
+ <foreground>
+ <rect h="50" w="50" x="15" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="15" y="25"/>
+ <move x="65" y="0"/>
+ <line x="80" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Chassis" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <rect h="20" w="100" x="0" y="20"/>
+ </background>
+ <foreground>
+ <fill/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="5" y="20"/>
+ <move x="0" y="30"/>
+ <line x="10" y="20"/>
+ <move x="0" y="35"/>
+ <line x="15" y="20"/>
+ <move x="0" y="40"/>
+ <line x="20" y="20"/>
+ <move x="5" y="40"/>
+ <line x="25" y="20"/>
+ <move x="10" y="40"/>
+ <line x="30" y="20"/>
+ <move x="15" y="40"/>
+ <line x="35" y="20"/>
+ <move x="20" y="40"/>
+ <line x="40" y="20"/>
+ <move x="25" y="40"/>
+ <line x="45" y="20"/>
+ <move x="30" y="40"/>
+ <line x="50" y="20"/>
+ <move x="35" y="40"/>
+ <line x="55" y="20"/>
+ <move x="40" y="40"/>
+ <line x="60" y="20"/>
+ <move x="45" y="40"/>
+ <line x="65" y="20"/>
+ <move x="50" y="40"/>
+ <line x="70" y="20"/>
+ <move x="55" y="40"/>
+ <line x="75" y="20"/>
+ <move x="60" y="40"/>
+ <line x="80" y="20"/>
+ <move x="65" y="40"/>
+ <line x="85" y="20"/>
+ <move x="70" y="40"/>
+ <line x="90" y="20"/>
+ <move x="75" y="40"/>
+ <line x="95" y="20"/>
+ <move x="80" y="40"/>
+ <line x="100" y="20"/>
+ <move x="85" y="40"/>
+ <line x="100" y="25"/>
+ <move x="90" y="40"/>
+ <line x="100" y="30"/>
+ <move x="95" y="40"/>
+ <line x="100" y="35"/>
+ </path>
+ <stroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="20"/>
+ <move x="0" y="20"/>
+ <line x="100" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Dipole" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0"/>
+ <constraint name="out" perimeter="0" x="1" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="35" y="0"/>
+ <line x="35" y="40"/>
+ <move x="65" y="40"/>
+ <line x="65" y="0"/>
+ <line x="100" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Earth" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="50" y="10"/>
+ <move x="4" y="15"/>
+ <line x="46" y="15"/>
+ <move x="8" y="20"/>
+ <line x="42" y="20"/>
+ <move x="16.5" y="30"/>
+ <line x="33.5" y="30"/>
+ <move x="20.5" y="35"/>
+ <line x="29.5" y="35"/>
+ <move x="12.5" y="25"/>
+ <line x="37.5" y="25"/>
+ <move x="24.5" y="40"/>
+ <line x="25.5" y="40"/>
+ </path>
+ <stroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="25" y="0"/>
+ <line x="25" y="10"/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Electret Microphone" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="70" w="70" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="70"/>
+ <move x="35" y="0"/>
+ <line x="35" y="30"/>
+ <move x="20" y="30"/>
+ <line x="50" y="30"/>
+ <move x="20" y="40"/>
+ <line x="50" y="40"/>
+ <move x="35" y="40"/>
+ <line x="35" y="70"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="56" name="Headphones" strokewidth="inherit" w="66">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.75"/>
+ <constraint name="E" perimeter="0" x="1" y="0.75"/>
+ </connections>
+ <foreground>
+ <ellipse h="30" w="16" x="0" y="26"/>
+ <fillstroke/>
+ <ellipse h="30" w="16" x="50" y="26"/>
+ <fillstroke/>
+ <path>
+ <move x="2" y="31"/>
+ <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="64" x-axis-rotation="0" y="31"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="69.78" name="Loop Antenna" strokewidth="inherit" w="64.08">
+ <connections>
+ <constraint name="in" perimeter="0" x="0.342" y="1"/>
+ <constraint name="out" perimeter="0" x="0.658" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="22.04" y="69.78"/>
+ <line x="22.04" y="58.28"/>
+ <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="1" x="42.04" x-axis-rotation="0" y="58.28"/>
+ <line x="42.04" y="69.78"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Microphone 1" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <ellipse h="70" w="70" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="70"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Microphone 2" strokewidth="inherit" w="42">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="0.835" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <arc large-arc-flag="0" rx="35" ry="35" sweep-flag="1" x="0" x-axis-rotation="0" y="70"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="33.5" y="25"/>
+ <line x="42" y="25"/>
+ <move x="33.5" y="45"/>
+ <line x="42" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/resistors.xml b/war/stencils/electrical/resistors.xml
index ebd3bd9a..4090383a 100644
--- a/war/stencils/electrical/resistors.xml
+++ b/war/stencils/electrical/resistors.xml
@@ -1,755 +1,617 @@
-<shapes name="mxGraph.electrical.resistors">
- <shape aspect="variable" h="60" name="Magnetoresistor" strokewidth="inherit" w="100">
- <connections>
- <constraint name="in" perimeter="0" x="0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1" y="0.5"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0" y="30"/>
- <line x="18" y="30"/>
- <line x="22" y="20"/>
- <line x="30" y="40"/>
- <line x="38" y="20"/>
- <line x="46" y="40"/>
- <line x="54" y="20"/>
- <line x="62" y="40"/>
- <line x="70" y="20"/>
- <line x="78" y="40"/>
- <line x="82" y="30"/>
- <line x="100" y="30"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30" y="60"/>
- <line x="70" y="0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="45" y="45"/>
- <line x="55" y="60"/>
- </path>
- <fillstroke/>
- <path>
- <move x="55" y="45"/>
- <line x="45" y="60"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Memristor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="18.0" y="0.0"/>
- <line x="26.0" y="0.0"/>
- <line x="26.0" y="20.0"/>
- <line x="34.0" y="20.0"/>
- <line x="34.0" y="0.0"/>
- <line x="42.0" y="0.0"/>
- <line x="42.0" y="20.0"/>
- <line x="50.0" y="20.0"/>
- <line x="50.0" y="0.0"/>
- <line x="58.0" y="0.0"/>
- <line x="58.0" y="20.0"/>
- <line x="66.0" y="20.0"/>
- <line x="66.0" y="0.0"/>
- <line x="74.0" y="0.0"/>
- <line x="74.0" y="20.0"/>
- <line x="82.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="24.0" name="Memristor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="24.0" w="68.0" x="16.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="12.0"/>
- <line x="18.0" y="12.0"/>
- <line x="18.0" y="2.0"/>
- <line x="26.0" y="2.0"/>
- <line x="26.0" y="22.0"/>
- <line x="34.0" y="22.0"/>
- <line x="34.0" y="2.0"/>
- <line x="42.0" y="2.0"/>
- <line x="42.0" y="22.0"/>
- <line x="50.0" y="22.0"/>
- <line x="50.0" y="2.0"/>
- <line x="58.0" y="2.0"/>
- <line x="58.0" y="22.0"/>
- <line x="66.0" y="22.0"/>
- <line x="66.0" y="2.0"/>
- <line x="74.0" y="2.0"/>
- <line x="74.0" y="22.0"/>
- <line x="82.0" y="22.0"/>
- <line x="82.0" y="12.0"/>
- <line x="100.0" y="12.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Nonlinear Resistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="18.0" y="60.0"/>
- <line x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Potentiometer 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <linejoin join="round"/>
- <path>
- <move x="45.0" y="25.0"/>
- <line x="50.0" y="20.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Potentiometer 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="25.0"/>
- <line x="50.0" y="20.0"/>
- <line x="55.0" y="25.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Resistor, Adjustable Contact" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.46" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <path>
- <move x="41.0" y="33.0"/>
- <line x="46.0" y="20.0"/>
- <line x="51.0" y="33.0"/>
- <close/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="46.0" y="33.0"/>
- <line x="46.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="45.0" name="Resistor, Shunt" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.78"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.78"/>
- <constraint name="control1" perimeter="0" x="0.3" y="0.0"/>
- <constraint name="control2" perimeter="0" x="0.7" y="0.0"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="25.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="18.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="35.0"/>
- <line x="100.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="0.0"/>
- <line x="70.0" y="25.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 3" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="18.0" y="0.0"/>
- <line x="38.0" y="20.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor 4" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <linejoin join="round"/>
- <path>
- <move x="18.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="18.0" y="0.0"/>
- <close/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="20.0" name="Resistor With Instrument or Relay Shunt" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="10.0" w="10.0" x="35.0" y="5.0"/>
- <stroke/>
- <ellipse h="10.0" w="10.0" x="55.0" y="5.0"/>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Symmetrical Photoconductive Transducer" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="W" perimeter="0" x="0.0" y="0.75"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.75"/>
- </connections>
- <foreground>
- <save/>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="80.0" y="12.0"/>
- <line x="87.0" y="5.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="80.0" y="9.0"/>
- <line x="80.0" y="12.0"/>
- <line x="83.0" y="12.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="75.0" y="7.0"/>
- <line x="82.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="75.0" y="4.0"/>
- <line x="75.0" y="7.0"/>
- <line x="78.0" y="7.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Symmetrical Varistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <fillcolor color="none"/>
- <path>
- <move x="18.0" y="60.0"/>
- <line x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="45.0"/>
- <line x="50.0" y="60.0"/>
- <line x="55.0" y="45.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Tapped Resistor" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control1" perimeter="0" x="0.46" y="1.0"/>
- <constraint name="control2" perimeter="0" x="0.62" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="46.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Trimmer Pot 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="20.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <rect h="2.0" w="16.0" x="42.0" y="21.0"/>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Trimmer Pot 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.25"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.25"/>
- <constraint name="control" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="50.0" y="21.0"/>
- <line x="50.0" y="40.0"/>
- </path>
- <fillstroke/>
- <rect h="2.0" w="16.0" x="42.0" y="21.0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="18.0" y="10.0"/>
- <line x="22.0" y="0.0"/>
- <line x="30.0" y="20.0"/>
- <line x="38.0" y="0.0"/>
- <line x="46.0" y="20.0"/>
- <line x="54.0" y="0.0"/>
- <line x="62.0" y="20.0"/>
- <line x="70.0" y="0.0"/>
- <line x="78.0" y="20.0"/>
- <line x="82.0" y="10.0"/>
- <line x="100.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="65.5" name="Trimmer Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="25.5"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.5"/>
- <line x="18.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.2" y="0.0"/>
- <line x="78.2" y="10.5"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="65.5" name="Trimmer Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.54"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.54"/>
- </connections>
- <foreground>
- <path>
- <move x="30.0" y="65.5"/>
- <line x="70.0" y="5.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="62.2" y="0.0"/>
- <line x="78.2" y="10.5"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="35.5"/>
- <line x="18.0" y="35.5"/>
- <line x="22.0" y="25.5"/>
- <line x="30.0" y="45.5"/>
- <line x="38.0" y="25.5"/>
- <line x="46.0" y="45.5"/>
- <line x="54.0" y="25.5"/>
- <line x="62.0" y="45.5"/>
- <line x="70.0" y="25.5"/>
- <line x="78.0" y="45.5"/>
- <line x="82.0" y="35.5"/>
- <line x="100.0" y="35.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Variable Resistor 1" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <rect h="20.0" w="64.0" x="18.0" y="20.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
- <line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Variable Resistor 2" strokewidth="inherit" w="100.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <save/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="30.0"/>
- <line x="18.0" y="30.0"/>
- <line x="22.0" y="20.0"/>
- <line x="30.0" y="40.0"/>
- <line x="38.0" y="20.0"/>
- <line x="46.0" y="40.0"/>
- <line x="54.0" y="20.0"/>
- <line x="62.0" y="40.0"/>
- <line x="70.0" y="20.0"/>
- <line x="78.0" y="40.0"/>
- <line x="82.0" y="30.0"/>
- <line x="100.0" y="30.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="60.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="57.0" y="10.0"/>
- <line x="70.0" y="0.0"/>
- <line x="66.5" y="15.5"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
+<shapes name="mxgraph.electrical.resistors">
+<shape aspect="variable" h="60" name="Attenuator" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="50" y="0"/>
+ <line x="50" y="60"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Magnetoresistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="45" y="45"/>
+ <line x="55" y="60"/>
+ <move x="55" y="45"/>
+ <line x="45" y="60"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Memristor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="18" y="0"/>
+ <line x="26" y="0"/>
+ <line x="26" y="20"/>
+ <line x="34" y="20"/>
+ <line x="34" y="0"/>
+ <line x="42" y="0"/>
+ <line x="42" y="20"/>
+ <line x="50" y="20"/>
+ <line x="50" y="0"/>
+ <line x="58" y="0"/>
+ <line x="58" y="20"/>
+ <line x="66" y="20"/>
+ <line x="66" y="0"/>
+ <line x="74" y="0"/>
+ <line x="74" y="20"/>
+ <line x="82" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="24" name="Memristor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="24" w="68" x="16" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="12"/>
+ <line x="18" y="12"/>
+ <line x="18" y="2"/>
+ <line x="26" y="2"/>
+ <line x="26" y="22"/>
+ <line x="34" y="22"/>
+ <line x="34" y="2"/>
+ <line x="42" y="2"/>
+ <line x="42" y="22"/>
+ <line x="50" y="22"/>
+ <line x="50" y="2"/>
+ <line x="58" y="2"/>
+ <line x="58" y="22"/>
+ <line x="66" y="22"/>
+ <line x="66" y="2"/>
+ <line x="74" y="2"/>
+ <line x="74" y="22"/>
+ <line x="82" y="22"/>
+ <line x="82" y="12"/>
+ <line x="100" y="12"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Nonlinear Resistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="18" y="60"/>
+ <line x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Potentiometer 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="50" y="20"/>
+ <line x="50" y="40"/>
+ <move x="45" y="25"/>
+ <line x="50" y="20"/>
+ <line x="55" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Potentiometer 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="20"/>
+ <line x="50" y="40"/>
+ <move x="45" y="25"/>
+ <line x="50" y="20"/>
+ <line x="55" y="25"/>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Resistor, Adjustable Contact" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.46" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="41" y="33"/>
+ <line x="46" y="20"/>
+ <line x="51" y="33"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="46" y="33"/>
+ <line x="46" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="45" name="Resistor, Shunt" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.78"/>
+ <constraint name="out" perimeter="0" x="1" y="0.78"/>
+ <constraint name="control1" perimeter="0" x="0.3" y="0"/>
+ <constraint name="control2" perimeter="0" x="0.7" y="0"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="25"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="35"/>
+ <line x="18" y="35"/>
+ <move x="82" y="35"/>
+ <line x="100" y="35"/>
+ <move x="30" y="0"/>
+ <line x="30" y="25"/>
+ <move x="70" y="0"/>
+ <line x="70" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 3" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="18" y="0"/>
+ <line x="38" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor 4" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="18" y="20"/>
+ <line x="38" y="0"/>
+ <line x="18" y="0"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Resistor With Instrument or Relay Shunt" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ <ellipse h="10" w="10" x="35" y="5"/>
+ <stroke/>
+ <ellipse h="10" w="10" x="55" y="5"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Symmetrical Photoconductive Transducer" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.75"/>
+ <constraint name="E" perimeter="0" x="1" y="0.75"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="80" y="12"/>
+ <line x="87" y="5"/>
+ <move x="80" y="9"/>
+ <line x="80" y="12"/>
+ <line x="83" y="12"/>
+ <move x="75" y="7"/>
+ <line x="82" y="0"/>
+ <move x="75" y="4"/>
+ <line x="75" y="7"/>
+ <line x="78" y="7"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Symmetrical Varistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="18" y="60"/>
+ <line x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="45" y="45"/>
+ <line x="50" y="60"/>
+ <line x="55" y="45"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Tapped Resistor" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control1" perimeter="0" x="0.46" y="1"/>
+ <constraint name="control2" perimeter="0" x="0.62" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="46" y="20"/>
+ <line x="46" y="40"/>
+ <move x="62" y="20"/>
+ <line x="62" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Trimmer Pot 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <move x="82" y="10"/>
+ <line x="100" y="10"/>
+ <move x="50" y="20"/>
+ <line x="50" y="40"/>
+ </path>
+ <stroke/>
+ <rect h="2" w="16" x="42" y="21"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Trimmer Pot 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.25"/>
+ <constraint name="out" perimeter="0" x="1" y="0.25"/>
+ <constraint name="control" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="21"/>
+ <line x="50" y="40"/>
+ <move x="0" y="10"/>
+ <line x="18" y="10"/>
+ <line x="22" y="0"/>
+ <line x="30" y="20"/>
+ <line x="38" y="0"/>
+ <line x="46" y="20"/>
+ <line x="54" y="0"/>
+ <line x="62" y="20"/>
+ <line x="70" y="0"/>
+ <line x="78" y="20"/>
+ <line x="82" y="10"/>
+ <line x="100" y="10"/>
+ </path>
+ <stroke/>
+ <rect h="2" w="16" x="42" y="21"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65.5" name="Trimmer Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="25.5"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="35.5"/>
+ <line x="18" y="35.5"/>
+ <move x="82" y="35.5"/>
+ <line x="100" y="35.5"/>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
+ <line x="78.2" y="10.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="65.5" name="Trimmer Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.54"/>
+ <constraint name="out" perimeter="0" x="1" y="0.54"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="30" y="65.5"/>
+ <line x="70" y="5.5"/>
+ <move x="62.2" y="0"/>
+ <line x="78.2" y="10.5"/>
+ <move x="0" y="35.5"/>
+ <line x="18" y="35.5"/>
+ <line x="22" y="25.5"/>
+ <line x="30" y="45.5"/>
+ <line x="38" y="25.5"/>
+ <line x="46" y="45.5"/>
+ <line x="54" y="25.5"/>
+ <line x="62" y="45.5"/>
+ <line x="70" y="25.5"/>
+ <line x="78" y="45.5"/>
+ <line x="82" y="35.5"/>
+ <line x="100" y="35.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Variable Resistor 1" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <rect h="20" w="64" x="18" y="20"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <move x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
+ <line x="66.5" y="15.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Variable Resistor 2" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="18" y="30"/>
+ <line x="22" y="20"/>
+ <line x="30" y="40"/>
+ <line x="38" y="20"/>
+ <line x="46" y="40"/>
+ <line x="54" y="20"/>
+ <line x="62" y="40"/>
+ <line x="70" y="20"/>
+ <line x="78" y="40"/>
+ <line x="82" y="30"/>
+ <line x="100" y="30"/>
+ <move x="30" y="60"/>
+ <line x="70" y="0"/>
+ <move x="57" y="10"/>
+ <line x="70" y="0"/>
+ <line x="66.5" y="15.5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/rot_mech.xml b/war/stencils/electrical/rot_mech.xml
new file mode 100644
index 00000000..ef768904
--- /dev/null
+++ b/war/stencils/electrical/rot_mech.xml
@@ -0,0 +1,367 @@
+<shapes name="mxgraph.electrical.rot_mech">
+<shape aspect="variable" h="100" name="Armature" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="100"/>
+ <line x="20" y="80"/>
+ <move x="80" y="20"/>
+ <line x="100" y="0"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="12" name="Automatic Return" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="6"/>
+ <line x="100" y="6"/>
+ </path>
+ </background>
+ <foreground>
+ <fillcolor color="none"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <path>
+ <move x="58" y="0"/>
+ <line x="58" y="12"/>
+ <line x="42" y="6"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Blocking Device" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="15"/>
+ <line x="100" y="15"/>
+ </path>
+ </background>
+ <foreground>
+ <fillcolor color="none"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <rect h="15" w="36" x="33" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="20" name="Clutch" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="20"/>
+ <line x="35" y="20"/>
+ <line x="35" y="5"/>
+ <move x="100" y="20"/>
+ <line x="65" y="20"/>
+ <line x="65" y="5"/>
+ </path>
+ </background>
+ <foreground>
+ <fillcolor color="none"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <rect/>
+ <stroke/>
+ <path>
+ <move x="25" y="10"/>
+ <line x="25" y="0"/>
+ <line x="75" y="0"/>
+ <line x="75" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Clutch 2" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="20" y="0"/>
+ <line x="30" y="10"/>
+ <line x="30" y="50"/>
+ <line x="20" y="60"/>
+ <move x="50" y="0"/>
+ <line x="60" y="10"/>
+ <line x="60" y="50"/>
+ <line x="50" y="60"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="30" y="30"/>
+ <move x="60" y="30"/>
+ <line x="90" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Delayed Action" strokewidth="inherit" w="71.7">
+ <connections>
+ <constraint name="W" perimeter="0" x="0.04" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="11.7" y="0"/>
+ <arc large-arc-flag="0" rx="40" ry="40" sweep-flag="0" x="11.7" x-axis-rotation="0" y="50"/>
+ <move x="3.7" y="20"/>
+ <line x="71.7" y="20"/>
+ <move x="3.7" y="30"/>
+ <line x="71.7" y="30"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="8" name="Detent" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <line x="46.2" y="0"/>
+ <move x="100" y="0"/>
+ <line x="53.8" y="0"/>
+ <move x="46.2" y="0"/>
+ <line x="50" y="8"/>
+ <line x="53.8" y="0"/>
+ </path>
+ </background>
+ <foreground>
+ <linecap cap="round"/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="15" name="Field" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="30" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="60" x-axis-rotation="0" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="90" x-axis-rotation="0" y="15"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="64" name="Gearing" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.81"/>
+ <constraint name="E" perimeter="0" x="1" y="0.31"/>
+ </connections>
+ <background>
+ <ellipse h="40" w="40" x="30" y="0"/>
+ </background>
+ <foreground>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <fillstroke/>
+ <ellipse h="24" w="24" x="38" y="40"/>
+ <fillstroke/>
+ <fillcolor color="none"/>
+ <path>
+ <move x="0" y="52"/>
+ <line x="38" y="52"/>
+ <move x="70" y="20"/>
+ <line x="100" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="22" name="Latching Device" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="22"/>
+ <line x="100" y="22"/>
+ </path>
+ </background>
+ <foreground>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="17"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="45" y="22"/>
+ <line x="25" y="22"/>
+ <line x="25" y="12"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="50" name="Manual Control" strokewidth="inherit" w="68">
+ <connections>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="0"/>
+ <line x="0" y="50"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <path>
+ <move x="0" y="25"/>
+ <line x="68" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Mechanical Interlock" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.73"/>
+ <constraint name="E" perimeter="0" x="1" y="0.73"/>
+ </connections>
+ <background>
+ <save/>
+ <path>
+ <move x="0" y="22"/>
+ <line x="100" y="22"/>
+ </path>
+ </background>
+ <foreground>
+ <dashpattern pattern="5 2"/>
+ <dashed dashed="1"/>
+ <stroke/>
+ <restore/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="50" y="17"/>
+ </path>
+ <stroke/>
+ <path>
+ <move x="42" y="13"/>
+ <line x="58" y="13"/>
+ <line x="50" y="30"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="53.61" name="Rotation" strokewidth="inherit" w="68.43">
+ <connections/>
+ <background>
+ <path>
+ <move x="8.31" y="4.56"/>
+ <arc large-arc-flag="1" rx="30" ry="30" sweep-flag="0" x="58.31" x-axis-rotation="0" y="4.56"/>
+ </path>
+ </background>
+ <foreground>
+ <stroke/>
+ <path>
+ <move x="56.2" y="0"/>
+ <line x="56.14" y="16.06"/>
+ <line x="68.43" y="11.43"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Synchro" strokewidth="inherit" w="80">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <ellipse h="80" w="80" x="0" y="10"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="70" w="70" x="5" y="15"/>
+ <stroke/>
+ <path>
+ <move x="40" y="0"/>
+ <line x="40" y="10"/>
+ <move x="40" y="85"/>
+ <line x="40" y="100"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="100" name="Winding Connection" strokewidth="inherit" w="100">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="100" w="100" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <linejoin join="round"/>
+ <path>
+ <move x="50" y="0"/>
+ <line x="92" y="77"/>
+ <line x="8" y="77"/>
+ <close/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/signal_sources.xml b/war/stencils/electrical/signal_sources.xml
index 35919176..acd0dda3 100644
--- a/war/stencils/electrical/signal_sources.xml
+++ b/war/stencils/electrical/signal_sources.xml
@@ -1,436 +1,413 @@
-<shapes name="mxGraph.electrical.signal_sources">
- <shape aspect="variable" h="60" name="AC Source" strokewidth="inherit" w="60">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1"/>
- <constraint name="W" perimeter="0" x="0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="60" w="60" x="0" y="0"/>
- </background>
- <foreground>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="15" y="30"/>
- <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="30" x-axis-rotation="0" y="30"/>
- <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="45" x-axis-rotation="0" y="30"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="10.0" name="Current Flow" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="in" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="out" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="70.0" y="5.0"/>
- <move x="60.0" y="0.0"/>
- <line x="70.0" y="5.0"/>
- <line x="60.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Current Source" strokewidth="inherit" w="40.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <ellipse h="40.0" w="40.0" x="0.0" y="20.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <ellipse h="40.0" w="40.0" x="0.0" y="0.0"/>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="40.0" w="40.0" x="0.0" y="20.0"/>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="75.0" name="DC Source 1" strokewidth="inherit" w="70.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.58" y="0.135"/>
- <constraint name="S" perimeter="0" x="0.58" y="0.935"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="10.0" y="10.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="75.0"/>
- <line x="10.0" y="75.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="5.0" y="0.0"/>
- <line x="5.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="5.0"/>
- <line x="10.0" y="5.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="DC Source 2" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="10.0" y="30.0"/>
- <line x="50.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="25.0"/>
- <line x="50.0" y="30.0"/>
- <line x="40.0" y="35.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="DC Source 3" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="27.0" y="55.0"/>
- <line x="33.0" y="55.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="2.0"/>
- <line x="30.0" y="8.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="27.0" y="5.0"/>
- <line x="33.0" y="5.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Dependent Source 1" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="60.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <line x="0.0" y="30.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Dependent Source 2" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="60.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <line x="0.0" y="30.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="30.0" y="50.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="40.0"/>
- <line x="30.0" y="50.0"/>
- <line x="35.0" y="40.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Dependent Source 3" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- </connections>
- <background>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="60.0" y="30.0"/>
- <line x="30.0" y="60.0"/>
- <line x="0.0" y="30.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="27.0" y="10.0"/>
- <line x="33.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="7.0"/>
- <line x="30.0" y="13.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="27.0" y="50.0"/>
- <line x="33.0" y="50.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="90.0" name="Equipotential" strokewidth="inherit" w="90.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="15.0"/>
- <line x="45.0" y="90.0"/>
- <line x="90.0" y="15.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="15.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <ellipse h="50.0" w="50.0" x="20.0" y="15.5"/>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Noise Source" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
- <constraint name="E" perimeter="0" x="1.0" y="0.5"/>
- <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
- <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
- <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
- <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
- </connections>
- <background>
- <ellipse h="60.0" w="60.0" x="0.0" y="0.0"/>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="10.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="11.0" y="25.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="19.0" y="47.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="41.0" y="47.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="49.0" y="25.0"/>
- <line x="30.0" y="30.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Protective Earth" strokewidth="inherit" w="50.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="10.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="4.0" y="15.0"/>
- <line x="46.0" y="15.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="8.0" y="20.0"/>
- <line x="42.0" y="20.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="16.5" y="30.0"/>
- <line x="33.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.5" y="35.0"/>
- <line x="29.5" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="25.0" y="0.0"/>
- <line x="25.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="12.5" y="25.0"/>
- <line x="37.5" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="40.0"/>
- <line x="25.5" y="40.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="60.0" name="Signal Ground" strokewidth="inherit" w="90.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <background>
- <path>
- <move x="0.0" y="20.0"/>
- <line x="45.0" y="60.0"/>
- <line x="90.0" y="20.0"/>
- <close/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
- <move x="45.0" y="0.0"/>
- <line x="45.0" y="20.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Vdd" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="60.0" y="40.0"/>
- <move x="30.0" y="40.0"/>
- <line x="30.0" y="0.0"/>
- </path>
- <fillstroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="70.0" name="Voltage" strokewidth="inherit" w="10.0">
- <connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="5.0" y="0.0"/>
- <line x="5.0" y="70.0"/>
- <move x="0.0" y="60.0"/>
- <line x="5.0" y="70.0"/>
- <line x="10.0" y="60.0"/>
- <move x="0.0" y="10.0"/>
- <line x="5.0" y="0.0"/>
- <line x="10.0" y="10.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Vss" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <save/>
- <fontcolor color="none"/>
- <fontsize size="24.0"/>
- <text align="center" str="V" valign="bottom" x="25.0" y="-7.0"/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="60.0" y="0.0"/>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <stroke/>
- <fontcolor color="none"/>
- <fontsize size="15.0"/>
- <text align="center" str="ss" valign="bottom" x="42.0" y="-3.0"/>
- </foreground>
- </shape>
- <shape aspect="variable" h="40.0" name="Vss2" strokewidth="inherit" w="60.0">
- <connections>
- <constraint name="S" perimeter="0" x="0.5" y="1.0"/>
- </connections>
- <foreground>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="60.0" y="0.0"/>
- <move x="30.0" y="0.0"/>
- <line x="30.0" y="40.0"/>
- </path>
- <stroke/>
- </foreground>
- </shape></shapes> \ No newline at end of file
+<shapes name="mxgraph.electrical.signal_sources">
+<shape aspect="variable" h="60" name="AC Source" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="15" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="1" x="30" x-axis-rotation="0" y="30"/>
+ <arc large-arc-flag="0" rx="8" ry="8" sweep-flag="0" x="45" x-axis-rotation="0" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="10" name="Current Flow" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="in" perimeter="0" x="0" y="0.5"/>
+ <constraint name="out" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="5"/>
+ <line x="70" y="5"/>
+ <move x="60" y="0"/>
+ <line x="70" y="5"/>
+ <line x="60" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Current Source" strokewidth="inherit" w="40">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <ellipse h="40" w="40" x="0" y="20"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="40" w="40" x="0" y="0"/>
+ <fillstroke/>
+ <fillcolor color="none"/>
+ <ellipse h="40" w="40" x="0" y="20"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="DC Source 1" strokewidth="inherit" w="70">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.58" y="0.135"/>
+ <constraint name="S" perimeter="0" x="0.58" y="0.935"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="10" y="10"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="75"/>
+ <line x="10" y="75"/>
+ <move x="5" y="0"/>
+ <line x="5" y="10"/>
+ <move x="0" y="5"/>
+ <line x="10" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="DC Source 2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="10" y="30"/>
+ <line x="50" y="30"/>
+ <move x="40" y="25"/>
+ <line x="50" y="30"/>
+ <line x="40" y="35"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="DC Source 3" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="27" y="55"/>
+ <line x="33" y="55"/>
+ <move x="30" y="2"/>
+ <line x="30" y="8"/>
+ <move x="27" y="5"/>
+ <line x="33" y="5"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 1" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ <line x="0" y="30"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ <line x="0" y="30"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="30" y="10"/>
+ <line x="30" y="50"/>
+ <move x="25" y="40"/>
+ <line x="30" y="50"/>
+ <line x="35" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Dependent Source 3" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <background>
+ <path>
+ <move x="30" y="0"/>
+ <line x="60" y="30"/>
+ <line x="30" y="60"/>
+ <line x="0" y="30"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="27" y="10"/>
+ <line x="33" y="10"/>
+ <move x="30" y="7"/>
+ <line x="30" y="13"/>
+ <move x="27" y="50"/>
+ <line x="33" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="90" name="Equipotential" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="15"/>
+ <line x="45" y="90"/>
+ <line x="90" y="15"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="45" y="0"/>
+ <line x="45" y="15"/>
+ </path>
+ <stroke/>
+ <ellipse h="50" w="50" x="20" y="15.5"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Explosive Squib" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <ellipse h="8" w="8" x="0" y="26"/>
+ <stroke/>
+ <ellipse h="8" w="8" x="52" y="26"/>
+ <stroke/>
+ <strokecolor color="#000000"/>
+ <path>
+ <move x="50" y="38"/>
+ <line x="44" y="44"/>
+ <line x="16" y="16"/>
+ <line x="10" y="22"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="12" y="15"/>
+ <line x="8" y="24"/>
+ <line x="17" y="20"/>
+ <close/>
+ </path>
+ <fill/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Ideal Source" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="0" y="30"/>
+ <line x="60" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Noise Source" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ <constraint name="NW" perimeter="0" x="0.145" y="0.145"/>
+ <constraint name="SW" perimeter="0" x="0.145" y="0.855"/>
+ <constraint name="NE" perimeter="0" x="0.855" y="0.145"/>
+ <constraint name="SE" perimeter="0" x="0.855" y="0.855"/>
+ </connections>
+ <background>
+ <ellipse h="60" w="60" x="0" y="0"/>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="30" y="10"/>
+ <line x="30" y="30"/>
+ <move x="11" y="25"/>
+ <line x="30" y="30"/>
+ <move x="19" y="47"/>
+ <line x="30" y="30"/>
+ <move x="41" y="47"/>
+ <line x="30" y="30"/>
+ <move x="49" y="25"/>
+ <line x="30" y="30"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Protective Earth" strokewidth="inherit" w="50">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="10"/>
+ <line x="50" y="10"/>
+ <move x="4" y="15"/>
+ <line x="46" y="15"/>
+ <move x="8" y="20"/>
+ <line x="42" y="20"/>
+ <move x="16.5" y="30"/>
+ <line x="33.5" y="30"/>
+ <move x="20.5" y="35"/>
+ <line x="29.5" y="35"/>
+ <move x="25" y="0"/>
+ <line x="25" y="10"/>
+ <move x="12.5" y="25"/>
+ <line x="37.5" y="25"/>
+ <move x="24.5" y="40"/>
+ <line x="25.5" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Signal Ground" strokewidth="inherit" w="90">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <background>
+ <path>
+ <move x="0" y="20"/>
+ <line x="45" y="60"/>
+ <line x="90" y="20"/>
+ <close/>
+ </path>
+ </background>
+ <foreground>
+ <fillstroke/>
+ <path>
+ <move x="45" y="0"/>
+ <line x="45" y="20"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Vdd" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <line x="60" y="40"/>
+ <move x="30" y="40"/>
+ <line x="30" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="70" name="Voltage" strokewidth="inherit" w="10">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="5" y="0"/>
+ <line x="5" y="70"/>
+ <move x="0" y="60"/>
+ <line x="5" y="70"/>
+ <line x="10" y="60"/>
+ <move x="0" y="10"/>
+ <line x="5" y="0"/>
+ <line x="10" y="10"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="40" name="Vss2" strokewidth="inherit" w="60">
+ <connections>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="60" y="0"/>
+ <move x="30" y="0"/>
+ <line x="30" y="40"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/thermionic_devices.xml b/war/stencils/electrical/thermionic_devices.xml
index f2078bd7..a87d31f7 100644
--- a/war/stencils/electrical/thermionic_devices.xml
+++ b/war/stencils/electrical/thermionic_devices.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.thermionic_devices">
+<shapes name="mxgraph.electrical.thermionic_devices">
<shape aspect="variable" h="77" name="Diode" strokewidth="inherit" w="70">
<connections>
<constraint name="N" perimeter="0" x="0.5" y="0"/>
@@ -6,7 +6,6 @@
<constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
<ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
@@ -14,466 +13,281 @@
<path>
<move x="35" y="0"/>
<line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
- <fillstroke/>
+ <stroke/>
<strokewidth width="2"/>
<path>
<move x="25" y="10"/>
<line x="45" y="10"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
<move x="22.5" y="60"/>
<line x="27.5" y="55"/>
<line x="42.5" y="55"/>
<line x="47.5" y="60"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25" y="77"/>
- <line x="25" y="68"/>
- <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
- <line x="45" y="77"/>
- </path>
- <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Double Diode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Double Diode" strokewidth="inherit" w="70">
<connections>
- <constraint name="NW" perimeter="0" x="0.285" y="0.0"/>
- <constraint name="NE" perimeter="0" x="0.715" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="NW" perimeter="0" x="0.285" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.715" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <roundrect arcsize="21.43" h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <roundrect arcsize="21.43" h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="10.0" y="10.0"/>
- <line x="30.0" y="10.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="10"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
<strokewidth width="2"/>
<path>
- <move x="40.0" y="10.0"/>
- <line x="60.0" y="10.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="10.0" y="60.0"/>
- <line x="15.0" y="55.0"/>
- <line x="55.0" y="55.0"/>
- <line x="60.0" y="60.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="10" y="10"/>
+ <line x="30" y="10"/>
+ <move x="40" y="10"/>
+ <line x="60" y="10"/>
+ <move x="10" y="60"/>
+ <line x="15" y="55"/>
+ <line x="55" y="55"/>
+ <line x="60" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Double Triode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Double Triode" strokewidth="inherit" w="70">
<connections>
- <constraint name="NW" perimeter="0" x="0.285" y="0.0"/>
- <constraint name="NE" perimeter="0" x="0.715" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="NW" perimeter="0" x="0.285" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.715" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <roundrect arcsize="21.43" h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <roundrect arcsize="21.43" h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="20.0" y="0.0"/>
- <line x="20.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="10.0" y="10.0"/>
- <line x="30.0" y="10.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="40.0" y="10.0"/>
- <line x="60.0" y="10.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="10.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="30.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="40.0" y="35.0"/>
- <line x="50.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="20" y="0"/>
+ <line x="20" y="10"/>
+ <move x="50" y="0"/>
+ <line x="50" y="10"/>
+ <move x="0" y="35"/>
+ <line x="10" y="35"/>
+ <move x="20" y="35"/>
+ <line x="30" y="35"/>
+ <move x="40" y="35"/>
+ <line x="50" y="35"/>
+ <move x="60" y="35"/>
+ <line x="70" y="35"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
<strokewidth width="2"/>
<path>
- <move x="10.0" y="60.0"/>
- <line x="15.0" y="55.0"/>
- <line x="55.0" y="55.0"/>
- <line x="60.0" y="60.0"/>
+ <move x="10" y="60"/>
+ <line x="15" y="55"/>
+ <line x="55" y="55"/>
+ <line x="60" y="60"/>
+ <move x="10" y="10"/>
+ <line x="30" y="10"/>
+ <move x="40" y="10"/>
+ <line x="60" y="10"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Pentode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Pentode" strokewidth="inherit" w="70">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="45.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="35.0"/>
- <line x="40.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="35.0"/>
- <line x="60.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="25.0"/>
- <line x="20.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="25.0"/>
- <line x="40.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="25.0"/>
- <line x="60.0" y="25.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="45.0"/>
- <line x="40.0" y="45.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="45.0"/>
- <line x="60.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.5" y="60.0"/>
- <line x="27.5" y="55.0"/>
- <line x="42.5" y="55.0"/>
- <line x="47.5" y="60.0"/>
+ <move x="35" y="0"/>
+ <line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="25" y="10"/>
+ <line x="45" y="10"/>
+ <move x="10" y="35"/>
+ <line x="20" y="35"/>
+ <move x="30" y="35"/>
+ <line x="40" y="35"/>
+ <move x="50" y="35"/>
+ <line x="60" y="35"/>
+ <move x="10" y="25"/>
+ <line x="20" y="25"/>
+ <move x="30" y="25"/>
+ <line x="40" y="25"/>
+ <move x="50" y="25"/>
+ <line x="60" y="25"/>
+ <move x="10" y="45"/>
+ <line x="20" y="45"/>
+ <move x="30" y="45"/>
+ <line x="40" y="45"/>
+ <move x="50" y="45"/>
+ <line x="60" y="45"/>
+ <move x="22.5" y="60"/>
+ <line x="27.5" y="55"/>
+ <line x="42.5" y="55"/>
+ <line x="47.5" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="87.0" name="Photocell" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="87" name="Photocell" strokewidth="inherit" w="70">
<connections>
<constraint name="N" perimeter="0" x="0.5" y="0.11"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="10.0"/>
+ <ellipse h="70" w="70" x="0" y="10"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="10.0"/>
- <line x="35.0" y="20.0"/>
+ <move x="35" y="10"/>
+ <line x="35" y="20"/>
+ <move x="60" y="0"/>
+ <line x="50" y="10"/>
+ <move x="70" y="8"/>
+ <line x="60" y="18"/>
+ <move x="25" y="87"/>
+ <line x="25" y="78"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="78"/>
+ <line x="45" y="87"/>
</path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="20.0"/>
- <line x="45.0" y="20.0"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="60.0" y="0.0"/>
- <line x="50.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="70.0" y="8.0"/>
- <line x="60.0" y="18.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="7.0"/>
- <line x="50.0" y="10.0"/>
- <line x="53.0" y="10.0"/>
+ <move x="50" y="7"/>
+ <line x="50" y="10"/>
+ <line x="53" y="10"/>
<close/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="15.0"/>
- <line x="60.0" y="18.0"/>
- <line x="63.0" y="18.0"/>
+ <move x="60" y="15"/>
+ <line x="60" y="18"/>
+ <line x="63" y="18"/>
<close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
<strokewidth width="2"/>
<path>
- <move x="22.5" y="70.0"/>
- <line x="27.5" y="65.0"/>
- <line x="42.5" y="65.0"/>
- <line x="47.5" y="70.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
- <path>
- <move x="25.0" y="87.0"/>
- <line x="25.0" y="78.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="78.0"/>
- <line x="45.0" y="87.0"/>
+ <move x="25" y="20"/>
+ <line x="45" y="20"/>
+ <move x="22.5" y="70"/>
+ <line x="27.5" y="65"/>
+ <line x="42.5" y="65"/>
+ <line x="47.5" y="70"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Tetrode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Tetrode" strokewidth="inherit" w="70">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="45.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="40.0"/>
- <line x="20.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="40.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="40.0"/>
- <line x="60.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="30.0"/>
- <line x="20.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="30.0"/>
- <line x="40.0" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="30.0"/>
- <line x="60.0" y="30.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.5" y="60.0"/>
- <line x="27.5" y="55.0"/>
- <line x="42.5" y="55.0"/>
- <line x="47.5" y="60.0"/>
+ <move x="35" y="0"/>
+ <line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="25" y="10"/>
+ <line x="45" y="10"/>
+ <move x="10" y="40"/>
+ <line x="20" y="40"/>
+ <move x="30" y="40"/>
+ <line x="40" y="40"/>
+ <move x="50" y="40"/>
+ <line x="60" y="40"/>
+ <move x="10" y="30"/>
+ <line x="20" y="30"/>
+ <move x="30" y="30"/>
+ <line x="40" y="30"/>
+ <move x="50" y="30"/>
+ <line x="60" y="30"/>
+ <move x="22.5" y="60"/>
+ <line x="27.5" y="55"/>
+ <line x="42.5" y="55"/>
+ <line x="47.5" y="60"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="77.0" name="Triode" strokewidth="inherit" w="70.0">
+ <shape aspect="variable" h="77" name="Triode" strokewidth="inherit" w="70">
<connections>
- <constraint name="N" perimeter="0" x="0.5" y="0.0"/>
- <constraint name="S1" perimeter="0" x="0.36" y="1.0"/>
- <constraint name="S2" perimeter="0" x="0.64" y="1.0"/>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S1" perimeter="0" x="0.36" y="1"/>
+ <constraint name="S2" perimeter="0" x="0.64" y="1"/>
</connections>
<background>
- <save/>
- <ellipse h="70.0" w="70.0" x="0.0" y="0.0"/>
+ <ellipse h="70" w="70" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
<path>
- <move x="35.0" y="0.0"/>
- <line x="35.0" y="10.0"/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="25.0" y="10.0"/>
- <line x="45.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="10.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="35.0"/>
- <line x="40.0" y="35.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="50.0" y="35.0"/>
- <line x="60.0" y="35.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="22.5" y="60.0"/>
- <line x="27.5" y="55.0"/>
- <line x="42.5" y="55.0"/>
- <line x="47.5" y="60.0"/>
+ <move x="35" y="0"/>
+ <line x="35" y="10"/>
+ <move x="25" y="77"/>
+ <line x="25" y="68"/>
+ <arc large-arc-flag="1" rx="10" ry="10" sweep-flag="1" x="45" x-axis-rotation="0" y="68"/>
+ <line x="45" y="77"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <fillcolor color="none"/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="77.0"/>
- <line x="25.0" y="68.0"/>
- <arc large-arc-flag="1" rx="10.0" ry="10.0" sweep-flag="1" x="45.0" x-axis-rotation="0.0" y="68.0"/>
- <line x="45.0" y="77.0"/>
+ <move x="25" y="10"/>
+ <line x="45" y="10"/>
+ <move x="10" y="35"/>
+ <line x="20" y="35"/>
+ <move x="30" y="35"/>
+ <line x="40" y="35"/>
+ <move x="50" y="35"/>
+ <line x="60" y="35"/>
+ <move x="22.5" y="60"/>
+ <line x="27.5" y="55"/>
+ <line x="42.5" y="55"/>
+ <line x="47.5" y="60"/>
</path>
<stroke/>
</foreground>
diff --git a/war/stencils/electrical/transistors.xml b/war/stencils/electrical/transistors.xml
index 517b22f1..99673c2c 100644
--- a/war/stencils/electrical/transistors.xml
+++ b/war/stencils/electrical/transistors.xml
@@ -1,4 +1,4 @@
-<shapes name="mxGraph.electrical.transistors">
+<shapes name="mxgraph.electrical.transistors">
<shape aspect="fixed" h="90" name="Complementary Unijunction" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
@@ -6,35 +6,19 @@
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
<ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="20" y="15"/>
- <line x="20" y="75"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
<move x="20" y="30"/>
<line x="87.5" y="30"/>
- </path>
- <fillstroke/>
- <path>
<move x="20" y="60"/>
<line x="87.5" y="60"/>
- </path>
- <fillstroke/>
- <path>
<move x="2.5" y="60"/>
<line x="20" y="45"/>
</path>
- <fillstroke/>
+ <stroke/>
<miterlimit limit="2.1"/>
<path>
<move x="5" y="54.5"/>
@@ -43,686 +27,510 @@
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Darlington Pair" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Darlington Pair" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.965" y="0.315"/>
<constraint name="SE" perimeter="0" x="0.79" y="0.91"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.51"/>
+ <constraint name="W" perimeter="0" x="0" y="0.51"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="43.75" y="48.75"/>
- <line x="43.75" y="78.75"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
<path>
<move x="43.75" y="63.75"/>
<line x="70.25" y="81.25"/>
+ <move x="16.37" y="45.87"/>
+ <line x="42.87" y="63.37"/>
+ <move x="0" y="45.87"/>
+ <line x="16.37" y="45.87"/>
+ <move x="16.3" y="45.8"/>
+ <line x="42.5" y="28.4"/>
+ <line x="87" y="28.4"/>
+ <move x="43.8" y="63.8"/>
+ <line x="70.3" y="46.3"/>
+ <line x="70.3" y="28.4"/>
</path>
- <fillstroke/>
+ <stroke/>
<path>
<move x="68.37" y="78.25"/>
<line x="70.35" y="81.35"/>
- <line x="66.87" y="81.0"/>
+ <line x="66.87" y="81"/>
<close/>
- </path>
- <fillstroke/>
- <strokewidth width="2"/>
- <path>
- <move x="16.37" y="30.87"/>
- <line x="16.37" y="60.87"/>
- </path>
- <fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="16.37" y="45.87"/>
- <line x="42.87" y="63.37"/>
- </path>
- <fillstroke/>
- <path>
- <move x="41.0" y="60.37"/>
+ <move x="41" y="60.37"/>
<line x="42.87" y="63.47"/>
<line x="39.5" y="63.12"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="45.87"/>
- <line x="16.37" y="45.87"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="16.3" y="45.8"/>
- <line x="42.5" y="28.4"/>
- <line x="87.0" y="28.4"/>
- </path>
- <stroke/>
- <path>
- <move x="43.8" y="63.8"/>
- <line x="70.3" y="46.3"/>
- <line x="70.3" y="28.4"/>
+ <move x="43.75" y="48.75"/>
+ <line x="43.75" y="78.75"/>
+ <move x="16.37" y="30.87"/>
+ <line x="16.37" y="60.87"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="N-channel JFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="N-channel JFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.68"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.68"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
+ <move x="0" y="75"/>
+ <line x="29" y="75"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="45" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="75.0"/>
- <line x="29.0" y="75.0"/>
+ <move x="29" y="70"/>
+ <line x="44" y="75"/>
+ <line x="29" y="80"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="45.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="29.0" y="70.0"/>
- <line x="44.0" y="75.0"/>
- <line x="29.0" y="80.0"/>
- <close/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="N-channel JFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="N-channel JFET 2" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="87.5" y="30"/>
+ <move x="20" y="60"/>
+ <line x="87.5" y="60"/>
+ <move x="2.5" y="60"/>
+ <line x="20" y="60"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="87.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="87.5" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="2.5" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="14.5" y="57.0"/>
- <line x="20.0" y="60.0"/>
- <line x="14.5" y="63.0"/>
+ <move x="14.5" y="57"/>
+ <line x="20" y="60"/>
+ <line x="14.5" y="63"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="NPN Transistor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="NPN Transistor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="40.0" y="30.0"/>
- <line x="40.0" y="80.0"/>
+ <move x="0" y="55"/>
+ <line x="40" y="55"/>
+ <move x="40" y="40"/>
+ <line x="70" y="12.5"/>
+ <line x="70" y="0"/>
+ <move x="40" y="70"/>
+ <line x="70" y="97.5"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
+ <move x="54" y="89"/>
+ <line x="69" y="96.5"/>
+ <line x="60.5" y="82.5"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="70.0" y="12.5"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="40.0" y="70.0"/>
- <line x="70.0" y="97.5"/>
- <line x="70.0" y="110.0"/>
+ <move x="40" y="30"/>
+ <line x="40" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="54.0" y="89.0"/>
- <line x="69.0" y="96.5"/>
- <line x="60.5" y="82.5"/>
- <close/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="71.0" name="NPN Transistor 2" strokewidth="inherit" w="73.0">
+ <shape aspect="fixed" h="71" name="NPN Transistor 2" strokewidth="inherit" w="73">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="0.99"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.492"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="0.99"/>
+ <constraint name="W" perimeter="0" x="0" y="0.492"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="20"/>
+ <line x="73" y="0"/>
+ <move x="20" y="50"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="20.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
<move x="68.75" y="65.5"/>
- <line x="72.75" y="70.0"/>
- <line x="66.75" y="71.0"/>
+ <line x="72.75" y="70"/>
+ <line x="66.75" y="71"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
<shape aspect="fixed" h="70.2" name="NPN Transistor 3" strokewidth="inherit" w="73.2">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="69.25" y="64.0"/>
+ <move x="69.25" y="64"/>
<line x="73.2" y="70.2"/>
<line x="66.25" y="69.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="NPN Transistor 4" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="NPN Transistor 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="45"/>
+ <line x="73" y="10"/>
+ <move x="20" y="45"/>
+ <line x="73" y="80"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="69.25" y="74.0"/>
+ <move x="69.25" y="74"/>
<line x="73.2" y="80.2"/>
<line x="66.25" y="79.5"/>
<close/>
</path>
<fillstroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="P-channel JFET 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="P-channel JFET 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.68"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.68"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="45.0" y="30.0"/>
- <line x="45.0" y="80.0"/>
+ <move x="0" y="75"/>
+ <line x="15" y="75"/>
+ <move x="45" y="35"/>
+ <line x="70" y="35"/>
+ <line x="70" y="0"/>
+ <move x="30" y="75"/>
+ <line x="70" y="75"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="75.0"/>
- <line x="15.0" y="75.0"/>
+ <move x="30" y="70"/>
+ <line x="15" y="75"/>
+ <line x="30" y="80"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="45.0" y="35.0"/>
- <line x="70.0" y="35.0"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="30.0" y="75.0"/>
- <line x="70.0" y="75.0"/>
- <line x="70.0" y="110.0"/>
+ <move x="45" y="30"/>
+ <line x="45" y="80"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
- <path>
- <move x="30.0" y="70.0"/>
- <line x="15.0" y="75.0"/>
- <line x="30.0" y="80.0"/>
- <close/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="P-channel JFET 2" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="P-channel JFET 2" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="87.5" y="30"/>
+ <move x="20" y="60"/>
+ <line x="87.5" y="60"/>
+ <move x="2.5" y="60"/>
+ <line x="20" y="60"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="87.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="87.5" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="2.5" y="60.0"/>
- <line x="20.0" y="60.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="8.0" y="57.0"/>
- <line x="2.5" y="60.0"/>
- <line x="8.0" y="63.0"/>
+ <move x="8" y="57"/>
+ <line x="2.5" y="60"/>
+ <line x="8" y="63"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="110.0" name="PNP Transistor 1" strokewidth="inherit" w="100.0">
+ <shape aspect="fixed" h="110" name="PNP Transistor 1" strokewidth="inherit" w="100">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <save/>
- <ellipse h="90.0" w="90.0" x="10.0" y="10.0"/>
+ <ellipse h="90" w="90" x="10" y="10"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="40.0" y="30.0"/>
- <line x="40.0" y="80.0"/>
+ <move x="0" y="55"/>
+ <line x="40" y="55"/>
+ <move x="40" y="40"/>
+ <line x="70" y="12.5"/>
+ <line x="70" y="0"/>
+ <move x="40" y="70"/>
+ <line x="70" y="97.5"/>
+ <line x="70" y="110"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="0.0" y="55.0"/>
- <line x="40.0" y="55.0"/>
+ <move x="49.5" y="25"/>
+ <line x="41.5" y="38.75"/>
+ <line x="56" y="31.75"/>
+ <close/>
</path>
<fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="40.0" y="40.0"/>
- <line x="70.0" y="12.5"/>
- <line x="70.0" y="0.0"/>
- </path>
- <stroke/>
- <path>
- <move x="40.0" y="70.0"/>
- <line x="70.0" y="97.5"/>
- <line x="70.0" y="110.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
- <stroke/>
+ <strokewidth width="2"/>
<path>
- <move x="49.5" y="25.0"/>
- <line x="41.5" y="38.75"/>
- <line x="56.0" y="31.75"/>
- <close/>
+ <move x="40" y="30"/>
+ <line x="40" y="80"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="70.0" name="PNP Transistor 2" strokewidth="inherit" w="73.0">
+ <shape aspect="fixed" h="70" name="PNP Transistor 2" strokewidth="inherit" w="73">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="20"/>
+ <line x="73" y="0"/>
+ <move x="20" y="50"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="20.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="50.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="25" y="55"/>
+ <line x="21" y="50.5"/>
+ <line x="27" y="49.5"/>
+ <close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="25.0" y="55.0"/>
- <line x="21.0" y="50.5"/>
- <line x="27.0" y="49.5"/>
- <close/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="70.0" name="PNP Transistor 3" strokewidth="inherit" w="73.0">
+ <shape aspect="fixed" h="70" name="PNP Transistor 3" strokewidth="inherit" w="73">
<connections>
- <constraint name="NE" perimeter="0" x="1.0" y="0.0"/>
- <constraint name="SE" perimeter="0" x="1.0" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<foreground>
- <save/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="5.0"/>
- <line x="20.0" y="65.0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="0"/>
+ <move x="20" y="35"/>
+ <line x="73" y="70"/>
+ <move x="0" y="35"/>
+ <line x="20" y="35"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="35.0"/>
- <line x="73.0" y="70.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="41.0"/>
- <line x="21.0" y="35.0"/>
+ <move x="24.5" y="41"/>
+ <line x="21" y="35"/>
<line x="27.5" y="36.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="35.0"/>
- <line x="20.0" y="35.0"/>
+ <move x="20" y="5"/>
+ <line x="20" y="65"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="PNP Transistor 4" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="PNP Transistor 4" strokewidth="inherit" w="90">
<connections>
- <constraint name="NE" perimeter="0" x="0.7" y="0.0"/>
- <constraint name="SE" perimeter="0" x="0.7" y="1.0"/>
- <constraint name="W" perimeter="0" x="0.0" y="0.5"/>
+ <constraint name="NE" perimeter="0" x="0.7" y="0"/>
+ <constraint name="SE" perimeter="0" x="0.7" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="45"/>
+ <line x="73" y="10"/>
+ <move x="20" y="45"/>
+ <line x="73" y="80"/>
+ <move x="0" y="45"/>
+ <line x="20" y="45"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
<path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="10.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="45.0"/>
- <line x="73.0" y="80.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="24.5" y="51.0"/>
- <line x="21.0" y="45.0"/>
+ <move x="24.5" y="51"/>
+ <line x="21" y="45"/>
<line x="27.5" y="46.5"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
<path>
- <move x="0.0" y="45.0"/>
- <line x="20.0" y="45.0"/>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
</path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="fixed" h="90.0" name="Unijunction" strokewidth="inherit" w="90.0">
+ <shape aspect="fixed" h="90" name="Unijunction" strokewidth="inherit" w="90">
<connections>
<constraint name="NE" perimeter="0" x="0.97" y="0.333"/>
<constraint name="SE" perimeter="0" x="0.97" y="0.665"/>
<constraint name="W" perimeter="0" x="0.025" y="0.67"/>
</connections>
<background>
- <save/>
- <ellipse h="90.0" w="90.0" x="0.0" y="0.0"/>
+ <ellipse h="90" w="90" x="0" y="0"/>
</background>
<foreground>
<fillstroke/>
- <strokewidth width="2"/>
<path>
- <move x="20.0" y="15.0"/>
- <line x="20.0" y="75.0"/>
+ <move x="20" y="30"/>
+ <line x="87.5" y="30"/>
+ <move x="20" y="60"/>
+ <line x="87.5" y="60"/>
+ <move x="2.5" y="60"/>
+ <line x="20" y="45"/>
</path>
- <fillstroke/>
- <restore/>
- <rect/>
<stroke/>
- <path>
- <move x="20.0" y="30.0"/>
- <line x="87.5" y="30.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="20.0" y="60.0"/>
- <line x="87.5" y="60.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="2.5" y="60.0"/>
- <line x="20.0" y="45.0"/>
- </path>
- <fillstroke/>
<miterlimit limit="2"/>
<path>
- <move x="13.0" y="47.0"/>
- <line x="20.0" y="45.0"/>
- <line x="16.5" y="52.0"/>
+ <move x="13" y="47"/>
+ <line x="20" y="45"/>
+ <line x="16.5" y="52"/>
<close/>
</path>
<fillstroke/>
+ <strokewidth width="2"/>
+ <path>
+ <move x="20" y="15"/>
+ <line x="20" y="75"/>
+ </path>
+ <stroke/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/transmission.xml b/war/stencils/electrical/transmission.xml
new file mode 100644
index 00000000..d33695d5
--- /dev/null
+++ b/war/stencils/electrical/transmission.xml
@@ -0,0 +1,297 @@
+<shapes name="mxgraph.electrical.transmission">
+<shape aspect="variable" h="25" name="2 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="25"/>
+ <line x="130" y="25"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="3 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="30"/>
+ <line x="130" y="30"/>
+ <move x="0" y="15"/>
+ <line x="130" y="15"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="75" name="4 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="W1" perimeter="0" x="0" y="0.33"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.33"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.67"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.67"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="75"/>
+ <line x="130" y="75"/>
+ <move x="0" y="25"/>
+ <line x="130" y="25"/>
+ <move x="0" y="50"/>
+ <line x="130" y="50"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="224" name="8 Line Bus" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="NW" perimeter="0" x="0" y="0"/>
+ <constraint name="NE" perimeter="0" x="1" y="0"/>
+ <constraint name="SE" perimeter="0" x="1" y="1"/>
+ <constraint name="SW" perimeter="0" x="0" y="1"/>
+ <constraint name="W1" perimeter="0" x="0" y="0.145"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.285"/>
+ <constraint name="W3" perimeter="0" x="0" y="0.43"/>
+ <constraint name="W4" perimeter="0" x="0" y="0.57"/>
+ <constraint name="W5" perimeter="0" x="0" y="0.715"/>
+ <constraint name="W6" perimeter="0" x="0" y="0.855"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.145"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.285"/>
+ <constraint name="E3" perimeter="0" x="1" y="0.43"/>
+ <constraint name="E4" perimeter="0" x="1" y="0.57"/>
+ <constraint name="E5" perimeter="0" x="1" y="0.715"/>
+ <constraint name="E6" perimeter="0" x="1" y="0.855"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="0"/>
+ <line x="130" y="0"/>
+ <move x="0" y="32"/>
+ <line x="130" y="32"/>
+ <move x="0" y="64"/>
+ <line x="130" y="64"/>
+ <move x="0" y="96"/>
+ <line x="130" y="96"/>
+ <move x="0" y="128"/>
+ <line x="130" y="128"/>
+ <move x="0" y="160"/>
+ <line x="130" y="160"/>
+ <move x="0" y="192"/>
+ <line x="130" y="192"/>
+ <move x="0" y="224"/>
+ <line x="130" y="224"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="88" name="Anticreepage Device" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="44"/>
+ <line x="130" y="44"/>
+ <move x="26" y="18"/>
+ <line x="26" y="70"/>
+ <move x="110" y="0"/>
+ <arc large-arc-flag="0" rx="59" ry="59" sweep-flag="1" x="110" x-axis-rotation="0" y="88"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="156" name="Bus Width" strokewidth="inherit" w="130">
+ <connections/>
+ <foreground>
+ <path>
+ <move x="0" y="156"/>
+ <line x="130" y="0"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="130" name="Cable Group" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W1" perimeter="0" x="0" y="0.16"/>
+ <constraint name="W2" perimeter="0" x="0" y="0.33"/>
+ <constraint name="W3" perimeter="0" x="0" y="0.5"/>
+ <constraint name="W4" perimeter="0" x="0" y="0.67"/>
+ <constraint name="W5" perimeter="0" x="0" y="0.84"/>
+ <constraint name="E1" perimeter="0" x="1" y="0.16"/>
+ <constraint name="E2" perimeter="0" x="1" y="0.33"/>
+ <constraint name="E3" perimeter="0" x="1" y="0.5"/>
+ <constraint name="E4" perimeter="0" x="1" y="0.67"/>
+ <constraint name="E5" perimeter="0" x="1" y="0.84"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="50" y="15"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="65" x-axis-rotation="0" y="0"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="80" x-axis-rotation="0" y="15"/>
+ <line x="80" y="115"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="65" x-axis-rotation="0" y="130"/>
+ <arc large-arc-flag="0" rx="15" ry="15" sweep-flag="1" x="50" x-axis-rotation="0" y="115"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ <path>
+ <move x="0" y="21"/>
+ <line x="50" y="21"/>
+ <move x="0" y="43"/>
+ <line x="50" y="43"/>
+ <move x="0" y="65"/>
+ <line x="50" y="65"/>
+ <move x="0" y="87"/>
+ <line x="50" y="87"/>
+ <move x="0" y="109"/>
+ <line x="50" y="109"/>
+ <move x="80" y="21"/>
+ <line x="130" y="21"/>
+ <move x="80" y="43"/>
+ <line x="130" y="43"/>
+ <move x="80" y="65"/>
+ <line x="130" y="65"/>
+ <move x="80" y="87"/>
+ <line x="130" y="87"/>
+ <move x="80" y="109"/>
+ <line x="130" y="109"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="60" name="Line Cable" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="30"/>
+ <line x="130" y="30"/>
+ </path>
+ <stroke/>
+ <ellipse h="60" w="60" x="35" y="0"/>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="130" name="Line Concentrator" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <ellipse h="130" w="130" x="0" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="65" y="12"/>
+ <line x="65" y="118"/>
+ <move x="35" y="65"/>
+ <line x="65" y="65"/>
+ <move x="65" y="25"/>
+ <line x="95" y="25"/>
+ <move x="65" y="105"/>
+ <line x="95" y="105"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="80" name="Optical Fiber" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0" y="0.5"/>
+ <constraint name="E" perimeter="0" x="1" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="40"/>
+ <line x="25" y="40"/>
+ <move x="105" y="40"/>
+ <line x="130" y="40"/>
+ </path>
+ <stroke/>
+ <ellipse h="80" w="80" x="25" y="0"/>
+ <fillstroke/>
+ <path>
+ <move x="35" y="50"/>
+ <line x="65" y="20"/>
+ <move x="55" y="68.88"/>
+ <line x="85" y="38.88"/>
+ </path>
+ <stroke/>
+ <fillcolor color="#000000"/>
+ <path>
+ <move x="59.5" y="15.5"/>
+ <line x="76" y="9"/>
+ <line x="70" y="25"/>
+ <close/>
+ <move x="79.5" y="34.38"/>
+ <line x="96" y="27.88"/>
+ <line x="90" y="43.88"/>
+ <close/>
+ </path>
+ <fillstroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="136.29" name="Overground Enclosure" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0.05"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="W" perimeter="0" x="0.215" y="0.5"/>
+ <constraint name="E" perimeter="0" x="0.785" y="0.5"/>
+ </connections>
+ <foreground>
+ <path>
+ <move x="0" y="26.29"/>
+ <arc large-arc-flag="0" rx="117" ry="117" sweep-flag="1" x="130" x-axis-rotation="0" y="26.29"/>
+ <move x="28" y="12.79"/>
+ <line x="28" y="136.29"/>
+ <line x="102" y="136.29"/>
+ <line x="102" y="12.79"/>
+ </path>
+ <stroke/>
+ </foreground>
+</shape>
+<shape aspect="variable" h="30" name="Terminal 3 Phase" strokewidth="inherit" w="130">
+ <connections>
+ <constraint name="N" perimeter="0" x="0.5" y="0"/>
+ <constraint name="S" perimeter="0" x="0.5" y="1"/>
+ <constraint name="NW" perimeter="0" x="0.12" y="0"/>
+ <constraint name="NE" perimeter="0" x="0.88" y="0"/>
+ <constraint name="SW" perimeter="0" x="0.12" y="1"/>
+ <constraint name="SE" perimeter="0" x="0.88" y="1"/>
+ </connections>
+ <foreground>
+ <ellipse h="30" w="30" x="0" y="0"/>
+ <fillstroke/>
+ <ellipse h="30" w="30" x="50" y="0"/>
+ <fillstroke/>
+ <ellipse h="30" w="30" x="100" y="0"/>
+ <fillstroke/>
+ </foreground>
+</shape>
+</shapes> \ No newline at end of file
diff --git a/war/stencils/electrical/waveforms.xml b/war/stencils/electrical/waveforms.xml
index d2758411..9eb9fb9e 100644
--- a/war/stencils/electrical/waveforms.xml
+++ b/war/stencils/electrical/waveforms.xml
@@ -1,450 +1,361 @@
-<shapes name="mxGraph.electrical.waveforms">
+<shapes name="mxgraph.electrical.waveforms">
<shape aspect="variable" h="90" name="Data Changing" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
<move x="0" y="90"/>
<line x="90" y="0"/>
- </path>
- </background>
- <foreground>
- <fillstroke/>
- <path>
<move x="0" y="0"/>
<line x="90" y="90"/>
</path>
- <fillstroke/>
+ </background>
+ <foreground>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Data Ending" strokewidth="inherit" w="95.0">
+ <shape aspect="variable" h="90" name="Data Ending" strokewidth="inherit" w="95">
<connections/>
<background>
<path>
- <move x="55.0" y="45.0"/>
- <line x="70.0" y="45.0"/>
+ <move x="55" y="45"/>
+ <line x="70" y="45"/>
+ <move x="85" y="45"/>
+ <line x="95" y="45"/>
+ <move x="0" y="0"/>
+ <line x="45" y="45"/>
+ <line x="0" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="85.0" y="45.0"/>
- <line x="95.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="0.0" y="0.0"/>
- <line x="45.0" y="45.0"/>
- <line x="0.0" y="90.0"/>
- </path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="40.0" name="Data Invalid 1" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="40" name="Data Invalid 1" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="15.0" y="0.0"/>
+ <move x="0" y="0"/>
+ <line x="15" y="0"/>
+ <move x="30" y="0"/>
+ <line x="45" y="0"/>
+ <move x="60" y="0"/>
+ <line x="75" y="0"/>
+ <move x="90" y="0"/>
+ <line x="100" y="0"/>
+ <move x="0" y="40"/>
+ <line x="15" y="40"/>
+ <move x="30" y="40"/>
+ <line x="45" y="40"/>
+ <move x="60" y="40"/>
+ <line x="75" y="40"/>
+ <move x="90" y="40"/>
+ <line x="100" y="40"/>
</path>
</background>
<foreground>
<fillstroke/>
- <path>
- <move x="30.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="0.0"/>
- <line x="75.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="0.0"/>
- <line x="100.0" y="0.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="15.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="30.0" y="40.0"/>
- <line x="45.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="40.0"/>
- <line x="75.0" y="40.0"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Data Invalid 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="5" name="Data Invalid 2" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="2.5"/>
- <line x="15.0" y="2.5"/>
+ <move x="0" y="2.5"/>
+ <line x="15" y="2.5"/>
+ <move x="30" y="2.5"/>
+ <line x="45" y="2.5"/>
+ <move x="60" y="2.5"/>
+ <line x="75" y="2.5"/>
+ <move x="90" y="2.5"/>
+ <line x="100" y="2.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="2.5"/>
- <line x="45.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="60.0" y="2.5"/>
- <line x="75.0" y="2.5"/>
- </path>
- <fillstroke/>
- <path>
- <move x="90.0" y="2.5"/>
- <line x="100.0" y="2.5"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Data Starting" strokewidth="inherit" w="95.0">
+ <shape aspect="variable" h="90" name="Data Starting" strokewidth="inherit" w="95">
<connections/>
<background>
<path>
- <move x="0.0" y="45.0"/>
- <line x="15.0" y="45.0"/>
+ <move x="0" y="45"/>
+ <line x="15" y="45"/>
+ <move x="30" y="45"/>
+ <line x="45" y="45"/>
+ <move x="95" y="0"/>
+ <line x="50" y="45"/>
+ <line x="95" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="30.0" y="45.0"/>
- <line x="45.0" y="45.0"/>
- </path>
- <fillstroke/>
- <fillcolor color="none"/>
- <path>
- <move x="95.0" y="0.0"/>
- <line x="50.0" y="45.0"/>
- <line x="95.0" y="90.0"/>
- </path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="40.0" name="Data Valid" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="40" name="Data Valid" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="100.0" y="0.0"/>
+ <move x="0" y="0"/>
+ <line x="100" y="0"/>
+ <move x="0" y="40"/>
+ <line x="100" y="40"/>
</path>
</background>
<foreground>
- <fillstroke/>
- <path>
- <move x="0.0" y="40.0"/>
- <line x="100.0" y="40.0"/>
- </path>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Down Ramp" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Down Ramp" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="90.0" y="90.0"/>
+ <move x="0" y="0"/>
+ <line x="90" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Edge" strokewidth="inherit" w="5.0">
+ <shape aspect="variable" h="90" name="Edge" strokewidth="inherit" w="5">
<connections/>
<background>
<path>
- <move x="2.5" y="0.0"/>
- <line x="2.5" y="90.0"/>
+ <move x="2.5" y="0"/>
+ <line x="2.5" y="90"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
<shape aspect="variable" h="55.22" name="Event" strokewidth="inherit" w="25.56">
<connections/>
<background>
- <save/>
- <ellipse h="10.0" w="10.0" x="0.0" y="45.22"/>
+ <ellipse h="10" w="10" x="0" y="45.22"/>
</background>
<foreground>
<fillstroke/>
- <fillcolor color="none"/>
<path>
- <move x="25.0" y="0.22"/>
- <arc large-arc-flag="0" rx="60.0" ry="60.0" sweep-flag="0" x="5.0" x-axis-rotation="0.0" y="50.22"/>
+ <move x="25" y="0.22"/>
+ <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="5" x-axis-rotation="0" y="50.22"/>
</path>
<stroke/>
- <restore/>
- <rect/>
- <stroke/>
<miterlimit limit="10"/>
<path>
- <move x="21.67" y="6.0"/>
- <line x="25.56" y="0.0"/>
- <line x="19.0" y="3.67"/>
+ <move x="21.67" y="6"/>
+ <line x="25.56" y="0"/>
+ <line x="19" y="3.67"/>
<close/>
</path>
<fillstroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Level" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="5" name="Level" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="2.5"/>
- <line x="90.0" y="2.5"/>
+ <move x="0" y="2.5"/>
+ <line x="90" y="2.5"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Pulse 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Pulse 1" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="90.0"/>
- <line x="25.0" y="90.0"/>
- <line x="25.0" y="0.0"/>
- <line x="65.0" y="0.0"/>
- <line x="65.0" y="90.0"/>
- <line x="90.0" y="90.0"/>
+ <move x="0" y="90"/>
+ <line x="25" y="90"/>
+ <line x="25" y="0"/>
+ <line x="65" y="0"/>
+ <line x="65" y="90"/>
+ <line x="90" y="90"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Pulse 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Pulse 2" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="25.0" y="0.0"/>
- <line x="25.0" y="90.0"/>
- <line x="65.0" y="90.0"/>
- <line x="65.0" y="0.0"/>
- <line x="90.0" y="0.0"/>
+ <move x="0" y="0"/>
+ <line x="25" y="0"/>
+ <line x="25" y="90"/>
+ <line x="65" y="90"/>
+ <line x="65" y="0"/>
+ <line x="90" y="0"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Sawtooth" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="Sawtooth" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="100.0"/>
- <line x="33.33" y="0.0"/>
- <line x="33.33" y="100.0"/>
- <line x="66.67" y="0.0"/>
- <line x="66.67" y="100.0"/>
- <line x="100.0" y="0.0"/>
- <line x="100.0" y="100.0"/>
+ <move x="0" y="100"/>
+ <line x="33.33" y="0"/>
+ <line x="33.33" y="100"/>
+ <line x="66.67" y="0"/>
+ <line x="66.67" y="100"/>
+ <line x="100" y="0"/>
+ <line x="100" y="100"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="66.5" name="Sine Wave" strokewidth="inherit" w="89.7">
+ <shape aspect="variable" h="88.17" name="Sine Wave" strokewidth="inherit" w="89.75">
<connections/>
<foreground>
- <fillcolor color="none"/>
<path>
- <move x="0" y="33.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="1" x="7.2" x-axis-rotation="0" y="17.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="1" x="13.6" x-axis-rotation="0" y="6.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="18.9" x-axis-rotation="0" y="1.21"/>
- <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="1" x="25.8" x-axis-rotation="0" y="1.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="1" x="31.1" x-axis-rotation="0" y="6.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="1" x="37.5" x-axis-rotation="0" y="17.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="1" x="44.7" x-axis-rotation="0" y="33.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="0" x="52" x-axis-rotation="0" y="49.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="0" x="58.4" x-axis-rotation="0" y="60.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="0" x="63.6" x-axis-rotation="0" y="65.21"/>
- <arc large-arc-flag="0" rx="7" ry="7" sweep-flag="0" x="70.7" x-axis-rotation="0" y="65.21"/>
- <arc large-arc-flag="0" rx="20" ry="20" sweep-flag="0" x="76" x-axis-rotation="0" y="60.21"/>
- <arc large-arc-flag="0" rx="70" ry="70" sweep-flag="0" x="82.4" x-axis-rotation="0" y="49.21"/>
- <arc large-arc-flag="0" rx="500" ry="500" sweep-flag="0" x="89.7" x-axis-rotation="0" y="33.21"/>
+ <move x="0" y="43.95"/>
+ <curve x1="18.26" x2="26.87" x3="44.87" y1="0.23" y2="0" y3="43.95"/>
+ <curve x1="62.88" x2="71.32" x3="89.75" y1="87.9" y2="88.17" y3="43.95"/>
</path>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Slow Square Wave" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="80" name="Slow Square Wave" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="40.0"/>
- <line x="10.0" y="0.0"/>
- <line x="35.0" y="0.0"/>
- <line x="55.0" y="80.0"/>
- <line x="80.0" y="80.0"/>
- <line x="90.0" y="40.0"/>
+ <move x="0" y="40"/>
+ <line x="10" y="0"/>
+ <line x="35" y="0"/>
+ <line x="55" y="80"/>
+ <line x="80" y="80"/>
+ <line x="90" y="40"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="80.0" name="Square Wave" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="80" name="Square Wave" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="40.0"/>
- <line x="0.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- <line x="45.0" y="80.0"/>
- <line x="90.0" y="80.0"/>
- <line x="90.0" y="40.0"/>
+ <move x="0" y="40"/>
+ <line x="0" y="0"/>
+ <line x="45" y="0"/>
+ <line x="45" y="80"/>
+ <line x="90" y="80"/>
+ <line x="90" y="40"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Step 1" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Step 1" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="90.0"/>
- <line x="45.0" y="90.0"/>
- <line x="45.0" y="0.0"/>
- <line x="90.0" y="0.0"/>
+ <move x="0" y="90"/>
+ <line x="45" y="90"/>
+ <line x="45" y="0"/>
+ <line x="90" y="0"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Step 2" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Step 2" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="0.0"/>
- <line x="45.0" y="0.0"/>
- <line x="45.0" y="90.0"/>
- <line x="90.0" y="90.0"/>
+ <move x="0" y="0"/>
+ <line x="45" y="0"/>
+ <line x="45" y="90"/>
+ <line x="90" y="90"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
<stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="10.0" name="Timing Line" strokewidth="inherit" w="98.0">
+ <shape aspect="variable" h="10" name="Timing Line" strokewidth="inherit" w="98">
<connections/>
<background>
- <save/>
<path>
- <move x="1.0" y="5.0"/>
- <line x="97.0" y="5.0"/>
+ <move x="1" y="5"/>
+ <line x="97" y="5"/>
+ <move x="89" y="0"/>
+ <line x="98" y="5"/>
+ <line x="89" y="10"/>
+ <move x="9" y="0"/>
+ <line x="0" y="5"/>
+ <line x="9" y="10"/>
</path>
</background>
<foreground>
- <fillcolor color="none"/>
- <stroke/>
- <path>
- <move x="89.0" y="0.0"/>
- <line x="98.0" y="5.0"/>
- <line x="89.0" y="10.0"/>
- </path>
- <stroke/>
- <path>
- <move x="9.0" y="0.0"/>
- <line x="0.0" y="5.0"/>
- <line x="9.0" y="10.0"/>
- </path>
- <stroke/>
- <restore/>
- <rect/>
<stroke/>
- <text align="center" str="10s" valign="bottom" x="49.0" y="3.0"/>
+ <text align="center" str="10s" valign="bottom" x="49" y="3"/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Timing Mark 1" strokewidth="inherit" w="5.0">
+ <shape aspect="variable" h="100" name="Timing Mark 1" strokewidth="inherit" w="5">
<connections/>
<background>
<path>
- <move x="2.5" y="0.0"/>
- <line x="2.5" y="100.0"/>
+ <move x="2.5" y="0"/>
+ <line x="2.5" y="100"/>
</path>
</background>
<foreground>
- <dashpattern pattern="5,5"/>
- <dashed dashed="true"/>
- <fillstroke/>
+ <dashpattern pattern="5 5"/>
+ <dashed dashed="1"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="100.0" name="Timing Mark 2" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="100" name="Timing Mark 2" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="50.0" y="0.0"/>
- <line x="50.0" y="100.0"/>
+ <move x="50" y="0"/>
+ <line x="50" y="100"/>
+ <move x="0" y="50"/>
+ <line x="100" y="50"/>
</path>
</background>
<foreground>
- <dashpattern pattern="5,5"/>
- <dashed dashed="true"/>
- <fillstroke/>
- <path>
- <move x="0.0" y="50.0"/>
- <line x="100.0" y="50.0"/>
- </path>
- <fillstroke/>
+ <dashpattern pattern="5 5"/>
+ <dashed dashed="1"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="5.0" name="Timing Mark 3" strokewidth="inherit" w="100.0">
+ <shape aspect="variable" h="5" name="Timing Mark 3" strokewidth="inherit" w="100">
<connections/>
<background>
<path>
- <move x="0.0" y="2.5"/>
- <line x="100.0" y="2.5"/>
+ <move x="0" y="2.5"/>
+ <line x="100" y="2.5"/>
</path>
</background>
<foreground>
- <dashpattern pattern="5,5"/>
- <dashed dashed="true"/>
- <fillstroke/>
+ <dashpattern pattern="5 5"/>
+ <dashed dashed="1"/>
+ <stroke/>
</foreground>
</shape>
- <shape aspect="variable" h="90.0" name="Up Ramp" strokewidth="inherit" w="90.0">
+ <shape aspect="variable" h="90" name="Up Ramp" strokewidth="inherit" w="90">
<connections/>
<background>
<path>
- <move x="0.0" y="90.0"/>
- <line x="90.0" y="0.0"/>
+ <move x="0" y="90"/>
+ <line x="90" y="0"/>
</path>
</background>
<foreground>
- <fillstroke/>
+ <stroke/>
</foreground>
</shape>
</shapes> \ No newline at end of file
diff --git a/war/styles/grapheditor.css b/war/styles/grapheditor.css
index 60980a9b..bd0c7dee 100644
--- a/war/styles/grapheditor.css
+++ b/war/styles/grapheditor.css
@@ -115,7 +115,7 @@
padding: 0 8px;
cursor: pointer;
}
-.geBtn:hover {
+.geBtn:hover, .geBtn:focus {
-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);
-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);
box-shadow: 0px 1px 1px rgba(0,0,0,0.1);
@@ -180,7 +180,7 @@
border: 1px solid #3079ed;
color: #fff;
}
-.gePrimaryBtn:hover {
+.gePrimaryBtn:hover, .gePrimaryBtn:focus {
background-color: #357ae8;
background-image: linear-gradient(#4d90fe 0px,#357ae8 100%);
border: 1px solid #2f5bb7;